/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14004d470 FUN_14004d470 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_14004d470(undefined8 param_1,longlong param_2,SIZE_T param_3,undefined8 param_4) { bool bVar1; undefined4 *puVar2; int *piVar3; longlong lVar4; undefined8 uVar5; longlong **pplVar6; undefined1 auStack_d68 [32]; int local_d48 [2]; longlong local_d40; longlong local_d38; undefined4 local_d30; int local_d2c; undefined8 local_d20; exception local_d18 [80]; longlong *local_cc8; undefined8 uStack_cc0; int *local_cb8; undefined1 local_cb0; longlong local_ca8; undefined8 uStack_ca0; longlong *local_28; undefined4 local_20; int local_1c; ulonglong local_18; local_d20 = 0xfffffffffffffffe; local_18 = DAT_1401555a0 ^ (ulonglong)auStack_d68; local_cc8 = (longlong *)0x0; uStack_cc0 = 0; lVar4 = *(longlong *)(param_2 + 0x728); if ((lVar4 == 0) && (lVar4 = *(longlong *)(param_2 + 0x730), lVar4 == 0)) { bVar1 = false; } else { bVar1 = true; } if (!bVar1) { puVar2 = FUN_1400377d0((undefined4 *)&local_cb8); *(undefined4 *)(param_2 + 0x728) = *puVar2; *(undefined4 *)(param_2 + 0x72c) = puVar2[1]; *(undefined4 *)(param_2 + 0x730) = puVar2[2]; *(undefined4 *)(param_2 + 0x734) = puVar2[3]; FUN_1400806d0(local_d48); FUN_1400801a0((longlong)local_d48,lVar4,param_3,param_4); FUN_140080830(local_d48,0x800,param_3,param_4); uVar5 = 0; FUN_140080830(local_d48,0,param_3,param_4); FUN_14001ba80((longlong)local_d48,CONCAT71((int7)((ulonglong)uVar5 >> 8),0xb),param_3,param_4); local_cc8 = *(longlong **)(param_2 + 0x728); uStack_cc0 = *(undefined8 *)(param_2 + 0x730); FUN_140044710((longlong)local_d48,&local_cc8,param_3,param_4); piVar3 = (int *)(**(code **)(*(longlong *)(param_2 + 0x108) + 0x10))(); local_cb8 = piVar3; FUN_14002e6e0(piVar3); local_cb0 = 1; local_1c = 200; local_20 = 0; local_28 = &local_ca8; if (local_d40 == 0) { if (local_d38 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,0,param_3,param_4); } } else { local_d30 = *(undefined4 *)(local_d40 + 0x18); } local_ca8 = local_d38; if (local_d38 == 0) { if (local_d40 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,0,param_3,param_4); } if (*(int *)(local_d40 + 0x18) != 0) { local_ca8 = *(longlong *)(local_d40 + 0x10); } } uStack_cc0 = CONCAT44(uStack_cc0._4_4_,local_d30); local_20 = 1; uStack_ca0 = uStack_cc0; local_cc8 = (longlong *)0x0; uStack_cc0 = CONCAT71(uStack_cc0._1_7_,1); pplVar6 = &local_cc8; FUN_14009c2b0(*(char **)(param_2 + 0x748),(longlong)&local_ca8,(SIZE_T *)pplVar6,param_4); if (local_28 == (longlong *)0x0) { FUN_14002f1e0(local_d18,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401569a0,pplVar6, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_d18,(ThrowInfo *)&DAT_140151b88); } if (local_1c < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } FUN_14002e770((longlong)piVar3); local_cc8 = &local_d40; FUN_140095270(&local_d40); if ((local_d38 != 0) && (local_d2c < 0)) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } } return; }