53 lines
1.8 KiB
C
53 lines
1.8 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x140002310 FUN_140002310
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong FUN_140002310(longlong param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
char cVar1;
|
|
int iVar2;
|
|
undefined8 uVar3;
|
|
undefined4 extraout_var_00;
|
|
ulonglong uVar4;
|
|
double dVar5;
|
|
__time64_t local_res8;
|
|
__time64_t local_res18 [2];
|
|
uint7 extraout_var;
|
|
|
|
_time64(&local_res8);
|
|
do {
|
|
(**(code **)(**(longlong **)(param_1 + 0x10) + 0x88))();
|
|
*(undefined2 *)(param_1 + 0x1a) = 0x100;
|
|
*(undefined1 *)(param_1 + 0x19) = 1;
|
|
uVar3 = (**(code **)(**(longlong **)(param_1 + 0x10) + 0x78))
|
|
(*(longlong **)(param_1 + 0x10),param_2);
|
|
if ((char)uVar3 == '\x01') {
|
|
cVar1 = *(char *)(param_1 + 0x19);
|
|
while (cVar1 != '\0') {
|
|
Sleep(10);
|
|
uVar3 = (**(code **)(**(longlong **)(param_1 + 0x10) + 0x98))
|
|
(*(longlong **)(param_1 + 0x10),0);
|
|
cVar1 = *(char *)(param_1 + 0x19);
|
|
}
|
|
if (*(char *)(param_1 + 0x1a) == '\x01') {
|
|
return CONCAT71((int7)((ulonglong)uVar3 >> 8),1);
|
|
}
|
|
}
|
|
uVar4 = (ulonglong)DAT_1401bd4f4;
|
|
if ((DAT_1401bd4f4 & 1) == 0) {
|
|
DAT_1401bd4f4 = DAT_1401bd4f4 | 1;
|
|
FUN_14011b100();
|
|
iVar2 = atexit((_func_5014 *)&LAB_14012f3d0);
|
|
uVar4 = CONCAT44(extraout_var_00,iVar2);
|
|
}
|
|
if (DAT_1401bd4a0 == 1000) goto LAB_140002418;
|
|
_time64(local_res18);
|
|
dVar5 = _difftime64(local_res18[0],local_res8);
|
|
} while (((int)dVar5 < 300) && (Sleep(1), *(char *)(param_1 + 0x1a) == '\0'));
|
|
FUN_14000aa90(4,L"ERROR >> MagiCommonSession::ProcConnect | Time over!",param_3,param_4);
|
|
uVar4 = (ulonglong)extraout_var << 8;
|
|
LAB_140002418:
|
|
return uVar4 & 0xffffffffffffff00;
|
|
}
|
|
|