432 lines
12 KiB
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;
|
|
}
|
|
|