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

107 lines
2.8 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401f3460 FUN_1401f3460
* Pseudocode, not original source. */
undefined8 * FUN_1401f3460(undefined8 *param_1)
{
longlong *plVar1;
void *pvVar2;
UINT uDelay;
longlong *plVar3;
undefined4 uVar4;
MMRESULT MVar5;
longlong lVar6;
longlong lVar7;
undefined8 uVar8;
longlong *local_res10;
void *local_res18;
*param_1 = Proud::CNetClientManager::vftable;
param_1[1] = Proud::CNetClientManager::vftable;
uVar4 = FUN_140171510();
FUN_14016da70(param_1 + 2,uVar4,1);
FUN_1401a1dd0(param_1 + 9);
lVar7 = 0;
param_1[0xf] = 0;
uVar4 = FUN_140171510();
FUN_14016da70(param_1 + 0x11,uVar4,1);
uVar4 = FUN_140171510();
FUN_14016da70(param_1 + 0x39,uVar4,1);
param_1[0x41] = 0;
param_1[0x44] = 0;
param_1[0x42] = 0;
param_1[0x43] = 0;
param_1[0x45] = 0;
param_1[0x48] = 0;
param_1[0x46] = 0;
param_1[0x47] = 0;
param_1[0x52] = 0;
param_1[0x53] = 0;
param_1[0x54] = 0;
*(undefined4 *)(param_1 + 0x55) = 0;
param_1[0x56] = 0;
param_1[0x57] = 0;
FUN_1401eadc0();
*(undefined1 *)(param_1 + 0x38) = 0;
FUN_1401a1e20(param_1 + 9);
uVar8 = FUN_1401a1eb0(param_1 + 9);
param_1[0x18] = uVar8;
param_1[0x20] = 0;
param_1[0x30] = 0;
*(undefined1 *)(param_1 + 0x38) = 1;
param_1[0x4a] = 0;
param_1[0x4b] = 0;
param_1[0x40] = 0;
param_1[0x49] = 0;
local_res18 = operator_new(0xa8);
lVar6 = lVar7;
if (local_res18 != (void *)0x0) {
lVar6 = FUN_1401a2fe0(local_res18,param_1,1);
}
param_1[0x57] = lVar6;
*(undefined1 *)(param_1 + 0x10) = 0;
*(undefined1 *)(param_1 + 0x50) = 0;
*(undefined8 *)((longlong)param_1 + 0x284) = 0;
param_1[0xe] = 0;
uDelay = 1;
if (1 < DAT_140344ca4) {
uDelay = DAT_140344ca4;
}
MVar5 = timeSetEvent(uDelay,uDelay,&LAB_1401ea6e0,(DWORD_PTR)(param_1 + 0x50),1);
*(MMRESULT *)(param_1 + 0x4c) = MVar5;
local_res10 = operator_new(0x28);
lVar6 = lVar7;
if (local_res10 != (longlong *)0x0) {
lVar6 = FUN_1401996b0(local_res10,&LAB_1401f3450,param_1);
}
if (lVar6 == 0) {
local_res10 = (longlong *)0x0;
}
else {
local_res10 = (longlong *)FUN_14016d940(0x10);
local_res10[1] = 1;
*local_res10 = lVar6;
}
plVar1 = local_res10;
FUN_1401a4b40(param_1 + 0xf,&local_res10);
plVar3 = local_res10;
if (plVar1 != (longlong *)0x0) {
plVar1 = plVar1 + 1;
*plVar1 = *plVar1 + -1;
if (*plVar1 == 0) {
pvVar2 = (void *)*local_res10;
if (pvVar2 != (void *)0x0) {
FUN_1401997c0(pvVar2);
operator_delete(pvVar2);
}
FUN_14016d970(plVar3);
}
}
if ((longlong *)param_1[0xf] != (longlong *)0x0) {
lVar7 = *(longlong *)param_1[0xf];
}
FUN_1401998a0(lVar7);
return param_1;
}