Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _BYTE byte_758E56A0[ 16 ] = { 115, 168, 173, 86, 124, 91, 202, 115, 4, 218, 173, 199,202, 61, 51, 188 };
- u1 get_u1_fast( ) {
- const byte* current; // r8
- int v2; // edx
- current = _current;
- v2 = LODWORD( _current ) - LODWORD( _buffer_start );
- _current = current + 1;
- return *current ^ byte_758E56A0[ ( v2 + *( current - 1 ) ) & 0xF ] ^ __ROR1__( *( current - 2 ), 3 );
- }
- u2 get_u2_fast( ) {
- const byte* current; // r11
- int v2; // r9d
- char v3; // r10
- unsigned __int16 v5; // [rsp+8h] [rbp+8h]
- current = _current;
- v2 = LODWORD(_current ) - LODWORD( _buffer_start );
- _current = current + 2;
- v3 = *( current - 1 );
- LOBYTE( v5 ) = *current ^ byte_758E56A0[ ( (_BYTE)v2 + v3 ) & 0xF ] ^ __ROR1__( *( current - 2 ), 3 );
- HIBYTE( v5 ) = current[ 1 ] ^ byte_758E56A0[ ( *current + (_BYTE)v2 + 1 ) & 0xF ] ^ __ROR1__( v3, 3 );
- return ( (unsigned __int8)v5 << 8 ) | HIBYTE( v5 );
- }
- u4 get_u4_fast( ) {
- const byte* current; // r9
- int v2; // r10d
- int v3; // edx
- int v4; // ecx
- int v5; // r11d
- int v6; // r8d
- int v7; // edx
- unsigned int v9; // [rsp+8h] [rbp+8h]
- current = _current;
- v2 = LODWORD( _current ) - LODWORD( _buffer_start );
- _current = current + 4;
- v3 = *( current - 1 );
- v4 = *current;
- v5 = ( v4 ^ byte_758E56A0[ ( v2 + v3 ) % 16 ] ^ __ROR1__( *( current - 2 ), 3 ) );
- v6 = current[ 1 ];
- LOBYTE( v9 ) = v5;
- BYTE1( v9 ) = v6 ^ byte_758E56A0[ ( v4 + v2 + 1 ) % 16 ] ^ __ROR1__( v3, 3 );
- v7 = current[ 2 ];
- HIBYTE( v9 ) = current[ 3 ] ^ byte_758E56A0[ ( v7 + v2 + 3 ) % 16 ] ^ __ROR1__( v6, 3 );
- BYTE2( v9 ) = v7 ^ byte_758E56A0[ ( v6 + v2 + 2 ) % 16 ] ^ __ROR1__( v4, 3 );
- return HIBYTE( v9 ) | ( ( BYTE2( v9 ) | ( ( ( v5 << 8 ) | BYTE1( v9 ) ) << 8 ) ) << 8 );
- }
- u8 get_u8_fast( ) {
- const byte* current; // rdx
- int v2; // r8d
- int v3; // r10d
- int v4; // ecx
- __int64 v5; // rbx
- int v6; // r9d
- int v7; // r10d
- int v8; // r11d
- int v9; // ecx
- int v10; // r9d
- int v11; // r10d
- unsigned __int64 v13; // [rsp+8h] [rbp+8h]
- current = _current;
- v2 = LODWORD( _current ) - LODWORD( _buffer_start );
- _current = current + 8;
- v3 = *( current - 1 );
- v4 = *current;
- v5 = ( v4 ^ byte_758E56A0[ ( v2 + v3 ) % 16 ] ^ __ROR1__( *( current - 2 ), 3 ) );
- v6 = current[ 1 ];
- LOBYTE( v13 ) = v5;
- BYTE1( v13 ) = v6 ^ byte_758E56A0[ ( v4 + v2 + 1 ) % 16 ] ^ __ROR1__( v3, 3 );
- v7 = current[ 2 ];
- v8 = current[ 3 ];
- BYTE2( v13 ) = v7 ^ byte_758E56A0[ ( v6 + v2 + 2 ) % 16 ] ^ __ROR1__( v4, 3 );
- v9 = current[ 4 ];
- BYTE3( v13 ) = v8 ^ byte_758E56A0[ ( v7 + v2 + 3 ) % 16 ] ^ __ROR1__( v6, 3 );
- v10 = current[ 5 ];
- BYTE4( v13 ) = v9 ^ byte_758E56A0[ ( v8 + v2 + 4 ) % 16 ] ^ __ROR1__( v7, 3 );
- v11 = current[ 6 ];
- BYTE5( v13 ) = v10 ^ byte_758E56A0[ ( v9 + v2 + 5 ) % 16 ] ^ __ROR1__( v8, 3 );
- HIBYTE( v13 ) = current[ 7 ] ^ byte_758E56A0[ ( v11 + v2 + 7 ) % 16 ] ^ __ROR1__( v10, 3 );
- BYTE6( v13 ) = v11 ^ byte_758E56A0[ ( v10 + v2 + 6 ) % 16 ] ^ __ROR1__( v9, 3 );
- return HIBYTE( v13 ) | ( ( BYTE6( v13 ) | ( ( ( ( BYTE4( v13 ) | ( ( BYTE3( v13 ) | ( ( BYTE2( v13 ) | ( ( ( v5 << 8 ) | BYTE1( v13 ) ) << 8 ) ) << 8 ) ) << 8 ) ) << 8 ) | BYTE5( v13 ) ) << 8 ) ) << 8 );
- }
- const u1* get_u1_buffer( u2 sz ) {
- 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" ) };
- return fn.call<const u1*>( this, sz );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement