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

89 lines
2.7 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14015b540 FUN_14015b540
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14015b540(longlong param_1)
{
undefined8 *puVar1;
undefined8 *puVar2;
undefined1 auVar3 [16];
undefined4 uVar4;
undefined8 uVar5;
undefined2 *puVar6;
undefined1 auStack_c8 [32];
undefined *local_a8;
undefined8 local_a0;
undefined **local_98;
undefined8 local_88;
undefined2 local_80;
undefined6 uStack_7e;
undefined8 local_70;
ulonglong local_68;
undefined2 local_58;
undefined6 uStack_56;
undefined8 local_48;
ulonglong local_40;
ulonglong local_28;
local_a0 = 0xfffffffffffffffe;
local_28 = DAT_1403463c0 ^ (ulonglong)auStack_c8;
local_68 = 7;
local_70 = 0;
local_80 = 0;
local_40 = 7;
local_48 = 0;
local_58 = 0;
if (*(longlong *)(DAT_140353190 + 0x1c8) != 0) {
auVar3._8_8_ = 0;
auVar3._0_8_ = *(ulonglong *)(DAT_140353190 + 0x1b0);
for (puVar1 = *(undefined8 **)
(*(longlong *)(DAT_140353190 + 0x1a8) +
SUB168((ZEXT816(0) << 0x40 | ZEXT816(0xd)) % auVar3,0) * 8);
puVar1 != (undefined8 *)0x0; puVar1 = (undefined8 *)*puVar1) {
if (*(char *)(puVar1 + 1) == '\r') {
if (puVar1 == (undefined8 *)0x0) {
return;
}
puVar2 = (undefined8 *)puVar1[2];
if (puVar2 == (undefined8 *)puVar1[3]) {
return;
}
local_88 = *puVar2;
FUN_140055d80(&local_80,puVar2 + 1,0,0xffffffffffffffff);
FUN_140055d80(&local_58,puVar2 + 6,0,0xffffffffffffffff);
puVar6 = &local_58;
if (7 < local_40) {
puVar6 = (undefined2 *)CONCAT62(uStack_56,local_58);
}
FUN_14016d8c0();
local_a8 = PTR_DAT_1403440a0;
uVar4 = FUN_14016d740(puVar6);
uVar5 = FUN_14004e940(&local_a8,uVar4);
FUN_14016d770(uVar5,puVar6,uVar4);
FUN_14004e560(&local_a8);
local_98 = &local_a8;
FUN_14004e6d0(param_1 + 0x30,&local_a8);
FUN_14004eb70(&local_a8);
*(undefined2 *)(param_1 + 0x38) = local_88._4_2_;
*(undefined4 *)(param_1 + 0x3c) = (undefined4)local_88;
FUN_14015be70(param_1);
if (7 < local_40) {
operator_delete((void *)CONCAT62(uStack_56,local_58));
}
local_40 = 7;
local_48 = 0;
local_58 = 0;
if (local_68 < 8) {
return;
}
operator_delete((void *)CONCAT62(uStack_7e,local_80));
return;
}
}
}
return;
}