/* 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; }