server-re/decomp/DBCServer_Release_x64/full/functions/0x14018fa70.c

227 lines
7.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14018fa70 FUN_14018fa70
* Pseudocode, not original source. */
/* WARNING: Removing unreachable block (ram,0x00014018fc82) */
/* WARNING: Removing unreachable block (ram,0x00014018fc8b) */
/* WARNING: Removing unreachable block (ram,0x00014018fcac) */
/* WARNING: Removing unreachable block (ram,0x00014018fcb5) */
undefined8 *
FUN_14018fa70(undefined8 *param_1,undefined8 param_2,undefined1 param_3,undefined8 param_4)
{
undefined8 *puVar1;
undefined8 *puVar2;
undefined4 uVar3;
undefined8 uVar4;
undefined8 *local_res10;
FUN_14019f360(param_1,param_2,param_3,param_4,0xfffffffffffffffe);
param_1[0xc] = Proud::IFastSocketDelegate::vftable;
param_1[0xd] = Proud::ICompletionPortEventSink::vftable;
param_1[0xe] = Proud::ISendDest_S::vftable;
FUN_1401c29b0(param_1 + 0xf);
param_1[0x15] = Proud::CNetServer::vftable;
param_1[0x16] = Proud::ICompletionContext::vftable;
FUN_14018edc0(param_1 + 0x17);
*param_1 = Proud::CNetServerImpl::vftable;
param_1[0xc] = Proud::CNetServerImpl::vftable;
param_1[0xd] = Proud::CNetServerImpl::vftable;
param_1[0xe] = Proud::CNetServerImpl::vftable;
param_1[0xf] = Proud::CNetServerImpl::vftable;
param_1[0x15] = Proud::CNetServerImpl::vftable;
param_1[0x16] = Proud::CNetServerImpl::vftable;
param_1[0x17] = Proud::CNetServerImpl::vftable;
param_1[0x23] = Proud::CNetServerImpl::vftable;
param_1[0x24] = Proud::CNetServerImpl::vftable;
uVar3 = FUN_140171510();
FUN_14016da70(param_1 + 0x25,uVar3,1);
uVar3 = FUN_140171510();
FUN_14016da70(param_1 + 0x2c,uVar3,1);
param_1[0x41] = 0;
FUN_14016d8c0();
param_1[0x42] = PTR_DAT_140344098;
FUN_14016d8c0();
param_1[0x43] = PTR_DAT_140344098;
FUN_1401c2a30(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_140188bd0(param_1 + 0x5b);
FUN_1401b4850(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_14016eb50(param_1 + 0x90);
param_1[0x90] = Proud::CNetServerImpl::C2SStub::vftable;
puVar1 = param_1 + 0x95;
local_res10 = puVar1;
FUN_14016dca0(puVar1);
*puVar1 = ProudS2C::Proxy::vftable;
if (*(int *)((longlong)param_1 + 0x4bc) != 1) {
FUN_14016f090(PTR_u_PIDL_compiler_is_incompatible_to_1403440e0);
}
*puVar1 = Proud::CNetServerImpl::Proxy::vftable;
param_1[0xd9] = 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;
param_1[0xea] = 0;
FUN_1401a1dd0(param_1 + 0xec);
param_1[0xf1] = 0;
param_1[0xf2] = 0;
uVar3 = FUN_140171510();
FUN_14016da70(param_1 + 0xf3,uVar3,1);
uVar3 = FUN_140171510();
FUN_14016da70(param_1 + 0xfa,uVar3,1);
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] = Proud::ByteArray::vftable;
*(undefined1 *)(param_1 + 0x187) = 0;
FUN_1401c1360();
param_1[0x18b] = 0;
param_1[0x18c] = 0;
param_1[0x18d] = 0;
param_1[0x18e] = 0;
param_1[0x18a] = 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;
puVar2 = param_1 + 0x19a;
local_res10 = puVar2;
FUN_14019ea70(puVar2);
FUN_14019eb90(puVar2);
FUN_1401b4850(param_1 + 0x2dd);
FUN_1401b4850(param_1 + 0x2e8);
param_1[0x2f4] = 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] = 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_14016d8c0();
param_1[0x301] = PTR_DAT_1403440a0;
param_1[0x309] = Proud::CFastArray<int,0>::vftable;
param_1[0x30a] = 0;
param_1[0x30b] = 0;
param_1[0x30c] = 0;
param_1[0x30d] = 0;
uVar4 = FUN_140183cc0(&local_res10);
FUN_1401787d0(param_1 + 0xea,uVar4);
puVar2 = local_res10;
if (local_res10 != (undefined8 *)0x0) {
FUN_14016db50(local_res10);
local_res10[8] = local_res10[8] + -1;
if (local_res10[8] == 0) {
FUN_14016dbe0(puVar2);
FUN_140175a60(local_res10);
}
else {
FUN_14016dbe0(puVar2);
}
}
*(undefined4 *)(param_1 + 0x44) = DAT_140344d40;
FUN_14016f180();
param_1[0xeb] = 0;
FUN_1401a1e20(param_1 + 0xec);
FUN_14019f7b0(param_1,puVar1);
FUN_14019f9b0(param_1,param_1 + 0x90);
param_1[0x94] = param_1;
*(undefined1 *)(param_1 + 0x7f) = 0;
param_1[0x2ff] = 0x3ff0000000000000;
FUN_140207a70(param_1 + 0x8b);
*(undefined1 *)(param_1 + 0x300) = 1;
*(undefined1 *)(param_1 + 0x97) = 1;
*(undefined1 *)(param_1 + 0x93) = 1;
FUN_140172ea0(param_1 + 0x2f9,100);
*(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;
}