{"name": "bgmc_lut_getp", "code": "_BYTE * __fastcall bgmc_lut_getp ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { unsigned int @@v3@@ ; _BYTE * @@v5@@ ; if ( @@a3@@ >= Number ) { if ( @@a3@@ <= Number ) @@v3@@ = @@a3@@ ; else @@v3@@ = Number ; } else { @@v3@@ = Number ; } @@v5@@ = ( _BYTE * ) ( ( @@v3@@ << Number ) + @@a1@@ ) ; if ( @@a3@@ != * ( _DWORD * ) ( Number L * @@v3@@ + @@a2@@ ) ) bgmc_lut_fillp ( @@v5@@ , ( _DWORD * ) ( Number L * @@v3@@ + @@a2@@ ) , @@a3@@ ) ; return @@v5@@ ; }", "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": "v3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r8"}, {"n": "v5", "t": {"T": 3, "t": "_BYTE"}, "location": "s24"}]}
{"name": "bgmc_lut_fillp", "code": "_DWORD * __fastcall bgmc_lut_fillp ( _BYTE * @@a1@@ , _DWORD * @@a2@@ , int @@a3@@ ) { _BYTE * v3 ; _DWORD * result ; unsigned int @@k@@ ; unsigned int @@j@@ ; unsigned int @@i@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { for ( @@k@@ = Number << @@a3@@ ; ( @@j@@ + Number ) << Number < * ( ( unsigned __int16 * ) * ( & cf_table + @@i@@ ) + @@k@@ ) ; @@k@@ += Number << @@a3@@ ) ; v3 = @@a1@@ ++ ; * v3 = @@k@@ >> @@a3@@ ; } } result = @@a2@@ ; * @@a2@@ = @@a3@@ ; return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "_BYTE"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_DWORD"}, "location": "r64"}, {"n": "k", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "i", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s8"}]} {"name": "ff_bgmc_decode", "code": "_DWORD * __fastcall ff_bgmc_decode ( __int64 @@a1@@ , unsigned int @@a2@@ , int * @@a3@@ , int @@a4@@ , unsigned int @@a5@@ , unsigned int * @@a6@@ , unsigned int * @@a7@@ , _DWORD * @@a8@@ , __int64 @@a9@@ , __int64 @@a10@@ ) { _BYTE * v10 ; int * v11 ; _DWORD * result ; char @@v16@@ ; unsigned int @@v17@@ ; _BYTE * @@v18@@ ; unsigned int i ; int v20 ; int @@v21@@ ; unsigned int @@v22@@ ; unsigned int @@v23@@ ; unsigned int @@v24@@ ; @@v16@@ = @@a4@@ ; v10 = bgmc_lut_getp ( @@a9@@ , @@a10@@ , @@a4@@ ) ; @@v23@@ = * @@a6@@ ; @@v22@@ = * @@a7@@ ; @@v21@@ = * @@a8@@ ; @@v18@@ = & v10 [ Number * @@a5@@ ] ; @@v24@@ = Number ; LABEL_14 : if ( @@v24@@ < @@a2@@ ) { @@v17@@ = @@v23@@ - @@v22@@ + Number ; for ( i = ( unsigned __int8 ) @@v18@@ [ ( ( ( ( @@v21@@ - @@v22@@ + Number ) << Number ) - Number ) / @@v17@@ ) >> Number ] << @@v16@@ ; ( ( ( @@v21@@ - @@v22@@ + Number ) << Number ) - Number ) / @@v17@@ < * ( ( unsigned __int16 * ) * ( & cf_table + @@a5@@ ) + i ) ; i += Number << @@v16@@ ) { ; } v20 = ( i >> @@v16@@ ) - Number ; @@v23@@ = ( ( @@v17@@ * * ( ( unsigned __int16 * ) * ( & cf_table + @@a5@@ ) + ( unsigned int ) ( v20 << @@v16@@ ) ) - Number ) >> Number ) + @@v22@@ ; for ( @@v22@@ += ( @@v17@@ * * ( ( unsigned __int16 * ) * ( & cf_table + @@a5@@ ) + ( unsigned int ) ( ( v20 + Number ) << @@v16@@ ) ) ) >> Number ; ; @@v22@@ *= Number ) { if ( @@v23@@ > Number ) { if ( @@v22@@ <= Number ) { if ( @@v22@@ <= Number || @@v23@@ > Number ) { v11 = @@a3@@ ++ ; * v11 = v20 ; ++ @@v24@@ ; goto LABEL_14 ; } @@v21@@ -= Number ; @@v22@@ -= Number ; @@v23@@ -= Number ; } else { @@v21@@ -= Number ; @@v22@@ -= Number ; @@v23@@ -= Number ; } } @@v23@@ = Number * @@v23@@ + Number ; @@v21@@ = Number * @@v21@@ + get_bits1 ( @@a1@@ ) ; } } * @@a6@@ = @@v23@@ ; * @@a7@@ = @@v22@@ ; result = @@a8@@ ; * @@a8@@ = @@v21@@ ; return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "int"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "unsigned int"}, "location": "r80"}, {"n": "a8", "t": {"T": 3, "t": "_DWORD"}, "location": "s-16"}, {"n": "a9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s-24"}, {"n": "a10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s-32"}, {"n": "a7", "t": {"T": 3, "t": "unsigned int"}, "location": "s-8"}, {"n": "v24", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v23", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16"}, {"n": "v22", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v18", "t": {"T": 3, "t": "_BYTE"}, "location": "s40"}, {"n": "v17", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v16", "t": {"T": 1, "n": "char", "s": 1}, "location": "s72"}]}