{"name": "get_bits1", "code": "__int64 __fastcall get_bits1 ( __int64 @@a1@@ ) { unsigned __int8 @@v2@@ ; unsigned int @@v3@@ ; @@v3@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v2@@ = ( unsigned __int8 ) ( * ( unsigned __int8 * ) ( ( @@v3@@ >> Number ) + * ( _QWORD * ) @@a1@@ ) << ( @@v3@@ & Number ) ) >> Number ; if ( ( signed int ) @@v3@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ) ++ @@v3@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; return @@v2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "v2", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s5"}]}
{"name": "get_bits", "code": "__int64 __fastcall get_bits ( __int64 @@a1@@ , int @@a2@@ ) { unsigned int @@v2@@ ; unsigned int @@v3@@ ; unsigned int @@v5@@ ; unsigned int @@v6@@ ; unsigned int @@v7@@ ; @@v7@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v6@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v5@@ = * ( _DWORD * ) ( ( @@v7@@ >> Number ) + * ( _QWORD * ) @@a1@@ ) ; @@v2@@ = NEG_USR32 ( ( HIBYTE ( @@v5@@ ) | ( unsigned __int16 ) ( HIWORD ( @@v5@@ ) << Number ) | ( ( ( unsigned __int16 ) ( ( _WORD ) @@v5@@ << Number ) | BYTE1 ( @@v5@@ ) ) << Number ) ) << ( @@v7@@ & Number ) , @@a2@@ ) ; @@v3@@ = @@a2@@ + @@v7@@ ; if ( @@v6@@ <= @@a2@@ + @@v7@@ ) @@v3@@ = @@v6@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v3@@ ; return @@v2@@ ; }", "source": [{"n": "v2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r32"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}]} {"name": "parse_frame", "code": "__int64 __fastcall parse_frame ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { int v4 ; int v5 ; char @@v6@@ [ Number ] ; int @@v7@@ ; unsigned int @@v8@@ ; __int64 @@v9@@ ; _BOOL4 @@v10@@ ; _BOOL4 @@v11@@ ; @@v9@@ = * ( _QWORD * ) @@a1@@ ; @@v8@@ = init_get_bits8 ( ( __int64 ) @@v6@@ , @@a2@@ , @@a3@@ ) ; if ( ( @@v8@@ & Number ) != Number ) return @@v8@@ ; get_bits ( ( __int64 ) @@v6@@ , Number ) ; @@v7@@ = get_bits1 ( ( __int64 ) @@v6@@ ) ; v4 = get_bits1 ( ( __int64 ) @@v6@@ ) ; @@v7@@ |= Number * v4 ; if ( @@v7@@ == Number ) { v5 = get_bits1 ( ( __int64 ) @@v6@@ ) ; @@v7@@ += v5 ; } if ( ( unsigned int ) get_bits1 ( ( __int64 ) @@v6@@ ) ) { @@v11@@ = Number ; @@v10@@ = Number ; } else { @@v11@@ = get_bits1 ( ( __int64 ) @@v6@@ ) == Number ; @@v10@@ = get_bits1 ( ( __int64 ) @@v6@@ ) == Number ; } if ( @@v11@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } else { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } if ( @@v10@@ ) { if ( * ( _QWORD * ) ( @@a1@@ + Number ) != Number ) { * ( _QWORD * ) ( @@v9@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = Number ; } } else { if ( * ( _QWORD * ) ( @@a1@@ + Number ) == Number ) * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@v9@@ + Number ) ; * ( _QWORD * ) ( @@v9@@ + Number ) = Number ; } return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v11", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s4"}, {"n": "v6", "t": {"T": 2, "n": 40, "s": 1, "t": "char"}, "location": "s64"}, {"n": "v10", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s8"}]}