Advertisement
Guest User

Untitled

a guest
Dec 16th, 2014
5,049
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.32 KB | None | 0 0
  1. int __usercall sub_522EB0<eax>(int a1<eax>)
  2. {
  3.   int v1; // esi@1
  4.   int v2; // ecx@1
  5.   int v3; // edi@1
  6.   unsigned int v4; // edi@1
  7.   unsigned int v5; // edi@1
  8.   unsigned int v6; // edi@1
  9.   unsigned int v7; // ebx@1
  10.   int v8; // ecx@2
  11.   int v9; // ecx@3
  12.   unsigned int v10; // edi@3
  13.   unsigned int v11; // edi@3
  14.   unsigned int v12; // edi@3
  15.   int v13; // ebx@4
  16.   int v14; // ecx@6
  17.   unsigned int v15; // edi@6
  18.   unsigned int v16; // edi@6
  19.   unsigned int v17; // edi@6
  20.   int v18; // ebx@7
  21.   int v19; // ecx@9
  22.   unsigned int v20; // edi@9
  23.   unsigned int v21; // edi@9
  24.   unsigned int v22; // edi@9
  25.   unsigned int v23; // ebx@9
  26.   int v24; // ecx@10
  27.   int v25; // ecx@11
  28.   unsigned int v26; // edi@11
  29.   unsigned int v27; // edi@11
  30.   unsigned int v28; // edi@11
  31.   unsigned int v29; // ebx@11
  32.   int v30; // ecx@12
  33.   int v31; // ecx@13
  34.   unsigned int v32; // edi@13
  35.   unsigned int v33; // edi@13
  36.   unsigned int v34; // edi@13
  37.   unsigned int v35; // ebx@13
  38.   int v36; // ecx@14
  39.   int v37; // ecx@15
  40.   unsigned int v38; // edi@15
  41.   unsigned int v39; // edi@15
  42.   unsigned int v40; // edi@15
  43.   unsigned int v41; // ebx@15
  44.   int v42; // ecx@16
  45.   int v43; // ecx@17
  46.   unsigned int v44; // edi@17
  47.   unsigned int v45; // edi@17
  48.   unsigned int v46; // edi@17
  49.   unsigned int v47; // ebx@17
  50.   int v48; // ecx@20
  51.   unsigned int v49; // edi@20
  52.   unsigned int v50; // edi@20
  53.   unsigned int v51; // edi@20
  54.   unsigned int v52; // ebx@20
  55.   int v53; // ecx@23
  56.   int v54; // ebx@23
  57.   int v55; // esi@23
  58.   unsigned int v57; // [sp+Ch] [bp-1Ch]@23
  59.   int v58; // [sp+10h] [bp-18h]@19
  60.   unsigned int v59; // [sp+14h] [bp-14h]@3
  61.   int v60; // [sp+18h] [bp-10h]@1
  62.   int v61; // [sp+1Ch] [bp-Ch]@1
  63.   unsigned int v62; // [sp+20h] [bp-8h]@1
  64.   bool v63; // [sp+27h] [bp-1h]@2
  65.  
  66.   v1 = a1;
  67.   (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(a1 + 4) + 44))(&dword_5CCCD8, 1, 16);
  68.   (*(void (__stdcall **)(int, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(v1 + 1196, 4, 1);
  69.   v2 = *(_DWORD *)(v1 + 4);
  70.   v3 = *(_DWORD *)(v1 + 1196);
  71.   v60 = 179;
  72.   v62 = 179;
  73.   v61 = 1;
  74.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v2 + 44))(&v61, 4, 1);
  75.   v4 = v61 + ((unsigned int)(v3 + 2137939259) >> 1) + ((v3 + 2137939259) << 31);
  76.   (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  77.   v5 = v60 + (v4 >> 1) + (v4 << 31);
  78.   (*(void (__stdcall **)(unsigned int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  79.   v6 = v62 + (v5 >> 1) + (v5 << 31);
  80.   v7 = 0;
  81.   if ( v62 )
  82.   {
  83.     do
  84.     {
  85.       v8 = *(_DWORD *)(v1 + 4);
  86.       v63 = *(_BYTE *)(v1 + v7 + 64) != 0;
  87.       (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v8 + 44))(&v63, 1, 1);
  88.       ++v7;
  89.       v6 = v63 + (v6 >> 1) + (v6 << 31);
  90.     }
  91.     while ( v7 < v62 );
  92.   }
  93.   v9 = *(_DWORD *)(v1 + 4);
  94.   v61 = 2;
  95.   v60 = 380;
  96.   v62 = 95;
  97.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v9 + 44))(&v61, 4, 1);
  98.   v10 = v61 + (v6 >> 1) + (v6 << 31);
  99.   (*(void (__stdcall **)(int *, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  100.   v11 = v60 + (v10 >> 1) + (v10 << 31);
  101.   (*(void (__stdcall **)(unsigned int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  102.   v12 = v62 + (v11 >> 1) + (v11 << 31);
  103.   v59 = 0;
  104.   if ( v62 )
  105.   {
  106.     v13 = v1 + 244;
  107.     do
  108.     {
  109.       (*(void (__stdcall **)(int, signed int, signed int))(**(_DWORD **)(v1 + 4) + 44))(v13, 4, 1);
  110.       v12 = *(_DWORD *)v13 + (v12 >> 1) + (v12 << 31);
  111.       v13 += 4;
  112.       ++v59;
  113.     }
  114.     while ( v59 < v62 );
  115.   }
  116.   v14 = *(_DWORD *)(v1 + 4);
  117.   v61 = 3;
  118.   v60 = 48;
  119.   v62 = 12;
  120.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v14 + 44))(&v61, 4, 1);
  121.   v15 = v61 + (v12 >> 1) + (v12 << 31);
  122.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  123.   v16 = v60 + (v15 >> 1) + (v15 << 31);
  124.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  125.   v17 = v62 + (v16 >> 1) + (v16 << 31);
  126.   v59 = 0;
  127.   if ( v62 )
  128.   {
  129.     v18 = v1 + 972;
  130.     do
  131.     {
  132.       (*(void (__stdcall **)(int, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(v18, 4, 1);
  133.       v17 = *(_DWORD *)v18 + (v17 >> 1) + (v17 << 31);
  134.       v18 += 4;
  135.       ++v59;
  136.     }
  137.     while ( v59 < v62 );
  138.   }
  139.   v19 = *(_DWORD *)(v1 + 4);
  140.   v61 = 4;
  141.   v60 = 1388;
  142.   v62 = 347;
  143.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v19 + 44))(&v61, 4, 1);
  144.   v20 = v61 + (v17 >> 1) + (v17 << 31);
  145.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  146.   v21 = v60 + (v20 >> 1) + (v20 << 31);
  147.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  148.   v22 = v62 + (v21 >> 1) + (v21 << 31);
  149.   v23 = 0;
  150.   if ( v62 )
  151.   {
  152.     do
  153.     {
  154.       v24 = *(_DWORD *)(v1 + 4);
  155.       v63 = *(_BYTE *)(v1 + v23 + 624) != 0;
  156.       (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v24 + 44))(&v63, 1, 1);
  157.       ++v23;
  158.       v22 = v63 + (v22 >> 1) + (v22 << 31);
  159.     }
  160.     while ( v23 < v62 );
  161.   }
  162.   v25 = *(_DWORD *)(v1 + 4);
  163.   v61 = 5;
  164.   v60 = 28;
  165.   v62 = 7;
  166.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v25 + 44))(&v61, 4, 1);
  167.   v26 = v61 + (v22 >> 1) + (v22 << 31);
  168.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  169.   v27 = v60 + (v26 >> 1) + (v26 << 31);
  170.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  171.   v28 = v62 + (v27 >> 1) + (v27 << 31);
  172.   v29 = 0;
  173.   if ( v62 )
  174.   {
  175.     do
  176.     {
  177.       v30 = *(_DWORD *)(v1 + 4);
  178.       v63 = *(_BYTE *)(v1 + v29 + 1020) != 0;
  179.       (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v30 + 44))(&v63, 1, 1);
  180.       ++v29;
  181.       v28 = v63 + (v28 >> 1) + (v28 << 31);
  182.     }
  183.     while ( v29 < v62 );
  184.   }
  185.   v31 = *(_DWORD *)(v1 + 4);
  186.   v61 = 6;
  187.   v60 = 228;
  188.   v62 = 57;
  189.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v31 + 44))(&v61, 4, 1);
  190.   v32 = v61 + (v28 >> 1) + (v28 << 31);
  191.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  192.   v33 = v60 + (v32 >> 1) + (v32 << 31);
  193.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  194.   v34 = v62 + (v33 >> 1) + (v33 << 31);
  195.   v35 = 0;
  196.   if ( v62 )
  197.   {
  198.     do
  199.     {
  200.       v36 = *(_DWORD *)(v1 + 4);
  201.       v63 = *(_BYTE *)(v1 + v35 + 1027) != 0;
  202.       (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v36 + 44))(&v63, 1, 1);
  203.       ++v35;
  204.       v34 = v63 + (v34 >> 1) + (v34 << 31);
  205.     }
  206.     while ( v35 < v62 );
  207.   }
  208.   v37 = *(_DWORD *)(v1 + 4);
  209.   v61 = 7;
  210.   v60 = 84;
  211.   v62 = 21;
  212.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v37 + 44))(&v61, 4, 1);
  213.   v38 = v61 + (v34 >> 1) + (v34 << 31);
  214.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  215.   v39 = v60 + (v38 >> 1) + (v38 << 31);
  216.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  217.   v40 = v62 + (v39 >> 1) + (v39 << 31);
  218.   v41 = 0;
  219.   if ( v62 )
  220.   {
  221.     do
  222.     {
  223.       v42 = *(_DWORD *)(v1 + 4);
  224.       v63 = *(_BYTE *)(v1 + v41 + 1084) != 0;
  225.       (*(void (__stdcall **)(bool *, signed int, signed int))(*(_DWORD *)v42 + 44))(&v63, 1, 1);
  226.       ++v41;
  227.       v40 = v63 + (v40 >> 1) + (v40 << 31);
  228.     }
  229.     while ( v41 < v62 );
  230.   }
  231.   v43 = *(_DWORD *)(v1 + 4);
  232.   v61 = 8;
  233.   v60 = 84;
  234.   v62 = 21;
  235.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v43 + 44))(&v61, 4, 1);
  236.   v44 = v61 + (v40 >> 1) + (v40 << 31);
  237.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  238.   v45 = v60 + (v44 >> 1) + (v44 << 31);
  239.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  240.   v46 = v62 + (v45 >> 1) + (v45 << 31);
  241.   v47 = 0;
  242.   if ( v62 )
  243.   {
  244.     v59 = v1 + 1108;
  245.     do
  246.     {
  247.       v58 = *(_DWORD *)v59;
  248.       (*(void (__stdcall **)(int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v58, 4, 1);
  249.       v59 += 4;
  250.       ++v47;
  251.       v46 = v58 + (v46 >> 1) + (v46 << 31);
  252.     }
  253.     while ( v47 < v62 );
  254.   }
  255.   v48 = *(_DWORD *)(v1 + 4);
  256.   v61 = 9;
  257.   v60 = 4;
  258.   v62 = 1;
  259.   (*(void (__stdcall **)(int *, signed int, signed int))(*(_DWORD *)v48 + 44))(&v61, 4, 1);
  260.   v49 = v61 + (v46 >> 1) + (v46 << 31);
  261.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v60, 4, 1);
  262.   v50 = v60 + (v49 >> 1) + (v49 << 31);
  263.   (*(void (__stdcall **)(_DWORD, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v62, 4, 1);
  264.   v51 = v62 + (v50 >> 1) + (v50 << 31);
  265.   v52 = 0;
  266.   if ( v62 )
  267.   {
  268.     v59 = v1 + 1192;
  269.     do
  270.     {
  271.       v58 = *(_DWORD *)v59;
  272.       (*(void (__stdcall **)(int *, _DWORD, _DWORD))(**(_DWORD **)(v1 + 4) + 44))(&v58, 4, 1);
  273.       v59 += 4;
  274.       ++v52;
  275.       v51 = v58 + (v51 >> 1) + (v51 << 31);
  276.     }
  277.     while ( v52 < v62 );
  278.   }
  279.   v53 = *(_DWORD *)(v1 + 4);
  280.   ++*(_DWORD *)(v1 + 1200);
  281.   v54 = v1 + 1200;
  282.   (*(void (__stdcall **)(int, signed int, signed int))(*(_DWORD *)v53 + 44))(v1 + 1200, 4, 1);
  283.   v55 = *(_DWORD *)(v1 + 4);
  284.   v57 = (*(_DWORD *)v54 + (v51 << 31) + (v51 >> 1)) ^ 0x96696996;
  285.   return (*(int (__thiscall **)(int, unsigned int *, signed int, signed int))(*(_DWORD *)v55 + 44))(v55, &v57, 4, 1);
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement