server-re/decomp/AgentManager_Release_x64/full/functions/0x1400c7f30.c
2026-10-15 09:58:24 -04:00

121 lines
3.5 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400c7f30 FUN_1400c7f30
* Pseudocode, not original source. */
undefined8 *
FUN_1400c7f30(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
{
undefined8 *puVar1;
UINT uDelay;
undefined8 *puVar2;
MMRESULT MVar3;
ulonglong uVar4;
longlong *plVar5;
undefined8 *puVar6;
undefined8 **ppuVar7;
longlong *plVar8;
undefined8 uVar9;
undefined8 *puVar10;
double dVar11;
undefined8 *local_res10;
char *local_res18;
*param_1 = Proud::CNetClientManager::vftable;
param_1[1] = Proud::CNetClientManager::vftable;
uVar4 = FUN_140094860();
uVar9 = CONCAT71((int7)((ulonglong)param_3 >> 8),1);
FUN_14003cf60((undefined4 *)(param_1 + 2),uVar4 & 0xffffffff,uVar9,param_4);
FUN_140048880((undefined2 *)(param_1 + 9));
plVar8 = (longlong *)0x0;
param_1[0xf] = 0;
uVar4 = FUN_140094860();
uVar9 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
FUN_14003cf60((undefined4 *)(param_1 + 0x11),uVar4 & 0xffffffff,uVar9,param_4);
uVar4 = FUN_140094860();
uVar4 = uVar4 & 0xffffffff;
puVar6 = param_1 + 0x39;
uVar9 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
FUN_14003cf60((undefined4 *)puVar6,uVar4,uVar9,param_4);
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_1400bf8b0(puVar6,uVar4,uVar9,param_4);
*(undefined1 *)(param_1 + 0x38) = 0;
FUN_1400488d0((char *)(param_1 + 9));
dVar11 = FUN_140048960((char *)(param_1 + 9));
param_1[0x18] = dVar11;
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);
plVar5 = plVar8;
if (local_res18 != (char *)0x0) {
plVar5 = (longlong *)
FUN_140047bb0(local_res18,param_1,CONCAT71((int7)((ulonglong)uVar9 >> 8),1),param_4);
}
param_1[0x57] = plVar5;
*(undefined1 *)(param_1 + 0x10) = 0;
puVar6 = param_1 + 0x50;
*(undefined1 *)puVar6 = 0;
*(undefined8 *)((longlong)param_1 + 0x284) = 0;
param_1[0xe] = 0;
uDelay = 1;
if (1 < DAT_14016f074) {
uDelay = DAT_14016f074;
}
puVar10 = (undefined8 *)&LAB_1400bf1d0;
MVar3 = timeSetEvent(uDelay,uDelay,&LAB_1400bf1d0,(DWORD_PTR)puVar6,1);
*(MMRESULT *)(param_1 + 0x4c) = MVar3;
local_res10 = operator_new(0x28);
plVar5 = plVar8;
if (local_res10 != (undefined8 *)0x0) {
puVar10 = param_1;
plVar5 = FUN_140045b20(local_res10,&LAB_1400c7f20,param_1);
}
if (plVar5 == (longlong *)0x0) {
local_res10 = (undefined8 *)0x0;
}
else {
local_res10 = (undefined8 *)FUN_14003e840(0x10);
local_res10[1] = 1;
*local_res10 = plVar5;
}
puVar1 = local_res10;
ppuVar7 = &local_res10;
FUN_14007b440(param_1 + 0xf,(longlong *)ppuVar7);
puVar2 = local_res10;
if (puVar1 != (undefined8 *)0x0) {
plVar5 = puVar1 + 1;
*plVar5 = *plVar5 + -1;
if (*plVar5 == 0) {
puVar1 = (undefined8 *)*local_res10;
if (puVar1 != (undefined8 *)0x0) {
FUN_140045c30(puVar1);
operator_delete(puVar1);
}
FUN_14003e8b0(puVar2);
}
}
if ((undefined8 *)param_1[0xf] != (undefined8 *)0x0) {
plVar8 = *(longlong **)param_1[0xf];
}
FUN_140045d20(plVar8,ppuVar7,puVar10,puVar6);
return param_1;
}