daily pastebin goal
7%
SHARE
TWEET

Untitled

a guest Nov 14th, 2017 167 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. signed int __fastcall Aska::IdxBufComp::DecompressIndexBuffer(Aska::IdxBufComp *this, const void *a2, unsigned __int8 *a3, unsigned int a4, unsigned int a5)
  2. {
  3.   Aska::IdxBufComp *v5; // r6
  4.   unsigned int v6; // r4
  5.   unsigned __int8 *v7; // r5
  6.   _WORD *v8; // r8
  7.   unsigned int v9; // r0
  8.   unsigned int v10; // r6
  9.   __int16 v11; // r0
  10.   signed int v12; // r5
  11.   unsigned int v13; // r6
  12.   unsigned int v14; // r4
  13.   unsigned int v15; // r5
  14.   unsigned __int16 v16; // r0
  15.   _WORD *v17; // r10
  16.   _WORD *v18; // r7
  17.   int v19; // r8
  18.   __int16 v20; // r9
  19.   unsigned int v21; // r9
  20.   __int16 v22; // r0
  21.   _WORD *v23; // r1
  22.   unsigned int v25; // [sp+4h] [bp-4h]
  23.   char v26; // [sp+8h] [bp+0h]
  24.  
  25.   v5 = this;
  26.   v6 = a4;
  27.   v7 = a3;
  28.   v8 = a2;
  29.   Aska::BitStreamReader::BitStreamReader((Aska::BitStreamReader *)&v26);
  30.   Aska::BitStreamReader::SetBuffer((Aska::BitStreamReader *)&v26, (const void *)v5, (unsigned int)v7);
  31.   v9 = Aska::BitStreamReader::ReadUnsignedInt((Aska::BitStreamReader *)&v26, 0x20u);
  32.   v10 = v9;
  33.   v25 = v9;
  34.   v11 = Aska::BitStreamReader::ReadUnsignedInt((Aska::BitStreamReader *)&v26, 0x10u);
  35.   v12 = 0;
  36.   if ( v6 >> 1 )
  37.   {
  38.     *v8 = v11;
  39.     if ( v10 < 2 )
  40.     {
  41. LABEL_17:
  42.       v12 = 1;
  43.     }
  44.     else
  45.     {
  46.       v13 = v6 >> 1;
  47.       v14 = 3;
  48.       v15 = 1;
  49.       while ( 1 )
  50.       {
  51.         v16 = Aska::BitStreamReader::ReadUnsignedInt((Aska::BitStreamReader *)&v26, 0x10u);
  52.         if ( v16 )
  53.           break;
  54.         v18 = v8;
  55. LABEL_10:
  56.         if ( v14 < 5 )
  57.         {
  58.           v8 = v18;
  59.           v21 = v25;
  60.         }
  61.         else
  62.         {
  63.           v21 = v25;
  64.           v8 = v18;
  65.           if ( v15 < v25 )
  66.           {
  67.             if ( v15 >= v13 )
  68.             {
  69.               v12 = 0;
  70.               goto LABEL_19;
  71.             }
  72.             v22 = Aska::BitStreamReader::ReadUnsignedInt((Aska::BitStreamReader *)&v26, 0x10u);
  73.             v23 = &v18[v15++];
  74.             v14 = 2;
  75.             *v23 = v22;
  76.           }
  77.         }
  78.         if ( ++v14 > 0x1F || v15 >= v21 )
  79.           goto LABEL_17;
  80.       }
  81.       v17 = &v8[v15];
  82.       v18 = v8;
  83.       v19 = -v16;
  84.       while ( v15 < v13 )
  85.       {
  86.         v20 = *(v17 - 1);
  87.         *v17 = Aska::BitStreamReader::ReadSignedInt((Aska::BitStreamReader *)&v26, v14) + v20;
  88.         ++v17;
  89.         ++v19;
  90.         ++v15;
  91.         if ( !v19 )
  92.           goto LABEL_10;
  93.       }
  94.       v12 = 0;
  95.     }
  96.   }
  97. LABEL_19:
  98.   Aska::BitStreamReader::~BitStreamReader((Aska::BitStreamReader *)&v26);
  99.   return v12;
  100. }
RAW Paste Data
Top