186 lines
4.9 KiB
C
186 lines
4.9 KiB
C
/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
|
|
* Ghidra 12.1.2 decompiler output for 0x14013a450 FUN_14013a450
|
|
* Pseudocode, not original source. */
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_14013a450(longlong param_1,undefined4 param_2,undefined4 param_3,char *param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
undefined *puVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
undefined8 uVar5;
|
|
undefined *puVar6;
|
|
int iVar7;
|
|
int iVar8;
|
|
undefined1 auStack_128 [32];
|
|
undefined **local_108;
|
|
undefined *local_f8;
|
|
undefined4 local_f0 [2];
|
|
undefined8 local_e8;
|
|
undefined8 local_e0;
|
|
undefined1 local_d8;
|
|
undefined8 local_d0;
|
|
undefined4 local_c8;
|
|
undefined2 local_c4;
|
|
undefined8 local_c2;
|
|
undefined8 local_ba;
|
|
undefined8 local_b2;
|
|
undefined8 local_aa;
|
|
undefined1 local_a2;
|
|
undefined2 local_98;
|
|
undefined2 uStack_96;
|
|
undefined4 uStack_94;
|
|
undefined4 local_90;
|
|
undefined2 local_8c;
|
|
char local_8a [66];
|
|
ulonglong local_48;
|
|
|
|
local_e8 = 0xfffffffffffffffe;
|
|
local_48 = DAT_1403463c0 ^ (ulonglong)auStack_128;
|
|
local_8c = 0;
|
|
local_8a[0] = '\0';
|
|
local_8a[1] = '\0';
|
|
local_8a[2] = '\0';
|
|
local_8a[3] = '\0';
|
|
local_8a[4] = '\0';
|
|
local_8a[5] = '\0';
|
|
local_8a[6] = '\0';
|
|
local_8a[7] = '\0';
|
|
local_8a[8] = '\0';
|
|
local_8a[9] = '\0';
|
|
local_8a[10] = '\0';
|
|
local_8a[0xb] = '\0';
|
|
local_8a[0xc] = '\0';
|
|
local_8a[0xd] = '\0';
|
|
local_8a[0xe] = '\0';
|
|
local_8a[0xf] = '\0';
|
|
local_8a[0x10] = '\0';
|
|
local_8a[0x11] = '\0';
|
|
local_8a[0x12] = '\0';
|
|
local_8a[0x13] = '\0';
|
|
local_8a[0x14] = '\0';
|
|
local_8a[0x15] = '\0';
|
|
local_8a[0x16] = '\0';
|
|
local_8a[0x17] = '\0';
|
|
local_8a[0x18] = '\0';
|
|
local_8a[0x19] = '\0';
|
|
local_8a[0x1a] = '\0';
|
|
local_8a[0x1b] = '\0';
|
|
local_8a[0x1c] = '\0';
|
|
local_8a[0x1d] = '\0';
|
|
local_8a[0x1e] = '\0';
|
|
local_8a[0x1f] = '\0';
|
|
local_8a[0x20] = '\0';
|
|
local_8a[0x21] = '\0';
|
|
local_8a[0x22] = '\0';
|
|
local_8a[0x23] = '\0';
|
|
local_8a[0x24] = '\0';
|
|
local_8a[0x25] = '\0';
|
|
local_8a[0x26] = '\0';
|
|
local_8a[0x27] = '\0';
|
|
local_8a[0x28] = '\0';
|
|
local_8a[0x29] = '\0';
|
|
local_8a[0x2a] = '\0';
|
|
local_8a[0x2b] = '\0';
|
|
local_8a[0x2c] = '\0';
|
|
local_8a[0x2d] = '\0';
|
|
local_8a[0x2e] = '\0';
|
|
local_8a[0x2f] = '\0';
|
|
local_8a[0x30] = '\0';
|
|
local_8a[0x31] = '\0';
|
|
local_8a[0x32] = 0;
|
|
local_d0 = 0;
|
|
local_c8 = 0;
|
|
local_c4 = 0;
|
|
local_c2 = 0;
|
|
local_ba = 0;
|
|
local_b2 = 0;
|
|
local_aa = 0;
|
|
local_a2 = 0;
|
|
uStack_96 = 0x520;
|
|
local_98 = 0x41;
|
|
uStack_94 = param_3;
|
|
local_90 = param_2;
|
|
strncpy(local_8a,param_4,0x32);
|
|
local_c8 = local_90;
|
|
local_c4 = 0x17d;
|
|
local_d0 = CONCAT62((int6)(CONCAT44(uStack_94,CONCAT22(uStack_96,local_98)) >> 0x10),0x2f);
|
|
FUN_14012d5a0(*(undefined8 *)(param_1 + 0xe0),&local_98,&local_d0);
|
|
*(int *)(param_1 + 0x6d8) = *(int *)(param_1 + 0x6d8) + 1;
|
|
FUN_14016d8c0();
|
|
local_f8 = PTR_DAT_140344098;
|
|
iVar3 = FUN_14016d7e0(&local_c2);
|
|
iVar7 = 0;
|
|
iVar8 = iVar7;
|
|
if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) {
|
|
iVar8 = *(int *)(local_f8 + -8);
|
|
}
|
|
iVar4 = iVar3;
|
|
if (((iVar3 <= iVar8) && (iVar4 = iVar7, local_f8 != (undefined *)0x0)) &&
|
|
(local_f8 != PTR_DAT_140344098)) {
|
|
iVar4 = *(int *)(local_f8 + -8);
|
|
}
|
|
iVar8 = 1;
|
|
if (1 < iVar4) {
|
|
iVar8 = iVar4;
|
|
}
|
|
iVar4 = iVar7;
|
|
if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) {
|
|
iVar4 = *(int *)(local_f8 + -8);
|
|
}
|
|
if (iVar4 < iVar8) {
|
|
FUN_14013c520(&local_f8);
|
|
}
|
|
FUN_14013c600(&local_f8);
|
|
puVar6 = local_f8;
|
|
if (local_f8 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_140344098;
|
|
}
|
|
FUN_14016d810(puVar6,&local_c2,iVar3);
|
|
puVar6 = local_f8;
|
|
if (local_f8 == (undefined *)0x0) {
|
|
puVar6 = PTR_DAT_140344098;
|
|
}
|
|
iVar3 = FUN_14016d7e0(puVar6);
|
|
iVar8 = 0;
|
|
if (0 < iVar3) {
|
|
iVar8 = iVar3;
|
|
}
|
|
iVar3 = iVar7;
|
|
if ((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) {
|
|
iVar3 = *(int *)(local_f8 + -8);
|
|
}
|
|
if ((iVar3 <= iVar8) && (iVar8 = iVar7, local_f8 != (undefined *)0x0)) {
|
|
if (local_f8 == PTR_DAT_140344098) goto LAB_14013a63e;
|
|
iVar8 = *(int *)(local_f8 + -8);
|
|
}
|
|
if (((local_f8 != PTR_DAT_140344098) && (local_f8 != (undefined *)0x0)) &&
|
|
(piVar1 = (int *)(local_f8 + -8), piVar1 != (int *)0x0)) {
|
|
*piVar1 = iVar8;
|
|
*(undefined1 *)((longlong)iVar8 + 8 + (longlong)piVar1) = 0;
|
|
}
|
|
LAB_14013a63e:
|
|
local_108 = &local_f8;
|
|
local_f0[0] = param_3;
|
|
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x4f0))
|
|
((longlong *)(param_1 + 0xa8),param_2,&DAT_1403440f0,local_f0);
|
|
puVar6 = local_f8;
|
|
if (((local_f8 != (undefined *)0x0) && (local_f8 != PTR_DAT_140344098)) &&
|
|
(puVar2 = local_f8 + -8, puVar2 != (undefined *)0x0)) {
|
|
uVar5 = FUN_14016d8c0();
|
|
local_e0 = uVar5;
|
|
FUN_14016db50(uVar5);
|
|
local_d8 = 1;
|
|
piVar1 = (int *)(puVar6 + -4);
|
|
*piVar1 = *piVar1 + -1;
|
|
if (*piVar1 == 0) {
|
|
FUN_14016d970(puVar2);
|
|
}
|
|
FUN_14016dbe0(uVar5);
|
|
}
|
|
return;
|
|
}
|
|
|