/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14005ed30 FUN_14005ed30 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14005ed30(longlong *param_1,wchar_t *param_2,LPCSTR param_3,undefined8 param_4) { int *piVar1; longlong *plVar2; longlong *plVar3; ulonglong uVar4; longlong lVar5; wchar_t *pwVar6; longlong **pplVar7; undefined4 *puVar8; LPCSTR pCVar9; SIZE_T SVar10; undefined4 uVar11; undefined1 auStack_2b8 [32]; longlong *local_298; longlong *local_290; undefined1 local_288; undefined4 local_278 [2]; ulonglong local_270; undefined4 local_268; longlong local_260 [2]; undefined **local_250; undefined8 local_248; undefined8 local_240; undefined8 local_238; undefined8 local_230; longlong local_228; longlong local_220; ulonglong local_218; undefined4 local_208; undefined **local_200; undefined8 local_1f8; undefined8 local_1f0; undefined8 local_1e8; undefined8 local_1e0; undefined **local_1d0; undefined4 local_1c8; undefined2 local_1c4; undefined **local_1b8; undefined8 local_1b0; undefined8 local_1a8; undefined8 local_1a0; undefined8 local_198; int *local_188; undefined1 local_180; undefined8 local_178; short *local_168; short local_160 [132]; ulonglong local_58; uVar11 = (undefined4)param_4; local_178 = 0xfffffffffffffffe; local_58 = DAT_1401555a0 ^ (ulonglong)auStack_2b8; pwVar6 = param_2; pCVar9 = param_3; piVar1 = (int *)(**(code **)(*param_1 + 0x58))(); local_188 = piVar1; FUN_14002e6e0(piVar1); local_180 = 1; if (DAT_14015bfcf != '\0') { pCVar9 = (LPCSTR)*param_1; pwVar6 = L"Proud::CNetServerImpl::EnqueueHackSuspectEvent"; (**(code **)(pCVar9 + 200))(param_1); } if (param_1[0xeb] != 0) { plVar3 = (longlong *)0x0; local_270 = 0; local_260[0] = 0; local_260[1] = 0; local_248 = 0; local_240 = 0; local_238 = 0; local_230 = 0; local_250 = Proud::ByteArray::vftable; local_218 = 0; local_220 = 0; local_228 = 0; local_1f8 = 0; local_1f0 = 0; local_1e8 = 0; local_1e0 = 0; local_200 = Proud::ByteArray::vftable; local_1d0 = Proud::AddrPort::vftable; local_1c8 = 0; local_1c4 = 0; local_1b0 = 0; local_1a8 = 0; local_1a0 = 0; local_198 = 0; local_1b8 = Proud::ByteArray::vftable; local_298 = (longlong *)FUN_140030280(0x60); plVar2 = plVar3; if (local_298 != (longlong *)0x0) { plVar2 = FUN_14003bef0(local_298,pwVar6,pCVar9,param_4); } if (plVar2 == (longlong *)0x0) { local_298 = (longlong *)0x0; } else { plVar3 = (longlong *)FUN_140030280(0x48); local_290 = plVar3; if (plVar3 != (longlong *)0x0) { local_298 = plVar3; uVar4 = FUN_14002e790(); pCVar9 = (LPCSTR)CONCAT71((int7)((ulonglong)pCVar9 >> 8),1); FUN_14002e600((undefined4 *)plVar3,uVar4 & 0xffffffff,pCVar9,param_4); } local_298 = plVar3; FUN_14002e6e0((int *)plVar3); plVar3[8] = 1; plVar3[7] = (longlong)plVar2; FUN_14002e770((longlong)plVar3); } pplVar7 = &local_298; FUN_14003bff0(&local_270,(ulonglong *)pplVar7,pCVar9,param_4); if (plVar3 != (longlong *)0x0) { local_290 = plVar3; FUN_14002e6e0((int *)plVar3); local_288 = 1; plVar2 = plVar3 + 8; *plVar2 = *plVar2 + -1; if (*plVar2 == 0) { FUN_14002e770((longlong)plVar3); local_288 = 0; FUN_14002b500((undefined4 *)plVar3,pplVar7,pCVar9,param_4); } else { FUN_14002e770((longlong)plVar3); } } if (param_2 == (wchar_t *)0x0) { local_208 = 0; } else { local_208 = *(undefined4 *)(param_2 + 0x37c); } local_278[0] = 0xf; local_168 = local_160; SVar10 = 3; local_268 = uVar11; FUN_14002a670((longlong *)&local_168,param_3,3); lVar5 = 0; if (local_270 != 0) { lVar5 = *(longlong *)(local_270 + 0x38); } FUN_140006c60((longlong *)(lVar5 + 0x10),local_168,SVar10,param_4); if (local_168 != local_160) { free(local_168); } puVar8 = local_278; FUN_14005bad0((longlong)param_1,puVar8,SVar10,param_4); FUN_14003b870(&local_1b8); FUN_14003b870(&local_200); local_290 = &local_228; FUN_140095270(&local_228); if (local_220 != 0) { if ((longlong)local_218 < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } local_218 = local_218 & 0xffffffff00000000; } FUN_14003b870(&local_250); FUN_140056b00(local_260 + 1,puVar8,SVar10,param_4); FUN_140056a80(local_260,puVar8,SVar10,param_4); FUN_14002b570((longlong *)&local_270,puVar8,SVar10,param_4); } FUN_14002e770((longlong)piVar1); return; }