Advertisement
Guest User

Original decoding function

a guest
Jul 17th, 2015
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.27 KB | None | 0 0
  1. igned __int64 __fastcall sub_4007BE(__int64 a1, int a2)
  2. {
  3.   signed __int64 result; // rax@2
  4.   char v3; // ST1F_1@4
  5.   char v4; // ST1F_1@4
  6.   unsigned __int8 v5; // ST1F_1@4
  7.   signed int i; // [sp+14h] [bp-10h]@3
  8.  
  9.   if ( a2 == 16 )
  10.   {
  11.     for ( i = 0; i <= 15; ++i )
  12.     {
  13.       v3 = (*(_BYTE *)(a1
  14.                      + (signed int)(((((unsigned int)((i + 3) >> 31) >> 28) + (_BYTE)i + 3) & 0xF)
  15.                                   - ((unsigned int)((i + 3) >> 31) >> 28))) | *(_BYTE *)(a1
  16.                                                                                        + (signed int)(((((unsigned int)(i >> 31) >> 28) + (_BYTE)i) & 0xF) - ((unsigned int)(i >> 31) >> 28))))
  17.          - (*(_BYTE *)(a1
  18.                      + (signed int)(((((unsigned int)(i >> 31) >> 28) + (_BYTE)i) & 0xF)
  19.                                   - ((unsigned int)(i >> 31) >> 28))) & *(_BYTE *)(a1
  20.                                                                                  + (signed int)(((((unsigned int)((i + 3) >> 31) >> 28)
  21.                                                                                                 + (_BYTE)i
  22.                                                                                                 + 3) & 0xF)
  23.                                                                                               - ((unsigned int)((i + 3) >> 31) >> 28))));
  24.       v4 = (v3 | *(_BYTE *)(a1
  25.                           + (signed int)(((((unsigned int)((i + 5) >> 31) >> 28) + (_BYTE)i + 5) & 0xF)
  26.                                        - ((unsigned int)((i + 5) >> 31) >> 28))))
  27.          - (v3 & *(_BYTE *)(a1
  28.                           + (signed int)(((((unsigned int)((i + 5) >> 31) >> 28) + (_BYTE)i + 5) & 0xF)
  29.                                        - ((unsigned int)((i + 5) >> 31) >> 28))));
  30.       v5 = (v4 | *(_BYTE *)(a1
  31.                           + (signed int)(((((unsigned int)((i + 11) >> 31) >> 28) + (_BYTE)i + 11) & 0xF)
  32.                                        - ((unsigned int)((i + 11) >> 31) >> 28))))
  33.          - (v4 & *(_BYTE *)(a1
  34.                           + (signed int)(((((unsigned int)((i + 11) >> 31) >> 28) + (_BYTE)i + 11) & 0xF)
  35.                                        - ((unsigned int)((i + 11) >> 31) >> 28))));
  36.       if ( byte_602060[(signed __int64)i] != (v5 | *(_BYTE *)(a1
  37.                                                             + (signed int)(((((unsigned int)((i + 12) >> 31) >> 28)
  38.                                                                            + (_BYTE)i
  39.                                                                            + 12) & 0xF)
  40.                                                                          - ((unsigned int)((i + 12) >> 31) >> 28))))
  41.                                            - (v5 & *(_BYTE *)(a1
  42.                                                             + (signed int)(((((unsigned int)((i + 12) >> 31) >> 28)
  43.                                                                            + (_BYTE)i
  44.                                                                            + 12) & 0xF)
  45.                                                                          - ((unsigned int)((i + 12) >> 31) >> 28)))) )
  46.         return 0LL;
  47.     }
  48.     result = 1LL;
  49.   }
  50.   else
  51.   {
  52.     result = 0LL;
  53.   }
  54.   return result;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement