server-re/decomp/Agent_Release_x64/full/functions/0x14005b060.c
2026-10-14 16:45:19 -04:00

241 lines
8.7 KiB
C

/* 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<Proud::RefCount<Proud::CUdpSocket_S>,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<Proud::CNetServerImpl::ConnectionInfo,0>::vftable;
param_1[0x2f5] = 0;
param_1[0x2f6] = 0;
param_1[0x2f7] = 0;
param_1[0x2f8] = 0;
param_1[0x2f9] = (longlong)Proud::CFastArray<int,1>::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<int,0>::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;
}