Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int *__fastcall gamedc(const void *a1, size_t a2, int *a3, size_t *a4)
- {
- const void *v4; // r8
- size_t *v5; // r10
- size_t v6; // r5
- int v7; // r0
- int v8; // r1
- int v9; // r3
- int v10; // r1
- unsigned int *v11; // r7
- size_t v12; // r4
- unsigned int *v13; // r0
- unsigned int *v14; // r6
- unsigned int *v15; // r0
- unsigned int *v16; // r9
- int v17; // r8
- int v18; // r5
- size_t v19; // r3
- unsigned int v20; // r2
- unsigned int v21; // r4
- size_t *v22; // r5
- size_t v23; // r12
- int v24; // r6
- unsigned int *v25; // r10
- int v26; // lr
- unsigned int *v27; // r3
- size_t v28; // t1
- int v29; // r7
- unsigned int v30; // r0
- unsigned int *v31; // r0
- size_t v32; // r4
- size_t *v34; // [sp+0h] [bp-48h]
- size_t v35; // [sp+4h] [bp-44h]
- int v36; // [sp+8h] [bp-40h]
- size_t *v37; // [sp+Ch] [bp-3Ch]
- unsigned int *p; // [sp+10h] [bp-38h]
- int v39; // [sp+14h] [bp-34h]
- int v40; // [sp+18h] [bp-30h]
- int v41; // [sp+1Ch] [bp-2Ch]
- int v42; // [sp+20h] [bp-28h]
- int v43; // [sp+24h] [bp-24h]
- v4 = a1;
- v5 = a4;
- v6 = a2;
- v7 = *a3;
- v8 = a3[1];
- v9 = a3[2];
- v43 = a3[3];
- v40 = v7;
- v41 = v8;
- v42 = v9;
- if ( (_BYTE)v7 )
- {
- if ( BYTE1(v40) )
- {
- if ( BYTE2(v40) )
- {
- if ( HIBYTE(v40) )
- {
- if ( (_BYTE)v41 )
- {
- if ( BYTE1(v41) )
- {
- if ( BYTE2(v41) )
- {
- if ( HIBYTE(v41) )
- {
- if ( (_BYTE)v42 )
- {
- if ( BYTE1(v42) )
- {
- if ( BYTE2(v42) )
- {
- if ( HIBYTE(v42) )
- {
- if ( (_BYTE)v43 )
- {
- if ( BYTE1(v43) )
- {
- if ( BYTE2(v43) )
- goto LABEL_32;
- v10 = 14;
- }
- else
- {
- v10 = 13;
- }
- }
- else
- {
- v10 = 12;
- }
- }
- else
- {
- v10 = 11;
- }
- }
- else
- {
- v10 = 10;
- }
- }
- else
- {
- v10 = 9;
- }
- }
- else
- {
- v10 = 8;
- }
- }
- else
- {
- v10 = 7;
- }
- }
- else
- {
- v10 = 6;
- }
- }
- else
- {
- v10 = 5;
- }
- }
- else
- {
- v10 = 4;
- }
- }
- else
- {
- v10 = 3;
- }
- }
- else
- {
- v10 = 2;
- }
- }
- else
- {
- v10 = 1;
- }
- }
- else
- {
- v10 = 0;
- }
- memset((char *)&v40 + v10 + 1, 0, v10 ^ 0xF);
- LABEL_32:
- v11 = 0;
- if ( v6 )
- {
- v12 = v6 >> 2;
- if ( v6 & 3 )
- v12 = (v6 >> 2) + 1;
- v13 = (unsigned int *)calloc(v12, 4u);
- v14 = v13;
- if ( v13 )
- {
- qmemcpy(v13, v4, v6);
- v15 = (unsigned int *)calloc(4u, 4u);
- v16 = v15;
- if ( v15 )
- {
- v35 = v12;
- v15[3] = v43;
- v17 = v40;
- v18 = v41;
- v19 = v12;
- v15[2] = v42;
- v15[1] = v18;
- *v15 = v17;
- v39 = v12 - 1;
- if ( v12 != 1 && (v20 = -1253254570 - 1640531527 * (0x34 / v12)) != 0 )
- {
- v21 = *v14;
- v34 = v5;
- v22 = &v14[v39];
- v36 = (int)&v14[v19 - 1];
- v37 = &v14[v39];
- p = v14;
- do
- {
- v23 = *v22;
- v24 = (v20 >> 2) & 3;
- v25 = (unsigned int *)v36;
- v26 = v39;
- v27 = (unsigned int *)v36;
- do
- {
- v28 = *(v27 - 1);
- --v27;
- v29 = v26-- & 3 ^ v24;
- v21 = v23 - ((((v28 >> 5) ^ (4 * v21)) + ((16 * v28) ^ (v21 >> 3))) ^ ((v16[v29] ^ v28) + (v21 ^ v20)));
- *v25 = v21;
- v25 = v27;
- v23 = v28;
- }
- while ( v26 );
- v22 = v37;
- v30 = v16[v24];
- v14 = p;
- v21 = *p - ((((*v37 >> 5) ^ (4 * v21)) + ((16 * *v37) ^ (v21 >> 3))) ^ ((v30 ^ *v37) + (v21 ^ v20)));
- v20 += 1640531527;
- *p = v21;
- }
- while ( v20 );
- v5 = v34;
- v19 = v35;
- }
- else
- {
- v22 = &v14[v39];
- }
- v32 = *v22;
- v11 = 0;
- if ( *v22 >= 4 * v19 - 7 && v32 <= 4 * v19 - 4 )
- {
- v11 = (unsigned int *)malloc(v32 + 1);
- qmemcpy(v11, v14, v32);
- *((_BYTE *)v11 + v32) = 0;
- *v5 = v32;
- }
- free(v14);
- v31 = v16;
- }
- else
- {
- v31 = v14;
- }
- free(v31);
- }
- }
- return v11;
- }
Advertisement
Add Comment
Please, Sign In to add comment