{"name": "sign_only", "code": "__int64 __fastcall sign_only ( int @@a1@@ ) { if ( ! @@a1@@ ) return Number L ; if ( @@a1@@ <= Number ) return Number ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}]}
{"name": "predictor_decompress_fir_adapt", "code": "unsigned __int64 __fastcall predictor_decompress_fir_adapt ( _DWORD * @@a1@@ , _DWORD * @@a2@@ , int @@a3@@ , char @@a4@@ , __int64 @@a5@@ , int @@a6@@ , char @@a7@@ ) { unsigned __int64 result ; int v8 ; _DWORD * @@v13@@ ; int @@v14@@ ; int @@v15@@ ; int @@v16@@ ; int @@m@@ ; int @@n@@ ; int @@v19@@ ; int @@v20@@ ; int @@l@@ ; int i ; int j ; int k ; @@v13@@ = @@a2@@ ; result = ( unsigned __int64 ) @@a2@@ ; * @@a2@@ = * @@a1@@ ; if ( @@a6@@ ) { if ( @@a6@@ == Number ) { if ( @@a3@@ > Number ) { for ( i = Number ; ; ++ i ) { result = ( unsigned int ) ( @@a3@@ - Number ) ; if ( i >= ( int ) result ) break ; @@a2@@ [ i + Number ] = extend_sign32 ( @@a1@@ [ i + Number ] + @@a2@@ [ i ] , @@a4@@ ) ; } } } else { if ( @@a6@@ > Number ) { for ( j = Number ; ; ++ j ) { result = ( unsigned int ) j ; if ( j >= @@a6@@ ) break ; @@a2@@ [ j + Number ] = extend_sign32 ( @@a2@@ [ j ] + @@a1@@ [ j + Number ] , @@a4@@ ) ; } } if ( @@a6@@ > Number ) { for ( k = @@a6@@ + Number ; ; ++ k ) { result = ( unsigned int ) k ; if ( k >= @@a3@@ ) break ; @@v20@@ = Number ; @@v19@@ = @@a1@@ [ k ] ; for ( @@l@@ = Number ; @@l@@ < @@a6@@ ; ++ @@l@@ ) @@v20@@ += ( @@v13@@ [ @@a6@@ - @@l@@ ] - * @@v13@@ ) * * ( __int16 * ) ( Number L * @@l@@ + @@a5@@ ) ; @@v13@@ [ @@a6@@ + Number ] = extend_sign32 ( ( ( ( Number << ( @@a7@@ - Number ) ) + @@v20@@ ) >> @@a7@@ ) + * @@v13@@ + @@v19@@ , @@a4@@ ) ; if ( @@v19@@ <= Number ) { if ( @@v19@@ < Number ) { for ( @@m@@ = @@a6@@ - Number ; @@m@@ >= Number && @@v19@@ < Number ; -- @@m@@ ) { @@v16@@ = * @@v13@@ - @@v13@@ [ @@a6@@ - @@m@@ ] ; v8 = sign_only ( @@v16@@ ) ; * ( _WORD * ) ( Number L * @@m@@ + @@a5@@ ) += v8 ; @@v19@@ -= ( ( - v8 * @@v16@@ ) >> @@a7@@ ) * ( @@a6@@ - @@m@@ ) ; } } } else { for ( @@n@@ = @@a6@@ - Number ; @@n@@ >= Number && @@v19@@ > Number ; -- @@n@@ ) { @@v15@@ = * @@v13@@ - @@v13@@ [ @@a6@@ - @@n@@ ] ; @@v14@@ = sign_only ( @@v15@@ ) ; * ( _WORD * ) ( Number L * @@n@@ + @@a5@@ ) -= @@v14@@ ; @@v19@@ -= ( ( @@v14@@ * @@v15@@ ) >> @@a7@@ ) * ( @@a6@@ - @@n@@ ) ; } } ++ @@v13@@ ; } } } } else if ( @@a3@@ > Number ) { result = ( unsigned __int64 ) memcpy ( @@a2@@ + Number , @@a1@@ + Number , Number * ( @@a3@@ - Number ) ) ; } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "char", "s": 1}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_DWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "int", "s": 4}, "location": "r80"}, {"n": "a7", "t": {"T": 1, "n": "char", "s": 1}, "location": "s-8"}, {"n": "l", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v20", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "n", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "m", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "v16", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v13", "t": {"T": 3, "t": "_DWORD"}, "location": "s88"}]}