Skip to content

Instantly share code, notes, and snippets.

@Tustin
Created April 26, 2017 21:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tustin/41b289d6bac22da94f5152f4348bb7f5 to your computer and use it in GitHub Desktop.
Save Tustin/41b289d6bac22da94f5152f4348bb7f5 to your computer and use it in GitHub Desktop.
int __fastcall repEncrpyt(int a1, char *a2, signed int a3)
{
char *v3; // r3@1
signed int v4; // r7@1
int v5; // r6@1
unsigned int v6; // r2@1
int v7; // r5@1
char *v8; // r5@2
int v9; // r4@2
__int32 v10; // r0@3
int v11; // r4@4
int v12; // r0@4
bool v13; // zf@5
__int32 v14; // r0@7
char *v15; // r6@9
_BYTE *v16; // r4@10
signed int v17; // r5@10
char v18; // r7@11
int v19; // r7@12
__int32 v20; // r0@13
int v21; // r6@15
int v22; // r7@16
int v24; // [sp+10h] [bp-180h]@4
int v25; // [sp+14h] [bp-17Ch]@9
signed int v26; // [sp+18h] [bp-178h]@9
char v27; // [sp+1Ch] [bp-174h]@1
char v28; // [sp+20h] [bp-170h]@12
char v29[16]; // [sp+34h] [bp-15Ch]@5
char v30[16]; // [sp+44h] [bp-14Ch]@4
char v31[16]; // [sp+54h] [bp-13Ch]@3
char v32; // [sp+64h] [bp-12Ch]@9
char v33; // [sp+168h] [bp-28h]@12
v3 = &v27;
v4 = a3;
v5 = a1;
v6 = 0xFFFFF6C0;
*(_DWORD *)&v27 = _stack_chk_guard;
v7 = 0;
if ( a2 )
{
v8 = a2;
v9 = 0;
do
{
v10 = j_j_lrand48();
v31[v9++] = j_j_j___modsi3(v10, 255);
}
while ( v9 != 16 );
v24 = v5;
sub_37D248(v5, v30);
v11 = 0;
v12 = 0;
do
{
v29[-v12] = v30[-v12] ^ v31[-v12];
v13 = v12-- == -15;
}
while ( !v13 );
do
{
v14 = j_j_lrand48();
v30[-v11] = j_j_j___modsi3(v14, 255);
v13 = v11-- == -15;
}
while ( !v13 );
v25 = j_j_j_scmemAlloc(v4);
sub_37D544(&v32, v29, 16);
v26 = v4;
v15 = v8;
if ( v4 >= 1 )
{
v16 = (_BYTE *)v25;
v17 = v4;
do
{
v18 = *v15;
*v16 = sub_37D770(&v32) ^ v18;
++v15;
++v16;
--v17;
}
while ( v17 );
}
v19 = 0;
j_j___aeabi_memset(&v28, 20, 0);
sub_37D7AC(v24);
j_j_j_sha1Reset(&v32);
j_j_j_sha1Update(&v32, v31, 16);
j_j_j_sha1Update(&v32, v25, v26);
j_j_j_sha1Update(&v32, &v33, 16);
j_j_j_sha1Result(&v32, &v28);
do
{
v20 = j_j_lrand48();
*(&v33 - v19) = j_j_j___modsi3(v20, 255);
v13 = v19-- == -15;
}
while ( !v13 );
v21 = j_j_j_scmemAlloc(16);
v7 = 0;
if ( v21 )
{
*(_DWORD *)(v21 + 12) = v26 + 36;
v22 = j_j_j_scmemAlloc(v26 + 36);
*(_DWORD *)(v21 + 8) = v22;
if ( v22 )
{
((void (*)(void))j_j___aeabi_memcpy)();
j_j___aeabi_memcpy(v22 + 16, v25, v26);
j_j___aeabi_memcpy(v26 + v22 + 16, &v28, 20);
j_j_j_scmemFree(v25);
*(_DWORD *)v21 = 0;
*(_DWORD *)(v21 + 4) = 0;
v7 = v21;
}
else
{
j_j_j_scmemFree(v21);
}
}
v3 = &v27;
v6 = 0xFFFFF6C0;
}
if ( **(_DWORD **)((char *)&GLOBAL_OFFSET_TABLE_ + v6) != *(_DWORD *)v3 )
j_j___stack_chk_fail();
return v7;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment