Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 18.04 KB | None | 0 0
  1. signed int __usercall SetCharacter@<eax>(int a1@<eax>, int a2@<edx>, int a3@<edi>, char a4@<sil>, int a5, int a6)
  2. {
  3.   // [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
  4.  
  5.   v166 = -1;
  6.   v165 = sub_7787EF;
  7.   v164 = a1;
  8.   v6 = alloca(6984);
  9.   v117 = a4;
  10.   v115 = a3;
  11.   if ( !a6 )
  12.   {
  13.     v150 = (const char *)off_7836E0;
  14.     v151[2] = -63;
  15.     strcpy(v151, "\x01");
  16.     v166 = 0;
  17.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  18.     {
  19.       v151[*(unsigned __int16 *)v151 + 2] = v151[0];
  20.       ++*(_WORD *)v151;
  21.     }
  22.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  23.     {
  24.       v151[*(unsigned __int16 *)v151 + 2] = -15;
  25.       ++*(_WORD *)v151;
  26.     }
  27.     LOBYTE(a2) = 93;
  28.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  29.     {
  30.       LOWORD(v122) = 28135;
  31.       BYTE2(v122) = 58;
  32.       v151[*(unsigned __int16 *)v151 + 2] = 3;
  33.       v7 = *(unsigned __int16 *)v151;
  34.       v8 = *(unsigned __int16 *)v151 + 1;
  35.       BYTE3(v122) = -119;
  36.       v123 = 1939845820;
  37.       v124 = 35;
  38.       v125 = -88;
  39.       v126 = -2;
  40.       v127 = -74;
  41.       v128 = 73;
  42.       v129 = 93;
  43.       v130 = 57;
  44.       v131 = 93;
  45.       v132 = -118;
  46.       v133 = -53;
  47.       v134 = 99;
  48.       v135 = -115;
  49.       v136 = -22;
  50.       v137 = 125;
  51.       v138 = 43;
  52.       v139 = 95;
  53.       v140 = -61;
  54.       v141 = -79;
  55.       v142 = -23;
  56.       v143 = -125;
  57.       v144 = 1458065705;
  58.       if ( *(unsigned __int16 *)v151 != v8 )
  59.       {
  60.         do
  61.         {
  62.           v151[v7 + 2] ^= v151[v7 + 1] ^ *((_BYTE *)&v122 + v7 % 32);
  63.           ++v7;
  64.         }
  65.         while ( v7 != v8 );
  66.       }
  67.       ++*(_WORD *)v151;
  68.     }
  69.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  70.     {
  71.       LOWORD(v122) = 28135;
  72.       BYTE2(v122) = 58;
  73.       v151[*(unsigned __int16 *)v151 + 2] = 0;
  74.       v9 = *(unsigned __int16 *)v151;
  75.       v10 = *(unsigned __int16 *)v151 + 1;
  76.       BYTE3(v122) = -119;
  77.       v123 = 1939845820;
  78.       v124 = 35;
  79.       v125 = -88;
  80.       v126 = -2;
  81.       v127 = -74;
  82.       v128 = 73;
  83.       v129 = 93;
  84.       v130 = 57;
  85.       v131 = 93;
  86.       v132 = -118;
  87.       v133 = -53;
  88.       v134 = 99;
  89.       v135 = -115;
  90.       v136 = -22;
  91.       v137 = 125;
  92.       v138 = 43;
  93.       v139 = 95;
  94.       v140 = -61;
  95.       v141 = -79;
  96.       v142 = -23;
  97.       v143 = -125;
  98.       v144 = 1458065705;
  99.       if ( *(unsigned __int16 *)v151 != v10 )
  100.       {
  101.         do
  102.         {
  103.           v151[v9 + 2] ^= v151[v9 + 1] ^ *((_BYTE *)&v122 + v9 % 32);
  104.           ++v9;
  105.         }
  106.         while ( v9 != v10 );
  107.       }
  108.       ++*(_WORD *)v151;
  109.     }
  110.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  111.     {
  112.       LOWORD(v122) = 28135;
  113.       BYTE2(v122) = 58;
  114.       v151[*(unsigned __int16 *)v151 + 2] = -13;
  115.       v11 = *(unsigned __int16 *)v151;
  116.       BYTE3(v122) = -119;
  117.       v12 = *(unsigned __int16 *)v151 + 1;
  118.       v123 = 1939845820;
  119.       v124 = 35;
  120.       v125 = -88;
  121.       v126 = -2;
  122.       v127 = -74;
  123.       v128 = 73;
  124.       v129 = 93;
  125.       v130 = 57;
  126.       v131 = 93;
  127.       v132 = -118;
  128.       v133 = -53;
  129.       v134 = 99;
  130.       v135 = -115;
  131.       v136 = -22;
  132.       v137 = 125;
  133.       v138 = 43;
  134.       v139 = 95;
  135.       v140 = -61;
  136.       v141 = -79;
  137.       v142 = -23;
  138.       v143 = -125;
  139.       v144 = 1458065705;
  140.       if ( *(unsigned __int16 *)v151 != v12 )
  141.       {
  142.         do
  143.         {
  144.           a2 = v11 % 32;
  145.           LOBYTE(a2) = v151[v11 + 1] ^ *((_BYTE *)&v122 + v11 % 32);
  146.           v151[v11 + 2] ^= a2;
  147.           ++v11;
  148.         }
  149.         while ( v11 != v12 );
  150.       }
  151.       ++*(_WORD *)v151;
  152.     }
  153.     if ( (unsigned __int8)v151[2] == 193 )
  154.     {
  155.       LOBYTE(a2) = v151[0];
  156.       v151[3] = v151[0];
  157.     }
  158.     else if ( (unsigned __int8)v151[2] == 194 )
  159.     {
  160.       v151[3] = v151[1];
  161.       v152 = v151[0];
  162.     }
  163.     v13 = *(unsigned __int16 *)v151;
  164.     qmemcpy(&v163, &v151[2], *(unsigned __int16 *)v151);
  165.     *(&v163 + v13) = sub_755AE9(0, (_WORD)a2);
  166.     v14 = (v163 != -63) + 2;
  167.     sub_403F30(&byte_5846230);
  168.     v15 = byte_5846230;
  169.     *(&v162 + v14) = byte_5846230;
  170.     byte_5846230 = v15 + 1;
  171.     if ( sub_404120(&byte_5846230) != -1 )
  172.     {
  173.       v16 = sub_4041E0(&byte_5846230);
  174.       v17 = *(_BYTE *)(v16 + 1) - 1;
  175.       *(_BYTE *)(v16 + 1) = v17;
  176.       if ( !v17 )
  177.         sub_404320(v16, &byte_5846230);
  178.     }
  179.     v18 = v14 - 1;
  180.     v19 = v13 - v18;
  181.     v20 = &v163 + v18;
  182.     v21 = sub_746B70(0, &v163 + v18, v13 - v18);
  183.     if ( v21 >= 256 )
  184.     {
  185.       v33 = v21 + 3;
  186.       v158 = -60;
  187.       v160 = v21 + 3;
  188.       v159 = (v21 + 3) / 256;
  189.       sub_746B70(&v161, v20, v19);
  190.       v24 = off_7A2854;
  191.       v34 = 0;
  192.       v119 = v33;
  193.       if ( *((_DWORD *)off_7A2854 + 3) != -1 )
  194.       {
  195.         while ( 1 )
  196.         {
  197.           v35 = send(*((_DWORD *)v24 + 3), &v158 + v34, v33 - v34, 0);
  198.           v36 = v35;
  199.           if ( v35 == -1 )
  200.             break;
  201.           if ( v35 )
  202.           {
  203.             if ( *((_DWORD *)v24 + 4102) )
  204.               sub_505991(&v158, v35);
  205.             v34 += v36;
  206.             v119 -= v36;
  207.             if ( v119 > 0 )
  208.               continue;
  209.           }
  210.           return 0;
  211.         }
  212.         if ( WSAGetLastError() != 10035 )
  213.         {
  214.           sub_421231((int)&unk_58419B0, aSendPacketErro, v115);
  215.           sub_5054C0(v24);
  216.           return 0;
  217.         }
  218.         v29 = *((_DWORD *)v24 + 2052);
  219.         if ( v29 + v33 > 0x2000 )
  220.         {
  221.           sub_421231((int)&unk_58419B0, aSendPacketEr_0, v115);
  222.           sub_5054C0(v24);
  223.           return 0;
  224.         }
  225.         v30 = v119;
  226.         v31 = &v158;
  227.         v32 = v119;
  228.         goto LABEL_50;
  229.       }
  230.     }
  231.     else
  232.     {
  233.       v22 = v13 - v18;
  234.       v23 = v21 + 2;
  235.       buf = -61;
  236.       v154 = v21 + 2;
  237.       sub_746B70(&v155, &v163 + v18, v22);
  238.       v24 = off_7A2854;
  239.       v25 = 0;
  240.       v118 = v23;
  241.       if ( *((_DWORD *)off_7A2854 + 3) != -1 )
  242.       {
  243.         while ( 1 )
  244.         {
  245.           v26 = send(*((_DWORD *)v24 + 3), &buf + v25, v23 - v25, 0);
  246.           v27 = v26;
  247.           if ( v26 == -1 )
  248.             break;
  249.           if ( v26 )
  250.           {
  251.             if ( *((_DWORD *)v24 + 4102) )
  252.               sub_505991(&buf, v26);
  253.             v25 += v27;
  254.             v118 -= v27;
  255.             if ( v118 > 0 )
  256.               continue;
  257.           }
  258.           return 0;
  259.         }
  260.         if ( WSAGetLastError() != 10035 )
  261.         {
  262.           sub_421231((int)&unk_58419B0, aSendPacketErro, v115);
  263.           sub_5054C0(v24);
  264.           return 0;
  265.         }
  266.         v29 = *((_DWORD *)v24 + 2052);
  267.         if ( v29 + v23 > 0x2000 )
  268.         {
  269.           sub_421231((int)&unk_58419B0, aSendPacketEr_0, v115);
  270.           sub_5054C0(v24);
  271.           return 0;
  272.         }
  273.         v30 = v118;
  274.         v31 = &buf;
  275.         v32 = v118;
  276. LABEL_50:
  277.         qmemcpy((char *)v24 + v29 + 16, v31, v32);
  278.         *((_DWORD *)v24 + 2052) += v30;
  279.         return 0;
  280.       }
  281.     }
  282.     return 0;
  283.   }
  284.   v37 = *(_DWORD *)dword_7772ABC;
  285.   byte_7E8075C = 0;
  286.   if ( sub_404120(*(_DWORD *)dword_7772ABC) == -1 )
  287.   {
  288.     v41 = sub_755202(3905);
  289.     *(_BYTE *)(v41 + 3904) = 1;
  290.     sub_403FC0(v41, v37);
  291.   }
  292.   else
  293.   {
  294.     v38 = sub_404120(v37);
  295.     if ( v38 == -1 )
  296.       v39 = 0;
  297.     else
  298.       v39 = *(_DWORD *)(dword_584198C + 4 * v38);
  299.     v40 = *(_BYTE *)(v39 + 3904) + 1;
  300.     *(_BYTE *)(v39 + 3904) = v40;
  301.     if ( v40 < 2u )
  302.       sub_40BD30(v37, v39);
  303.   }
  304.   v42 = dword_7772AB8;
  305.   v43 = *(_DWORD *)dword_7772ABC;
  306.   v44 = *(_DWORD *)(a5 + 12);
  307.   *(_DWORD *)(dword_7772AB8 + 16) = *(_DWORD *)(a5 + 8);
  308.   v45 = *(_WORD *)(a5 + 16);
  309.   *(_DWORD *)(v42 + 20) = v44;
  310.   LOWORD(v44) = *(_WORD *)(a5 + 18);
  311.   *(_WORD *)(v42 + 112) = v45;
  312.   v46 = *(_WORD *)(a5 + 20);
  313.   *(_WORD *)(v42 + 24) = v44;
  314.   LOWORD(v44) = *(_WORD *)(a5 + 22);
  315.   *(_WORD *)(v42 + 26) = v46;
  316.   v47 = *(_WORD *)(a5 + 24);
  317.   *(_WORD *)(v42 + 28) = v44;
  318.   LOWORD(v44) = *(_WORD *)(a5 + 54);
  319.   *(_WORD *)(v42 + 30) = v47;
  320.   v48 = *(_WORD *)(a5 + 26);
  321.   *(_WORD *)(v42 + 32) = v44;
  322.   LOWORD(v44) = *(_WORD *)(a5 + 28);
  323.   *(_WORD *)(v42 + 34) = v48;
  324.   v49 = *(_WORD *)(a5 + 30);
  325.   *(_WORD *)(v42 + 38) = v44;
  326.   LOWORD(v44) = *(_WORD *)(a5 + 32);
  327.   *(_WORD *)(v42 + 36) = v49;
  328.   v50 = *(_WORD *)(a5 + 38);
  329.   *(_WORD *)(v42 + 40) = v44;
  330.   LOWORD(v44) = *(_WORD *)(a5 + 40);
  331.   *(_WORD *)(v42 + 64) = v50;
  332.   v51 = *(_WORD *)(a5 + 34);
  333.   *(_WORD *)(v42 + 66) = v44;
  334.   LOWORD(v44) = *(_WORD *)(a5 + 36);
  335.   *(_BYTE *)(v42 + 68) = 0;
  336.   *(_WORD *)(v42 + 70) = 0;
  337.   *(_WORD *)(v42 + 72) = 0;
  338.   *(_WORD *)(v42 + 74) = 0;
  339.   *(_WORD *)(v42 + 42) = v51;
  340.   v52 = *(_WORD *)(a5 + 50);
  341.   *(_WORD *)(v42 + 44) = v44;
  342.   LOWORD(v44) = *(_WORD *)(a5 + 52);
  343.   *(_WORD *)(v42 + 76) = v52;
  344.   v53 = *(_WORD *)(a5 + 56);
  345.   *(_WORD *)(v42 + 78) = v44;
  346.   LOWORD(v44) = *(_WORD *)(a5 + 58);
  347.   *(_WORD *)(v42 + 80) = v53;
  348.   v54 = *(_DWORD *)(a5 + 44);
  349.   *(_WORD *)(v42 + 82) = v44;
  350.   *(_DWORD *)(v43 + 3844) = v54;
  351.   if ( sub_404120(v43) != -1 )
  352.   {
  353.     v55 = sub_404120(v43);
  354.     v56 = v55 == -1 ? 0 : *(_DWORD *)(dword_584198C + 4 * v55);
  355.     v57 = *(_BYTE *)(v56 + 3904) - 1;
  356.     *(_BYTE *)(v56 + 3904) = v57;
  357.     if ( !v57 )
  358.       sub_40BE30(v56, v43);
  359.   }
  360.   dword_7A4DC0 = *(_BYTE *)(a5 + 6);
  361.   sub_690ED4(dword_7A4DC0);
  362.   if ( dword_7A4DC0 == 34 )
  363.   {
  364.     v150 = (const char *)off_7836E0;
  365.     v151[2] = -63;
  366.     strcpy(v151, "\x01");
  367.     v166 = 1;
  368.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  369.     {
  370.       v151[*(unsigned __int16 *)v151 + 2] = v151[0];
  371.       ++*(_WORD *)v151;
  372.     }
  373.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  374.     {
  375.       v151[*(unsigned __int16 *)v151 + 2] = -67;
  376.       ++*(_WORD *)v151;
  377.     }
  378.     if ( *(unsigned __int16 *)v151 + 1 <= 2048 )
  379.     {
  380.       LOWORD(v122) = 28135;
  381.       v151[*(unsigned __int16 *)v151 + 2] = 0;
  382.       v58 = *(unsigned __int16 *)v151;
  383.       HIWORD(v122) = -30406;
  384.       v123 = 1939845820;
  385.       v59 = *(unsigned __int16 *)v151 + 1;
  386.       v124 = 35;
  387.       v125 = -88;
  388.       v126 = -2;
  389.       v127 = -74;
  390.       v128 = 73;
  391.       v129 = 93;
  392.       v130 = 57;
  393.       v131 = 93;
  394.       v132 = -118;
  395.       v133 = -53;
  396.       v134 = 99;
  397.       v135 = -115;
  398.       v136 = -22;
  399.       v137 = 125;
  400.       v138 = 43;
  401.       v139 = 95;
  402.       v140 = -61;
  403.       v141 = -79;
  404.       v142 = -23;
  405.       v143 = -125;
  406.       v144 = 1458065705;
  407.       if ( *(unsigned __int16 *)v151 != v59 )
  408.       {
  409.         do
  410.         {
  411.           v151[v58 + 2] ^= v151[v58 + 1] ^ *((_BYTE *)&v122 + v58 % 32);
  412.           ++v58;
  413.         }
  414.         while ( v58 != v59 );
  415.       }
  416.       ++*(_WORD *)v151;
  417.     }
  418.     if ( (unsigned __int8)v151[2] == 193 )
  419.     {
  420.       v151[3] = v151[0];
  421.     }
  422.     else if ( (unsigned __int8)v151[2] == 194 )
  423.     {
  424.       v151[3] = v151[1];
  425.       v152 = v151[0];
  426.     }
  427.     v60 = off_7A2854;
  428.     v61 = 0;
  429.     v146 = *(unsigned __int16 *)v151;
  430.     v120 = *(unsigned __int16 *)v151;
  431.     if ( *((_DWORD *)off_7A2854 + 3) != -1 )
  432.     {
  433.       while ( 1 )
  434.       {
  435.         v62 = send(*((_DWORD *)v60 + 3), &v151[v61 + 2], v146 - v61, 0);
  436.         v63 = v62;
  437.         if ( v62 == -1 )
  438.           break;
  439.         if ( v62 )
  440.         {
  441.           if ( *((_DWORD *)v60 + 4102) )
  442.             sub_505991(&v151[2], v62);
  443.           v61 += v63;
  444.           v120 -= v63;
  445.           if ( (signed int)v120 > 0 )
  446.             continue;
  447.         }
  448.         goto LABEL_90;
  449.       }
  450.       if ( WSAGetLastError() == 10035 )
  451.       {
  452.         v64 = *((_DWORD *)v60 + 2052);
  453.         if ( v64 + v146 <= 0x2000 )
  454.         {
  455.           qmemcpy((char *)v60 + v64 + 16, &v151[2], v120);
  456.           *((_DWORD *)v60 + 2052) += v120;
  457.         }
  458.         else
  459.         {
  460.           sub_421231((int)&unk_58419B0, aSendPacketEr_0, v115);
  461.           sub_5054C0(v60);
  462.         }
  463.       }
  464.       else
  465.       {
  466.         sub_421231((int)&unk_58419B0, aSendPacketErro, v115);
  467.         sub_5054C0(v60);
  468.       }
  469.     }
  470. LABEL_90:
  471.     v166 = -1;
  472.   }
  473.   sub_45F720(dword_7A4DC0);
  474.   v65 = ((int (*)(void))sub_755AE9)();
  475.   v66 = dword_7518F94;
  476.   dword_58461A8 = v65 % 400;
  477.   v67 = 143 * (v65 % 400);
  478.   v146 = *(_BYTE *)(a5 + 7);
  479.   v68 = dword_7518F94 + 8 * v67;
  480.   LOBYTE(v67) = *(_BYTE *)(a5 + 5);
  481.   LOBYTE(v66) = *(_BYTE *)(a5 + 4);
  482.   v69 = ((double)v146 - flt_783728) * flt_7838B0;
  483.   sub_530D07(v68, 574, v66, v67, LODWORD(v69));
  484.   v147 = *(_DWORD *)dword_7772ABC;
  485.   v70 = *(_DWORD *)dword_7772ABC;
  486.   v71 = dword_5841988;
  487.   *(_WORD *)(v68 + 564) = dword_58461B4;
  488.   v72 = (*(int (__thiscall **)(int *, int, int))(v71 + 12))(&dword_5841988, v70, v115);
  489.   v149 = 0;
  490.   v147 = 0;
  491.   if ( dword_5841994 )
  492.   {
  493.     while ( 1 )
  494.     {
  495.       v150 = (const char *)(dword_5841990 + 4 * v72);
  496.       if ( !memcmp((const char *)&v149, (const char *)(dword_5841990 + 4 * v72), 4) )
  497.         break;
  498.       if ( !memcmp((const char *)&v148, v150, 4) )
  499.       {
  500.         if ( v72 == -1 )
  501.           break;
  502.         v80 = v122;
  503.         v81 = sub_4041E0(v122);
  504.         v82 = *(_BYTE *)(v81 + 3904) + 1;
  505.         *(_BYTE *)(v81 + 3904) = v82;
  506.         if ( v82 < 2u )
  507.           sub_40BD30(v80, v81);
  508.         goto LABEL_97;
  509.       }
  510.       v72 = (v72 + 1) % dword_5841994;
  511.       ++v147;
  512.       if ( v147 >= dword_5841994 )
  513.         goto LABEL_95;
  514.     }
  515.   }
  516.   else
  517.   {
  518. LABEL_95:
  519.     sub_421231((int)&unk_58419B0, aHashTableFullG, v117);
  520.   }
  521.   v73 = sub_755202(3905);
  522.   v74 = v122;
  523.   *(_BYTE *)(v73 + 3904) = 1;
  524.   sub_403FC0(v73, v74);
  525. LABEL_97:
  526.   v75 = dword_7772AB8;
  527.   v76 = dword_5841988;
  528.   *(_BYTE *)(v68 + 525) = 0;
  529.   v77 = *(_BYTE *)(v75 + 11);
  530.   v78 = *(const char **)dword_7772ABC;
  531.   *(_BYTE *)(v68 + 524) = v77;
  532.   v116 = (char)v78;
  533.   v149 = v78;
  534.   v150 = v78;
  535.   v121 = (*(int (__thiscall **)(int *))(v76 + 12))(&dword_5841988);
  536.   v147 = 0;
  537.   v146 = 0;
  538.   if ( dword_5841994 )
  539.   {
  540.     while ( memcmp((const char *)&v147, (const char *)(dword_5841990 + 4 * v121), 4) )
  541.     {
  542.       if ( !memcmp((const char *)&v149, (const char *)(dword_5841990 + 4 * v121), 4) )
  543.       {
  544.         if ( v121 != -1 )
  545.         {
  546.           v83 = v148;
  547.           v84 = sub_4041E0(v148);
  548.           v85 = *(_BYTE *)(v84 + 3904) - 1;
  549.           *(_BYTE *)(v84 + 3904) = v85;
  550.           if ( !v85 )
  551.             sub_40BE30(v84, v83);
  552.         }
  553.         break;
  554.       }
  555.       v79 = v146++ + 1 < (unsigned int)dword_5841994;
  556.       v121 = (v121 + 1) % dword_5841994;
  557.       if ( !v79 )
  558.         goto LABEL_101;
  559.     }
  560.   }
  561.   else
  562.   {
  563. LABEL_101:
  564.     sub_421231((int)&unk_58419B0, aHashTableFullG, v116);
  565.   }
  566.   v86 = *(_BYTE *)(a5 + 49);
  567.   *(_BYTE *)(v68 + 949) = *(_BYTE *)(a5 + 48);
  568.   *(_BYTE *)(v68 + 528) = v86;
  569.   *(_BYTE *)(v68 + 188) = 1;
  570.   sub_531E32(v68);
  571.   v87 = *(_DWORD *)dword_7772ABC;
  572.   dword_7518FA8 = v68;
  573.   if ( sub_404120(*(_DWORD *)dword_7772ABC) == -1 )
  574.   {
  575.     v91 = sub_755202(3905);
  576.     *(_BYTE *)(v91 + 3904) = 1;
  577.     sub_403FC0(v91, v87);
  578.   }
  579.   else
  580.   {
  581.     v88 = sub_404120(v87);
  582.     if ( v88 == -1 )
  583.       v89 = 0;
  584.     else
  585.       v89 = *(_DWORD *)(dword_584198C + 4 * v88);
  586.     v90 = *(_BYTE *)(v89 + 3904) + 1;
  587.     *(_BYTE *)(v89 + 3904) = v90;
  588.     if ( v90 < 2u )
  589.       sub_40BD30(v87, v89);
  590.   }
  591.   v92 = dword_7772AB8;
  592.   v93 = *(_DWORD *)dword_7772ABC;
  593.   v94 = v68 + 529;
  594.   *(_DWORD *)v94 = *(_DWORD *)dword_7772AB8;
  595.   *(_DWORD *)(v94 + 4) = *(_DWORD *)(v92 + 4);
  596.   *(_WORD *)(v94 + 8) = *(_WORD *)(v92 + 8);
  597.   v95 = v93 + 2936;
  598.   v96 = 12;
  599.   do
  600.   {
  601.     *(_WORD *)(v95 - 4) = -1;
  602.     *(_DWORD *)v95 = 0;
  603.     *(_BYTE *)(v95 + 23) = 0;
  604.     v95 += 76;
  605.     --v96;
  606.   }
  607.   while ( v96 );
  608.   if ( sub_404120(v93) != -1 )
  609.   {
  610.     v97 = sub_404120(v93);
  611.     v98 = v97 == -1 ? 0 : *(_DWORD *)(dword_584198C + 4 * v97);
  612.     v99 = *(_BYTE *)(v98 + 3904) - 1;
  613.     *(_BYTE *)(v98 + 3904) = v99;
  614.     if ( !v99 )
  615.       sub_40BE30(v98, v93);
  616.   }
  617.   *(_BYTE *)(v68 + 539) = 0;
  618.   sub_53A6F0(1667, v68 + 16, v68 + 28, v68 + 296, 0, v68, -1, 0, 0, 0, 0.0);
  619.   dword_58461B8 = 61;
  620.   byte_792DAB3 = 0;
  621.   sub_58C2B0(1, 0);
  622.   if ( sub_404120(&dword_792DA50) == -1 )
  623.   {
  624.     v103 = sub_755202(5);
  625.     *(_BYTE *)(v103 + 4) = 1;
  626.     sub_403FC0(v103, &dword_792DA50);
  627.   }
  628.   else
  629.   {
  630.     v100 = sub_404120(&dword_792DA50);
  631.     if ( v100 == -1 )
  632.       v101 = 0;
  633.     else
  634.       v101 = *(_DWORD *)(dword_584198C + 4 * v100);
  635.     v102 = *(_BYTE *)(v101 + 4) + 1;
  636.     *(_BYTE *)(v101 + 4) = v102;
  637.     if ( v102 < 2u )
  638.       sub_40C040(&dword_792DA50, v101);
  639.   }
  640.   dword_792DA50 = 30;
  641.   if ( sub_404120(&dword_792DA50) != -1 )
  642.   {
  643.     v104 = sub_404120(&dword_792DA50);
  644.     v105 = v104 == -1 ? 0 : *(_DWORD *)(dword_584198C + 4 * v104);
  645.     v106 = *(_BYTE *)(v105 + 4) - 1;
  646.     *(_BYTE *)(v105 + 4) = v106;
  647.     if ( !v106 )
  648.       sub_40C130(v105, &dword_792DA50);
  649.   }
  650.   dword_792DA5C = 0;
  651.   dword_7A3868 = 6;
  652.   sub_422C22(dword_7518FA8);
  653.   sub_53A6F0(1667, v68 + 16, v68 + 28, v68 + 296, 0, v68, -1, 0, 0, 0, 0.0);
  654.   v107 = dword_5841E10;
  655.   *(_DWORD *)(v68 + 424) = 0;
  656.   sub_6D6A7C(v107);
  657.   byte_7A38E9 = -1;
  658.   dword_7A38C4 = -1;
  659.   dword_7A38C8 = -1;
  660.   dword_7A38CC = -1;
  661.   dword_7A38D0 = -1;
  662.   dword_7A38D4 = -1;
  663.   v108 = dword_7518FA8;
  664.   dword_79F4ADC = 0;
  665.   LOBYTE(dword_79F4AE0) = 0;
  666.   *(_BYTE *)(dword_7518FA8 + 952) = 0;
  667.   sub_5129E2(v108);
  668.   v109 = dword_7A4DC0;
  669.   if ( dword_7A4DC0 < 11 || dword_7A4DC0 > 17 )
  670.   {
  671.     sub_420188(139, 1);
  672.     v109 = dword_7A4DC0;
  673.   }
  674.   if ( v109 < 18 || v109 > 23 )
  675.   {
  676.     sub_420188(153, 1);
  677.     sub_420188(158, 1);
  678.   }
  679.   v110 = sub_755202(44);
  680.   v147 = v110;
  681.   v166 = 2;
  682.   if ( v110 )
  683.     v111 = (void *)sub_742660(v110);
  684.   else
  685.     v111 = 0;
  686.   v166 = -1;
  687.   GetModuleFileNameA(0, &Filename, 0x100u);
  688.   LOBYTE(v122) = BYTE3(v145);
  689.   v123 = 0;
  690.   *(_DWORD *)&v124 = 0;
  691.   *(_DWORD *)&v128 = 0;
  692.   sub_4025D0(&Filename, strlen(&Filename));
  693.   v166 = 3;
  694.   v112 = (unsigned __int8)sub_7430A0(&v122) == 0;
  695.   v166 = -1;
  696.   BYTE3(v145) = v112;
  697.   if ( v123 )
  698.   {
  699.     v113 = *(_BYTE *)(v123 - 1);
  700.     v114 = (void *)(v123 - 1);
  701.     if ( v113 && v113 != -1 )
  702.       *(_BYTE *)v114 = v113 - 1;
  703.     else
  704.       sub_7482B0(v114);
  705.   }
  706.   v123 = 0;
  707.   *(_DWORD *)&v124 = 0;
  708.   *(_DWORD *)&v128 = 0;
  709.   if ( v111 )
  710.   {
  711.     sub_7426B0(v111);
  712.     sub_7482B0(v111);
  713.   }
  714.   sub_6D9C98(dword_5841E18);
  715.   sub_64B160(dword_7A4DC0);
  716.   sub_755E60(&v157, aSS_8, (unsigned int)&unk_77D1514);
  717.   sub_58DDE0(&unk_5846294, &v157, 1);
  718.   return 1;
  719. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement