95 lines
3 KiB
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;
|
|
}
|
|
|