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

969 lines
28 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401f8570 FUN_1401f8570
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1401f8570(longlong *param_1,longlong param_2)
{
longlong *plVar1;
int *piVar2;
ushort uVar3;
longlong *plVar4;
char cVar5;
uint uVar6;
uint uVar7;
uint uVar8;
int iVar9;
void *_Dst;
uint *puVar10;
uint *puVar11;
undefined8 uVar12;
uint *puVar13;
undefined1 *puVar14;
undefined8 uVar15;
longlong lVar16;
undefined *puVar17;
void *_Src;
uint *puVar18;
longlong lVar19;
uint *puVar20;
uint uVar21;
undefined *puVar22;
undefined1 auStack_a38 [32];
uint local_a18;
uint *local_a08;
uint *local_a00;
uint *local_9f8;
uint *local_9f0;
uint local_9e8 [2];
longlong *local_9e0;
undefined *local_9d8;
undefined *local_9d0;
undefined *local_9c8;
undefined *local_9c0;
undefined *local_9b8;
undefined8 local_9b0;
undefined **local_9a8;
undefined4 local_9a0;
undefined2 local_99c;
int local_998;
undefined8 local_990;
undefined **local_988;
undefined4 local_980;
undefined2 local_97c;
int local_978;
undefined8 local_970;
undefined **local_968;
undefined4 local_960;
undefined2 local_95c;
undefined4 local_958;
undefined8 local_950;
undefined1 local_948;
undefined8 local_940;
undefined1 local_938;
undefined8 local_930;
undefined1 local_928;
undefined8 local_920;
undefined1 local_918;
undefined8 local_910;
undefined1 local_908;
undefined8 local_900;
undefined1 local_8f8;
undefined8 local_8f0;
undefined1 local_8e8;
undefined8 local_8e0;
undefined8 local_8d8;
undefined1 local_8d0;
undefined8 local_8c8;
undefined1 local_8c0;
undefined8 local_8b8;
undefined1 local_8b0;
undefined8 local_8a8;
undefined1 local_8a0;
undefined1 *local_898;
undefined1 local_890 [136];
undefined1 *local_808;
undefined1 local_800 [136];
undefined1 *local_778;
undefined1 local_770 [264];
undefined1 local_668 [1568];
ulonglong local_48;
local_8e0 = 0xfffffffffffffffe;
local_48 = DAT_1403463c0 ^ (ulonglong)auStack_a38;
iVar9 = *(int *)(param_2 + 0x2490);
local_9e0 = param_1;
if (iVar9 == 0) {
lVar19 = 0;
if (*(int *)(param_2 + 0x2494) == 0) {
local_9d8 = (undefined *)FUN_14016d940(0x400);
lVar16 = lVar19;
if (local_9d8 != (undefined *)0x0) {
lVar16 = FUN_14019cad0(local_9d8,0,param_2);
}
if (lVar16 == 0) {
local_9e0 = (longlong *)0x0;
}
else {
local_9e0 = (longlong *)FUN_14016d940(0x10);
local_9e0[1] = 1;
*local_9e0 = lVar16;
}
plVar1 = local_9e0;
FUN_1401786c0(param_2 + 0x2480,&local_9e0);
plVar4 = local_9e0;
if (plVar1 != (longlong *)0x0) {
plVar1 = plVar1 + 1;
*plVar1 = *plVar1 + -1;
if (*plVar1 == 0) {
lVar16 = *local_9e0;
if (lVar16 != 0) {
FUN_14019c9e0(lVar16);
FUN_14016d970(lVar16);
}
FUN_14016d970(plVar4);
}
}
lVar16 = lVar19;
if (*(longlong **)(param_2 + 0x2480) != (longlong *)0x0) {
lVar16 = **(longlong **)(param_2 + 0x2480);
}
FUN_14019e650(lVar16);
lVar16 = lVar19;
if (*(longlong **)(param_2 + 0x2480) != (longlong *)0x0) {
lVar16 = **(longlong **)(param_2 + 0x2480);
}
FUN_14019be10(lVar16,0);
cVar5 = FUN_1401f58d0(param_1,param_2);
if (cVar5 == '\0') goto LAB_1401f96ba;
}
FUN_14019be90(local_668);
lVar16 = lVar19;
if (*(longlong **)(param_2 + 0x2480) != (longlong *)0x0) {
lVar16 = **(longlong **)(param_2 + 0x2480);
}
FUN_14019beb0(local_668,lVar16);
lVar16 = lVar19;
if (*(longlong **)(param_2 + 0x2480) != (longlong *)0x0) {
lVar16 = **(longlong **)(param_2 + 0x2480);
}
FUN_14019bf10(local_668,lVar16);
FUN_14019bf70(local_668,0);
if (*(longlong **)(param_2 + 0x2480) != (longlong *)0x0) {
lVar19 = **(longlong **)(param_2 + 0x2480);
}
cVar5 = FUN_14019bfd0(local_668,lVar19,local_9e8);
if (cVar5 != '\0') {
if (local_9e8[0] == 0) {
if (0 < *(int *)(param_2 + 0x2490)) {
return;
}
*(undefined8 *)(param_2 + 0x2490) = 1;
return;
}
cVar5 = FUN_1401f58d0(param_1,param_2);
if (cVar5 != '\0') goto LAB_1401f978c;
goto LAB_1401f96ba;
}
goto LAB_1401f978c;
}
if (iVar9 == 1) {
uVar12 = 0;
iVar9 = 0;
if (*(int *)(param_2 + 0x2494) == 0) {
uVar15 = uVar12;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar15 = **(undefined8 **)(param_2 + 0x2480);
}
FUN_14019be10(uVar15,1);
local_808 = local_800;
FUN_14016ac90(&local_808,param_2 + 0x52,3);
local_898 = local_890;
FUN_14016ac90(&local_898,param_2 + 0x458,3);
local_a18 = (uint)*(ushort *)(param_2 + 0x245c);
FUN_140170320(param_2 + 0x2488,
"GET %s HTTP/1.1\r\n\r\nHost: %s:%d\r\n\r\nConnection: Keep-Alive\r\n\r\n",
local_898,local_808);
if (local_898 != local_890) {
free(local_898);
}
if (local_808 != local_800) {
free(local_808);
}
cVar5 = FUN_1401f41e0(param_1,param_2);
if (cVar5 == '\0') goto LAB_1401f96ba;
}
local_988 = Proud::AddrPort::vftable;
local_978 = 0;
local_990 = 0;
local_980 = DAT_140344450;
local_97c = DAT_140344454;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar12 = **(undefined8 **)(param_2 + 0x2480);
}
cVar5 = FUN_14019c560(uVar12,0,&local_990);
if (cVar5 != '\0') {
*(undefined1 *)(param_2 + 0x24c0) = 0;
if (local_978 == 0) goto LAB_1401f96ba;
*(int *)(param_2 + 0x2504) = *(int *)(param_2 + 0x2504) + local_978;
puVar22 = *(undefined **)(param_2 + 0x2488);
if (puVar22 != (undefined *)0x0) {
if (puVar22 == PTR_DAT_140344098) {
iVar9 = 0;
}
else {
iVar9 = *(int *)(puVar22 + -8);
}
}
if ((iVar9 - *(int *)(param_2 + 0x2504)) + 1 < 1) {
if (1 < *(int *)(param_2 + 0x2490)) {
return;
}
*(undefined8 *)(param_2 + 0x2490) = 2;
return;
}
FUN_1401f41e0(param_1,param_2);
}
goto LAB_1401f978c;
}
if (iVar9 == 2) {
uVar12 = 0;
if (*(int *)(param_2 + 0x2494) == 0) {
*(undefined1 *)(param_2 + 0x2500) = 1;
uVar15 = uVar12;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar15 = **(undefined8 **)(param_2 + 0x2480);
}
iVar9 = FUN_14019d400(uVar15,0x8000);
if (iVar9 == 0) goto LAB_1401f9327;
}
else {
LAB_1401f9327:
local_9a8 = Proud::AddrPort::vftable;
local_998 = 0;
local_9b0 = 0;
local_9a0 = DAT_140344450;
local_99c = DAT_140344454;
uVar15 = uVar12;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar15 = **(undefined8 **)(param_2 + 0x2480);
}
cVar5 = FUN_14019c2f0(uVar15,0,&local_9b0);
if (cVar5 == '\0') {
LAB_1401f978c:
*(int *)(param_2 + 0x2494) = *(int *)(param_2 + 0x2494) + 1;
return;
}
*(undefined1 *)(param_2 + 0x2500) = 0;
if (local_998 == 0) {
LAB_1401f96ba:
if (2 < *(int *)(param_2 + 0x2490)) {
return;
}
*(undefined8 *)(param_2 + 0x2490) = 3;
return;
}
uVar15 = uVar12;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar15 = **(undefined8 **)(param_2 + 0x2480);
}
uVar15 = FUN_14019c8b0(uVar15);
FUN_1401f4260(param_2 + 0x2510,uVar15,local_998);
*(int *)(param_2 + 0x2508) = *(int *)(param_2 + 0x2508) + local_998;
iVar9 = 0x8000 - *(int *)(param_2 + 0x2508);
if (iVar9 < 1) goto LAB_1401f96ba;
*(undefined1 *)(param_2 + 0x2500) = 1;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar12 = **(undefined8 **)(param_2 + 0x2480);
}
iVar9 = FUN_14019d400(uVar12,iVar9);
if (iVar9 == 0) goto LAB_1401f978c;
}
*(undefined1 *)(param_2 + 0x2500) = 0;
goto LAB_1401f93fd;
}
if (iVar9 != 3) {
if (iVar9 == 4) {
if (((*(int *)(param_2 + 0x2494) == 0) &&
(*(longlong **)(param_2 + 0x2480) != (longlong *)0x0)) &&
(**(longlong **)(param_2 + 0x2480) != 0)) {
FUN_14019c630();
}
local_968 = Proud::AddrPort::vftable;
uVar12 = 0;
local_958 = 0;
local_970 = 0;
local_960 = DAT_140344450;
local_95c = DAT_140344454;
uVar15 = uVar12;
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar15 = **(undefined8 **)(param_2 + 0x2480);
}
cVar5 = FUN_14019c2f0(uVar15,0,&local_970);
if (cVar5 != '\0') {
*(undefined1 *)(param_2 + 0x2500) = 0;
}
if (*(undefined8 **)(param_2 + 0x2480) != (undefined8 *)0x0) {
uVar12 = **(undefined8 **)(param_2 + 0x2480);
}
cVar5 = FUN_14019c560(uVar12,0,&local_970);
if (cVar5 != '\0') {
*(undefined1 *)(param_2 + 0x24c0) = 0;
}
if ((*(char *)(param_2 + 0x2500) == '\0') && (*(char *)(param_2 + 0x24c0) == '\0')) {
if (4 < *(int *)(param_2 + 0x2490)) {
return;
}
*(undefined8 *)(param_2 + 0x2490) = 5;
return;
}
}
goto LAB_1401f978c;
}
uVar8 = 0;
if (*(int *)(param_2 + 0x2528) == 0) goto LAB_1401f93fd;
_Dst = (void *)FUN_14013c6f0(param_2 + 0x2538);
memset(_Dst,0,(longlong)(*(int *)(param_2 + 0x2528) + 1));
_Src = (void *)0x0;
if (*(int *)(param_2 + 0x2528) != 0) {
_Src = *(void **)(param_2 + 0x2520);
}
memcpy(_Dst,_Src,(longlong)*(int *)(param_2 + 0x2528));
FUN_14013c7e0(param_2 + 0x2538);
FUN_14016d8c0();
puVar22 = PTR_DAT_140344098;
local_9d8 = PTR_DAT_140344098;
FUN_1401f4f10(param_2 + 0x2538);
FUN_14016d8c0();
puVar20 = (uint *)PTR_DAT_140344098;
local_9f0 = (uint *)PTR_DAT_140344098;
uVar6 = FUN_14016d7e0("MODELDESCRIPTION");
iVar9 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar20 + -8);
}
uVar7 = uVar6;
if ((int)uVar6 <= iVar9) {
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (uVar7 = 0, puVar20 != (uint *)PTR_DAT_140344098)) {
uVar7 = *(uint *)((longlong)puVar20 + -8);
}
}
uVar21 = 1;
if (1 < (int)uVar7) {
uVar21 = uVar7;
}
iVar9 = 0;
if ((puVar20 != (uint *)0x0) && (iVar9 = 0, puVar20 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar20 + -8);
}
if (iVar9 < (int)uVar21) {
if (puVar20 == (uint *)0x0) {
puVar20 = (uint *)PTR_DAT_140344098;
}
local_9f0 = puVar20;
if ((int)uVar21 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar21 == 0) {
FUN_14004f5a0(&local_9f0);
}
else {
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar20[-2];
}
if (uVar21 != uVar7) {
puVar13 = (uint *)FUN_14016d940((longlong)(int)uVar21 + 9);
if (puVar13 != (uint *)0x0) {
*puVar13 = 0;
puVar13[1] = 1;
}
*puVar13 = uVar21;
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar20[-2];
}
puVar10 = (uint *)PTR_DAT_140344098;
if ((int)uVar21 < (int)uVar7) {
LAB_1401f8835:
if (puVar20 != (uint *)0x0) {
puVar10 = puVar20;
}
}
else {
uVar21 = uVar8;
if (puVar20 != (uint *)0x0) {
if (puVar20 != (uint *)PTR_DAT_140344098) {
uVar21 = puVar20[-2];
}
goto LAB_1401f8835;
}
}
FUN_14016d810(puVar13 + 2,puVar10,uVar21);
FUN_14004f5a0(&local_9f0);
local_9f0 = puVar13 + 2;
}
}
}
FUN_14013c600(&local_9f0);
puVar20 = local_9f0;
puVar13 = local_9f0;
if (local_9f0 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_140344098;
}
FUN_14016d810(puVar13,"MODELDESCRIPTION",uVar6);
puVar13 = puVar20;
if (puVar20 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_140344098;
}
uVar7 = FUN_14016d7e0(puVar13);
uVar6 = 0;
if (0 < (int)uVar7) {
uVar6 = uVar7;
}
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (uVar7 = 0, puVar20 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar20[-2];
}
if (((int)uVar6 < (int)uVar7) || (uVar6 = 0, puVar20 == (uint *)0x0)) {
LAB_1401f88cd:
if (((puVar20 != (uint *)PTR_DAT_140344098) && (puVar20 != (uint *)0x0)) &&
(puVar13 = puVar20 + -2, puVar13 != (uint *)0x0)) {
*puVar13 = uVar6;
*(undefined1 *)((longlong)(int)uVar6 + 8 + (longlong)puVar13) = 0;
}
}
else if (puVar20 != (uint *)PTR_DAT_140344098) {
uVar6 = puVar20[-2];
goto LAB_1401f88cd;
}
FUN_14016d8c0();
puVar13 = (uint *)PTR_DAT_140344098;
local_a00 = (uint *)PTR_DAT_140344098;
uVar6 = FUN_14016d7e0("FRIENDLYNAME");
iVar9 = 0;
if ((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar13 + -8);
}
uVar7 = uVar6;
if ((int)uVar6 <= iVar9) {
uVar7 = 0;
if ((puVar13 != (uint *)0x0) && (uVar7 = 0, puVar13 != (uint *)PTR_DAT_140344098)) {
uVar7 = *(uint *)((longlong)puVar13 + -8);
}
}
uVar21 = 1;
if (1 < (int)uVar7) {
uVar21 = uVar7;
}
iVar9 = 0;
if ((puVar13 != (uint *)0x0) && (iVar9 = 0, puVar13 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar13 + -8);
}
if (iVar9 < (int)uVar21) {
if (puVar13 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_140344098;
}
local_a00 = puVar13;
if ((int)uVar21 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar21 == 0) {
FUN_14004f5a0(&local_a00);
}
else {
uVar7 = 0;
if ((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar13[-2];
}
if (uVar21 != uVar7) {
puVar10 = (uint *)FUN_14016d940((longlong)(int)uVar21 + 9);
if (puVar10 != (uint *)0x0) {
*puVar10 = 0;
puVar10[1] = 1;
}
*puVar10 = uVar21;
uVar7 = 0;
if ((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar13[-2];
}
puVar11 = (uint *)PTR_DAT_140344098;
if ((int)uVar21 < (int)uVar7) {
LAB_1401f89da:
if (puVar13 != (uint *)0x0) {
puVar11 = puVar13;
}
}
else {
uVar21 = uVar8;
if (puVar13 != (uint *)0x0) {
if (puVar13 != (uint *)PTR_DAT_140344098) {
uVar21 = puVar13[-2];
}
goto LAB_1401f89da;
}
}
FUN_14016d810(puVar10 + 2,puVar11,uVar21);
FUN_14004f5a0(&local_a00);
local_a00 = puVar10 + 2;
}
}
}
FUN_14013c600(&local_a00);
puVar13 = local_a00;
puVar10 = local_a00;
if (local_a00 == (uint *)0x0) {
puVar10 = (uint *)PTR_DAT_140344098;
}
FUN_14016d810(puVar10,"FRIENDLYNAME",uVar6);
puVar10 = puVar13;
if (puVar13 == (uint *)0x0) {
puVar10 = (uint *)PTR_DAT_140344098;
}
uVar7 = FUN_14016d7e0(puVar10);
uVar6 = 0;
if (0 < (int)uVar7) {
uVar6 = uVar7;
}
uVar7 = 0;
if ((puVar13 != (uint *)0x0) && (uVar7 = 0, puVar13 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar13[-2];
}
if (((int)uVar6 < (int)uVar7) || (uVar6 = 0, puVar13 == (uint *)0x0)) {
LAB_1401f8a72:
if (((puVar13 != (uint *)PTR_DAT_140344098) && (puVar13 != (uint *)0x0)) &&
(puVar10 = puVar13 + -2, puVar10 != (uint *)0x0)) {
*puVar10 = uVar6;
*(undefined1 *)((longlong)(int)uVar6 + 8 + (longlong)puVar10) = 0;
}
}
else if (puVar13 != (uint *)PTR_DAT_140344098) {
uVar6 = puVar13[-2];
goto LAB_1401f8a72;
}
local_a08 = (uint *)FUN_1401f5bd0(local_9e0,&local_9d0,param_2 + 0x2538,&local_9f0);
FUN_14016d8c0();
puVar10 = (uint *)PTR_DAT_140344098;
local_9f8 = (uint *)PTR_DAT_140344098;
local_9e8[0] = FUN_14016d7e0(&DAT_140294450);
iVar9 = 0;
if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar10 + -8);
}
uVar6 = local_9e8[0];
if ((int)local_9e8[0] <= iVar9) {
uVar6 = 0;
if ((puVar10 != (uint *)0x0) && (uVar6 = 0, puVar10 != (uint *)PTR_DAT_140344098)) {
uVar6 = *(uint *)((longlong)puVar10 + -8);
}
}
uVar7 = 1;
if (1 < (int)uVar6) {
uVar7 = uVar6;
}
iVar9 = 0;
if ((puVar10 != (uint *)0x0) && (iVar9 = 0, puVar10 != (uint *)PTR_DAT_140344098)) {
iVar9 = *(int *)((longlong)puVar10 + -8);
}
if (iVar9 < (int)uVar7) {
if (puVar10 == (uint *)0x0) {
puVar10 = (uint *)PTR_DAT_140344098;
}
local_9f8 = puVar10;
if ((int)uVar7 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar7 == 0) {
FUN_14004f5a0(&local_9f8);
}
else {
uVar6 = 0;
if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140344098)) {
uVar6 = puVar10[-2];
}
if (uVar7 != uVar6) {
puVar11 = (uint *)FUN_14016d940((longlong)(int)uVar7 + 9);
if (puVar11 != (uint *)0x0) {
*puVar11 = 0;
puVar11[1] = 1;
}
*puVar11 = uVar7;
uVar6 = 0;
if ((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140344098)) {
uVar6 = puVar10[-2];
}
puVar18 = (uint *)PTR_DAT_140344098;
if ((int)uVar7 < (int)uVar6) {
LAB_1401f8ba9:
if (puVar10 != (uint *)0x0) {
puVar18 = puVar10;
}
}
else {
uVar7 = uVar8;
if (puVar10 != (uint *)0x0) {
if (puVar10 != (uint *)PTR_DAT_140344098) {
uVar7 = puVar10[-2];
}
goto LAB_1401f8ba9;
}
}
FUN_14016d810(puVar11 + 2,puVar18,uVar7);
FUN_14004f5a0(&local_9f8);
local_9f8 = puVar11 + 2;
}
}
}
FUN_14013c600(&local_9f8);
puVar10 = local_9f8;
puVar11 = local_9f8;
if (local_9f8 == (uint *)0x0) {
puVar11 = (uint *)PTR_DAT_140344098;
}
FUN_14016d810(puVar11,&DAT_140294450,local_9e8[0]);
puVar11 = puVar10;
if (puVar10 == (uint *)0x0) {
puVar11 = (uint *)PTR_DAT_140344098;
}
uVar7 = FUN_14016d7e0(puVar11);
uVar6 = 0;
if (0 < (int)uVar7) {
uVar6 = uVar7;
}
uVar7 = 0;
if ((puVar10 != (uint *)0x0) && (uVar7 = 0, puVar10 != (uint *)PTR_DAT_140344098)) {
uVar7 = puVar10[-2];
}
if (((int)uVar6 < (int)uVar7) || (uVar6 = 0, puVar10 == (uint *)0x0)) {
LAB_1401f8c43:
if (((puVar10 != (uint *)PTR_DAT_140344098) && (puVar10 != (uint *)0x0)) &&
(puVar11 = puVar10 + -2, puVar11 != (uint *)0x0)) {
*puVar11 = uVar6;
*(undefined1 *)((longlong)(int)uVar6 + 8 + (longlong)puVar11) = 0;
}
}
else if (puVar10 != (uint *)PTR_DAT_140344098) {
uVar6 = puVar10[-2];
goto LAB_1401f8c43;
}
uVar12 = FUN_1401f5bd0(local_9e0,&local_9b8,param_2 + 0x2538,&local_a00);
uVar12 = FUN_1401bd540(&local_9c0,uVar12,&local_9f8);
local_a08 = (uint *)FUN_1401bd540(&local_9c8,uVar12,local_a08);
if (puVar22 == (undefined *)0x0) {
puVar22 = PTR_DAT_140344098;
}
local_9d8 = puVar22;
if (*(undefined **)local_a08 != puVar22) {
uVar12 = FUN_14016d8c0();
local_920 = uVar12;
FUN_14016db50(uVar12);
local_918 = 1;
if (((puVar22 != (undefined *)0x0) && (puVar22 != PTR_DAT_140344098)) &&
(puVar22 + -8 != (undefined *)0x0)) {
uVar12 = FUN_14016d8c0();
local_8a8 = uVar12;
FUN_14016db50(uVar12);
local_8a0 = 1;
piVar2 = (int *)(puVar22 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(puVar22 + -8);
}
FUN_14016dbe0(uVar12);
uVar12 = local_920;
}
puVar22 = *(undefined **)local_a08;
if (((puVar22 != PTR_DAT_140344098) && (puVar22 != (undefined *)0x0)) &&
(puVar22 != (undefined *)0x8)) {
*(int *)(puVar22 + -4) = *(int *)(puVar22 + -4) + 1;
}
local_9d8 = puVar22;
FUN_14016dbe0(uVar12);
}
if (((local_9c8 != (undefined *)0x0) && (local_9c8 != PTR_DAT_140344098)) &&
(local_9c8 + -8 != (undefined *)0x0)) {
local_930 = FUN_14016d8c0();
FUN_14016db50(local_930);
local_928 = 1;
piVar2 = (int *)(local_9c8 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(local_9c8 + -8);
}
FUN_14016dbe0(local_930);
}
local_9c8 = PTR_DAT_140344098;
if (((local_9c0 != (undefined *)0x0) && (local_9c0 != PTR_DAT_140344098)) &&
(local_9c0 + -8 != (undefined *)0x0)) {
local_950 = FUN_14016d8c0();
FUN_14016db50(local_950);
local_948 = 1;
piVar2 = (int *)(local_9c0 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(local_9c0 + -8);
}
FUN_14016dbe0(local_950);
}
local_9c0 = PTR_DAT_140344098;
if (((local_9b8 != (undefined *)0x0) && (local_9b8 != PTR_DAT_140344098)) &&
(local_9b8 + -8 != (undefined *)0x0)) {
local_940 = FUN_14016d8c0();
FUN_14016db50(local_940);
local_938 = 1;
piVar2 = (int *)(local_9b8 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(local_9b8 + -8);
}
FUN_14016dbe0(local_940);
}
local_9b8 = PTR_DAT_140344098;
if (((puVar10 != (uint *)0x0) && (puVar10 != (uint *)PTR_DAT_140344098)) &&
(puVar10 + -2 != (uint *)0x0)) {
uVar12 = FUN_14016d8c0();
local_8b8 = uVar12;
FUN_14016db50(uVar12);
local_8b0 = 1;
puVar11 = puVar10 + -1;
*puVar11 = *puVar11 - 1;
if (*puVar11 == 0) {
FUN_14016d970(puVar10 + -2);
}
FUN_14016dbe0(uVar12);
}
if (((local_9d0 != (undefined *)0x0) && (local_9d0 != PTR_DAT_140344098)) &&
(local_9d0 + -8 != (undefined *)0x0)) {
uVar12 = FUN_14016d8c0();
local_900 = uVar12;
FUN_14016db50(uVar12);
local_8f8 = 1;
piVar2 = (int *)(local_9d0 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(local_9d0 + -8);
}
FUN_14016dbe0(uVar12);
}
local_9d0 = PTR_DAT_140344098;
if (((puVar13 != (uint *)0x0) && (puVar13 != (uint *)PTR_DAT_140344098)) &&
(puVar13 + -2 != (uint *)0x0)) {
uVar12 = FUN_14016d8c0();
local_8f0 = uVar12;
FUN_14016db50(uVar12);
local_8e8 = 1;
puVar10 = puVar13 + -1;
*puVar10 = *puVar10 - 1;
if (*puVar10 == 0) {
FUN_14016d970(puVar13 + -2);
}
FUN_14016dbe0(uVar12);
}
if (((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_140344098)) &&
(puVar20 + -2 != (uint *)0x0)) {
uVar12 = FUN_14016d8c0();
local_8c8 = uVar12;
FUN_14016db50(uVar12);
local_8c0 = 1;
puVar13 = puVar20 + -1;
*puVar13 = *puVar13 - 1;
if (*puVar13 == 0) {
FUN_14016d970(puVar20 + -2);
}
FUN_14016dbe0(uVar12);
}
if (((puVar22 != (undefined *)0x0) && (puVar22 != PTR_DAT_140344098)) &&
(2 < *(int *)(puVar22 + -8))) {
local_778 = local_770;
FUN_14015b060(&local_778,puVar22,3);
puVar14 = local_778;
FUN_14016d8c0();
puVar20 = (uint *)PTR_DAT_1403440a0;
local_a08 = (uint *)PTR_DAT_1403440a0;
uVar6 = FUN_14016d740(puVar14);
iVar9 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_1403440a0)) {
iVar9 = *(int *)((longlong)puVar20 + -8);
}
uVar7 = uVar6;
if ((int)uVar6 <= iVar9) {
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (uVar7 = 0, puVar20 != (uint *)PTR_DAT_1403440a0)) {
uVar7 = *(uint *)((longlong)puVar20 + -8);
}
}
uVar21 = 1;
if (1 < (int)uVar7) {
uVar21 = uVar7;
}
iVar9 = 0;
if ((puVar20 != (uint *)0x0) && (iVar9 = 0, puVar20 != (uint *)PTR_DAT_1403440a0)) {
iVar9 = *(int *)((longlong)puVar20 + -8);
}
if (iVar9 < (int)uVar21) {
if (puVar20 == (uint *)0x0) {
puVar20 = (uint *)PTR_DAT_1403440a0;
}
local_a08 = puVar20;
if ((int)uVar21 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar21 == 0) {
FUN_14004eb70(&local_a08);
}
else {
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_1403440a0)) {
uVar7 = puVar20[-2];
}
if (uVar21 != uVar7) {
puVar13 = (uint *)FUN_14016d940((longlong)(int)uVar21 * 2 + 10);
if (puVar13 != (uint *)0x0) {
*puVar13 = 0;
puVar13[1] = 1;
}
*puVar13 = uVar21;
uVar7 = 0;
if ((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_1403440a0)) {
uVar7 = puVar20[-2];
}
puVar10 = (uint *)PTR_DAT_1403440a0;
if ((int)uVar21 < (int)uVar7) {
LAB_1401f90ac:
if (puVar20 != (uint *)0x0) {
puVar10 = puVar20;
}
}
else {
uVar21 = uVar8;
if (puVar20 != (uint *)0x0) {
if (puVar20 != (uint *)PTR_DAT_1403440a0) {
uVar21 = puVar20[-2];
}
goto LAB_1401f90ac;
}
}
FUN_14016d770(puVar13 + 2,puVar10,uVar21);
FUN_14004eb70(&local_a08);
local_a08 = puVar13 + 2;
}
}
}
FUN_14004e850(&local_a08);
puVar20 = local_a08;
puVar13 = local_a08;
if (local_a08 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_1403440a0;
}
FUN_14016d770(puVar13,puVar14,uVar6);
puVar13 = puVar20;
if (puVar20 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_1403440a0;
}
uVar6 = FUN_14016d740(puVar13);
plVar1 = local_9e0;
uVar8 = 0;
if (0 < (int)uVar6) {
uVar8 = uVar6;
}
uVar6 = 0;
if ((puVar20 != (uint *)0x0) && (uVar6 = 0, puVar20 != (uint *)PTR_DAT_1403440a0)) {
uVar6 = puVar20[-2];
}
if (((int)uVar8 < (int)uVar6) || (uVar8 = 0, puVar20 == (uint *)0x0)) {
LAB_1401f9140:
if (((puVar20 != (uint *)PTR_DAT_1403440a0) && (puVar20 != (uint *)0x0)) &&
(puVar20 + -2 != (uint *)0x0)) {
puVar20[-2] = uVar8;
*(ushort *)((longlong)puVar20 + (longlong)(int)uVar8 * 2) = 0;
}
}
else if (puVar20 != (uint *)PTR_DAT_1403440a0) {
uVar8 = puVar20[-2];
goto LAB_1401f9140;
}
puVar13 = puVar20;
if (puVar20 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_1403440a0;
}
if (puVar13 == (uint *)0x0) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80004005);
}
uVar8 = 0;
puVar13 = puVar20;
if (puVar20 == (uint *)0x0) {
puVar13 = (uint *)PTR_DAT_1403440a0;
}
uVar3 = (ushort)*puVar13;
while (uVar3 != 0) {
uVar8 = uVar8 * 0x21 + (uint)uVar3;
puVar13 = (uint *)((longlong)puVar13 + 2);
uVar3 = *(ushort *)puVar13;
}
uVar6 = *(uint *)(local_9e0 + 0x1a);
if (local_9e0[0x16] != 0) {
plVar4 = *(longlong **)(local_9e0[0x16] + ((ulonglong)uVar8 % (ulonglong)uVar6) * 8);
while( true ) {
if ((plVar4 == (longlong *)0x0) ||
((uint)((ulonglong)uVar8 % (ulonglong)uVar6) !=
*(uint *)(plVar4 + 4) % *(uint *)(plVar1 + 0x1a))) goto LAB_1401f9224;
puVar17 = (undefined *)*plVar4;
if ((undefined *)*plVar4 == (undefined *)0x0) {
puVar17 = PTR_DAT_1403440a0;
}
iVar9 = FUN_14016d780(puVar17);
if (iVar9 == 0) break;
plVar4 = (longlong *)plVar4[2];
}
if (plVar4 != (longlong *)0x0) goto LAB_1401f9238;
}
LAB_1401f9224:
puVar14 = (undefined1 *)FUN_1401f7660(plVar1 + 0x15,&local_a08);
*puVar14 = 0;
LAB_1401f9238:
if (((puVar20 != (uint *)0x0) && (puVar20 != (uint *)PTR_DAT_1403440a0)) &&
(puVar20 + -2 != (uint *)0x0)) {
uVar12 = FUN_14016d8c0();
local_8d8 = uVar12;
FUN_14016db50(uVar12);
local_8d0 = 1;
puVar13 = puVar20 + -1;
*puVar13 = *puVar13 - 1;
if (*puVar13 == 0) {
FUN_14016d970(puVar20 + -2);
}
FUN_14016dbe0(uVar12);
}
if (local_778 != local_770) {
free(local_778);
}
}
if (((puVar22 != (undefined *)0x0) && (puVar22 != PTR_DAT_140344098)) &&
(puVar22 + -8 != (undefined *)0x0)) {
uVar12 = FUN_14016d8c0();
local_910 = uVar12;
FUN_14016db50(uVar12);
local_908 = 1;
piVar2 = (int *)(puVar22 + -4);
*piVar2 = *piVar2 + -1;
if (*piVar2 == 0) {
FUN_14016d970(puVar22 + -8);
}
FUN_14016dbe0(uVar12);
}
LAB_1401f93fd:
if (3 < *(int *)(param_2 + 0x2490)) {
return;
}
*(undefined8 *)(param_2 + 0x2490) = 4;
return;
}