/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x14002f760 FUN_14002f760 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ undefined8 * FUN_14002f760(undefined8 *param_1,undefined8 param_2,ulonglong param_3,undefined8 param_4) { short sVar1; ulonglong uVar2; LPCSTR pCVar3; short *psVar4; undefined1 auStack_1e8 [32]; undefined **local_1c8; longlong *local_1c0; longlong *local_1b8; undefined8 local_1b0; undefined8 local_1a8; undefined8 *local_1a0; undefined8 local_198; undefined2 local_190; undefined6 uStack_18e; undefined8 local_180; ulonglong local_178; undefined1 local_168; undefined8 local_158; undefined8 local_150; short *local_138; short local_130 [132]; ulonglong local_28; local_198 = 0xfffffffffffffffe; local_28 = DAT_14016f5a0 ^ (ulonglong)auStack_1e8; *param_1 = MagiServerOption::vftable; param_1[4] = 7; param_1[3] = 0; *(undefined2 *)(param_1 + 1) = 0; param_1[9] = 7; param_1[8] = 0; *(undefined2 *)(param_1 + 6) = 0; param_1[0xe] = 7; param_1[0xd] = 0; *(undefined2 *)(param_1 + 0xb) = 0; param_1[0x10] = 0; *(undefined4 *)(param_1 + 0x11) = 0; *(undefined4 *)((longlong)param_1 + 0x8c) = 0x32; param_1[0x15] = 0xf; param_1[0x14] = 0; *(undefined1 *)(param_1 + 0x12) = 0; param_1[0x1a] = 0xf; param_1[0x19] = 0; *(undefined1 *)(param_1 + 0x17) = 0; param_1[0x1f] = 0xf; param_1[0x1e] = 0; *(undefined1 *)(param_1 + 0x1c) = 0; param_1[0x24] = 0xf; param_1[0x23] = 0; *(undefined1 *)(param_1 + 0x21) = 0; param_1[0x26] = 0; param_1[0x27] = 0; *(undefined4 *)(param_1 + 0x28) = 1; *(undefined4 *)((longlong)param_1 + 0x144) = 1; param_1[0x29] = 1; *(undefined2 *)(param_1 + 0x2a) = 0; *(undefined1 *)((longlong)param_1 + 0x152) = 0; *(undefined8 *)((longlong)param_1 + 0x154) = 0; *(undefined8 *)((longlong)param_1 + 0x15c) = 1; *(undefined2 *)((longlong)param_1 + 0x164) = 1; *(undefined1 *)((longlong)param_1 + 0x166) = 1; param_1[0x2d] = 0; *(undefined2 *)(param_1 + 0x2e) = 0; param_1[0x2f] = 0; *(undefined1 *)(param_1 + 0x30) = 1; param_1[0x31] = 0; param_1[0x32] = 0; param_1[0x33] = 0; local_1a0 = param_1; FUN_14000c1f0(param_1 + 0x35); *(undefined1 *)(param_1 + 0x3d) = 0; *(undefined4 *)((longlong)param_1 + 0x1ec) = 0; param_1[0x3e] = 0; local_1c8 = Proud::CFastArray,0>::vftable; local_1c0 = (longlong *)0x0; local_1b8 = (longlong *)0x0; local_1b0 = 0; local_1a8 = 0; FUN_140042ca0((longlong)&local_1c8,param_2,param_3,param_4); local_178 = 7; local_180 = 0; local_190 = 0; local_150 = 0xf; local_158 = 0; local_168 = 0; if (0 < (int)local_1b0) { pCVar3 = (LPCSTR)*local_1b8; if ((LPCSTR)*local_1b8 == (LPCSTR)0x0) { pCVar3 = PTR_DAT_14016f008; } local_138 = local_130; FUN_140005110((longlong *)&local_138,pCVar3,3); uVar2 = 0xffffffffffffffff; psVar4 = local_138; do { if (uVar2 == 0) break; uVar2 = uVar2 - 1; sVar1 = *psVar4; psVar4 = psVar4 + 1; } while (sVar1 != 0); param_3 = ~uVar2 - 1; FUN_140001710((ulonglong *)&local_190,local_138,param_3); if (local_138 != local_130) { free(local_138); } } if (7 < local_178) { operator_delete((void *)CONCAT62(uStack_18e,local_190)); } local_178 = 7; local_180 = 0; local_190 = 0; local_1c8 = Proud::CFastArray,0>::vftable; if (0 < (int)local_1b0) { FUN_1400368b0(local_1b8,(longlong)(int)local_1b0,param_3,param_4); } if (local_1b8 != (longlong *)0x0) { if (local_1c0 == (longlong *)0x0) { FUN_14003e8b0(local_1b8); } else { (**(code **)(*local_1c0 + 0x18))(local_1c0,local_1b8); } } return param_1; }