server-re/decomp/MessageServer_Release_x64/full/functions/0x140002310.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;
}