Guest User

Untitled

a guest
Sep 24th, 2014
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.85 KB | None | 0 0
  1. signed int __cdecl T2Audio::loadMF2(T2Audio *this, int *a2, const char *a3, const char *a4)
  2. {
  3.   char v4; // al@3
  4.   signed int result; // eax@4
  5.   char v6; // cl@7
  6.   void *v7; // eax@9
  7.   _UNKNOWN *v8; // ecx@9
  8.   char *v9; // edx@9
  9.   int v10; // esi@12
  10.   char *v11; // esi@17
  11.   signed int v12; // eax@17
  12.   int v13; // esi@19
  13.   int v14; // eax@21
  14.   void *v15; // esi@23
  15.   int v16; // edi@23
  16.   __int16 v17; // ax@24
  17.   __int16 v18; // dx@24
  18.   _UNKNOWN *v19; // ecx@31
  19.   int v20; // esi@31
  20.   int v21; // edx@32
  21.   __int16 v22; // ax@32
  22.   char *v23; // [sp+4h] [bp-348h]@22
  23.   void *v24; // [sp+8h] [bp-344h]@21
  24.   FILE *v25; // [sp+Ch] [bp-340h]@1
  25.   int v26; // [sp+10h] [bp-33Ch]@9
  26.   int v27; // [sp+14h] [bp-338h]@22
  27.   signed int v28; // [sp+18h] [bp-334h]@23
  28.   _UNKNOWN *v29; // [sp+1Ch] [bp-330h]@30
  29.   void *v30; // [sp+20h] [bp-32Ch]@22
  30.   char v31; // [sp+30h] [bp-31Ch]@1
  31.   char v32[256]; // [sp+230h] [bp-11Ch]@18
  32.   unsigned __int8 v33; // [sp+330h] [bp-1Ch]@17
  33.   unsigned __int8 v34; // [sp+331h] [bp-1Bh]@17
  34.   char v35; // [sp+332h] [bp-1Ah]@14
  35.   unsigned __int8 v36; // [sp+333h] [bp-19h]@13
  36.   signed int v37; // [sp+33Ch] [bp-10h]@1
  37.  
  38.   v37 = 494267;
  39.   strcpy(&v31, a3);
  40.   strcat(&v31, a4);
  41.   v25 = fopen(&v31, "rb");
  42.   if ( !v25 )
  43.     return 0;
  44.   if ( (unsigned __int8)(*a4 - 48) > 9u || (v4 = a4[1], v4 <= 47) || v4 > 57 || (v6 = a4[2], v6 <= 47) || v6 > 57 )
  45.   {
  46.     fclose(v25);
  47.     return 0;
  48.   }
  49.   v26 = 100 * *a4 + 10 * v4 + v6 - 5328;
  50.   v7 = malloc((size_t)&loc_20000);
  51.   v8 = 0;
  52.   v9 = (char *)wavetable_ptr + 64 * v26;
  53.   for ( *((_DWORD *)v9 + 15) = v7; ; v7 = (void *)*((_DWORD *)v9 + 15) )
  54.   {
  55.     *(_WORD *)((char *)v8 + (_DWORD)v7) = 0;
  56.     v8 = (char *)v8 + 2;
  57.     if ( v8 == &loc_20000 )
  58.       break;
  59.   }
  60.   v10 = 0;
  61.   do
  62.   {
  63.     ++v10;
  64.     fread(&v36, 1u, 1u, v25);
  65.   }
  66.   while ( v10 != 4 );
  67.   fread(&v35, 1u, 1u, v25);
  68.   if ( v35 != 1 )
  69.     return 0;
  70.   LOWORD(v10) = 0;
  71.   do
  72.   {
  73.     ++v10;
  74.     fread(&v36, 1u, 1u, v25);
  75.   }
  76.   while ( v10 != 3 );
  77.   fread(&v36, 1u, 1u, v25);
  78.   fread(&v36, 1u, 1u, v25);
  79.   fread(&v34, 1u, 1u, v25);
  80.   fread(&v33, 1u, 1u, v25);
  81.   *((_DWORD *)wavetable_ptr + 16 * v26) = v33 + (v34 << 8);
  82.   v11 = (char *)wavetable_ptr + 64 * v26;
  83.   fread(&v36, 1u, 1u, v25);
  84.   v11[57] = v36;
  85.   fread(&v36, 1u, 1u, v25);
  86.   v11[56] = v36;
  87.   fread(&v36, 1u, 1u, v25);
  88.   *((float *)v11 + 13) = (float)v36 * 0.15625;
  89.   fread(&v36, 1u, 1u, v25);
  90.   v12 = 1;
  91.   do
  92.     v32[v12++ - 1] = 0;
  93.   while ( v12 != 257 );
  94.   fread(v32, 0x20u, 1u, v25);
  95.   v13 = 0;
  96.   strcpy((char *)wavetable_ptr + 64 * v26 + 4, v32);
  97.   do
  98.   {
  99.     ++v13;
  100.     fread(&v36, 1u, 1u, v25);
  101.   }
  102.   while ( v13 != 32 );
  103.   v24 = malloc(*((_DWORD *)wavetable_ptr + 16 * v26) << 9);
  104.   fread(v24, 1u, *((_DWORD *)wavetable_ptr + 16 * v26) << 9, v25);
  105.   v14 = *((_DWORD *)wavetable_ptr + 16 * v26);
  106.   if ( v14 > 0 )
  107.   {
  108.     v27 = 0;
  109.     v23 = (char *)wavetable_ptr + 64 * v26;
  110.     v30 = v24;
  111.     do
  112.     {
  113.       v15 = v30;
  114.       v28 = 256;
  115.       v16 = v27 << 9;
  116.       do
  117.       {
  118.         v17 = *((_BYTE *)v15 + 1);
  119.         v18 = *(_BYTE *)v15 << 8;
  120.         v15 = (char *)v15 + 2;
  121.         *(_WORD *)(*((_DWORD *)v23 + 15) + v16) = v18 + v17;
  122.         v16 += 2;
  123.         --v28;
  124.       }
  125.       while ( v28 );
  126.       ++v27;
  127.       v14 = *(_DWORD *)v23;
  128.       v30 = (char *)v30 + 512;
  129.     }
  130.     while ( v27 < *(_DWORD *)v23 );
  131.   }
  132.   if ( v14 == 1 )
  133.   {
  134.     v29 = 0;
  135.     do
  136.     {
  137.       v19 = v29;
  138.       v20 = 0;
  139.       do
  140.       {
  141.         v21 = *((_DWORD *)wavetable_ptr + 16 * v26 + 15);
  142.         v22 = *(_WORD *)(v21 + v20);
  143.         v20 += 2;
  144.         *(_WORD *)((char *)v19 + v21) = v22;
  145.         v19 = (char *)v19 + 2;
  146.       }
  147.       while ( v20 != 512 );
  148.       v29 = (char *)v29 + 512;
  149.     }
  150.     while ( v29 != &loc_20000 );
  151.   }
  152.   free(v24);
  153.   fclose(v25);
  154.   result = 1;
  155.   if ( v26 > *a2 )
  156.     *a2 = v26;
  157.   return result;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment