100 lines
3 KiB
C
100 lines
3 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x1401bb140 FUN_1401bb140
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
undefined8 FUN_1401bb140(longlong param_1,undefined8 param_2,longlong param_3)
|
|
|
|
{
|
|
undefined *puVar1;
|
|
int *piVar2;
|
|
char cVar3;
|
|
undefined8 uVar4;
|
|
longlong *plVar5;
|
|
undefined *puVar6;
|
|
undefined1 auStack_128 [32];
|
|
undefined *local_108;
|
|
undefined4 local_100;
|
|
undefined8 local_f8;
|
|
undefined1 local_f0;
|
|
undefined8 local_e8;
|
|
undefined8 local_e0;
|
|
undefined1 local_d8 [16];
|
|
undefined1 local_c8 [16];
|
|
undefined1 *local_b8;
|
|
undefined1 local_b0 [136];
|
|
ulonglong local_28;
|
|
|
|
local_e0 = 0xfffffffffffffffe;
|
|
local_28 = DAT_1403463c0 ^ (ulonglong)auStack_128;
|
|
uVar4 = 0;
|
|
local_100 = 0;
|
|
if (*(undefined8 **)(param_1 + 0x150) != (undefined8 *)0x0) {
|
|
uVar4 = **(undefined8 **)(param_1 + 0x150);
|
|
}
|
|
local_e8 = param_2;
|
|
uVar4 = FUN_14019bbd0(uVar4,local_d8);
|
|
FUN_140170990(param_2,uVar4);
|
|
local_100 = 1;
|
|
uVar4 = FUN_14019bbd0(*(undefined8 *)(*(longlong *)(param_3 + 0x748) + 0x110),local_c8);
|
|
plVar5 = (longlong *)FUN_1401708a0(uVar4,&local_108);
|
|
puVar6 = (undefined *)*plVar5;
|
|
if ((undefined *)*plVar5 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_140344098;
|
|
}
|
|
FUN_140170bc0(param_2,puVar6);
|
|
puVar6 = local_108;
|
|
if (((local_108 != (undefined *)0x0) && (local_108 != PTR_DAT_140344098)) &&
|
|
(puVar1 = local_108 + -8, puVar1 != (undefined *)0x0)) {
|
|
uVar4 = FUN_14016d8c0();
|
|
local_f8 = uVar4;
|
|
FUN_14016db50(uVar4);
|
|
local_f0 = 1;
|
|
piVar2 = (int *)(puVar6 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_14016d970(puVar1);
|
|
}
|
|
FUN_14016dbe0(uVar4);
|
|
}
|
|
puVar6 = *(undefined **)(*(longlong *)(param_1 + 0x148) + 0x218);
|
|
if (puVar6 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_140344098;
|
|
}
|
|
FUN_140170bc0(param_2,puVar6);
|
|
puVar6 = *(undefined **)(*(longlong *)(param_1 + 0x148) + 0x210);
|
|
if (puVar6 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_140344098;
|
|
}
|
|
FUN_140170bc0(param_2,puVar6);
|
|
cVar3 = FUN_140170fe0(param_2);
|
|
if (cVar3 == '\0') {
|
|
plVar5 = (longlong *)FUN_140170c00(&local_108);
|
|
puVar6 = (undefined *)*plVar5;
|
|
if ((undefined *)*plVar5 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_1403440a0;
|
|
}
|
|
local_b8 = local_b0;
|
|
FUN_14016ac90(&local_b8,puVar6,3);
|
|
FUN_14016bfb0(param_2,local_b8);
|
|
if (local_b8 != local_b0) {
|
|
free(local_b8);
|
|
}
|
|
if (((local_108 != (undefined *)0x0) && (local_108 != PTR_DAT_1403440a0)) &&
|
|
(local_108 + -8 != (undefined *)0x0)) {
|
|
uVar4 = FUN_14016d8c0();
|
|
local_f8 = uVar4;
|
|
FUN_14016db50(uVar4);
|
|
local_f0 = 1;
|
|
piVar2 = (int *)(local_108 + -4);
|
|
*piVar2 = *piVar2 + -1;
|
|
if (*piVar2 == 0) {
|
|
FUN_14016d970(local_108 + -8);
|
|
}
|
|
FUN_14016dbe0(uVar4);
|
|
}
|
|
}
|
|
return param_2;
|
|
}
|
|
|