/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14005b060 FUN_14005b060 * Pseudocode, not original source. */ /* WARNING: Removing unreachable block (ram,0x00014005b272) */ /* WARNING: Removing unreachable block (ram,0x00014005b27b) */ /* WARNING: Removing unreachable block (ram,0x00014005b29c) */ /* WARNING: Removing unreachable block (ram,0x00014005b2a5) */ longlong * FUN_14005b060(longlong *param_1,undefined8 param_2,undefined8 param_3,longlong param_4) { ulonglong *puVar1; ulonglong uVar2; ulonglong *puVar3; longlong *plVar4; ulonglong *puVar5; ulonglong *puVar6; undefined1 uVar7; undefined7 uVar8; ulonglong *local_res10; uVar8 = (undefined7)((ulonglong)param_3 >> 8); FUN_1400827c0(param_1); param_1[0xc] = (longlong)Proud::IFastSocketDelegate::vftable; param_1[0xd] = (longlong)Proud::ICompletionPortEventSink::vftable; param_1[0xe] = (longlong)Proud::ISendDest_S::vftable; FUN_1400a2870(param_1 + 0xf); param_1[0x15] = (longlong)Proud::CNetServer::vftable; param_1[0x16] = (longlong)Proud::ICompletionContext::vftable; FUN_14005a3b0(param_1 + 0x17); *param_1 = (longlong)Proud::CNetServerImpl::vftable; param_1[0xc] = (longlong)Proud::CNetServerImpl::vftable; param_1[0xd] = (longlong)Proud::CNetServerImpl::vftable; param_1[0xe] = (longlong)Proud::CNetServerImpl::vftable; param_1[0xf] = (longlong)Proud::CNetServerImpl::vftable; param_1[0x15] = (longlong)Proud::CNetServerImpl::vftable; param_1[0x16] = (longlong)Proud::CNetServerImpl::vftable; param_1[0x17] = (longlong)Proud::CNetServerImpl::vftable; param_1[0x23] = (longlong)Proud::CNetServerImpl::vftable; param_1[0x24] = (longlong)Proud::CNetServerImpl::vftable; uVar2 = FUN_14002e790(); FUN_14002e600((undefined4 *)(param_1 + 0x25),uVar2 & 0xffffffff,CONCAT71(uVar8,1),param_4); uVar2 = FUN_14002e790(); uVar2 = uVar2 & 0xffffffff; plVar4 = param_1 + 0x2c; uVar7 = 1; FUN_14002e600((undefined4 *)plVar4,uVar2,CONCAT71(uVar8,1),param_4); param_1[0x41] = 0; FUN_140030200(plVar4,uVar2,CONCAT71(uVar8,uVar7),param_4); param_1[0x42] = (longlong)PTR_DAT_140155008; FUN_140030200(plVar4,uVar2,CONCAT71(uVar8,uVar7),param_4); param_1[0x43] = (longlong)PTR_DAT_140155008; FUN_1400a28f0((undefined4 *)(param_1 + 0x45)); *(undefined4 *)((longlong)param_1 + 0x26c) = 0; *(undefined4 *)(param_1 + 0x4e) = 0; *(undefined4 *)((longlong)param_1 + 0x274) = 0; *(undefined4 *)(param_1 + 0x4f) = 0; *(undefined1 *)(param_1 + 0x50) = 0; param_1[0x5a] = 0; param_1[0x51] = 0; param_1[0x52] = 0; param_1[0x53] = 0; *(undefined4 *)(param_1 + 0x55) = 0x11; param_1[0x54] = 0; *(undefined4 *)(param_1 + 0x59) = 0; *(undefined4 *)((longlong)param_1 + 0x2ac) = 0x3f400000; *(undefined4 *)(param_1 + 0x56) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x2b4) = 0x40100000; param_1[0x57] = 0x26; param_1[0x58] = 4; param_1[0x58] = 0; FUN_140054060((undefined1 *)(param_1 + 0x5b)); FUN_140096180((undefined1 *)(param_1 + 0x71)); param_1[0x7c] = 0; *(undefined4 *)(param_1 + 0x7d) = 0; *(undefined4 *)((longlong)param_1 + 0x3ec) = 0; *(undefined4 *)(param_1 + 0x7e) = 0; *(undefined4 *)((longlong)param_1 + 0x3f4) = 0; *(undefined1 *)(param_1 + 0x80) = 0; param_1[0x8a] = 0; param_1[0x81] = 0; param_1[0x82] = 0; param_1[0x83] = 0; *(undefined4 *)(param_1 + 0x85) = 0x11; param_1[0x84] = 0; *(undefined4 *)(param_1 + 0x89) = 0; *(undefined4 *)((longlong)param_1 + 0x42c) = 0x3f400000; *(undefined4 *)(param_1 + 0x86) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x434) = 0x40100000; param_1[0x87] = 0x26; param_1[0x88] = 4; param_1[0x88] = 0; param_1[0x8b] = 0; param_1[0x8e] = 0; param_1[0x8c] = 0; param_1[0x8d] = 0; param_1[0x8f] = 0; FUN_140085230(param_1 + 0x90); param_1[0x90] = (longlong)Proud::CNetServerImpl::C2SStub::vftable; puVar1 = (ulonglong *)(param_1 + 0x95); local_res10 = puVar1; FUN_140081fb0(puVar1); *puVar1 = (ulonglong)ProudS2C::Proxy::vftable; if (*(int *)((longlong)param_1 + 0x4bc) != 1) { FUN_14002fa10((wchar_t *)PTR_u_PIDL_compiler_is_incompatible_to_140156790); } *puVar1 = (ulonglong)Proud::CNetServerImpl::Proxy::vftable; param_1[0xd9] = (longlong)Proud::CFastArray,0>::vftable; param_1[0xda] = 0; param_1[0xdb] = 0; param_1[0xdc] = 0; param_1[0xdd] = 0; *(undefined1 *)(param_1 + 0xde) = 0; param_1[0xe8] = 0; param_1[0xdf] = 0; param_1[0xe0] = 0; param_1[0xe1] = 0; *(undefined4 *)(param_1 + 0xe3) = 0x11; param_1[0xe2] = 0; *(undefined4 *)(param_1 + 0xe7) = 0; *(undefined4 *)((longlong)param_1 + 0x71c) = 0x3f400000; *(undefined4 *)(param_1 + 0xe4) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0x724) = 0x40100000; param_1[0xe5] = 0x26; param_1[0xe6] = 0; param_1[0xe9] = 0; puVar5 = (ulonglong *)(param_1 + 0xea); *puVar5 = 0; FUN_14003a340((undefined2 *)(param_1 + 0xec)); param_1[0xf1] = 0; param_1[0xf2] = 0; uVar2 = FUN_14002e790(); FUN_14002e600((undefined4 *)(param_1 + 0xf3),uVar2 & 0xffffffff,CONCAT71(uVar8,1),param_4); uVar2 = FUN_14002e790(); uVar2 = uVar2 & 0xffffffff; uVar7 = 1; FUN_14002e600((undefined4 *)(param_1 + 0xfa),uVar2,CONCAT71(uVar8,1),param_4); param_1[0x101] = 0; param_1[0x102] = 0; *(undefined4 *)(param_1 + 0x103) = 0; param_1[0x105] = 0; param_1[0x106] = 0; *(undefined4 *)(param_1 + 0x107) = 0; *(undefined4 *)(param_1 + 0x180) = 0; param_1[0x183] = 0; param_1[0x184] = 0; param_1[0x185] = 0; param_1[0x186] = 0; param_1[0x182] = (longlong)Proud::ByteArray::vftable; *(undefined1 *)(param_1 + 0x187) = 0; FUN_1400a0e30(param_1 + 0x189); param_1[0x18b] = 0; param_1[0x18c] = 0; param_1[0x18d] = 0; param_1[0x18e] = 0; param_1[0x18a] = (longlong)Proud::ByteArray::vftable; *(undefined1 *)(param_1 + 399) = 0; param_1[0x199] = 0; param_1[400] = 0; param_1[0x191] = 0; param_1[0x192] = 0; *(undefined4 *)(param_1 + 0x194) = 0x11; param_1[0x193] = 0; *(undefined4 *)(param_1 + 0x198) = 0; *(undefined4 *)((longlong)param_1 + 0xca4) = 0x3f400000; *(undefined4 *)(param_1 + 0x195) = 0x3e800000; *(undefined4 *)((longlong)param_1 + 0xcac) = 0x40100000; param_1[0x196] = 0x26; param_1[0x197] = 4; param_1[0x197] = 0; puVar6 = (ulonglong *)(param_1 + 0x19a); local_res10 = puVar6; FUN_140039bb0(puVar6,uVar2,CONCAT71(uVar8,uVar7),param_4); FUN_140039cd0((longlong)puVar6); FUN_140096180((undefined1 *)(param_1 + 0x2dd)); plVar4 = param_1 + 0x2e8; FUN_140096180((undefined1 *)plVar4); param_1[0x2f4] = (longlong)Proud::CFastArray::vftable; param_1[0x2f5] = 0; param_1[0x2f6] = 0; param_1[0x2f7] = 0; param_1[0x2f8] = 0; param_1[0x2f9] = (longlong)Proud::CFastArray::vftable; param_1[0x2fa] = 0; param_1[0x2fb] = 0; param_1[0x2fc] = 0; param_1[0x2fd] = 0; param_1[0x2fe] = 0; FUN_140030200(plVar4,uVar2,CONCAT71(uVar8,uVar7),param_4); param_1[0x301] = (longlong)PTR_DAT_140155010; param_1[0x309] = (longlong)Proud::CFastArray::vftable; param_1[0x30a] = 0; param_1[0x30b] = 0; param_1[0x30c] = 0; param_1[0x30d] = 0; puVar3 = FUN_14004f2f0((ulonglong *)&local_res10,uVar2,CONCAT71(uVar8,uVar7),param_4); FUN_140043dd0(puVar5,puVar3,CONCAT71(uVar8,uVar7),param_4); puVar6 = local_res10; if (local_res10 != (ulonglong *)0x0) { FUN_14002e6e0((int *)local_res10); local_res10[8] = local_res10[8] - 1; if (local_res10[8] == 0) { FUN_14002e770((longlong)puVar6); puVar5 = local_res10; FUN_1400410e0((undefined4 *)local_res10,puVar3,CONCAT71(uVar8,uVar7),param_4); } else { FUN_14002e770((longlong)puVar6); puVar5 = puVar6; } } *(undefined4 *)(param_1 + 0x44) = DAT_140155110; FUN_14002faf0(puVar5,puVar3,CONCAT71(uVar8,uVar7),param_4); param_1[0xeb] = 0; FUN_14003a390((char *)(param_1 + 0xec)); FUN_140082c10(param_1,(longlong *)puVar1,CONCAT71(uVar8,uVar7),param_4); plVar4 = param_1 + 0x90; FUN_140082e10(param_1,plVar4,CONCAT71(uVar8,uVar7),param_4); param_1[0x94] = (longlong)param_1; *(undefined1 *)(param_1 + 0x7f) = 0; param_1[0x2ff] = 0x3ff0000000000000; FUN_1400b8d60(param_1 + 0x8b,plVar4,CONCAT71(uVar8,uVar7),param_4); *(undefined1 *)(param_1 + 0x300) = 1; *(undefined1 *)(param_1 + 0x97) = 1; *(undefined1 *)(param_1 + 0x93) = 1; FUN_14003e2e0((longlong)(param_1 + 0x2f9),100,CONCAT71(uVar8,uVar7)); *(undefined4 *)(param_1 + 0x2f3) = 0; *(undefined4 *)(param_1 + 0x4b) = 0; param_1[0x4c] = 0; param_1[0xa0] = 0; param_1[0xa8] = 0; param_1[0xb0] = 0; param_1[0xb8] = 0; param_1[0xc0] = 0; param_1[200] = 0; param_1[0xd0] = 0; param_1[0xd8] = 0; return param_1; }