121 lines
3.5 KiB
C
121 lines
3.5 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400e8b00 FUN_1400e8b00
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 *
|
|
FUN_1400e8b00(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_140079250();
|
|
uVar9 = CONCAT71((int7)((ulonglong)param_3 >> 8),1);
|
|
FUN_14006b270((undefined4 *)(param_1 + 2),uVar4 & 0xffffffff,uVar9,param_4);
|
|
FUN_140076e70((undefined2 *)(param_1 + 9));
|
|
plVar8 = (longlong *)0x0;
|
|
param_1[0xf] = 0;
|
|
uVar4 = FUN_140079250();
|
|
uVar9 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
|
|
FUN_14006b270((undefined4 *)(param_1 + 0x11),uVar4 & 0xffffffff,uVar9,param_4);
|
|
uVar4 = FUN_140079250();
|
|
uVar4 = uVar4 & 0xffffffff;
|
|
puVar6 = param_1 + 0x39;
|
|
uVar9 = CONCAT71((int7)((ulonglong)uVar9 >> 8),1);
|
|
FUN_14006b270((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_1400e0490(puVar6,uVar4,uVar9,param_4);
|
|
*(undefined1 *)(param_1 + 0x38) = 0;
|
|
FUN_140076ec0((char *)(param_1 + 9));
|
|
dVar11 = FUN_140076f50((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_1400761a0(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_1401ac074) {
|
|
uDelay = DAT_1401ac074;
|
|
}
|
|
puVar10 = (undefined8 *)&LAB_1400dfdb0;
|
|
MVar3 = timeSetEvent(uDelay,uDelay,&LAB_1400dfdb0,(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_140074090(local_res10,&LAB_1400e8af0,param_1);
|
|
}
|
|
if (plVar5 == (longlong *)0x0) {
|
|
local_res10 = (undefined8 *)0x0;
|
|
}
|
|
else {
|
|
local_res10 = (undefined8 *)FUN_14006cbf0(0x10);
|
|
local_res10[1] = 1;
|
|
*local_res10 = plVar5;
|
|
}
|
|
puVar1 = local_res10;
|
|
ppuVar7 = &local_res10;
|
|
FUN_1400c2980(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_1400741a0(puVar1);
|
|
operator_delete(puVar1);
|
|
}
|
|
FUN_14006cc60(puVar2);
|
|
}
|
|
}
|
|
if ((undefined8 *)param_1[0xf] != (undefined8 *)0x0) {
|
|
plVar8 = *(longlong **)param_1[0xf];
|
|
}
|
|
FUN_140074290(plVar8,ppuVar7,puVar10,puVar6);
|
|
return param_1;
|
|
}
|
|
|