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

114 lines
3.5 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401b4c70 FUN_1401b4c70
* Pseudocode, not original source. */
undefined8 * FUN_1401b4c70(undefined8 *param_1,longlong param_2,undefined8 param_3,longlong param_4)
{
undefined4 uVar1;
void *pvVar2;
undefined1 *puVar3;
undefined1 *puVar4;
undefined8 uVar5;
undefined **local_50;
undefined4 local_48;
undefined2 local_44;
*param_1 = Proud::ISendDest_S::vftable;
FUN_1401c29b0(param_1 + 1,param_2,param_3,param_4,0xfffffffffffffffe);
param_1[7] = Proud::ICompletionContext::vftable;
param_1[0x22] = 0;
param_1[0x23] = 0;
param_1[0x24] = 0;
FUN_14018edc0(param_1 + 8);
param_1[0x14] = Proud::ITcpLayerOwner_S::vftable;
param_1[0x15] = 0;
FUN_1401ba9d0(param_1 + 0x18);
*param_1 = Proud::CRemoteClient_S::vftable;
param_1[1] = Proud::CRemoteClient_S::vftable;
param_1[7] = Proud::CRemoteClient_S::vftable;
param_1[8] = Proud::CRemoteClient_S::vftable;
param_1[0x14] = Proud::CRemoteClient_S::vftable;
param_1[0x18] = Proud::CRemoteClient_S::vftable;
param_1[0x21] = Proud::CRemoteClient_S::vftable;
uVar1 = FUN_140171510();
FUN_14016da70(param_1 + 0x25,uVar1,1);
puVar4 = (undefined1 *)0x0;
param_1[0x3c] = 0;
FUN_14016d8c0();
param_1[0x3e] = PTR_DAT_1403440a0;
param_1[0x40] = 0;
param_1[0x41] = 0;
param_1[0x42] = 0;
param_1[0x43] = 0;
param_1[0x3f] = Proud::ByteArray::vftable;
param_1[0x45] = 0;
param_1[0x48] = Proud::CFastArray<Proud::HostID,0>::vftable;
param_1[0x49] = 0;
param_1[0x4a] = 0;
param_1[0x4b] = 0;
param_1[0x4c] = 0;
param_1[0x4d] = 0;
param_1[0x50] = 0;
param_1[0x4e] = 0;
param_1[0x4f] = 0;
*(undefined4 *)(param_1 + 0xc9) = 0;
param_1[0xcc] = 0;
param_1[0xcd] = 0;
param_1[0xce] = 0;
param_1[0xcf] = 0;
param_1[0xcb] = Proud::ByteArray::vftable;
*(undefined1 *)(param_1 + 0xd0) = 0;
FUN_1401b4850(param_1 + 0xd4);
FUN_1401bbfd0(param_1 + 0xe0,param_1);
param_1[0xea] = 0;
param_1[0xec] = 0;
pvVar2 = operator_new(0x140);
puVar3 = puVar4;
if (pvVar2 != (void *)0x0) {
local_50 = Proud::AddrPort::vftable;
local_48 = *(undefined4 *)(param_4 + 8);
local_44 = *(undefined2 *)(param_4 + 0xc);
puVar3 = (undefined1 *)FUN_1401ba590(pvVar2,param_1 + 0x14,param_3,&local_50);
}
param_1[0xe9] = puVar3;
*(undefined4 *)(param_1 + 0xed) = 0;
param_1[0x31] = 0;
param_1[0x32] = 0;
param_1[0x2c] = 0;
uVar5 = (**(code **)(*(longlong *)(param_2 + 0x118) + 8))();
param_1[0x35] = (double)DAT_140344d78;
*(undefined4 *)(param_1 + 0xdf) = 0;
*(undefined1 *)(param_1 + 0xd3) = 0;
*(undefined1 *)(param_1 + 0x46) = 0;
param_1[0x38] = 0;
param_1[0x39] = 0;
*(undefined4 *)(param_1 + 0x3d) = 0;
param_1[0x47] = param_2;
param_1[0xd2] = uVar5;
param_1[0x30] = uVar5;
param_1[0x33] = uVar5;
param_1[0x34] = uVar5;
param_1[0x37] = uVar5;
*(undefined4 *)((longlong)param_1 + 0x68a) = 0;
*(undefined1 *)(param_1 + 0xd1) = 0;
param_1[0x36] = 0;
param_1[0x3c] = 0;
param_1[0xeb] = 0;
param_1[0x3a] = 0;
param_1[0x3b] = 0;
param_1[0x44] = 0;
puVar3 = operator_new(0x20);
if (puVar3 != (undefined1 *)0x0) {
*(undefined8 *)(puVar3 + 0x18) = 0x3fe2e147ae147ae1;
*(undefined8 *)(puVar3 + 0x10) = 0;
*(undefined8 *)(puVar3 + 8) = 0;
*puVar3 = 0;
puVar4 = puVar3;
}
param_1[0xea] = puVar4;
FUN_140207a70(param_1 + 0x4d);
FUN_1401ba580(param_1[0xe9],*(undefined1 *)(param_2 + 0x240));
return param_1;
}