/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400c0180 FUN_1400c0180 * Pseudocode, not original source. */ void FUN_1400c0180(IMAGE_DOS_HEADER *param_1,IMAGE_DOS_HEADER *param_2,uint *param_3, undefined ***param_4) { undefined8 *puVar1; undefined8 uVar2; ulonglong uVar3; longlong **pplVar4; uint *puVar5; SIZE_T SVar6; uint local_res18 [2]; longlong *local_res20; longlong *local_b8; int local_b0 [2]; longlong local_a8; longlong local_a0; int local_94; longlong *local_88; undefined1 local_78 [56]; word local_40 [2]; undefined2 local_3c; byte local_38; byte local_28 [16]; local_28[0] = 0xfe; local_28[1] = 0xff; local_28[2] = 0xff; local_28[3] = 0xff; local_28[4] = 0xff; local_28[5] = 0xff; local_28[6] = 0xff; local_28[7] = 0xff; if (param_3[10] == 1) { puVar5 = param_3; (**(code **)(*(longlong *)(*(longlong *)¶m_1[2].e_cparhdr + 0x78) + 0x10))(); uVar2 = FUN_140075970(param_3,local_res18,puVar5,param_4); if (((((char)uVar2 != '\0') && (uVar3 = FUN_140075580(param_3,&local_b8,puVar5,param_4), (char)uVar3 != '\0')) && (-1 < (int)(uint)local_b8)) && ((int)(uint)local_b8 < DAT_14016f140)) { FUN_140074fb0(local_b0); uVar2 = FUN_140075210(param_3,local_b0,(uint)local_b8,param_4); if ((char)uVar2 == '\0') { local_b8 = &local_a8; FUN_14008a320(&local_a8); if ((local_a0 != 0) && (local_94 < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } } else { SVar6 = (SIZE_T)local_res18[0]; pplVar4 = &local_res20; FUN_1400a7920(*(longlong **)¶m_1[2].e_cparhdr,(longlong *)pplVar4,local_res18[0]); if (((local_res20 != (longlong *)0x0) && (*local_res20 != 0)) && (*(char *)(*local_res20 + 0x684) == '\0')) { FUN_140074fb0((undefined4 *)local_78); local_78._48_8_ = Proud::AddrPort::vftable; local_38 = 0; local_78._40_2_ = 0; local_78._42_2_ = 0; local_40[0] = (word)DAT_14016f3d0; local_40[1] = DAT_14016f3d0._2_2_; local_3c = DAT_14016f3d4; FUN_140074a40((longlong)local_78,pplVar4,SVar6,param_4); local_38 = 1; FUN_1400bfd50((longlong)local_b0,(longlong *)(local_78 + 8),SVar6,param_4); local_78._0_4_ = local_b0[0]; FUN_140074bb0((int *)local_78,0,SVar6,param_4); local_78._40_4_ = local_res18[0]; FUN_1400c6270(param_1,param_2,(IMAGE_DOS_HEADER *)local_78,param_4); local_88 = (longlong *)(local_78 + 8); FUN_14008a320((longlong *)(local_78 + 8)); if (local_78._16_8_ != 0) { if ((int)local_78._28_4_ < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } local_78._24_2_ = 0; local_78._26_2_ = 0; } } if ((local_res20 != (longlong *)0x0) && (local_res20[1] = local_res20[1] + -1, local_res20[1] == 0)) { puVar1 = (undefined8 *)*local_res20; if (puVar1 != (undefined8 *)0x0) { (**(code **)*puVar1)(puVar1,1); } FUN_14003e8b0(local_res20); } local_88 = &local_a8; FUN_14008a320(&local_a8); if ((local_a0 != 0) && (local_94 < 0)) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } } } } return; }