/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400c6920 FUN_1400c6920 * Pseudocode, not original source. */ void FUN_1400c6920(IMAGE_DOS_HEADER *param_1,IMAGE_DOS_HEADER *param_2,undefined8 param_3, undefined ***param_4) { longlong lVar1; longlong lVar2; longlong *plVar3; longlong *plVar4; undefined1 local_78 [56]; word local_40 [2]; undefined2 local_3c; byte local_38; (**(code **)(*(longlong *)(*(longlong *)¶m_1[2].e_cparhdr + 0x78) + 0x10))(); lVar1 = *(longlong *)¶m_1[2].e_cparhdr; lVar2 = *(longlong *)(lVar1 + 0x6f8); while( true ) { if (lVar2 == 0) { return; } lVar2 = *(longlong *)(lVar1 + 0x6e8); if (lVar2 == 0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } FUN_140074fe0((undefined4 *)local_78,(undefined4 *)(lVar2 + 0x10)); local_78._40_4_ = *(undefined4 *)(lVar2 + 0x38); local_78._48_8_ = Proud::AddrPort::vftable; local_40 = *(word (*) [2])(lVar2 + 0x48); local_3c = *(undefined2 *)(lVar2 + 0x4c); local_38 = *(byte *)(lVar2 + 0x50); FUN_1400c6270(param_1,param_2,(IMAGE_DOS_HEADER *)local_78,param_4); plVar3 = *(longlong **)(lVar1 + 0x6e8); if (plVar3 == (longlong *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } lVar2 = *plVar3; *(longlong *)(lVar1 + 0x6e8) = lVar2; if (lVar2 == 0) { *(undefined8 *)(lVar1 + 0x6f0) = 0; } else { *(undefined8 *)(lVar2 + 8) = 0; } FUN_14008a320(plVar3 + 3); if (plVar3[4] != 0) { if (*(int *)((longlong)plVar3 + 0x2c) < 0) { /* WARNING: Subroutine does not return */ FUN_14003dec0(); } *(undefined4 *)(plVar3 + 5) = 0; } plVar4 = *(longlong **)(lVar1 + 0x6e0); if (plVar4 == (longlong *)0x0) { FUN_14003e8b0(plVar3); } else { (**(code **)(*plVar4 + 0x10))(plVar4,plVar3); } *(longlong *)(lVar1 + 0x6f8) = *(longlong *)(lVar1 + 0x6f8) + -1; FUN_14008a320((longlong *)(local_78 + 8)); if ((local_78._16_8_ != 0) && ((int)local_78._28_4_ < 0)) break; lVar2 = *(longlong *)(lVar1 + 0x6f8); } /* WARNING: Subroutine does not return */ FUN_14003dec0(); }