/* 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; }