{"name": "pop_integer", "code": "__int64 __fastcall pop_integer ( __int64 @@a1@@ , unsigned __int8 * @@a2@@ ) { unsigned __int8 @@v4@@ ; unsigned int @@v5@@ ; ff_big_div ( @@a1@@ , Number L , & @@v4@@ ) ; @@v5@@ = Number ; while ( @@a2@@ [ Number ] > @@v4@@ || @@v4@@ >= * @@a2@@ + @@a2@@ [ Number ] ) { @@a2@@ += Number ; ++ @@v5@@ ; } ff_big_mul ( @@a1@@ , * @@a2@@ ) ; ff_big_add ( @@a1@@ , ( unsigned __int8 ) ( @@v4@@ - @@a2@@ [ Number ] ) ) ; return @@v5@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "unsigned __int8"}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s13"}]}
{"name": "pop_greys", "code": "__int64 __fastcall pop_greys ( __int64 @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ , int @@a4@@ ) { __int64 @@result@@ ; unsigned int @@v5@@ ; unsigned int v6 ; char v7 ; if ( @@a3@@ <= Number ) { v7 = pop_integer ( @@a1@@ , ( unsigned __int8 * ) & ff_xface_probranges_2x2 ) ; if ( ( v7 & Number ) != Number ) * @@a2@@ = Number ; if ( ( v7 & Number ) != Number ) @@a2@@ [ Number ] = Number ; if ( ( v7 & Number ) != Number ) @@a2@@ [ Number ] = Number ; @@result@@ = v7 & Number ; if ( ( v7 & Number ) != Number ) { @@result@@ = ( __int64 ) ( @@a2@@ + Number ) ; @@a2@@ [ Number ] = Number ; } } else { v6 = @@a3@@ / Number ; @@v5@@ = @@a4@@ / Number ; pop_greys ( @@a1@@ , @@a2@@ , ( unsigned int ) ( @@a3@@ / Number ) , ( unsigned int ) ( @@a4@@ / Number ) ) ; pop_greys ( @@a1@@ , & @@a2@@ [ v6 ] , v6 , @@v5@@ ) ; pop_greys ( @@a1@@ , & @@a2@@ [ Number * @@v5@@ ] , v6 , @@v5@@ ) ; @@result@@ = pop_greys ( @@a1@@ , & @@a2@@ [ ( int ) v6 + ( __int64 ) ( int ) ( Number * @@v5@@ ) ] , v6 , @@v5@@ ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "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": 3, "t": "_BYTE"}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}]} {"name": "decode_block", "code": "__int64 __fastcall decode_block ( __int64 @@a1@@ , _BYTE * @@a2@@ , int @@a3@@ , int @@a4@@ , int @@a5@@ ) { __int64 @@result@@ ; unsigned int @@v7@@ ; unsigned int @@v9@@ ; unsigned int @@v11@@ ; @@result@@ = pop_integer ( @@a1@@ , & ff_xface_probranges_per_level [ Number * @@a5@@ ] ) ; if ( ! ( _DWORD ) @@result@@ ) return pop_greys ( @@a1@@ , @@a2@@ , @@a3@@ , @@a4@@ ) ; if ( ( _DWORD ) @@result@@ != Number ) { @@v11@@ = @@a3@@ / Number ; @@v9@@ = @@a4@@ / Number ; @@v7@@ = @@a5@@ + Number ; decode_block ( @@a1@@ , @@a2@@ , @@v11@@ , @@v9@@ , @@v7@@ ) ; decode_block ( @@a1@@ , & @@a2@@ [ @@v11@@ ] , @@v11@@ , @@v9@@ , @@v7@@ ) ; decode_block ( @@a1@@ , & @@a2@@ [ Number * @@v9@@ ] , @@v11@@ , @@v9@@ , @@v7@@ ) ; @@result@@ = decode_block ( @@a1@@ , & @@a2@@ [ ( int ) @@v11@@ + ( __int64 ) ( int ) ( Number * @@v9@@ ) ] , @@v11@@ , @@v9@@ , @@v7@@ ) ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "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": 3, "t": "_BYTE"}, "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": "v11", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v9", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}]}