Advertisement
Guest User

Untitled

a guest
Dec 28th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 2.80 KB | None | 0 0
  1. int __fastcall Cryptography__DecryptBytes(int a1, int a2, int a3)   //a2 = data byte[] , a3 = key byte[]
  2. {
  3.   int v3; // r4
  4.   int v4; // r6
  5.   signed int v5; // r7
  6.   int v6; // r5
  7.   signed int v7; // r0
  8.   unsigned int v8; // r8
  9.   unsigned int v9; // r9
  10.   int v10; // r0
  11.   int v11; // r10
  12.   int v12; // r0
  13.   char v13; // r5
  14.   int v14; // r0
  15.   int v15; // r0
  16.   int v16; // r0
  17.   bool v17; // nf
  18.   unsigned __int8 v18; // vf
  19.   int v20; // [sp+0h] [bp-30h]
  20.   int v21; // [sp+4h] [bp-2Ch]
  21.   int v22; // [sp+8h] [bp-28h]
  22.   signed int v23; // [sp+Ch] [bp-24h]
  23.   int v24; // [sp+10h] [bp-20h]
  24.  
  25.   v3 = a2;
  26.   v20 = a2;
  27.   if ( !a3 )
  28.   {
  29.     ((void (__fastcall *)(_DWORD))loc_1DBC304)(0);  //Initialize
  30.     a3 = 0;
  31.   }
  32.   v21 = v3 + 16;
  33.   v4 = a3 + 16;
  34.   v22 = a3;
  35.   v5 = 0;
  36.   v23 = *(_DWORD *)(a3 + 12);
  37.   v6 = 0;
  38.   while ( 1 )
  39.   {
  40.     if ( !v3 )
  41.       ((void (__fastcall *)(_DWORD))loc_1DBC304)(0);    //Initialize
  42.     v7 = *(_DWORD *)(v3 + 12);
  43.     if ( v5 >= v7 )
  44.       break;
  45.     if ( v23 >= 1 )
  46.     {
  47.       v8 = 0;
  48.       if ( v5 < v7 )
  49.       {
  50.         do
  51.         {
  52.           v9 = v5 + v8;
  53.           v24 = v6;
  54.           if ( v7 <= v5 + v8 )
  55.           {
  56.             v10 = sub_1DBD1E4();    //IndexOutOfRangeException
  57.             ((void (__fastcall *)(int, _DWORD, _DWORD))loc_1DBC270)(v10, 0, 0);
  58.           }
  59.           v11 = v21 + v8;
  60.           v12 = v22;
  61.           v13 = *(_BYTE *)(v21 + v8 + v5);
  62.           if ( !v22 )
  63.           {
  64.             ((void (__fastcall *)(_DWORD))loc_1DBC304)(0);
  65.             v12 = v22;
  66.             v3 = v20;
  67.           }
  68.           if ( *(_DWORD *)(v12 + 12) <= v8 )
  69.           {
  70.             v14 = sub_1DBD1E4();        //IndexOutOfRangeException
  71.             ((void (__fastcall *)(int, _DWORD, _DWORD))loc_1DBC270)(v14, 0, 0);
  72.           }
  73.           *(_BYTE *)(v11 + v5) = *(_BYTE *)(v4 + v8) ^ v13;
  74.           if ( !v3 )
  75.             ((void (__fastcall *)(_DWORD))loc_1DBC304)(0);
  76.           if ( *(_DWORD *)(v3 + 12) <= v9 )
  77.           {
  78.             v15 = sub_1DBD1E4();
  79.             ((void (__fastcall *)(int, _DWORD, _DWORD))loc_1DBC270)(v15, 0, 0);
  80.           }
  81.           v6 = *(unsigned __int8 *)(v11 + v5) ^ v24;
  82.           *(_BYTE *)(v11 + v5) = v6;
  83.           if ( *(_DWORD *)(v3 + 12) <= v9 )
  84.           {
  85.             v16 = sub_1DBD1E4();
  86.             ((void (__fastcall *)(int, _DWORD, _DWORD))loc_1DBC270)(v16, 0, 0);
  87.             v6 = *(unsigned __int8 *)(v11 + v5);
  88.           }
  89.           v7 = v23;
  90.           v18 = __OFSUB__(++v8, v23);
  91.           v17 = (signed int)(v8 - v23) < 0;
  92.           if ( (signed int)v8 < v23 )
  93.           {
  94.             v7 = *(_DWORD *)(v3 + 12);
  95.             v18 = __OFSUB__(v5 + v8, v7);
  96.             v17 = (signed int)(v5 + v8 - v7) < 0;
  97.           }
  98.         }
  99.         while ( v17 ^ v18 );
  100.       }
  101.     }
  102.     v5 += v23;
  103.   }
  104.   return v3;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement