459 lines
14 KiB
C
459 lines
14 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x14006ef70 FUN_14006ef70
|
|
* 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_14006ef70(undefined4 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
undefined *puVar2;
|
|
undefined4 *puVar3;
|
|
undefined4 *puVar4;
|
|
errno_t eVar5;
|
|
uint uVar6;
|
|
uint uVar7;
|
|
uint uVar8;
|
|
uint uVar9;
|
|
undefined8 uVar10;
|
|
uint *puVar11;
|
|
uint *puVar12;
|
|
longlong *plVar13;
|
|
longlong *plVar14;
|
|
longlong *plVar15;
|
|
int *piVar16;
|
|
longlong lVar17;
|
|
char **ppcVar18;
|
|
char *pcVar19;
|
|
undefined *puVar20;
|
|
wchar_t *pwVar21;
|
|
undefined2 *puVar22;
|
|
LPCWSTR pWVar23;
|
|
uint *puVar24;
|
|
undefined8 *puVar25;
|
|
uint *puVar26;
|
|
uint uVar27;
|
|
uint uVar28;
|
|
wchar_t *pwVar29;
|
|
undefined8 uVar30;
|
|
ulonglong uVar31;
|
|
undefined **ppuVar32;
|
|
undefined1 auStack_2c58 [32];
|
|
uint *local_2c38;
|
|
uint *local_2c30;
|
|
longlong *local_2c28;
|
|
undefined1 local_2c20;
|
|
undefined *local_2c18;
|
|
undefined *local_2c10;
|
|
int local_2c08 [2];
|
|
undefined *local_2c00;
|
|
undefined4 *local_2bf8;
|
|
undefined8 local_2bf0;
|
|
char *local_2be8;
|
|
char local_2be0 [136];
|
|
undefined1 *local_2b58;
|
|
undefined1 local_2b50 [136];
|
|
undefined4 local_2ac8 [392];
|
|
wchar_t local_24a8 [548];
|
|
WCHAR local_2060 [4098];
|
|
undefined2 local_5c;
|
|
undefined4 local_58;
|
|
undefined4 local_54;
|
|
ulonglong local_38;
|
|
undefined8 local_30;
|
|
|
|
local_30 = 0x14006ef8c;
|
|
local_2bf0 = 0xfffffffffffffffe;
|
|
local_38 = DAT_1401ac5a0 ^ (ulonglong)auStack_2c58;
|
|
local_2bf8 = param_1;
|
|
FUN_140071820(local_2ac8);
|
|
plVar1 = (longlong *)(param_1 + 4);
|
|
plVar15 = (longlong *)0x0;
|
|
uVar28 = 0;
|
|
plVar13 = plVar15;
|
|
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
|
|
plVar13 = *(longlong **)*plVar1;
|
|
}
|
|
FUN_140071840((longlong)local_2ac8,(longlong)plVar13);
|
|
plVar13 = plVar15;
|
|
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
|
|
plVar13 = *(longlong **)*plVar1;
|
|
}
|
|
FUN_1400718a0((longlong)local_2ac8,(longlong)plVar13);
|
|
FUN_140071900((longlong)local_2ac8,0);
|
|
plVar13 = plVar15;
|
|
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
|
|
plVar13 = *(longlong **)*plVar1;
|
|
}
|
|
piVar16 = local_2c08;
|
|
uVar10 = FUN_140071960((longlong)local_2ac8,(longlong)plVar13,piVar16);
|
|
if ((char)uVar10 == '\0') {
|
|
return;
|
|
}
|
|
uVar27 = 0;
|
|
if (local_2c08[0] != 0) {
|
|
lVar17 = FUN_14006e930((longlong)param_1,plVar13,piVar16,param_4);
|
|
if ((char)lVar17 != '\0') {
|
|
return;
|
|
}
|
|
local_2c18 = (undefined *)0x0;
|
|
FUN_14006e8a0(plVar1,(longlong *)&local_2c18);
|
|
*param_1 = 3;
|
|
return;
|
|
}
|
|
plVar13 = plVar15;
|
|
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
|
|
plVar13 = *(longlong **)*plVar1;
|
|
}
|
|
FUN_1400717a0((longlong)plVar13,'\x01');
|
|
param_1[10] = 0;
|
|
FUN_14006ddf0(local_24a8);
|
|
local_58 = 2;
|
|
local_54 = 4;
|
|
local_5c = 0x50;
|
|
uVar10 = 4;
|
|
pwVar29 = L"http";
|
|
eVar5 = wcsncpy_s(local_24a8,0x21,L"http",4);
|
|
if (eVar5 != 0) {
|
|
if (eVar5 == 0xc) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_1400064e0(0x8007000e);
|
|
}
|
|
if ((eVar5 == 0x16) || (eVar5 == 0x22)) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_1400064e0(0x80070057);
|
|
}
|
|
if (eVar5 != 0x50) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_1400064e0(0x80004005);
|
|
}
|
|
}
|
|
pwVar21 = *(wchar_t **)(param_1 + 2);
|
|
if (*(wchar_t **)(param_1 + 2) == (wchar_t *)0x0) {
|
|
pwVar21 = (wchar_t *)PTR_DAT_1401ac010;
|
|
}
|
|
FUN_14006dd40((longlong)local_24a8,pwVar21);
|
|
FUN_14006e2b0(local_24a8,0);
|
|
puVar22 = &DAT_14015cd00;
|
|
plVar13 = (longlong *)(param_1 + 2);
|
|
FUN_140008030(plVar13,&DAT_14015cd00,pwVar29,uVar10);
|
|
puVar20 = PTR_s_GET__PNReport_ReportError_php_Te_1401ac298;
|
|
FUN_14006cb70(plVar13,puVar22,pwVar29,uVar10);
|
|
puVar26 = (uint *)PTR_DAT_1401ac008;
|
|
local_2c30 = (uint *)PTR_DAT_1401ac008;
|
|
uVar6 = FUN_14006ca90(puVar20);
|
|
uVar9 = uVar27;
|
|
if ((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar9 = *(uint *)((longlong)puVar26 + -8);
|
|
}
|
|
uVar7 = uVar6;
|
|
if ((((int)uVar6 <= (int)uVar9) && (uVar7 = uVar27, puVar26 != (uint *)0x0)) &&
|
|
(puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = *(uint *)((longlong)puVar26 + -8);
|
|
}
|
|
uVar9 = 1;
|
|
if (1 < (int)uVar7) {
|
|
uVar9 = uVar7;
|
|
}
|
|
uVar7 = uVar27;
|
|
if ((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = *(uint *)((longlong)puVar26 + -8);
|
|
}
|
|
if ((int)uVar7 < (int)uVar9) {
|
|
if (puVar26 == (uint *)0x0) {
|
|
puVar26 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
local_2c30 = puVar26;
|
|
if ((int)uVar9 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be00();
|
|
}
|
|
if (uVar9 == 0) {
|
|
FUN_140008440((longlong *)&local_2c30);
|
|
}
|
|
else {
|
|
uVar7 = uVar27;
|
|
if ((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = puVar26[-2];
|
|
}
|
|
if (uVar9 != uVar7) {
|
|
puVar11 = (uint *)FUN_14006cbf0((longlong)(int)uVar9 + 9);
|
|
if (puVar11 != (uint *)0x0) {
|
|
*puVar11 = 0;
|
|
puVar11[1] = 1;
|
|
}
|
|
*puVar11 = uVar9;
|
|
uVar7 = uVar27;
|
|
if ((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = puVar26[-2];
|
|
}
|
|
puVar12 = (uint *)PTR_DAT_1401ac008;
|
|
if ((int)uVar9 < (int)uVar7) {
|
|
LAB_14006f210:
|
|
if (puVar26 != (uint *)0x0) {
|
|
puVar12 = puVar26;
|
|
}
|
|
}
|
|
else {
|
|
uVar9 = uVar27;
|
|
if (puVar26 != (uint *)0x0) {
|
|
if (puVar26 != (uint *)PTR_DAT_1401ac008) {
|
|
uVar9 = puVar26[-2];
|
|
}
|
|
goto LAB_14006f210;
|
|
}
|
|
}
|
|
FUN_14006cac0(puVar11 + 2,puVar12,uVar9);
|
|
FUN_140008440((longlong *)&local_2c30);
|
|
local_2c30 = puVar11 + 2;
|
|
}
|
|
}
|
|
}
|
|
FUN_140053e30((longlong *)&local_2c30);
|
|
puVar26 = local_2c30;
|
|
puVar11 = local_2c30;
|
|
if (local_2c30 == (uint *)0x0) {
|
|
puVar11 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
FUN_14006cac0(puVar11,puVar20,uVar6);
|
|
puVar11 = puVar26;
|
|
if (puVar26 == (uint *)0x0) {
|
|
puVar11 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
uVar6 = FUN_14006ca90((char *)puVar11);
|
|
uVar9 = uVar28;
|
|
if (0 < (int)uVar6) {
|
|
uVar9 = uVar6;
|
|
}
|
|
uVar7 = 0;
|
|
uVar6 = uVar7;
|
|
if ((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar6 = puVar26[-2];
|
|
}
|
|
if (((int)uVar9 < (int)uVar6) || (uVar9 = uVar7, puVar26 == (uint *)0x0)) {
|
|
LAB_14006f2a1:
|
|
if (((puVar26 != (uint *)PTR_DAT_1401ac008) && (puVar26 != (uint *)0x0)) &&
|
|
(puVar11 = puVar26 + -2, puVar11 != (uint *)0x0)) {
|
|
*puVar11 = uVar9;
|
|
*(undefined1 *)((longlong)(int)uVar9 + 8 + (longlong)puVar11) = 0;
|
|
}
|
|
}
|
|
else if (puVar26 != (uint *)PTR_DAT_1401ac008) {
|
|
uVar9 = puVar26[-2];
|
|
goto LAB_14006f2a1;
|
|
}
|
|
local_2be8 = local_2be0;
|
|
uVar30 = 3;
|
|
pWVar23 = local_2060;
|
|
ppcVar18 = &local_2be8;
|
|
FUN_14006b570((longlong *)ppcVar18,pWVar23,3);
|
|
pcVar19 = local_2be8;
|
|
FUN_14006cb70(ppcVar18,pWVar23,uVar30,uVar10);
|
|
puVar11 = (uint *)PTR_DAT_1401ac008;
|
|
local_2c38 = (uint *)PTR_DAT_1401ac008;
|
|
uVar6 = FUN_14006ca90(pcVar19);
|
|
uVar9 = uVar7;
|
|
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar9 = *(uint *)((longlong)puVar11 + -8);
|
|
}
|
|
uVar8 = uVar6;
|
|
if ((((int)uVar6 <= (int)uVar9) && (uVar8 = uVar27, puVar11 != (uint *)0x0)) &&
|
|
(puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar8 = *(uint *)((longlong)puVar11 + -8);
|
|
}
|
|
uVar9 = 1;
|
|
if (1 < (int)uVar8) {
|
|
uVar9 = uVar8;
|
|
}
|
|
uVar8 = uVar7;
|
|
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar8 = *(uint *)((longlong)puVar11 + -8);
|
|
}
|
|
if ((int)uVar8 < (int)uVar9) {
|
|
if (puVar11 == (uint *)0x0) {
|
|
puVar11 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
local_2c38 = puVar11;
|
|
if ((int)uVar9 < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14006be00();
|
|
}
|
|
if (uVar9 == 0) {
|
|
FUN_140008440((longlong *)&local_2c38);
|
|
}
|
|
else {
|
|
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = puVar11[-2];
|
|
}
|
|
if (uVar9 != uVar7) {
|
|
puVar12 = (uint *)FUN_14006cbf0((longlong)(int)uVar9 + 9);
|
|
if (puVar12 != (uint *)0x0) {
|
|
*puVar12 = 0;
|
|
puVar12[1] = 1;
|
|
}
|
|
*puVar12 = uVar9;
|
|
uVar7 = uVar28;
|
|
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar7 = puVar11[-2];
|
|
}
|
|
puVar24 = (uint *)PTR_DAT_1401ac008;
|
|
if ((int)uVar9 < (int)uVar7) {
|
|
LAB_14006f3d4:
|
|
if (puVar11 != (uint *)0x0) {
|
|
puVar24 = puVar11;
|
|
}
|
|
}
|
|
else {
|
|
uVar9 = uVar27;
|
|
if (puVar11 != (uint *)0x0) {
|
|
if (puVar11 != (uint *)PTR_DAT_1401ac008) {
|
|
uVar9 = puVar11[-2];
|
|
}
|
|
goto LAB_14006f3d4;
|
|
}
|
|
}
|
|
FUN_14006cac0(puVar12 + 2,puVar24,uVar9);
|
|
FUN_140008440((longlong *)&local_2c38);
|
|
local_2c38 = puVar12 + 2;
|
|
}
|
|
}
|
|
}
|
|
FUN_140053e30((longlong *)&local_2c38);
|
|
puVar11 = local_2c38;
|
|
puVar12 = local_2c38;
|
|
if (local_2c38 == (uint *)0x0) {
|
|
puVar12 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
uVar31 = (ulonglong)uVar6;
|
|
FUN_14006cac0(puVar12,pcVar19,uVar6);
|
|
puVar12 = puVar11;
|
|
if (puVar11 == (uint *)0x0) {
|
|
puVar12 = (uint *)PTR_DAT_1401ac008;
|
|
}
|
|
uVar9 = FUN_14006ca90((char *)puVar12);
|
|
uVar27 = uVar28;
|
|
if (0 < (int)uVar9) {
|
|
uVar27 = uVar9;
|
|
}
|
|
uVar9 = uVar28;
|
|
if ((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) {
|
|
uVar9 = puVar11[-2];
|
|
}
|
|
puVar12 = (uint *)PTR_DAT_1401ac008;
|
|
if (((int)uVar9 <= (int)uVar27) && (uVar27 = uVar28, puVar11 != (uint *)0x0)) {
|
|
if (puVar11 == (uint *)PTR_DAT_1401ac008) goto LAB_14006f482;
|
|
uVar27 = puVar11[-2];
|
|
}
|
|
if (((puVar11 != (uint *)PTR_DAT_1401ac008) && (puVar11 != (uint *)0x0)) &&
|
|
(puVar12 = puVar11 + -2, puVar12 != (uint *)0x0)) {
|
|
*puVar12 = uVar27;
|
|
*(undefined1 *)((longlong)(int)uVar27 + 8 + (longlong)puVar12) = 0;
|
|
}
|
|
LAB_14006f482:
|
|
pcVar19 = local_2be8;
|
|
if (local_2be8 != local_2be0) {
|
|
free(local_2be8);
|
|
}
|
|
FUN_14006cb70(pcVar19,puVar12,uVar31,uVar10);
|
|
local_2c10 = PTR_DAT_1401ac008;
|
|
local_2b58 = local_2b50;
|
|
FUN_14006b570((longlong *)&local_2b58,(LPCWSTR)PTR_u_www_nettention_co_kr_1401ac288,3);
|
|
FUN_14006e800((longlong *)&local_2c10,PTR_s_HTTP_1_1_User_Agent__Mozilla_5_0_1401ac2a0,local_2b58,
|
|
uVar10);
|
|
if (local_2b58 != local_2b50) {
|
|
free(local_2b58);
|
|
}
|
|
plVar13 = FUN_14006ed90((longlong *)&local_2c18,(longlong *)&local_2c30,(longlong *)&local_2c38,
|
|
uVar10);
|
|
ppuVar32 = &local_2c10;
|
|
plVar14 = FUN_14006ed90((longlong *)&local_2c00,plVar13,(longlong *)ppuVar32,uVar10);
|
|
puVar3 = local_2bf8;
|
|
plVar13 = (longlong *)(local_2bf8 + 8);
|
|
FUN_1400083a0(plVar13,plVar14,ppuVar32,uVar10);
|
|
if (((local_2c00 != (undefined *)0x0) && (local_2c00 != PTR_DAT_1401ac008)) &&
|
|
(local_2c00 + -8 != (undefined *)0x0)) {
|
|
plVar13 = (longlong *)FUN_14006cb70(plVar13,PTR_DAT_1401ac008,ppuVar32,uVar10);
|
|
local_2c28 = plVar13;
|
|
FUN_14006b350((int *)plVar13);
|
|
local_2c20 = 1;
|
|
piVar16 = (int *)(local_2c00 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_14006cc60(local_2c00 + -8);
|
|
}
|
|
FUN_14006b3e0((longlong)plVar13);
|
|
}
|
|
local_2c00 = PTR_DAT_1401ac008;
|
|
if (((local_2c18 != (undefined *)0x0) && (local_2c18 != PTR_DAT_1401ac008)) &&
|
|
(local_2c18 + -8 != (undefined *)0x0)) {
|
|
plVar13 = (longlong *)FUN_14006cb70(plVar13,PTR_DAT_1401ac008,ppuVar32,uVar10);
|
|
local_2c28 = plVar13;
|
|
FUN_14006b350((int *)plVar13);
|
|
local_2c20 = 1;
|
|
piVar16 = (int *)(local_2c18 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_14006cc60(local_2c18 + -8);
|
|
}
|
|
FUN_14006b3e0((longlong)plVar13);
|
|
}
|
|
puVar4 = local_2bf8;
|
|
puVar20 = *(undefined **)(puVar3 + 8);
|
|
if ((puVar20 != (undefined *)0x0) && (puVar20 != PTR_DAT_1401ac008)) {
|
|
uVar28 = *(uint *)(puVar20 + -8);
|
|
}
|
|
if (puVar20 == (undefined *)0x0) {
|
|
puVar20 = PTR_DAT_1401ac008;
|
|
}
|
|
if ((undefined8 *)*plVar1 != (undefined8 *)0x0) {
|
|
plVar15 = *(longlong **)*plVar1;
|
|
}
|
|
ppuVar32 = (undefined **)(ulonglong)((uVar28 - local_2bf8[10]) + 1);
|
|
puVar25 = (undefined8 *)(puVar20 + (int)local_2bf8[10]);
|
|
FUN_140073120((longlong)plVar15,puVar25,ppuVar32,uVar10);
|
|
puVar20 = local_2c10;
|
|
*puVar4 = 2;
|
|
if (((local_2c10 != (undefined *)0x0) && (local_2c10 != PTR_DAT_1401ac008)) &&
|
|
(puVar2 = local_2c10 + -8, puVar2 != (undefined *)0x0)) {
|
|
plVar15 = (longlong *)FUN_14006cb70(plVar15,puVar25,ppuVar32,uVar10);
|
|
local_2c28 = plVar15;
|
|
FUN_14006b350((int *)plVar15);
|
|
local_2c20 = 1;
|
|
piVar16 = (int *)(puVar20 + -4);
|
|
*piVar16 = *piVar16 + -1;
|
|
if (*piVar16 == 0) {
|
|
FUN_14006cc60(puVar2);
|
|
}
|
|
FUN_14006b3e0((longlong)plVar15);
|
|
}
|
|
if (((puVar11 != (uint *)0x0) && (puVar11 != (uint *)PTR_DAT_1401ac008)) &&
|
|
(puVar11 + -2 != (uint *)0x0)) {
|
|
plVar15 = (longlong *)FUN_14006cb70(plVar15,puVar25,ppuVar32,uVar10);
|
|
local_2c28 = plVar15;
|
|
FUN_14006b350((int *)plVar15);
|
|
local_2c20 = 1;
|
|
puVar12 = puVar11 + -1;
|
|
*puVar12 = *puVar12 - 1;
|
|
if (*puVar12 == 0) {
|
|
FUN_14006cc60(puVar11 + -2);
|
|
}
|
|
FUN_14006b3e0((longlong)plVar15);
|
|
}
|
|
if (((puVar26 != (uint *)0x0) && (puVar26 != (uint *)PTR_DAT_1401ac008)) &&
|
|
(puVar26 + -2 != (uint *)0x0)) {
|
|
piVar16 = (int *)FUN_14006cb70(plVar15,puVar25,ppuVar32,uVar10);
|
|
local_2c28 = (longlong *)piVar16;
|
|
FUN_14006b350(piVar16);
|
|
local_2c20 = 1;
|
|
puVar11 = puVar26 + -1;
|
|
*puVar11 = *puVar11 - 1;
|
|
if (*puVar11 == 0) {
|
|
FUN_14006cc60(puVar26 + -2);
|
|
}
|
|
FUN_14006b3e0((longlong)piVar16);
|
|
}
|
|
return;
|
|
}
|
|
|