server-re/decomp/DBCServer_Release_x64/full/functions/0x14013a450.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;
}