Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __cdecl T2Audio::loadMF2(T2Audio *this, int *a2, const char *a3, const char *a4)
- {
- char v4; // al@3
- signed int result; // eax@4
- char v6; // cl@7
- void *v7; // eax@9
- _UNKNOWN *v8; // ecx@9
- char *v9; // edx@9
- int v10; // esi@12
- char *v11; // esi@17
- signed int v12; // eax@17
- int v13; // esi@19
- int v14; // eax@21
- void *v15; // esi@23
- int v16; // edi@23
- __int16 v17; // ax@24
- __int16 v18; // dx@24
- _UNKNOWN *v19; // ecx@31
- int v20; // esi@31
- int v21; // edx@32
- __int16 v22; // ax@32
- char *v23; // [sp+4h] [bp-348h]@22
- void *v24; // [sp+8h] [bp-344h]@21
- FILE *v25; // [sp+Ch] [bp-340h]@1
- int v26; // [sp+10h] [bp-33Ch]@9
- int v27; // [sp+14h] [bp-338h]@22
- signed int v28; // [sp+18h] [bp-334h]@23
- _UNKNOWN *v29; // [sp+1Ch] [bp-330h]@30
- void *v30; // [sp+20h] [bp-32Ch]@22
- char v31; // [sp+30h] [bp-31Ch]@1
- char v32[256]; // [sp+230h] [bp-11Ch]@18
- unsigned __int8 v33; // [sp+330h] [bp-1Ch]@17
- unsigned __int8 v34; // [sp+331h] [bp-1Bh]@17
- char v35; // [sp+332h] [bp-1Ah]@14
- unsigned __int8 v36; // [sp+333h] [bp-19h]@13
- signed int v37; // [sp+33Ch] [bp-10h]@1
- v37 = 494267;
- strcpy(&v31, a3);
- strcat(&v31, a4);
- v25 = fopen(&v31, "rb");
- if ( !v25 )
- return 0;
- if ( (unsigned __int8)(*a4 - 48) > 9u || (v4 = a4[1], v4 <= 47) || v4 > 57 || (v6 = a4[2], v6 <= 47) || v6 > 57 )
- {
- fclose(v25);
- return 0;
- }
- v26 = 100 * *a4 + 10 * v4 + v6 - 5328;
- v7 = malloc((size_t)&loc_20000);
- v8 = 0;
- v9 = (char *)wavetable_ptr + 64 * v26;
- for ( *((_DWORD *)v9 + 15) = v7; ; v7 = (void *)*((_DWORD *)v9 + 15) )
- {
- *(_WORD *)((char *)v8 + (_DWORD)v7) = 0;
- v8 = (char *)v8 + 2;
- if ( v8 == &loc_20000 )
- break;
- }
- v10 = 0;
- do
- {
- ++v10;
- fread(&v36, 1u, 1u, v25);
- }
- while ( v10 != 4 );
- fread(&v35, 1u, 1u, v25);
- if ( v35 != 1 )
- return 0;
- LOWORD(v10) = 0;
- do
- {
- ++v10;
- fread(&v36, 1u, 1u, v25);
- }
- while ( v10 != 3 );
- fread(&v36, 1u, 1u, v25);
- fread(&v36, 1u, 1u, v25);
- fread(&v34, 1u, 1u, v25);
- fread(&v33, 1u, 1u, v25);
- *((_DWORD *)wavetable_ptr + 16 * v26) = v33 + (v34 << 8);
- v11 = (char *)wavetable_ptr + 64 * v26;
- fread(&v36, 1u, 1u, v25);
- v11[57] = v36;
- fread(&v36, 1u, 1u, v25);
- v11[56] = v36;
- fread(&v36, 1u, 1u, v25);
- *((float *)v11 + 13) = (float)v36 * 0.15625;
- fread(&v36, 1u, 1u, v25);
- v12 = 1;
- do
- v32[v12++ - 1] = 0;
- while ( v12 != 257 );
- fread(v32, 0x20u, 1u, v25);
- v13 = 0;
- strcpy((char *)wavetable_ptr + 64 * v26 + 4, v32);
- do
- {
- ++v13;
- fread(&v36, 1u, 1u, v25);
- }
- while ( v13 != 32 );
- v24 = malloc(*((_DWORD *)wavetable_ptr + 16 * v26) << 9);
- fread(v24, 1u, *((_DWORD *)wavetable_ptr + 16 * v26) << 9, v25);
- v14 = *((_DWORD *)wavetable_ptr + 16 * v26);
- if ( v14 > 0 )
- {
- v27 = 0;
- v23 = (char *)wavetable_ptr + 64 * v26;
- v30 = v24;
- do
- {
- v15 = v30;
- v28 = 256;
- v16 = v27 << 9;
- do
- {
- v17 = *((_BYTE *)v15 + 1);
- v18 = *(_BYTE *)v15 << 8;
- v15 = (char *)v15 + 2;
- *(_WORD *)(*((_DWORD *)v23 + 15) + v16) = v18 + v17;
- v16 += 2;
- --v28;
- }
- while ( v28 );
- ++v27;
- v14 = *(_DWORD *)v23;
- v30 = (char *)v30 + 512;
- }
- while ( v27 < *(_DWORD *)v23 );
- }
- if ( v14 == 1 )
- {
- v29 = 0;
- do
- {
- v19 = v29;
- v20 = 0;
- do
- {
- v21 = *((_DWORD *)wavetable_ptr + 16 * v26 + 15);
- v22 = *(_WORD *)(v21 + v20);
- v20 += 2;
- *(_WORD *)((char *)v19 + v21) = v22;
- v19 = (char *)v19 + 2;
- }
- while ( v20 != 512 );
- v29 = (char *)v29 + 512;
- }
- while ( v29 != &loc_20000 );
- }
- free(v24);
- fclose(v25);
- result = 1;
- if ( v26 > *a2 )
- *a2 = v26;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment