/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x1400a5ed0 FUN_1400a5ed0 * Pseudocode, not original source. */ /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */ void FUN_1400a5ed0(longlong param_1,uint *param_2,undefined8 param_3,undefined8 param_4) { undefined8 uVar1; int *piVar2; longlong *plVar3; longlong **pplVar4; longlong *plVar5; undefined ***pppuVar6; undefined8 *puVar7; undefined1 auStack_da8 [32]; longlong *local_d88; longlong *local_d80; uint uStack_d78; undefined4 uStack_d74; int local_d70 [2]; longlong local_d68; longlong *local_d60; uint local_d58; int local_d54; int *local_d48; undefined1 local_d40; undefined **local_d38; uint local_d30; undefined2 local_d2c; undefined4 local_d28 [2]; undefined8 local_d20; undefined1 local_d18; undefined4 local_d14; undefined1 local_d10; undefined1 local_d0f; undefined8 local_d08; exception local_d00 [72]; longlong *local_cb8; undefined8 uStack_cb0; undefined8 **local_38; undefined4 local_30; int local_2c; ulonglong local_28; local_d08 = 0xfffffffffffffffe; local_28 = DAT_1401555a0 ^ (ulonglong)auStack_da8; uVar1 = FUN_140080600(param_2,&local_d80,8); if ((char)uVar1 != '\0') { piVar2 = (int *)(**(code **)(**(longlong **)(param_1 + 0x108) + 0x58))(); local_d48 = piVar2; FUN_14002e6e0(piVar2); local_d40 = 1; local_d38 = Proud::AddrPort::vftable; local_d30 = param_2[0xe]; local_d2c = (undefined2)param_2[0xf]; pppuVar6 = &local_d38; pplVar4 = &local_d88; plVar3 = FUN_14006ee80(*(longlong *)(param_1 + 0x108),pplVar4,(longlong)pppuVar6); plVar5 = (longlong *)0x0; if ((longlong *)*plVar3 != (longlong *)0x0) { plVar5 = *(longlong **)*plVar3; } if ((local_d88 != (longlong *)0x0) && (local_d88[1] = local_d88[1] + -1, piVar2 = local_d48, local_d88[1] == 0)) { if ((undefined8 *)*local_d88 != (undefined8 *)0x0) { pplVar4 = (longlong **)0x1; (*(code *)**(undefined8 **)*local_d88)(); } FUN_1400302f0(local_d88); piVar2 = local_d48; } if ((plVar5 != (longlong *)0x0) && (*(int *)((longlong)plVar5 + 0x56c) != 1)) { FUN_1400806d0(local_d70); FUN_1400801a0((longlong)local_d70,pplVar4,(SIZE_T)pppuVar6,param_4); FUN_140080830(local_d70,0x800,(SIZE_T)pppuVar6,param_4); uVar1 = 0; FUN_140080830(local_d70,0,(SIZE_T)pppuVar6,param_4); uVar1 = CONCAT71((int7)((ulonglong)uVar1 >> 8),0x21); FUN_14001ba80((longlong)local_d70,uVar1,(SIZE_T)pppuVar6,param_4); FUN_1400220c0((longlong)local_d70,local_d80,(SIZE_T)pppuVar6,param_4); local_2c = 200; local_30 = 0; local_38 = &local_cb8; if (local_d68 == 0) { uStack_d78 = local_d58; if (local_d60 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,uVar1,pppuVar6,param_4); } } else { uStack_d78 = *(uint *)(local_d68 + 0x18); } local_d80 = local_d60; if (local_d60 == (longlong *)0x0) { if (local_d68 == 0) { /* WARNING: Subroutine does not return */ FUN_140095370(0,(ulonglong)uStack_d78,pppuVar6,param_4); } local_d80 = (longlong *)0x0; if (*(int *)(local_d68 + 0x18) != 0) { local_d80 = *(longlong **)(local_d68 + 0x10); } } local_30 = 1; uStack_cb0 = CONCAT44(uStack_d74,uStack_d78); local_d28[0] = 0; local_d20 = 0; local_d18 = 1; local_d14 = 0xffffffff; local_d10 = 1; local_d0f = DAT_1401551cc; puVar7 = (undefined8 *)local_d28; local_cb8 = local_d80; FUN_1400b34c0(plVar5 + 0xcd,(longlong)&local_cb8,puVar7); if (local_38 == (longlong **)0x0) { FUN_14002f1e0(local_d00,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401569a0,puVar7, param_4); /* WARNING: Subroutine does not return */ _CxxThrowException(local_d00,(ThrowInfo *)&DAT_140151b88); } if (local_2c < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } local_30 = 0; local_d80 = &local_d68; FUN_140095270(&local_d68); if (local_d60 != (longlong *)0x0) { if (local_d54 < 0) { /* WARNING: Subroutine does not return */ FUN_14002f590(); } local_d58 = 0; } } FUN_14002e770((longlong)piVar2); } return; }