server-re/decomp/DBCServer_Release_x64/full/functions/0x14015c1e0.c

59 lines
1.9 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14015c1e0 FUN_14015c1e0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14015c1e0(longlong param_1,double param_2)
{
undefined *puVar1;
longlong *plVar2;
double dVar3;
undefined1 auStack_68 [32];
undefined8 local_48;
undefined2 local_40;
undefined6 uStack_3e;
undefined8 local_30;
ulonglong local_28;
ulonglong local_18;
local_48 = 0xfffffffffffffffe;
local_18 = DAT_1403463c0 ^ (ulonglong)auStack_68;
puVar1 = *(undefined **)(param_1 + 0x30);
if (((puVar1 != (undefined *)0x0) && (puVar1 != PTR_DAT_1403440a0)) && (0 < *(int *)(puVar1 + -8))
) {
if (*(char *)(param_1 + 0x18) == '\0') {
if (*(char *)(param_1 + 0x1a) != '\0') {
plVar2 = *(longlong **)(param_1 + 0x10);
if (plVar2 != (longlong *)0x0) {
(**(code **)(*plVar2 + 0x98))(plVar2,0);
}
Sleep(100);
}
}
else if (*(char *)(param_1 + 0x1b) == '\0') {
if ((*(char *)(param_1 + 0x1a) != '\0') &&
(plVar2 = *(longlong **)(param_1 + 0x10), plVar2 != (longlong *)0x0)) {
(**(code **)(*plVar2 + 0x98))(plVar2,0);
}
}
else {
dVar3 = param_2 - *(double *)(param_1 + 0x20);
if ((*(double *)(param_1 + 0x28) <= dVar3 && dVar3 != *(double *)(param_1 + 0x28)) &&
(*(double *)(param_1 + 0x20) = param_2, *(char *)(param_1 + 0x1c) != '\0')) {
local_28 = 7;
local_30 = 0;
local_40 = 0;
FUN_14015c5d0(dVar3,&local_40);
wprintf(L"%s : RETRY CONNECT : ADDRESS[ %s ] PORT[ %d ]\n");
FUN_14015be70(param_1);
if (7 < local_28) {
operator_delete((void *)CONCAT62(uStack_3e,local_40));
}
}
}
}
return;
}