/* 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; }