Advertisement
test12333

Untitled

Jan 5th, 2024
784
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.43 KB | None | 0 0
  1.     _BYTE byte_758E56A0[ 16 ] = { 115, 168, 173, 86, 124, 91, 202, 115, 4, 218, 173, 199,202, 61, 51, 188 };
  2.  
  3.     u1 get_u1_fast( ) {
  4.         const byte* current; // r8
  5.         int v2; // edx
  6.  
  7.         current = _current;
  8.         v2 = LODWORD( _current ) - LODWORD( _buffer_start );
  9.         _current = current + 1;
  10.         return *current ^ byte_758E56A0[ ( v2 + *( current - 1 ) ) & 0xF ] ^ __ROR1__( *( current - 2 ), 3 );
  11.     }
  12.  
  13.     u2 get_u2_fast( ) {
  14.         const byte* current; // r11
  15.         int v2; // r9d
  16.         char v3; // r10
  17.         unsigned __int16 v5; // [rsp+8h] [rbp+8h]
  18.  
  19.         current = _current;
  20.         v2 = LODWORD(_current ) - LODWORD( _buffer_start );
  21.         _current = current + 2;
  22.         v3 = *( current - 1 );
  23.         LOBYTE( v5 ) = *current ^ byte_758E56A0[ ( (_BYTE)v2 + v3 ) & 0xF ] ^ __ROR1__( *( current - 2 ), 3 );
  24.         HIBYTE( v5 ) = current[ 1 ] ^ byte_758E56A0[ ( *current + (_BYTE)v2 + 1 ) & 0xF ] ^ __ROR1__( v3, 3 );
  25.         return ( (unsigned __int8)v5 << 8 ) | HIBYTE( v5 );
  26.     }
  27.  
  28.     u4 get_u4_fast( ) {
  29.         const byte* current; // r9
  30.         int v2; // r10d
  31.         int v3; // edx
  32.         int v4; // ecx
  33.         int v5; // r11d
  34.         int v6; // r8d
  35.         int v7; // edx
  36.         unsigned int v9; // [rsp+8h] [rbp+8h]
  37.  
  38.         current = _current;
  39.         v2 = LODWORD( _current ) - LODWORD( _buffer_start );
  40.         _current = current + 4;
  41.         v3 = *( current - 1 );
  42.         v4 = *current;
  43.         v5 = ( v4 ^ byte_758E56A0[ ( v2 + v3 ) % 16 ] ^ __ROR1__( *( current - 2 ), 3 ) );
  44.         v6 = current[ 1 ];
  45.         LOBYTE( v9 ) = v5;
  46.         BYTE1( v9 ) = v6 ^ byte_758E56A0[ ( v4 + v2 + 1 ) % 16 ] ^ __ROR1__( v3, 3 );
  47.         v7 = current[ 2 ];
  48.         HIBYTE( v9 ) = current[ 3 ] ^ byte_758E56A0[ ( v7 + v2 + 3 ) % 16 ] ^ __ROR1__( v6, 3 );
  49.         BYTE2( v9 ) = v7 ^ byte_758E56A0[ ( v6 + v2 + 2 ) % 16 ] ^ __ROR1__( v4, 3 );
  50.         return HIBYTE( v9 ) | ( ( BYTE2( v9 ) | ( ( ( v5 << 8 ) | BYTE1( v9 ) ) << 8 ) ) << 8 );
  51.     }
  52.  
  53.     u8 get_u8_fast( ) {
  54.         const byte* current; // rdx
  55.         int v2; // r8d
  56.         int v3; // r10d
  57.         int v4; // ecx
  58.         __int64 v5; // rbx
  59.         int v6; // r9d
  60.         int v7; // r10d
  61.         int v8; // r11d
  62.         int v9; // ecx
  63.         int v10; // r9d
  64.         int v11; // r10d
  65.         unsigned __int64 v13; // [rsp+8h] [rbp+8h]
  66.  
  67.         current = _current;
  68.         v2 = LODWORD( _current ) - LODWORD( _buffer_start );
  69.         _current = current + 8;
  70.         v3 = *( current - 1 );
  71.         v4 = *current;
  72.         v5 = ( v4 ^ byte_758E56A0[ ( v2 + v3 ) % 16 ] ^ __ROR1__( *( current - 2 ), 3 ) );
  73.         v6 = current[ 1 ];
  74.         LOBYTE( v13 ) = v5;
  75.         BYTE1( v13 ) = v6 ^ byte_758E56A0[ ( v4 + v2 + 1 ) % 16 ] ^ __ROR1__( v3, 3 );
  76.         v7 = current[ 2 ];
  77.         v8 = current[ 3 ];
  78.         BYTE2( v13 ) = v7 ^ byte_758E56A0[ ( v6 + v2 + 2 ) % 16 ] ^ __ROR1__( v4, 3 );
  79.         v9 = current[ 4 ];
  80.         BYTE3( v13 ) = v8 ^ byte_758E56A0[ ( v7 + v2 + 3 ) % 16 ] ^ __ROR1__( v6, 3 );
  81.         v10 = current[ 5 ];
  82.         BYTE4( v13 ) = v9 ^ byte_758E56A0[ ( v8 + v2 + 4 ) % 16 ] ^ __ROR1__( v7, 3 );
  83.         v11 = current[ 6 ];
  84.         BYTE5( v13 ) = v10 ^ byte_758E56A0[ ( v9 + v2 + 5 ) % 16 ] ^ __ROR1__( v8, 3 );
  85.         HIBYTE( v13 ) = current[ 7 ] ^ byte_758E56A0[ ( v11 + v2 + 7 ) % 16 ] ^ __ROR1__( v10, 3 );
  86.         BYTE6( v13 ) = v11 ^ byte_758E56A0[ ( v10 + v2 + 6 ) % 16 ] ^ __ROR1__( v9, 3 );
  87.         return HIBYTE( v13 ) | ( ( BYTE6( v13 ) | ( ( ( ( BYTE4( v13 ) | ( ( BYTE3( v13 ) | ( ( BYTE2( v13 ) | ( ( ( v5 << 8 ) | BYTE1( v13 ) ) << 8 ) ) << 8 ) ) << 8 ) ) << 8 ) | BYTE5( v13 ) ) << 8 ) ) << 8 );
  88.     }
  89.    
  90.     const u1* get_u1_buffer( u2 sz ) {
  91.         static auto fn = SomeFunction{ FindPattern( "jvm.dll", "48 89 5C 24 ? 48 89 74 24 ? 57 48 83 EC ? 48 63 FA 48 8B F1 48 8B CF 33 D2 E8" ) };
  92.         return fn.call<const u1*>( this, sz );
  93.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement