{"name": "init_get_bits", "code": "__int64 __fastcall init_get_bits ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { int @@v4@@ ; __int64 @@v5@@ ; unsigned int @@v6@@ ; @@v5@@ = @@a2@@ ; @@v4@@ = @@a3@@ ; @@v6@@ = Number ; if ( @@a3@@ > Number || @@a3@@ < Number || ! @@a2@@ ) { @@v4@@ = Number ; @@v5@@ = Number L ; @@v6@@ = Number ; } * ( _QWORD * ) @@a1@@ = @@v5@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v4@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = @@v4@@ + Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v5@@ + ( ( @@v4@@ + Number ) >> Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return @@v6@@ ; }", "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": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}]}
{"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": "scale16be", "code": "__int64 __fastcall scale16be ( _DWORD * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , int @@a4@@ , int @@a5@@ ) { int v5 ; __int64 @@result@@ ; char @@v8@@ [ Number ] ; unsigned __int16 @@v9@@ ; unsigned __int16 @@v10@@ ; unsigned __int16 @@v11@@ ; unsigned __int16 @@v12@@ ; int @@v13@@ ; int @@i@@ ; if ( @@a5@@ ) { init_get_bits ( ( __int64 ) @@v8@@ , @@a3@@ , Number * @@a4@@ ) ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = ( unsigned int ) ( @@a1@@ [ Number ] * @@a1@@ [ Number ] ) ; if ( @@i@@ >= ( int ) @@result@@ ) break ; @@v13@@ = get_bits ( ( __int64 ) @@v8@@ , @@a1@@ [ Number ] ) ; @@v9@@ = ( @@v13@@ << ( Number - @@a1@@ [ Number ] ) ) | ( @@v13@@ >> ( Number * ( @@a1@@ [ Number ] - Number ) ) ) ; @@v9@@ = HIBYTE ( @@v9@@ ) | ( @@v9@@ << Number ) ; * ( _WORD * ) ( Number * @@i@@ + @@a2@@ ) = @@v9@@ ; } } else { for ( @@i@@ = Number ; ; @@i@@ += Number ) { @@result@@ = ( unsigned int ) ( @@i@@ + Number ) ; if ( @@a4@@ <= ( int ) @@result@@ ) break ; @@v10@@ = HIBYTE ( * ( unsigned __int16 * ) ( @@i@@ + @@a3@@ ) ) | ( * ( _WORD * ) ( @@i@@ + @@a3@@ ) << Number ) ; v5 = @@v10@@ << ( Number - @@a1@@ [ Number ] ) ; @@v11@@ = HIBYTE ( * ( unsigned __int16 * ) ( @@i@@ + @@a3@@ ) ) | ( * ( _WORD * ) ( @@i@@ + @@a3@@ ) << Number ) ; @@v12@@ = v5 | ( ( int ) @@v11@@ >> ( Number * ( @@a1@@ [ Number ] - Number ) ) ) ; @@v12@@ = HIBYTE ( @@v12@@ ) | ( @@v12@@ << Number ) ; * ( _WORD * ) ( @@i@@ + @@a2@@ ) = @@v12@@ ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v12", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s10"}, {"n": "v11", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s12"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s14"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v8", "t": {"T": 2, "n": 32, "s": 1, "t": "char"}, "location": "s48"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "scale16le", "code": "__int64 __fastcall scale16le ( _DWORD * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , int @@a4@@ , int @@a5@@ ) { __int64 @@result@@ ; char @@v6@@ [ Number ] ; int @@v7@@ ; int @@i@@ ; if ( @@a5@@ ) { init_get_bits ( ( __int64 ) @@v6@@ , @@a3@@ , Number * @@a4@@ ) ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = ( unsigned int ) ( @@a1@@ [ Number ] * @@a1@@ [ Number ] ) ; if ( @@i@@ >= ( int ) @@result@@ ) break ; @@v7@@ = get_bits ( ( __int64 ) @@v6@@ , @@a1@@ [ Number ] ) ; * ( _WORD * ) ( Number * @@i@@ + @@a2@@ ) = ( @@v7@@ >> ( Number * ( @@a1@@ [ Number ] - Number ) ) ) | ( ( _WORD ) @@v7@@ << ( Number - @@a1@@ [ Number ] ) ) ; } } else { for ( @@i@@ = Number ; ; @@i@@ += Number ) { @@result@@ = ( unsigned int ) ( @@i@@ + Number ) ; if ( @@a4@@ <= ( int ) @@result@@ ) break ; * ( _WORD * ) ( @@i@@ + @@a2@@ ) = ( ( int ) * ( unsigned __int16 * ) ( @@i@@ + @@a3@@ ) >> ( Number * ( @@a1@@ [ Number ] - Number ) ) ) | ( * ( _WORD * ) ( @@i@@ + @@a3@@ ) << ( Number - @@a1@@ [ Number ] ) ) ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v6", "t": {"T": 2, "n": 40, "s": 1, "t": "char"}, "location": "s48"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}