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

204 lines
6.7 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401be4e0 FUN_1401be4e0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1401be4e0(longlong param_1)
{
longlong lVar1;
int iVar2;
int iVar3;
int iVar4;
int iVar5;
undefined *puVar6;
int *piVar7;
uint uVar8;
ulonglong uVar9;
int iVar10;
double dVar11;
undefined1 auStack_ab8 [32];
undefined *local_a98;
undefined *local_a90;
longlong local_a88;
undefined1 local_a80;
int local_a7c;
longlong local_a78;
undefined1 local_a70;
undefined8 local_a68;
undefined1 local_a58 [2592];
ulonglong local_38;
local_a68 = 0xfffffffffffffffe;
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_ab8;
FUN_14019ea70(local_a58);
FUN_14019eb90(local_a58);
if (*(char *)(param_1 + 0x1040) == '\0') {
do {
dVar11 = (double)FUN_1401bbd00(local_a58);
lVar1 = param_1 + 0x28;
iVar10 = 0;
iVar5 = 0;
if (dVar11 <= 0.9) {
local_a88 = lVar1;
local_a7c = FUN_1401be310(lVar1);
local_a80 = 1;
piVar7 = (int *)(param_1 + 0x80);
iVar10 = *piVar7;
uVar9 = 0;
do {
if (iVar10 != *piVar7) {
FUN_14016d8c0();
local_a98 = PTR_DAT_1403440a0;
iVar4 = FUN_14016d740(&DAT_140289ae0);
iVar10 = iVar5;
if ((local_a98 != (undefined *)0x0) && (local_a98 != PTR_DAT_1403440a0)) {
iVar10 = *(int *)(local_a98 + -8);
}
iVar2 = iVar4;
if (((iVar4 <= iVar10) && (iVar2 = iVar5, local_a98 != (undefined *)0x0)) &&
(local_a98 != PTR_DAT_1403440a0)) {
iVar2 = *(int *)(local_a98 + -8);
}
iVar10 = 1;
if (1 < iVar2) {
iVar10 = iVar2;
}
iVar2 = iVar5;
if ((local_a98 != (undefined *)0x0) && (local_a98 != PTR_DAT_1403440a0)) {
iVar2 = *(int *)(local_a98 + -8);
}
if (iVar2 < iVar10) {
FUN_14004e770(&local_a98);
}
FUN_14004e850(&local_a98);
puVar6 = local_a98;
if (local_a98 == (undefined *)0x0) {
puVar6 = PTR_DAT_1403440a0;
}
FUN_14016d770(puVar6,&DAT_140289ae0,iVar4);
puVar6 = local_a98;
if (local_a98 == (undefined *)0x0) {
puVar6 = PTR_DAT_1403440a0;
}
iVar4 = FUN_14016d740(puVar6);
iVar10 = 0;
if (0 < iVar4) {
iVar10 = iVar4;
}
iVar4 = iVar5;
if ((local_a98 != (undefined *)0x0) && (local_a98 != PTR_DAT_1403440a0)) {
iVar4 = *(int *)(local_a98 + -8);
}
if ((iVar10 < iVar4) || (iVar10 = iVar5, local_a98 == (undefined *)0x0)) {
LAB_1401be84e:
if (((local_a98 != PTR_DAT_1403440a0) && (local_a98 != (undefined *)0x0)) &&
((int *)(local_a98 + -8) != (int *)0x0)) {
*(int *)(local_a98 + -8) = iVar10;
*(undefined2 *)(local_a98 + (longlong)iVar10 * 2) = 0;
}
}
else if (local_a98 != PTR_DAT_1403440a0) {
iVar10 = *(int *)(local_a98 + -8);
goto LAB_1401be84e;
}
FUN_140193bc0(*(undefined8 *)(param_1 + 0x1088),&local_a98);
*(undefined1 *)(param_1 + 0x1040) = 1;
FUN_1401be390(lVar1);
goto LAB_1401be88f;
}
uVar9 = uVar9 + 1;
piVar7 = piVar7 + 1;
} while ((longlong)uVar9 < 1000);
if (1 < local_a7c) {
*(undefined1 *)(param_1 + 0x1080) = 1;
}
FUN_1401be390(lVar1);
local_a80 = 0;
}
else {
local_a78 = lVar1;
FUN_1401be3c0();
local_a70 = 1;
piVar7 = (int *)(param_1 + 0x80);
iVar4 = *piVar7;
uVar9 = 0;
do {
iVar2 = *piVar7;
*piVar7 = iVar2 + 1;
if (iVar4 + 1 != iVar2 + 1) {
FUN_14016d8c0();
local_a90 = PTR_DAT_1403440a0;
iVar2 = FUN_14016d740(&DAT_140289b50);
iVar4 = iVar10;
if ((local_a90 != (undefined *)0x0) && (local_a90 != PTR_DAT_1403440a0)) {
iVar4 = *(int *)(local_a90 + -8);
}
iVar3 = iVar2;
if (((iVar2 <= iVar4) && (iVar3 = iVar10, local_a90 != (undefined *)0x0)) &&
(local_a90 != PTR_DAT_1403440a0)) {
iVar3 = *(int *)(local_a90 + -8);
}
iVar10 = 1;
if (1 < iVar3) {
iVar10 = iVar3;
}
iVar4 = iVar5;
if ((local_a90 != (undefined *)0x0) && (local_a90 != PTR_DAT_1403440a0)) {
iVar4 = *(int *)(local_a90 + -8);
}
if (iVar4 < iVar10) {
FUN_14004e770(&local_a90);
}
FUN_14004e850(&local_a90);
puVar6 = local_a90;
if (local_a90 == (undefined *)0x0) {
puVar6 = PTR_DAT_1403440a0;
}
FUN_14016d770(puVar6,&DAT_140289b50,iVar2);
puVar6 = local_a90;
if (local_a90 == (undefined *)0x0) {
puVar6 = PTR_DAT_1403440a0;
}
iVar4 = FUN_14016d740(puVar6);
iVar10 = 0;
if (0 < iVar4) {
iVar10 = iVar4;
}
iVar4 = iVar5;
if ((local_a90 != (undefined *)0x0) && (local_a90 != PTR_DAT_1403440a0)) {
iVar4 = *(int *)(local_a90 + -8);
}
if ((iVar10 < iVar4) || (iVar10 = iVar5, local_a90 == (undefined *)0x0)) {
LAB_1401be71d:
if (((local_a90 != PTR_DAT_1403440a0) && (local_a90 != (undefined *)0x0)) &&
((int *)(local_a90 + -8) != (int *)0x0)) {
*(int *)(local_a90 + -8) = iVar10;
*(undefined2 *)(local_a90 + (longlong)iVar10 * 2) = 0;
}
}
else if (local_a90 != PTR_DAT_1403440a0) {
iVar10 = *(int *)(local_a90 + -8);
goto LAB_1401be71d;
}
FUN_140193bc0(*(undefined8 *)(param_1 + 0x1088),&local_a90);
*(undefined1 *)(param_1 + 0x1040) = 1;
FUN_1401be450(lVar1);
goto LAB_1401be88f;
}
uVar8 = (int)uVar9 + 1;
uVar9 = (ulonglong)uVar8;
piVar7 = piVar7 + 1;
} while ((int)uVar8 < 1000);
FUN_1401be450(lVar1);
local_a70 = 0;
}
Sleep(0);
} while (*(char *)(param_1 + 0x1040) == '\0');
}
LAB_1401be88f:
FUN_14019eab0(local_a58);
return;
}