Advertisement
Guest User

SC AntiCheat

a guest
Jul 16th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 21.38 KB | None | 0 0
  1. int wmain()
  2. {
  3.   int v0; // ecx
  4.   int v1; // eax
  5.   int v2; // ecx
  6.   int v3; // eax
  7.   int v4; // eax
  8.   int v5; // ecx
  9.   int v6; // eax
  10.   int v7; // ecx
  11.   int v8; // eax
  12.   int v10; // ecx
  13.   int v11; // eax
  14.   int v12; // eax
  15.   int v13; // eax
  16.   int v14; // esi
  17.   int v15; // eax
  18.   int v16; // esi
  19.   int v17; // eax
  20.   int v18; // ST18_4
  21.   int v19; // ST1C_4
  22.   signed int v20; // esi
  23.   int v21; // ecx
  24.   int v22; // eax
  25.   int v23; // ecx
  26.   const char *v24; // eax
  27.   const char *v25; // eax
  28.   const char *v26; // eax
  29.   int v27; // eax
  30.   const char *v28; // eax
  31.   int v29; // ecx
  32.   int v30; // ecx
  33.   int v31; // eax
  34.   int v32; // ecx
  35.   int v33; // eax
  36.   int v34; // ecx
  37.   int v35; // eax
  38.   int v36; // eax
  39.   int v37; // ecx
  40.   HRESULT v38; // esi
  41.   int v39; // eax
  42.   int v40; // edx
  43.   int v41; // ecx
  44.   int v42; // eax
  45.   ULONG v43; // eax
  46.   unsigned int v44; // ecx
  47.   const char *v45; // edx
  48.   int v46; // eax
  49.   struct _IP_ADAPTER_INFO *v47; // esi
  50.   size_t v48; // ecx
  51.   int *v49; // ecx
  52.   DWORD (__stdcall *v50)(HANDLE, DWORD); // edi
  53.   unsigned int v51; // esi
  54.   int v52; // esi
  55.   int v53; // esi
  56.   DWORD v54; // esi
  57.   int *v55; // esi
  58.   int v56; // eax
  59.   int v57; // edi
  60.   int v58; // ecx
  61.   int i; // esi
  62.   void *v60; // eax
  63.   int v61; // eax
  64.   bool v62; // ST3B_1
  65.   int v63; // eax
  66.   unsigned int v64; // eax
  67.   wchar_t *v65; // eax
  68.   void *v66; // esi
  69.   int *v67; // edi
  70.   int *v68; // esi
  71.   int v69; // eax
  72.   _DWORD *v70; // eax
  73.   DWORD (__stdcall *v71)(HANDLE, DWORD); // esi
  74.   void *v72; // eax
  75.   DWORD v73; // eax
  76.   OLECHAR *v74; // ecx
  77.   int v75; // eax
  78.   void *v76; // eax
  79.   int v77; // edi
  80.   unsigned int v78; // edx
  81.   int *v79; // ecx
  82.   int *v80; // esi
  83.   unsigned int v81; // ecx
  84.   int *v82; // eax
  85.   int v83; // eax
  86.   const char *v84; // esi
  87.   unsigned int v85; // esi
  88.   _DWORD *v86; // eax
  89.   const char *v87; // ecx
  90.   int v88; // ST18_4
  91.   int v89; // ST1C_4
  92.   signed int v90; // esi
  93.   int v91; // ecx
  94.   int v92; // eax
  95.   int v93; // ecx
  96.   const char *v94; // eax
  97.   int v95; // eax
  98.   int v96; // eax
  99.   int v97; // [esp-Ch] [ebp-DC0h]
  100.   int v98; // [esp-Ch] [ebp-DC0h]
  101.   int v99; // [esp-Ch] [ebp-DC0h]
  102.   int v100; // [esp-8h] [ebp-DBCh]
  103.   int v101; // [esp-8h] [ebp-DBCh]
  104.   int v102; // [esp-8h] [ebp-DBCh]
  105.   int v103; // [esp-8h] [ebp-DBCh]
  106.   char v104; // [esp+1Bh] [ebp-D99h]
  107.   unsigned int v105; // [esp+1Ch] [ebp-D98h]
  108.   const char *v106; // [esp+20h] [ebp-D94h]
  109.   unsigned __int8 v107; // [esp+24h] [ebp-D90h]
  110.   unsigned __int8 v108; // [esp+25h] [ebp-D8Fh]
  111.   int v109; // [esp+28h] [ebp-D8Ch]
  112.   int v110; // [esp+2Ch] [ebp-D88h]
  113.   int v111; // [esp+30h] [ebp-D84h]
  114.   int v112; // [esp+48h] [ebp-D6Ch]
  115.   ULONG SizePointer; // [esp+60h] [ebp-D54h]
  116.   DWORD nSize; // [esp+64h] [ebp-D50h]
  117.   HANDLE hHandle; // [esp+68h] [ebp-D4Ch]
  118.   int v116; // [esp+6Ch] [ebp-D48h]
  119.   char *v117; // [esp+70h] [ebp-D44h]
  120.   int v118; // [esp+80h] [ebp-D34h]
  121.   unsigned int v119; // [esp+84h] [ebp-D30h]
  122.   ULONG PhyAddrLen; // [esp+88h] [ebp-D2Ch]
  123.   int v121; // [esp+8Ch] [ebp-D28h]
  124.   DWORD dwProcessId[4]; // [esp+A4h] [ebp-D10h]
  125.   __int64 v123; // [esp+B4h] [ebp-D00h]
  126.   char *v124; // [esp+CCh] [ebp-CE8h]
  127.   int v125; // [esp+DCh] [ebp-CD8h]
  128.   unsigned int v126; // [esp+E0h] [ebp-CD4h]
  129.   int *v127; // [esp+E4h] [ebp-CD0h]
  130.   int v128; // [esp+F4h] [ebp-CC0h]
  131.   unsigned int v129; // [esp+F8h] [ebp-CBCh]
  132.   int v130; // [esp+FCh] [ebp-CB8h]
  133.   int v131; // [esp+10Ch] [ebp-CA8h]
  134.   unsigned int v132; // [esp+110h] [ebp-CA4h]
  135.   int v133; // [esp+114h] [ebp-CA0h]
  136.   unsigned int v134; // [esp+128h] [ebp-C8Ch]
  137.   void *v135; // [esp+12Ch] [ebp-C88h]
  138.   unsigned int v136; // [esp+140h] [ebp-C74h]
  139.   char v137; // [esp+144h] [ebp-C70h]
  140.   int v138; // [esp+154h] [ebp-C60h]
  141.   int v139; // [esp+158h] [ebp-C5Ch]
  142.   char v140; // [esp+15Ch] [ebp-C58h]
  143.   int v141; // [esp+16Ch] [ebp-C48h]
  144.   int v142; // [esp+170h] [ebp-C44h]
  145.   int v143; // [esp+174h] [ebp-C40h]
  146.   unsigned int v144; // [esp+188h] [ebp-C2Ch]
  147.   char v145; // [esp+18Ch] [ebp-C28h]
  148.   char v146; // [esp+23Ch] [ebp-B78h]
  149.   struct tagHW_PROFILE_INFOA HwProfileInfo; // [esp+2ECh] [ebp-AC8h]
  150.   struct WSAData WSAData; // [esp+36Ch] [ebp-A48h]
  151.   char pMacAddr; // [esp+4FCh] [ebp-8B8h]
  152.   WCHAR szUrlName[8]; // [esp+504h] [ebp-8B0h]
  153.   __int128 v151; // [esp+514h] [ebp-8A0h]
  154.   __int128 v152; // [esp+524h] [ebp-890h]
  155.   __int128 v153; // [esp+534h] [ebp-880h]
  156.   __int128 v154; // [esp+544h] [ebp-870h]
  157.   __int16 v155; // [esp+554h] [ebp-860h]
  158.   char cp; // [esp+56Ch] [ebp-848h]
  159.   WCHAR Filename[260]; // [esp+58Ch] [ebp-828h]
  160.   WCHAR Buffer[260]; // [esp+794h] [ebp-620h]
  161.   char v159; // [esp+99Ch] [ebp-418h]
  162.   int v160; // [esp+DB0h] [ebp-4h]
  163.  
  164.   nSize = 0;
  165.   _mm_store_si128((__m128i *)dwProcessId, (__m128i)0i64);
  166.   v123 = 0i64;
  167.   std::_Pad::_Pad((std::_Pad *)dwProcessId);
  168.   dwProcessId[0] = (DWORD)&std::_LaunchPad<std::_Bind<1,void,void (__cdecl *const)(void),>>::`vftable';
  169.  LODWORD(v123) = sub_44E1D0;
  170.  v160 = 0;
  171.  std::_Pad::_Launch((std::_Pad *)dwProcessId, (struct _Thrd_imp_t *)&hHandle);
  172.  std::_Pad::~_Pad((std::_Pad *)dwProcessId);
  173.  v160 = 1;
  174.  v1 = sub_4543C0(v0, "---------------------------------------------");
  175.  sub_4546A0(v1);
  176.  v3 = sub_4543C0(v2, "          SERB-CRAFT AntiCheat v");
  177.  v4 = sub_454750(v3, &dword_5B12C0);
  178.  sub_4546A0(v4);
  179.  v6 = sub_4543C0(v5, "---------------------------------------------");
  180.  sub_4546A0(v6);
  181.  if ( FindWindowW(0, L"SC AntiCheat") )
  182.  {
  183.    v8 = sub_4543C0(v7, "AntiCheat je vec pokrenut! Molimo vas sacekajte da se zatvori ili ga rucno zatvorite!");
  184.    sub_4546A0(v8);
  185.    sub_450490(v97, v100, -1);
  186.    v160 = -1;
  187.    if ( v116 )
  188.      terminate();
  189.    return 0;
  190.  }
  191.  SetConsoleTitleW(L"SC AntiCheat");
  192.  if ( !WaitForSingleObject(hHandle, 0) )
  193. LABEL_6:
  194.    sub_44E150();
  195.  if ( WSAStartup(0x202u, &WSAData) )
  196.  {
  197.    v11 = sub_4543C0(v10, "ERROR 00 - Ova verzija Windowsa nije podrzana!");
  198.    sub_4546A0(v11);
  199.    sub_450490(v97, v101, -1);
  200.    v160 = -1;
  201.    if ( v116 )
  202.      terminate();
  203.    return 0;
  204.  }
  205.  if ( !WaitForSingleObject(hHandle, 0) )
  206.    sub_44E150();
  207.  sub_4EEAB0(0, 0, 0);
  208.  sub_4EEAB0(2097154, 0, 0);
  209.  v12 = sub_4EEDC0();
  210.  if ( !v12 )
  211.    goto LABEL_173;
  212.  v13 = sub_4EBA90(v12);
  213.  v14 = v13;
  214.  if ( !v13 )
  215.    sub_44E180();
  216.  sub_4EBE30(v13, 33685504);
  217.  v15 = sub_4EF7C0(v14);
  218.  v16 = v15;
  219.  if ( !v15 )
  220.    sub_44E180();
  221.  if ( sub_4555E0(v15, 100, 0, "149.202.88.8:2019") != 1 )
  222.    sub_44E180();
  223.  sub_4555E0(v16, 110, 0, &dword_5B8064);
  224.  if ( !dword_5B8064 )
  225.    sub_44E180();
  226.  if ( sub_4ED3F0(dword_5B8064, "HIGH:!aNULL:!kRSA:!PSK:!SRP:!MD5:!RC4") != 1 )
  227.    sub_44E180();
  228.  if ( sub_4EC0B0(dword_5B8064, 55, 0, "149.202.88.8") != 1 )
  229.    sub_44E180();
  230.  if ( sub_4555E0(v16, 101, 0, 0) != 1 )
  231.    sub_44E180();
  232.  if ( sub_4555E0(v16, 101, 0, 0) != 1 )
  233.    sub_44E180();
  234.  v17 = sub_4ECC00(dword_5B8064);
  235.  if ( !v17 )
  236. LABEL_173:
  237.    sub_44E180();
  238.  sub_455F80(v17);
  239.  dword_5B8060 = 0;
  240.  if ( !WaitForSingleObject(hHandle, 0) )
  241.    sub_44E150();
  242.  sub_4ED1B0(dword_5B8064, &unk_5B8088, 100);
  243.  dword_5B8060 = 1;
  244.  if ( !WaitForSingleObject(hHandle, 0) )
  245.    sub_44E150();
  246.  memset(&v145, 0, 0xB0u);
  247.  sub_4503A0((int)&v111, &unk_5B8088);
  248.  LOBYTE(v160) = 2;
  249.  sub_450C30(&v111, v18, v19);
  250.  sub_4503F0(&v111);
  251.  v119 = 15;
  252.  v118 = 0;
  253.  LOBYTE(v117) = 0;
  254.  v20 = 0;
  255.  v139 = 15;
  256.  v138 = 0;
  257.  v137 = 0;
  258.  LOBYTE(v160) = 6;
  259.  v110 = 0;
  260.  v22 = sub_455170(v21);
  261.  v23 = *(_DWORD *)(*(_DWORD *)v22 + 4);
  262.  if ( !(*(_BYTE *)(v23 + v22 + 12) & 6) )
  263.  {
  264.    do
  265.    {
  266.      if ( v20 )
  267.      {
  268.        switch ( v20 )
  269.        {
  270.          case 1:
  271.            v24 = (const char *)&v117;
  272.            if ( v119 >= 0x10 )
  273.              v24 = v117;
  274.            v110 = atoi(v24);
  275.            v20 = 2;
  276.            break;
  277.          case 2:
  278.            v25 = (const char *)&v117;
  279.            if ( v119 >= 0x10 )
  280.              v25 = v117;
  281.            ALGO_INT1 = atoi(v25);
  282.            v20 = 3;
  283.            break;
  284.          case 3:
  285.            v26 = (const char *)&v117;
  286.            if ( v119 >= 0x10 )
  287.              v26 = v117;
  288.            ALGO_INT2 = atoi(v26);
  289.            v20 = 4;
  290.            break;
  291.          case 4:
  292.            v28 = (const char *)&v117;
  293.            if ( v119 >= 0x10 )
  294.              v28 = v117;
  295.            ALGO_INT3 = atoi(v28);
  296.            goto LABEL_56;
  297.        }
  298.      }
  299.      else
  300.      {
  301.        sub_451940((int)&v117, 0, 0xFFFFFFFF);
  302.        v20 = 1;
  303.      }
  304.      v27 = sub_455170(v23);
  305.      v23 = *(_DWORD *)(*(_DWORD *)v27 + 4);
  306.    }
  307.    while ( !(*(_BYTE *)(v23 + v27 + 12) & 6) );
  308.  }
  309. LABEL_56:
  310.  if ( !WaitForSingleObject(hHandle, 0) )
  311.    sub_44E150();
  312.  if ( !(unsigned __int8)sub_4549B0(v29, &v137) )
  313.  {
  314.    dword_5B8060 = 0;
  315.    sub_4ED700(dword_5B8064, "login scac2018", 14);
  316.    dword_5B8060 = 1;
  317.    if ( !WaitForSingleObject(hHandle, 0) )
  318.      sub_44E150();
  319.    SizePointer = 0;
  320.    v43 = GetAdaptersInfo(0, &SizePointer);
  321.    if ( v43 && v43 != 111 )
  322.    {
  323.      v45 = "ERROR 10 - Proverite internet konekciju i restartujte kompjuter!";
  324.    }
  325.    else
  326.    {
  327.      v47 = (struct _IP_ADAPTER_INFO *)GlobalAlloc(0x40u, SizePointer);
  328.      if ( v47 )
  329.      {
  330.        if ( !GetAdaptersInfo(v47, &SizePointer) )
  331.        {
  332.          if ( !WaitForSingleObject(hHandle, 0) )
  333.            goto LABEL_77;
  334.          v132 = 15;
  335.          v131 = 0;
  336.          LOBYTE(v130) = 0;
  337.          LOBYTE(v160) = 7;
  338.          do
  339.          {
  340.            if ( v47->GatewayList.IpAddress.String[0] )
  341.              v48 = strlen(v47->GatewayList.IpAddress.String);
  342.            else
  343.              v48 = 0;
  344.            sub_452A10((int)&v130, &v47->GatewayList.IpAddress, v48);
  345.            if ( (unsigned __int8)sub_454A10(&v130) )
  346.              break;
  347.            v47 = v47->Next;
  348.          }
  349.          while ( v47 );
  350.          v49 = &v130;
  351.          if ( v132 >= 0x10 )
  352.            v49 = (int *)v130;
  353.          strcpy(&cp, (const char *)v49);
  354.          v50 = WaitForSingleObject;
  355.          v51 = inet_addr(&cp);
  356.          PhyAddrLen = 6;
  357.          if ( !WaitForSingleObject(hHandle, 0) )
  358.            goto LABEL_77;
  359.          SendARP(v51, 0, &pMacAddr, &PhyAddrLen);
  360.          if ( (signed int)PhyAddrLen > 0 )
  361.            memmove_0(&v106, &pMacAddr, PhyAddrLen);
  362.          sprintf(
  363.            &v159,
  364.            "%.2X-%.2X-%.2X-%.2X-%.2X-%.2X",
  365.            (unsigned __int8)v106,
  366.            BYTE1(v106),
  367.            BYTE2(v106),
  368.            HIBYTE(v106),
  369.            v107,
  370.            v108);
  371.          if ( !WaitForSingleObject(hHandle, 0) )
  372.            goto LABEL_77;
  373.          v44 = strlen(&v159);
  374.          if ( !v44 )
  375.          {
  376.            v45 = "ERROR 14 - Proverite vasu internet konekciju!";
  377.            goto LABEL_75;
  378.          }
  379.          if ( GetCurrentHwProfileA(&HwProfileInfo) )
  380.          {
  381.            sub_4503A0((int)&v121, HwProfileInfo.szHwProfileGuid);
  382.            LOBYTE(v160) = 8;
  383.            if ( !WaitForSingleObject(hHandle, 0) )
  384.              goto LABEL_77;
  385.            nSize = 16;
  386.            GetComputerNameA((LPSTR)dwProcessId, &nSize);
  387.            v52 = sub_451450(&v121);
  388.            sub_4503A0((int)&v111, dwProcessId);
  389.            v53 = sub_451450(&v111) + v52;
  390.            sub_4503F0(&v111);
  391.            v109 = v53;
  392.            LOBYTE(v160) = 7;
  393.            sub_4503F0(&v121);
  394.            v50 = WaitForSingleObject;
  395.          }
  396.          else
  397.          {
  398.            v109 = 0;
  399.          }
  400.          if ( !v50(hHandle, 0) )
  401.            goto LABEL_77;
  402.          v54 = sub_44D000();
  403.          if ( !v50(hHandle, 0) )
  404.            goto LABEL_77;
  405.          v55 = (int *)sub_44CD30(v54);
  406.          nSize = (DWORD)v55;
  407.          if ( !v50(hHandle, 0) )
  408.            goto LABEL_77;
  409.          v129 = 7;
  410.          v128 = 0;
  411.          LOWORD(v127) = 0;
  412.          LOBYTE(v160) = 9;
  413.          sub_450A00(L"javaw.exe");
  414.          LOBYTE(v160) = 10;
  415.          v56 = sub_44CBB0(&v121, dwProcessId);
  416.          LOBYTE(v160) = 9;
  417.          v57 = v56;
  418.          sub_450A60(&v121);
  419.          if ( v57 <= 0 )
  420.          {
  421.            v63 = sub_4543C0(v58, "ERROR XX - Nemate upaljen Minecraft? Pa sta pokusavate onda?");
  422.            sub_4546A0(v63);
  423.          }
  424.          else
  425.          {
  426.            for ( i = 0; i < v57; ++i )
  427.            {
  428.              v60 = (void *)sub_44CD30(dwProcessId[i]);
  429.              v61 = sub_450A00(v60);
  430.              LOBYTE(v160) = 11;
  431.              sub_452E00(v61, 0, -1);
  432.              LOBYTE(v160) = 9;
  433.              sub_450A60(&v112);
  434.            }
  435.            v55 = (int *)nSize;
  436.          }
  437.          sub_450A00(L"--username");
  438.          v62 = sub_44D310(&v127, &v121) > 1;
  439.          sub_450A60(&v121);
  440.          if ( v62 )
  441.          {
  442.            v45 = "Samo jedan Minecraft moze biti ukljucen!";
  443.            goto LABEL_75;
  444.          }
  445.          if ( !WaitForSingleObject(hHandle, 0) )
  446.            goto LABEL_77;
  447.          sub_450A00(L"ekrn.exe");
  448.          LOBYTE(v160) = 12;
  449.          nSize = 1;
  450.          sub_450A00(v55);
  451.          v160 = 13;
  452.          v105 = 3;
  453.          nSize = 3;
  454.          if ( sub_44D310(dwProcessId, &v112) > 0
  455.            || (sub_450A00(L"avp.exe"),
  456.                v160 = 14,
  457.                nSize = 7,
  458.                sub_450A00(v55),
  459.                v105 = 15,
  460.                v104 = 0,
  461.                sub_44D310(&v121, &v111) > 0) )
  462.          {
  463.            v104 = 1;
  464.          }
  465.          v64 = v105;
  466.          if ( v105 & 8 )
  467.          {
  468.            v105 &= 0xFFFFFFF7;
  469.            sub_450A60(&v121);
  470.            v64 = v105;
  471.          }
  472.          if ( v64 & 4 )
  473.          {
  474.            v105 = v64 & 0xFFFFFFFB;
  475.            sub_450A60(&v111);
  476.            v64 = v105;
  477.          }
  478.          if ( v64 & 2 )
  479.          {
  480.            v105 = v64 & 0xFFFFFFFD;
  481.            sub_450A60(dwProcessId);
  482.            LOBYTE(v64) = v105;
  483.          }
  484.          v160 = 9;
  485.          if ( v64 & 1 )
  486.            sub_450A60(&v112);
  487.          if ( v104 )
  488.          {
  489.            v55 = (int *)&v127;
  490.            if ( v129 >= 8 )
  491.              v55 = v127;
  492.          }
  493.          if ( !WaitForSingleObject(hHandle, 0) )
  494.            goto LABEL_77;
  495.          v65 = (wchar_t *)sub_44D370((wchar_t *)v55);
  496.          v66 = (void *)sub_44CA50(v65);
  497.          sub_44C0B0((int)&v135, ALGO_INT1);
  498.          LOBYTE(v160) = 15;
  499.          sub_4503A0((int)&v133, v66);
  500.          LOBYTE(v160) = 16;
  501.          v67 = &v133;
  502.          v68 = &v133;
  503.          if ( v134 >= 0x10 )
  504.            v67 = (int *)v133;
  505.          if ( v134 >= 0x10 )
  506.            v68 = (int *)v133;
  507.          v69 = *sub_450420(&v133, (int *)&v106);
  508.          if ( v68 != (int *)v69 )
  509.            sub_455320(v69, v67);
  510.          sub_451710(&v135, &v133, 0, 0xFFFFFFFF);
  511.          v70 = (_DWORD *)sub_44C0B0((int)&v112, ALGO_INT2);
  512.          LOBYTE(v160) = 17;
  513.          sub_451710(&v135, v70, 0, 0xFFFFFFFF);
  514.          LOBYTE(v160) = 16;
  515.          sub_4503F0(&v112);
  516.          v71 = WaitForSingleObject;
  517.          if ( !WaitForSingleObject(hHandle, 0) )
  518. LABEL_77:
  519.            sub_44E150();
  520.          v72 = &v135;
  521.          if ( v136 >= 0x10 )
  522.            v72 = v135;
  523.          v73 = sub_44CB40(v72);
  524.          v74 = (OLECHAR *)&psz;
  525.          nSize = v73;
  526.          if ( (unsigned int)dword_5B12A4 >= 8 )
  527.            v74 = psz;
  528.          v75 = sub_44E010(v74);
  529.          LOBYTE(v160) = 18;
  530.          v76 = (void *)sub_44E120(v75);
  531.          sub_4503A0((int)&v143, v76);
  532.          sub_44E0C0(&v105);
  533.          dword_5B8060 = 0;
  534.          v142 = 15;
  535.          v141 = 0;
  536.          v140 = 0;
  537.          LOBYTE(v160) = 21;
  538.          v77 = (int)v106;
  539.          v105 = 0;
  540.          if ( v110 <= 0 )
  541.            goto LABEL_169;
  542. LABEL_139:
  543.          if ( !v71(hHandle, 0) )
  544.            goto LABEL_6;
  545.          sub_4ED1B0(dword_5B8064, byte_5B80EC, 1);
  546.          switch ( atoi(byte_5B80EC) )
  547.          {
  548.            case 1:
  549.              v78 = v144;
  550.              v79 = &v143;
  551.              v80 = (int *)v143;
  552.              if ( v144 >= 0x10 )
  553.                v79 = (int *)v143;
  554.              v106 = (char *)v79 + 1;
  555.              v81 = strlen((const char *)v79);
  556.              v82 = &v143;
  557.              goto LABEL_144;
  558.            case 2:
  559.              sub_4ED700(dword_5B8064, &v159, strlen(&v159));
  560.              goto LABEL_168;
  561.            case 3:
  562.              sub_4ED700(dword_5B8064, nSize, strlen((const char *)nSize));
  563.              goto LABEL_168;
  564.            case 4:
  565.              v83 = sub_44C0B0((int)&v111, v109);
  566.              v84 = (const char *)v83;
  567.              LOBYTE(v160) = 22;
  568.              if ( *(_DWORD *)(v83 + 20) >= 0x10u )
  569.                v84 = *(const char **)v83;
  570.              v85 = strlen(v84);
  571.              v86 = (_DWORD *)sub_44C0B0((int)&v121, v109);
  572.              if ( v86[5] >= 0x10u )
  573.                v86 = (_DWORD *)*v86;
  574.              sub_4ED700(dword_5B8064, v86, v85);
  575.              sub_4503F0(&v121);
  576.              LOBYTE(v160) = 21;
  577.              sub_4503F0(&v111);
  578.              goto LABEL_167;
  579.            case 5:
  580.              v78 = dword_5B12D4;
  581.              v87 = (const char *)&dword_5B12C0;
  582.              v80 = (int *)dword_5B12C0;
  583.              if ( (unsigned int)dword_5B12D4 >= 0x10 )
  584.                v87 = (const char *)dword_5B12C0;
  585.              v106 = v87 + 1;
  586.              v81 = strlen(v87);
  587.              v82 = (int *)&dword_5B12C0;
  588. LABEL_144:
  589.              if ( v78 >= 0x10 )
  590.                v82 = v80;
  591.              sub_4ED700(dword_5B8064, v82, v81);
  592.              goto LABEL_167;
  593.            default:
  594.              sub_4ED1B0(dword_5B8064, &unk_5B80F0, 256);
  595.              memset(&v146, 0, 0xB0u);
  596.              sub_4503A0((int)&v112, &unk_5B80F0);
  597.              LOBYTE(v160) = 23;
  598.              sub_450C30(&v112, v88, v89);
  599.              sub_4503F0(&v112);
  600.              v126 = 15;
  601.              v125 = 0;
  602.              LOBYTE(v124) = 0;
  603.              LOBYTE(v160) = 26;
  604.              v90 = 0;
  605.              v92 = sub_455170(v91);
  606.              v93 = *(_DWORD *)(*(_DWORD *)v92 + 4);
  607.              if ( *(_BYTE *)(v93 + v92 + 12) & 6 )
  608.                goto LABEL_166;
  609.              break;
  610.          }
  611.          while ( 1 )
  612.          {
  613.            if ( v90 )
  614.            {
  615.              if ( v90 == 1 )
  616.              {
  617.                sub_451940((int)&v124, 0, 0xFFFFFFFF);
  618. LABEL_166:
  619.                sub_4503F0(&v124);
  620.                LOBYTE(v160) = 21;
  621.                sub_450380(&v146);
  622. LABEL_167:
  623.                v71 = WaitForSingleObject;
  624. LABEL_168:
  625.                if ( (signed int)++v105 >= v110 )
  626.                {
  627. LABEL_169:
  628.                  v96 = sub_454750(&dword_5B4BC8, &v140);
  629.                  sub_4546A0(v96);
  630.                  if ( v77 )
  631.                  {
  632.                    Sleep(0x1388u);
  633.                    goto LABEL_77;
  634.                  }
  635. LABEL_76:
  636.                  sub_450490(v99, v103, -1);
  637.                  goto LABEL_77;
  638.                }
  639.                goto LABEL_139;
  640.              }
  641.            }
  642.            else
  643.            {
  644.              v94 = (const char *)&v124;
  645.              if ( v126 >= 0x10 )
  646.                v94 = v124;
  647.              v77 = atoi(v94);
  648.              v90 = 1;
  649.            }
  650.            v95 = sub_455170(v93);
  651.            v93 = *(_DWORD *)(*(_DWORD *)v95 + 4);
  652.            if ( *(_BYTE *)(v93 + v95 + 12) & 6 )
  653.              goto LABEL_166;
  654.          }
  655.        }
  656.        v45 = "ERROR 12 - Proverite internet konekciju i restartujte kompjuter!";
  657.      }
  658.      else
  659.      {
  660.        v45 = "ERROR 11 - Proverite internet konekciju i restartujte kompjuter!";
  661.      }
  662.    }
  663. LABEL_75:
  664.    v46 = sub_4543C0(v44, v45);
  665.    sub_4546A0(v46);
  666.    goto LABEL_76;
  667.  }
  668.  v155 = 0;
  669.  _mm_storeu_si128((__m128i *)szUrlName, _mm_loadu_si128((const __m128i *)&xmmword_5A13A0));
  670.  _mm_storeu_si128((__m128i *)&v151, _mm_loadu_si128((const __m128i *)&xmmword_5A13B0));
  671.  _mm_storeu_si128((__m128i *)&v152, _mm_loadu_si128((const __m128i *)&xmmword_5A13C0));
  672.  _mm_storeu_si128((__m128i *)&v153, _mm_loadu_si128((const __m128i *)&xmmword_5A13D0));
  673.  _mm_storeu_si128((__m128i *)&v154, _mm_loadu_si128((const __m128i *)&xmmword_5A13E0));
  674.  GetModuleFileNameW(0, Filename, 0x104u);
  675.  GetFullPathNameW(Filename, 0x104u, Buffer, 0);
  676.  _wremove(L"SCAC_old.exe");
  677.  if ( _wrename(Filename, L"SCAC_old.exe") )
  678.  {
  679.    v31 = sub_4543C0(v30, "ERROR 04 - Greska prilikom promene fajla na updejtovanju!");
  680.    sub_4546A0(v31);
  681.    v33 = sub_4543C0(v32, "Pokusajte da pokrenete SC AntiCheat kao administrator");
  682.    sub_4546A0(v33);
  683.    v35 = sub_4543C0(v34, "Ukoliko problem bude nastavio da se javlja, obratite se vlasnicima!");
  684.    sub_4546A0(v35);
  685.    sub_44E150();
  686.  }
  687.  v36 = sub_4543C0(v30, "Azuriranje AntiCheat-a u toku!");
  688.  sub_4546A0(v36);
  689.  DeleteUrlCacheEntryW(szUrlName);
  690.  v38 = URLDownloadToFileW(0, szUrlName, Buffer, 0, 0);
  691.  if ( v38 >= 0 )
  692.  {
  693.    v39 = sub_4543C0(v37, "Azuriranje AntiCheat-a uspesno!");
  694.    sub_4546A0(v39);
  695.    ShellExecuteW(0, L"open", Buffer, 0, 0, 10);
  696.    sub_44E150();
  697.  }
  698.  v40 = sub_4543C0(v37, "ERROR 05 - Kontaktirajte vlasnike! ecode = 0x");
  699.  if ( v40 )
  700.    v41 = v40 + *(_DWORD *)(*(_DWORD *)v40 + 4);
  701.  else
  702.    v41 = 0;
  703.  *(_DWORD *)(v41 + 20) = *(_DWORD *)(v41 + 20) & 0xFFFFF9FF | 0x800;
  704.  v42 = sub_450A90(v38);
  705.  sub_4546A0(v42);
  706.  sub_450490(v98, v102, -1);
  707.  sub_4503F0(&v137);
  708.  sub_4503F0(&v117);
  709.  sub_450380(&v145);
  710.  v160 = -1;
  711.  if ( v116 )
  712.    terminate();
  713.  return 0;
  714. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement