Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- signed int __usercall sub_1E10F020<eax>(int a1<eax>, int a2<esi>)
- {
- signed int result; // eax@1
- int v3; // ecx@1
- *(_DWORD *)a2 = a1;
- result = 1;
- v3 = a2;
- do
- {
- *(_DWORD *)(v3 + 4) = result++ + 1812433253 * (*(_DWORD *)v3 ^ (*(_DWORD *)v3 >> 30));
- v3 += 4;
- }
- while ( result < 624 );
- *(_DWORD *)(a2 + 2496) = result;
- return result;
- }
- int __userpurge sub_1E10F090<eax>(unsigned int *a1<edi>, signed int a2)
- {
- unsigned int v2; // ebx@1
- signed int v3; // ebp@1
- int v4; // ecx@1
- int v5; // ecx@1
- int v6; // ecx@1
- int v7; // ecx@1
- unsigned int v8; // ecx@2
- int v9; // eax@4
- unsigned int v10; // eax@4
- int v11; // ebp@5
- char v12; // zf@6
- unsigned int v14; // eax@9
- signed int v15; // ebp@9
- int v16; // ecx@10
- int v17; // esi@10
- int v18; // edx@13
- int v19; // esi@13
- char v20; // zf@13
- unsigned int v21; // [sp+Ch] [bp-9E0h]@1
- int v22; // [sp+Ch] [bp-9E0h]@9
- int v23; // [sp+10h] [bp-9DCh]@4
- int v24; // [sp+14h] [bp-9D8h]@3
- int v25; // [sp+18h] [bp-9D4h]@1
- int v26; // [sp+1Ch] [bp-9D0h]@1
- int v27; // [sp+20h] [bp-9CCh]@1
- int v28; // [sp+24h] [bp-9C8h]@1
- char v29; // [sp+28h] [bp-9C4h]@1
- signed int v30; // [sp+9F0h] [bp+4h]@9
- v2 = *a1;
- v3 = a2;
- v21 = 0;
- sub_1E10F020();
- v25 = sub_1E10E2F0(v4, &v29);
- v26 = sub_1E10E2F0(v5, &v29);
- v27 = sub_1E10E2F0(v6, &v29);
- v28 = sub_1E10E2F0(v7, &v29);
- if ( a2 <= 1 )
- {
- if ( a2 < -1 )
- {
- v15 = -a2;
- v30 = v15;
- v14 = -1640531527 * (52 / v15 + 6);
- v22 = -1640531527 * (52 / v15 + 6);
- if ( v14 )
- {
- do
- {
- v17 = (v14 >> 2) & 3;
- v16 = v15 - 1;
- if ( v15 - 1 > 0 )
- {
- do
- {
- v17 = (v14 >> 2) & 3;
- v2 = a1[v16]
- - (((v2 ^ v22) + (a1[v16 - 1] ^ *(&v25 + ((v14 >> 2) & 3 ^ v16 & 3)))) ^ ((4 * v2 ^ (a1[v16 - 1] >> 5))
- + (16 * a1[v16 - 1] ^ (v2 >> 3))));
- a1[v16--] = v2;
- }
- while ( v16 > 0 );
- v15 = v30;
- }
- v18 = (4 * v2 ^ (a1[v15 - 1] >> 5)) + (16 * a1[v15 - 1] ^ (v2 >> 3));
- v15 = v30;
- v19 = *a1 - (((v2 ^ v22) + (a1[v30 - 1] ^ *(&v25 + (v17 ^ v16 & 3)))) ^ v18);
- v20 = v22 == -1640531527;
- v14 = v22 + 1640531527;
- *a1 = v19;
- v2 = v19;
- v22 += 1640531527;
- }
- while ( !v20 );
- }
- }
- return 0;
- }
- v8 = a1[a2 - 1];
- if ( 52 / a2 + 6 <= 0 )
- return 0;
- v24 = 52 / a2 + 6;
- do
- {
- v10 = v21 - 1640531527;
- v21 = v10;
- v23 = (v10 >> 2) & 3;
- v9 = 0;
- if ( v3 - 1 > 0 )
- {
- do
- {
- v11 = (((a1[v9 + 1] ^ v21) + (v8 ^ *(&v25 + (v23 ^ v9 & 3)))) ^ ((4 * a1[v9 + 1] ^ (v8 >> 5))
- + (16 * v8 ^ (a1[v9 + 1] >> 3))))
- + a1[v9];
- a1[v9] = v11;
- v8 = v11;
- v3 = a2;
- ++v9;
- }
- while ( v9 < a2 - 1 );
- }
- v8 = (((*a1 ^ v21) + (v8 ^ *(&v25 + (v23 ^ v9 & 3)))) ^ ((4 * *a1 ^ (v8 >> 5)) + (16 * v8 ^ (*a1 >> 3))))
- + a1[v3 - 1];
- v12 = v24 == 1;
- a1[v3 - 1] = v8;
- --v24;
- }
- while ( !v12 );
- return 0;
- }
Add Comment
Please, Sign In to add comment