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

432 lines
12 KiB
C

/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c
* Ghidra 12.1.2 decompiler output for 0x1401bd720 FUN_1401bd720
* Pseudocode, not original source. */
/* WARNING: Function: __chkstk replaced with injection: alloca_probe */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1401bd720(undefined4 *param_1)
{
longlong *plVar1;
undefined *puVar2;
int *piVar3;
undefined4 *puVar4;
undefined4 *puVar5;
undefined1 *puVar6;
char cVar7;
errno_t eVar8;
uint uVar9;
uint uVar10;
uint *puVar11;
uint *puVar12;
undefined8 uVar13;
uint uVar14;
ulonglong uVar15;
undefined *puVar16;
uint *puVar17;
uint *puVar18;
uint uVar19;
ulonglong uVar20;
uint uVar21;
uint uVar22;
undefined1 auStack_2c58 [32];
uint *local_2c38;
uint *local_2c30;
undefined8 local_2c28;
undefined1 local_2c20;
undefined *local_2c18;
undefined *local_2c10;
int local_2c08 [2];
undefined *local_2c00;
undefined4 *local_2bf8;
undefined8 local_2bf0;
undefined1 *local_2be8;
undefined1 local_2be0 [136];
undefined1 *local_2b58;
undefined1 local_2b50 [136];
undefined1 local_2ac8 [1568];
wchar_t local_24a8 [548];
undefined1 local_2060 [8196];
undefined2 local_5c;
undefined4 local_58;
undefined4 local_54;
ulonglong local_38;
undefined8 local_30;
local_30 = 0x1401bd73c;
local_2bf0 = 0xfffffffffffffffe;
local_38 = DAT_1403463c0 ^ (ulonglong)auStack_2c58;
local_2bf8 = param_1;
FUN_14019be90(local_2ac8);
plVar1 = (longlong *)(param_1 + 4);
uVar20 = 0;
uVar22 = 0;
uVar15 = uVar20;
if ((ulonglong *)*plVar1 != (ulonglong *)0x0) {
uVar15 = *(ulonglong *)*plVar1;
}
FUN_14019beb0(local_2ac8,uVar15);
uVar15 = uVar20;
if ((ulonglong *)*plVar1 != (ulonglong *)0x0) {
uVar15 = *(ulonglong *)*plVar1;
}
FUN_14019bf10(local_2ac8,uVar15);
FUN_14019bf70(local_2ac8,0);
uVar15 = uVar20;
if ((ulonglong *)*plVar1 != (ulonglong *)0x0) {
uVar15 = *(ulonglong *)*plVar1;
}
cVar7 = FUN_14019bfd0(local_2ac8,uVar15,local_2c08);
if (cVar7 == '\0') {
return;
}
uVar19 = 0;
if (local_2c08[0] != 0) {
cVar7 = FUN_1401bd0e0(param_1);
if (cVar7 != '\0') {
return;
}
local_2c18 = (undefined *)0x0;
FUN_1401786c0(plVar1,&local_2c18);
*param_1 = 3;
return;
}
uVar15 = uVar20;
if ((ulonglong *)*plVar1 != (ulonglong *)0x0) {
uVar15 = *(ulonglong *)*plVar1;
}
FUN_14019be10(uVar15,1);
param_1[10] = 0;
FUN_1401bc8c0(local_24a8);
local_58 = 2;
local_54 = 4;
local_5c = 0x50;
eVar8 = wcsncpy_s(local_24a8,0x21,L"http",4);
if (eVar8 != 0) {
if (eVar8 == 0xc) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x8007000e);
}
if ((eVar8 == 0x16) || (eVar8 == 0x22)) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80070057);
}
if (eVar8 != 0x50) {
/* WARNING: Subroutine does not return */
FUN_14004dc60(0x80004005);
}
}
puVar16 = *(undefined **)(param_1 + 2);
if (*(undefined **)(param_1 + 2) == (undefined *)0x0) {
puVar16 = PTR_DAT_1403440a0;
}
FUN_1401bc810(local_24a8,puVar16);
FUN_1401bcdb0(local_24a8,0);
FUN_14004c050(param_1 + 2,&DAT_1402a4aa0);
puVar16 = PTR_s_GET__PNReport_ReportError_php_Te_1403456e8;
FUN_14016d8c0();
puVar18 = (uint *)PTR_DAT_140344098;
local_2c30 = (uint *)PTR_DAT_140344098;
uVar9 = FUN_14016d7e0(puVar16);
uVar15 = uVar20;
if ((puVar18 != (uint *)0x0) && (uVar15 = 0, puVar18 != (uint *)PTR_DAT_140344098)) {
uVar15 = (ulonglong)*(uint *)((longlong)puVar18 + -8);
}
uVar10 = uVar9;
if ((((int)uVar9 <= (int)uVar15) && (uVar10 = uVar19, puVar18 != (uint *)0x0)) &&
(puVar18 != (uint *)PTR_DAT_140344098)) {
uVar10 = *(uint *)((longlong)puVar18 + -8);
}
uVar21 = 1;
if (1 < (int)uVar10) {
uVar21 = uVar10;
}
uVar10 = uVar19;
if ((puVar18 != (uint *)0x0) && (puVar18 != (uint *)PTR_DAT_140344098)) {
uVar10 = *(uint *)((longlong)puVar18 + -8);
}
uVar14 = 0;
if ((int)uVar10 < (int)uVar21) {
if (puVar18 == (uint *)0x0) {
puVar18 = (uint *)PTR_DAT_140344098;
}
local_2c30 = puVar18;
if ((int)uVar21 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar21 == 0) {
FUN_14004f5a0(&local_2c30);
}
else {
uVar10 = uVar19;
if ((puVar18 != (uint *)0x0) && (puVar18 != (uint *)PTR_DAT_140344098)) {
uVar10 = puVar18[-2];
}
if (uVar21 != uVar10) {
puVar11 = (uint *)FUN_14016d940((longlong)(int)uVar21 + 9);
if (puVar11 != (uint *)0x0) {
*puVar11 = 0;
puVar11[1] = 1;
}
*puVar11 = uVar21;
uVar10 = uVar14;
if ((puVar18 != (uint *)0x0) && (puVar18 != (uint *)PTR_DAT_140344098)) {
uVar10 = puVar18[-2];
}
puVar12 = (uint *)PTR_DAT_140344098;
if ((int)uVar21 < (int)uVar10) {
LAB_1401bd9c0:
if (puVar18 != (uint *)0x0) {
puVar12 = puVar18;
}
}
else {
uVar21 = uVar19;
if (puVar18 != (uint *)0x0) {
if (puVar18 != (uint *)PTR_DAT_140344098) {
uVar21 = puVar18[-2];
}
goto LAB_1401bd9c0;
}
}
FUN_14016d810(puVar11 + 2,puVar12,uVar21);
FUN_14004f5a0(&local_2c30);
local_2c30 = puVar11 + 2;
}
}
}
FUN_14013c600(&local_2c30);
puVar18 = local_2c30;
puVar11 = local_2c30;
if (local_2c30 == (uint *)0x0) {
puVar11 = (uint *)PTR_DAT_140344098;
}
FUN_14016d810(puVar11,puVar16,uVar9);
puVar11 = puVar18;
if (puVar18 == (uint *)0x0) {
puVar11 = (uint *)PTR_DAT_140344098;
}
uVar10 = FUN_14016d7e0(puVar11);
uVar9 = uVar22;
if (0 < (int)uVar10) {
uVar9 = uVar10;
}
uVar10 = uVar14;
if ((puVar18 != (uint *)0x0) && (puVar18 != (uint *)PTR_DAT_140344098)) {
uVar10 = puVar18[-2];
}
if (((int)uVar9 < (int)uVar10) || (uVar9 = uVar14, puVar18 == (uint *)0x0)) {
LAB_1401bda51:
if (((puVar18 != (uint *)PTR_DAT_140344098) && (puVar18 != (uint *)0x0)) &&
(puVar11 = puVar18 + -2, puVar11 != (uint *)0x0)) {
*puVar11 = uVar9;
*(undefined1 *)((longlong)(int)uVar9 + 8 + (longlong)puVar11) = 0;
}
}
else if (puVar18 != (uint *)PTR_DAT_140344098) {
uVar9 = puVar18[-2];
goto LAB_1401bda51;
}
local_2be8 = local_2be0;
FUN_14016ac90(&local_2be8,local_2060,3);
puVar6 = local_2be8;
FUN_14016d8c0();
puVar11 = (uint *)PTR_DAT_140344098;
local_2c38 = (uint *)PTR_DAT_140344098;
uVar9 = FUN_14016d7e0(puVar6);
uVar15 = uVar20;
if ((puVar11 != (uint *)0x0) && (uVar15 = 0, puVar11 != (uint *)PTR_DAT_140344098)) {
uVar15 = (ulonglong)*(uint *)((longlong)puVar11 + -8);
}
uVar10 = uVar9;
if ((((int)uVar9 <= (int)uVar15) && (uVar10 = uVar14, puVar11 != (uint *)0x0)) &&
(uVar10 = uVar22, puVar11 != (uint *)PTR_DAT_140344098)) {
uVar10 = *(uint *)((longlong)puVar11 + -8);
}
uVar21 = 1;
if (1 < (int)uVar10) {
uVar21 = uVar10;
}
uVar10 = uVar22;
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_140344098)) {
uVar10 = *(uint *)((longlong)puVar11 + -8);
}
if ((int)uVar10 < (int)uVar21) {
if (puVar11 == (uint *)0x0) {
puVar11 = (uint *)PTR_DAT_140344098;
}
local_2c38 = puVar11;
if ((int)uVar21 < 0) {
/* WARNING: Subroutine does not return */
FUN_14016d6b0();
}
if (uVar21 == 0) {
FUN_14004f5a0(&local_2c38);
}
else {
uVar10 = uVar14;
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_140344098)) {
uVar10 = puVar11[-2];
}
if (uVar21 != uVar10) {
puVar12 = (uint *)FUN_14016d940((longlong)(int)uVar21 + 9);
if (puVar12 != (uint *)0x0) {
*puVar12 = 0;
puVar12[1] = 1;
}
*puVar12 = uVar21;
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_140344098)) {
uVar14 = puVar11[-2];
}
puVar17 = (uint *)PTR_DAT_140344098;
if ((int)uVar21 < (int)uVar14) {
LAB_1401bdb84:
if (puVar11 != (uint *)0x0) {
puVar17 = puVar11;
}
}
else {
uVar21 = uVar19;
if (puVar11 != (uint *)0x0) {
if (puVar11 != (uint *)PTR_DAT_140344098) {
uVar21 = puVar11[-2];
}
goto LAB_1401bdb84;
}
}
FUN_14016d810(puVar12 + 2,puVar17,uVar21);
FUN_14004f5a0(&local_2c38);
local_2c38 = puVar12 + 2;
}
}
}
FUN_14013c600(&local_2c38);
puVar11 = local_2c38;
puVar12 = local_2c38;
if (local_2c38 == (uint *)0x0) {
puVar12 = (uint *)PTR_DAT_140344098;
}
FUN_14016d810(puVar12,puVar6,uVar9);
puVar12 = puVar11;
if (puVar11 == (uint *)0x0) {
puVar12 = (uint *)PTR_DAT_140344098;
}
uVar9 = FUN_14016d7e0(puVar12);
uVar19 = uVar22;
if (0 < (int)uVar9) {
uVar19 = uVar9;
}
uVar9 = uVar22;
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_140344098)) {
uVar9 = puVar11[-2];
}
if (((int)uVar9 <= (int)uVar19) && (uVar19 = uVar22, puVar11 != (uint *)0x0)) {
if (puVar11 == (uint *)PTR_DAT_140344098) goto LAB_1401bdc32;
uVar19 = puVar11[-2];
}
if (((puVar11 != (uint *)PTR_DAT_140344098) && (puVar11 != (uint *)0x0)) &&
(puVar12 = puVar11 + -2, puVar12 != (uint *)0x0)) {
*puVar12 = uVar19;
*(undefined1 *)((longlong)(int)uVar19 + 8 + (longlong)puVar12) = 0;
}
LAB_1401bdc32:
if (local_2be8 != local_2be0) {
free(local_2be8);
}
FUN_14016d8c0();
local_2c10 = PTR_DAT_140344098;
local_2b58 = local_2b50;
FUN_14016ac90(&local_2b58,PTR_u_www_nettention_co_kr_1403456d8,3);
FUN_140170320(&local_2c10,PTR_s_HTTP_1_1_User_Agent__Mozilla_5_0_1403456f0,local_2b58);
if (local_2b58 != local_2b50) {
free(local_2b58);
}
uVar13 = FUN_1401bd540(&local_2c18,&local_2c30,&local_2c38);
uVar13 = FUN_1401bd540(&local_2c00,uVar13,&local_2c10);
puVar4 = local_2bf8;
FUN_14004f4d0(local_2bf8 + 8,uVar13);
if (((local_2c00 != (undefined *)0x0) && (local_2c00 != PTR_DAT_140344098)) &&
(local_2c00 + -8 != (undefined *)0x0)) {
uVar13 = FUN_14016d8c0();
local_2c28 = uVar13;
FUN_14016db50(uVar13);
local_2c20 = 1;
piVar3 = (int *)(local_2c00 + -4);
*piVar3 = *piVar3 + -1;
if (*piVar3 == 0) {
FUN_14016d970(local_2c00 + -8);
}
FUN_14016dbe0(uVar13);
}
local_2c00 = PTR_DAT_140344098;
if (((local_2c18 != (undefined *)0x0) && (local_2c18 != PTR_DAT_140344098)) &&
(local_2c18 + -8 != (undefined *)0x0)) {
uVar13 = FUN_14016d8c0();
local_2c28 = uVar13;
FUN_14016db50(uVar13);
local_2c20 = 1;
piVar3 = (int *)(local_2c18 + -4);
*piVar3 = *piVar3 + -1;
if (*piVar3 == 0) {
FUN_14016d970(local_2c18 + -8);
}
FUN_14016dbe0(uVar13);
}
puVar5 = local_2bf8;
puVar16 = *(undefined **)(puVar4 + 8);
if ((puVar16 != (undefined *)0x0) && (puVar16 != PTR_DAT_140344098)) {
uVar22 = *(uint *)(puVar16 + -8);
}
if (puVar16 == (undefined *)0x0) {
puVar16 = PTR_DAT_140344098;
}
if ((ulonglong *)*plVar1 != (ulonglong *)0x0) {
uVar20 = *(ulonglong *)*plVar1;
}
FUN_14019d730(uVar20,puVar16 + (int)local_2bf8[10],(uVar22 - local_2bf8[10]) + 1);
puVar16 = local_2c10;
*puVar5 = 2;
if (((local_2c10 != (undefined *)0x0) && (local_2c10 != PTR_DAT_140344098)) &&
(puVar2 = local_2c10 + -8, puVar2 != (undefined *)0x0)) {
uVar13 = FUN_14016d8c0();
local_2c28 = uVar13;
FUN_14016db50(uVar13);
local_2c20 = 1;
piVar3 = (int *)(puVar16 + -4);
*piVar3 = *piVar3 + -1;
if (*piVar3 == 0) {
FUN_14016d970(puVar2);
}
FUN_14016dbe0(uVar13);
}
if (((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_140344098)) &&
(puVar11 + -2 != (uint *)0x0)) {
uVar13 = FUN_14016d8c0();
local_2c28 = uVar13;
FUN_14016db50(uVar13);
local_2c20 = 1;
puVar12 = puVar11 + -1;
*puVar12 = *puVar12 - 1;
if (*puVar12 == 0) {
FUN_14016d970(puVar11 + -2);
}
FUN_14016dbe0(uVar13);
}
if (((puVar18 != (uint *)0x0) && (puVar18 != (uint *)PTR_DAT_140344098)) &&
(puVar18 + -2 != (uint *)0x0)) {
uVar13 = FUN_14016d8c0();
local_2c28 = uVar13;
FUN_14016db50(uVar13);
local_2c20 = 1;
puVar11 = puVar18 + -1;
*puVar11 = *puVar11 - 1;
if (*puVar11 == 0) {
FUN_14016d970(puVar18 + -2);
}
FUN_14016dbe0(uVar13);
}
return;
}