Guest User

Untitled

a guest
Mar 23rd, 2021
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.56 KB | None | 0 0
  1. unsigned int *__fastcall gamedc(const void *a1, size_t a2, int *a3, size_t *a4)
  2. {
  3.   const void *v4; // r8
  4.   size_t *v5; // r10
  5.   size_t v6; // r5
  6.   int v7; // r0
  7.   int v8; // r1
  8.   int v9; // r3
  9.   int v10; // r1
  10.   unsigned int *v11; // r7
  11.   size_t v12; // r4
  12.   unsigned int *v13; // r0
  13.   unsigned int *v14; // r6
  14.   unsigned int *v15; // r0
  15.   unsigned int *v16; // r9
  16.   int v17; // r8
  17.   int v18; // r5
  18.   size_t v19; // r3
  19.   unsigned int v20; // r2
  20.   unsigned int v21; // r4
  21.   size_t *v22; // r5
  22.   size_t v23; // r12
  23.   int v24; // r6
  24.   unsigned int *v25; // r10
  25.   int v26; // lr
  26.   unsigned int *v27; // r3
  27.   size_t v28; // t1
  28.   int v29; // r7
  29.   unsigned int v30; // r0
  30.   unsigned int *v31; // r0
  31.   size_t v32; // r4
  32.   size_t *v34; // [sp+0h] [bp-48h]
  33.   size_t v35; // [sp+4h] [bp-44h]
  34.   int v36; // [sp+8h] [bp-40h]
  35.   size_t *v37; // [sp+Ch] [bp-3Ch]
  36.   unsigned int *p; // [sp+10h] [bp-38h]
  37.   int v39; // [sp+14h] [bp-34h]
  38.   int v40; // [sp+18h] [bp-30h]
  39.   int v41; // [sp+1Ch] [bp-2Ch]
  40.   int v42; // [sp+20h] [bp-28h]
  41.   int v43; // [sp+24h] [bp-24h]
  42.  
  43.   v4 = a1;
  44.   v5 = a4;
  45.   v6 = a2;
  46.   v7 = *a3;
  47.   v8 = a3[1];
  48.   v9 = a3[2];
  49.   v43 = a3[3];
  50.   v40 = v7;
  51.   v41 = v8;
  52.   v42 = v9;
  53.   if ( (_BYTE)v7 )
  54.   {
  55.     if ( BYTE1(v40) )
  56.     {
  57.       if ( BYTE2(v40) )
  58.       {
  59.         if ( HIBYTE(v40) )
  60.         {
  61.           if ( (_BYTE)v41 )
  62.           {
  63.             if ( BYTE1(v41) )
  64.             {
  65.               if ( BYTE2(v41) )
  66.               {
  67.                 if ( HIBYTE(v41) )
  68.                 {
  69.                   if ( (_BYTE)v42 )
  70.                   {
  71.                     if ( BYTE1(v42) )
  72.                     {
  73.                       if ( BYTE2(v42) )
  74.                       {
  75.                         if ( HIBYTE(v42) )
  76.                         {
  77.                           if ( (_BYTE)v43 )
  78.                           {
  79.                             if ( BYTE1(v43) )
  80.                             {
  81.                               if ( BYTE2(v43) )
  82.                                 goto LABEL_32;
  83.                               v10 = 14;
  84.                             }
  85.                             else
  86.                             {
  87.                               v10 = 13;
  88.                             }
  89.                           }
  90.                           else
  91.                           {
  92.                             v10 = 12;
  93.                           }
  94.                         }
  95.                         else
  96.                         {
  97.                           v10 = 11;
  98.                         }
  99.                       }
  100.                       else
  101.                       {
  102.                         v10 = 10;
  103.                       }
  104.                     }
  105.                     else
  106.                     {
  107.                       v10 = 9;
  108.                     }
  109.                   }
  110.                   else
  111.                   {
  112.                     v10 = 8;
  113.                   }
  114.                 }
  115.                 else
  116.                 {
  117.                   v10 = 7;
  118.                 }
  119.               }
  120.               else
  121.               {
  122.                 v10 = 6;
  123.               }
  124.             }
  125.             else
  126.             {
  127.               v10 = 5;
  128.             }
  129.           }
  130.           else
  131.           {
  132.             v10 = 4;
  133.           }
  134.         }
  135.         else
  136.         {
  137.           v10 = 3;
  138.         }
  139.       }
  140.       else
  141.       {
  142.         v10 = 2;
  143.       }
  144.     }
  145.     else
  146.     {
  147.       v10 = 1;
  148.     }
  149.   }
  150.   else
  151.   {
  152.     v10 = 0;
  153.   }
  154.   memset((char *)&v40 + v10 + 1, 0, v10 ^ 0xF);
  155. LABEL_32:
  156.   v11 = 0;
  157.   if ( v6 )
  158.   {
  159.     v12 = v6 >> 2;
  160.     if ( v6 & 3 )
  161.       v12 = (v6 >> 2) + 1;
  162.     v13 = (unsigned int *)calloc(v12, 4u);
  163.     v14 = v13;
  164.     if ( v13 )
  165.     {
  166.       qmemcpy(v13, v4, v6);
  167.       v15 = (unsigned int *)calloc(4u, 4u);
  168.       v16 = v15;
  169.       if ( v15 )
  170.       {
  171.         v35 = v12;
  172.         v15[3] = v43;
  173.         v17 = v40;
  174.         v18 = v41;
  175.         v19 = v12;
  176.         v15[2] = v42;
  177.         v15[1] = v18;
  178.         *v15 = v17;
  179.         v39 = v12 - 1;
  180.         if ( v12 != 1 && (v20 = -1253254570 - 1640531527 * (0x34 / v12)) != 0 )
  181.         {
  182.           v21 = *v14;
  183.           v34 = v5;
  184.           v22 = &v14[v39];
  185.           v36 = (int)&v14[v19 - 1];
  186.           v37 = &v14[v39];
  187.           p = v14;
  188.           do
  189.           {
  190.             v23 = *v22;
  191.             v24 = (v20 >> 2) & 3;
  192.             v25 = (unsigned int *)v36;
  193.             v26 = v39;
  194.             v27 = (unsigned int *)v36;
  195.             do
  196.             {
  197.               v28 = *(v27 - 1);
  198.               --v27;
  199.               v29 = v26-- & 3 ^ v24;
  200.               v21 = v23 - ((((v28 >> 5) ^ (4 * v21)) + ((16 * v28) ^ (v21 >> 3))) ^ ((v16[v29] ^ v28) + (v21 ^ v20)));
  201.               *v25 = v21;
  202.               v25 = v27;
  203.               v23 = v28;
  204.             }
  205.             while ( v26 );
  206.             v22 = v37;
  207.             v30 = v16[v24];
  208.             v14 = p;
  209.             v21 = *p - ((((*v37 >> 5) ^ (4 * v21)) + ((16 * *v37) ^ (v21 >> 3))) ^ ((v30 ^ *v37) + (v21 ^ v20)));
  210.             v20 += 1640531527;
  211.             *p = v21;
  212.           }
  213.           while ( v20 );
  214.           v5 = v34;
  215.           v19 = v35;
  216.         }
  217.         else
  218.         {
  219.           v22 = &v14[v39];
  220.         }
  221.         v32 = *v22;
  222.         v11 = 0;
  223.         if ( *v22 >= 4 * v19 - 7 && v32 <= 4 * v19 - 4 )
  224.         {
  225.           v11 = (unsigned int *)malloc(v32 + 1);
  226.           qmemcpy(v11, v14, v32);
  227.           *((_BYTE *)v11 + v32) = 0;
  228.           *v5 = v32;
  229.         }
  230.         free(v14);
  231.         v31 = v16;
  232.       }
  233.       else
  234.       {
  235.         v31 = v14;
  236.       }
  237.       free(v31);
  238.     }
  239.   }
  240.   return v11;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment