204 lines
6.7 KiB
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;
|
|
}
|
|
|