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

95 lines
3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401b1b80 FUN_1401b1b80
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_1401b1b80(longlong param_1)
{
int *piVar1;
undefined *puVar2;
undefined8 uVar3;
undefined8 uVar4;
longlong *plVar5;
undefined *puVar6;
double dVar7;
undefined1 auStack_b8 [32];
undefined8 local_98;
undefined1 local_90;
undefined8 local_88;
undefined1 local_80;
undefined8 local_78;
undefined *local_68;
undefined2 local_60;
undefined4 local_5c;
undefined4 local_58;
undefined4 local_54;
undefined4 local_50;
undefined1 local_48 [48];
ulonglong local_18;
local_78 = 0xfffffffffffffffe;
local_18 = DAT_1403463c0 ^ (ulonglong)auStack_b8;
dVar7 = (double)(**(code **)(**(longlong **)(param_1 + 0x40) + 8))();
if (*(double *)(param_1 + 0x90) <= dVar7 && dVar7 != *(double *)(param_1 + 0x90)) {
FUN_1401bbb30(&local_68);
if (local_68 == (undefined *)0x0) {
local_68 = PTR_DAT_1403440a0;
}
if (*(undefined **)(param_1 + 0x50) != local_68) {
uVar3 = FUN_14016d8c0();
local_88 = uVar3;
FUN_14016db50(uVar3);
puVar2 = local_68;
local_80 = 1;
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) &&
(puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) {
uVar4 = FUN_14016d8c0();
local_98 = uVar4;
FUN_14016db50(uVar4);
local_90 = 1;
piVar1 = (int *)(puVar2 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14016d970(puVar6);
}
FUN_14016dbe0(uVar4);
}
local_68 = *(undefined **)(param_1 + 0x50);
if (((local_68 != PTR_DAT_1403440a0) && (local_68 != (undefined *)0x0)) &&
(local_68 != (undefined *)0x8)) {
*(int *)(local_68 + -4) = *(int *)(local_68 + -4) + 1;
}
FUN_14016dbe0(uVar3);
}
local_60 = *(undefined2 *)(param_1 + 0x58);
local_5c = DAT_1403453a8;
local_58 = DAT_1403453ac;
local_54 = DAT_1403453b0;
local_50 = DAT_1403453b4;
plVar5 = (longlong *)(*(longlong *)(param_1 + 0x48) + 0x70);
(**(code **)(*plVar5 + 0x78))(plVar5,&local_68);
dVar7 = (double)(**(code **)(**(longlong **)(param_1 + 0x40) + 8))();
*(double *)(param_1 + 0x90) = dVar7 + _DAT_14034c8b8;
*(undefined4 *)(param_1 + 0x88) = 1;
FUN_14019a9e0(local_48);
puVar2 = local_68;
if (((local_68 != (undefined *)0x0) && (local_68 != PTR_DAT_1403440a0)) &&
(puVar6 = local_68 + -8, puVar6 != (undefined *)0x0)) {
uVar3 = FUN_14016d8c0();
local_98 = uVar3;
FUN_14016db50(uVar3);
local_90 = 1;
piVar1 = (int *)(puVar2 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14016d970(puVar6);
}
FUN_14016dbe0(uVar3);
}
}
return;
}