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

298 lines
7.3 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x14013a8b0 FUN_14013a8b0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_14013a8b0(longlong param_1,undefined4 param_2,undefined4 param_3,char *param_4,
undefined8 param_5,undefined4 param_6,char *param_7,char *param_8,char *param_9)
{
int *piVar1;
undefined *puVar2;
int iVar3;
int iVar4;
int iVar5;
undefined8 uVar6;
undefined *puVar7;
undefined1 auStack_1b8 [32];
undefined8 *local_198;
undefined1 *local_190;
int *local_188;
undefined1 *local_180;
undefined8 *local_178;
int *local_170;
longlong local_168;
undefined4 *local_160;
undefined **local_158;
undefined1 local_148 [8];
undefined *local_140;
undefined4 local_138;
undefined4 local_134;
int local_130;
int local_12c [3];
undefined8 local_120;
undefined1 local_118;
undefined8 local_110;
undefined4 local_108;
short local_104;
undefined8 local_102;
undefined8 local_fa;
undefined1 local_f2;
short local_f1;
undefined1 local_ef;
undefined8 local_ee;
undefined4 local_e6 [3];
undefined2 local_d8;
undefined2 uStack_d6;
undefined4 uStack_d4;
undefined4 local_d0;
undefined2 local_cc;
char local_ca [105];
undefined4 local_61;
ulonglong local_58;
local_12c[1] = -2;
local_12c[2] = -1;
local_58 = DAT_1403463c0 ^ (ulonglong)auStack_1b8;
local_cc = 0;
local_61 = 0;
local_ca[0] = '\0';
local_ca[1] = '\0';
local_ca[2] = '\0';
local_ca[3] = '\0';
local_ca[4] = '\0';
local_ca[5] = '\0';
local_ca[6] = '\0';
local_ca[7] = '\0';
local_ca[8] = '\0';
local_ca[9] = '\0';
local_ca[10] = '\0';
local_ca[0xb] = '\0';
local_ca[0xc] = '\0';
local_ca[0xd] = '\0';
local_ca[0xe] = '\0';
local_ca[0xf] = '\0';
local_ca[0x10] = '\0';
local_ca[0x11] = '\0';
local_ca[0x12] = '\0';
local_ca[0x13] = '\0';
local_ca[0x14] = '\0';
local_ca[0x15] = '\0';
local_ca[0x16] = '\0';
local_ca[0x17] = '\0';
local_ca[0x18] = '\0';
local_ca[0x19] = '\0';
local_ca[0x1a] = '\0';
local_ca[0x1b] = '\0';
local_ca[0x1c] = '\0';
local_ca[0x1d] = '\0';
local_ca[0x1e] = '\0';
local_ca[0x1f] = '\0';
local_ca[0x20] = '\0';
local_ca[0x21] = '\0';
local_ca[0x22] = '\0';
local_ca[0x23] = '\0';
local_ca[0x24] = '\0';
local_ca[0x25] = '\0';
local_ca[0x26] = '\0';
local_ca[0x27] = '\0';
local_ca[0x28] = '\0';
local_ca[0x29] = '\0';
local_ca[0x2a] = '\0';
local_ca[0x2b] = '\0';
local_ca[0x2c] = '\0';
local_ca[0x2d] = '\0';
local_ca[0x2e] = '\0';
local_ca[0x2f] = '\0';
local_ca[0x30] = '\0';
local_ca[0x31] = '\0';
local_ca[0x32] = 0;
local_ca[0x33] = '\0';
local_ca[0x34] = '\0';
local_ca[0x35] = '\0';
local_ca[0x36] = '\0';
local_ca[0x37] = '\0';
local_ca[0x38] = '\0';
local_ca[0x39] = '\0';
local_ca[0x3a] = '\0';
local_ca[0x3b] = '\0';
local_ca[0x3c] = '\0';
local_ca[0x3d] = '\0';
local_ca[0x3e] = '\0';
local_ca[0x3f] = '\0';
local_ca[0x40] = '\0';
local_ca[0x41] = '\0';
local_ca[0x42] = '\0';
local_ca[0x43] = '\0';
local_ca[0x44] = '\0';
local_ca[0x45] = '\0';
local_ca[0x46] = '\0';
local_ca[0x47] = '\0';
local_ca[0x48] = '\0';
local_ca[0x49] = '\0';
local_ca[0x4a] = '\0';
local_ca[0x4b] = '\0';
local_ca[0x4c] = '\0';
local_ca[0x4d] = '\0';
local_ca[0x4e] = '\0';
local_ca[0x4f] = '\0';
local_ca[0x50] = '\0';
local_ca[0x51] = '\0';
local_ca[0x52] = '\0';
local_ca[0x53] = '\0';
local_ca[0x54] = '\0';
local_ca[0x55] = '\0';
local_ca[0x56] = '\0';
local_ca[0x57] = '\0';
local_ca[0x58] = '\0';
local_ca[0x59] = '\0';
local_ca[0x5a] = '\0';
local_ca[0x5b] = '\0';
local_ca[0x5c] = '\0';
local_ca[0x5d] = '\0';
local_ca[0x5e] = '\0';
local_ca[0x5f] = '\0';
local_ca[0x60] = '\0';
local_ca[0x61] = '\0';
local_ca[0x62] = '\0';
local_ca[99] = '\0';
local_ca[100] = '\0';
local_ca[0x65] = '\0';
local_ca[0x66] = '\0';
local_ca[0x67] = '\0';
local_ca[0x68] = '\0';
local_110 = 0;
local_108 = 0;
local_104 = 0;
local_102 = 0;
local_fa = 0;
local_f2 = 0;
local_f1 = 0;
local_ef = 0;
local_ee = 0;
local_e6[0] = 0;
uStack_d6 = 0x446;
local_d8 = 0x7b;
local_134 = param_3;
uStack_d4 = param_3;
local_d0 = param_2;
strncpy(local_ca,param_4,0x32);
strncpy(local_ca + 0x33,param_7,0x12);
strncpy(local_ca + 0x45,param_8,0x12);
strncpy(local_ca + 0x57,param_9,0x12);
local_61 = param_6;
local_108 = local_d0;
local_104 = 0x6f;
local_110 = CONCAT62((int6)(CONCAT44(uStack_d4,CONCAT22(uStack_d6,local_d8)) >> 0x10),0x2e);
FUN_14012dda0(*(undefined8 *)(param_1 + 0xe0),&local_d8,&local_110);
FUN_1401338d0(*(undefined8 *)(param_1 + 0xe0),param_5,&local_110);
*(int *)(param_1 + 0x5ac) = *(int *)(param_1 + 0x5ac) + 1;
FUN_14016d8c0();
local_140 = PTR_DAT_140344098;
iVar3 = FUN_14016d7e0(param_4);
if (local_140 == (undefined *)0x0) {
iVar5 = 0;
}
else if (local_140 == PTR_DAT_140344098) {
iVar5 = 0;
}
else {
iVar5 = *(int *)(local_140 + -8);
}
iVar4 = iVar3;
if (iVar3 <= iVar5) {
if (local_140 == (undefined *)0x0) {
iVar4 = 0;
}
else if (local_140 == PTR_DAT_140344098) {
iVar4 = 0;
}
else {
iVar4 = *(int *)(local_140 + -8);
}
}
iVar5 = 1;
if (1 < iVar4) {
iVar5 = iVar4;
}
if (local_140 == (undefined *)0x0) {
iVar4 = 0;
}
else if (local_140 == PTR_DAT_140344098) {
iVar4 = 0;
}
else {
iVar4 = *(int *)(local_140 + -8);
}
if (iVar4 < iVar5) {
FUN_14013c520(&local_140);
}
FUN_14013c600(&local_140);
puVar7 = local_140;
if (local_140 == (undefined *)0x0) {
puVar7 = PTR_DAT_140344098;
}
FUN_14016d810(puVar7,param_4,iVar3);
iVar5 = FUN_14016d7e0();
iVar3 = 0;
if (0 < iVar5) {
iVar3 = iVar5;
}
if (local_140 == (undefined *)0x0) {
iVar5 = 0;
}
else if (local_140 == PTR_DAT_140344098) {
iVar5 = 0;
}
else {
iVar5 = *(int *)(local_140 + -8);
}
if (iVar5 <= iVar3) {
if (local_140 == (undefined *)0x0) {
iVar3 = 0;
}
else if (local_140 == PTR_DAT_140344098) {
iVar3 = 0;
}
else {
iVar3 = *(int *)(local_140 + -8);
}
}
if (((local_140 != PTR_DAT_140344098) && (local_140 != (undefined *)0x0)) &&
(piVar1 = (int *)(local_140 + -8), piVar1 != (int *)0x0)) {
*piVar1 = iVar3;
*(undefined1 *)((longlong)iVar3 + 8 + (longlong)piVar1) = 0;
}
local_12c[0] = (int)local_104;
local_148[0] = local_ef;
local_130 = (int)local_f1;
local_138 = local_134;
local_158 = &local_140;
local_160 = local_e6;
local_168 = (longlong)&local_ee + 4;
local_170 = local_12c;
local_178 = &local_ee;
local_180 = local_148;
local_188 = &local_130;
local_190 = &local_f2;
local_198 = &local_102;
(**(code **)(*(longlong *)(param_1 + 0xa8) + 0x40))
((longlong *)(param_1 + 0xa8),param_2,&DAT_1403440f0,&local_138);
puVar7 = local_140;
if (((local_140 != (undefined *)0x0) && (local_140 != PTR_DAT_140344098)) &&
(puVar2 = local_140 + -8, puVar2 != (undefined *)0x0)) {
uVar6 = FUN_14016d8c0();
local_120 = uVar6;
FUN_14016db50(uVar6);
local_118 = 1;
piVar1 = (int *)(puVar7 + -4);
*piVar1 = *piVar1 + -1;
if (*piVar1 == 0) {
FUN_14016d970(puVar2);
}
FUN_14016dbe0(uVar6);
}
return;
}