{"name": "get_frame_mb", "code": "__int64 __fastcall get_frame_mb ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , _BYTE * @@a4@@ , int @@a5@@ ) { _BYTE * v5 ; __int64 result ; int @@v8@@ ; int @@i@@ ; int @@k@@ ; unsigned int @@j@@ ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@v8@@ = * ( _DWORD * ) ( @@a1@@ + Number * ( @@i@@ + Number L ) ) ; for ( @@j@@ = Number ; ; ++ @@j@@ ) { result = @@j@@ ; if ( ( int ) @@j@@ >= @@a5@@ ) break ; for ( @@k@@ = Number ; @@k@@ < @@a5@@ ; ++ @@k@@ ) { v5 = @@a4@@ ++ ; * v5 = * ( _BYTE * ) ( * ( _QWORD * ) ( @@a1@@ + Number L * @@i@@ ) + ( int ) ( @@a2@@ + @@v8@@ * ( @@a3@@ + @@j@@ ) + @@k@@ ) ) ; } } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "_BYTE"}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "j", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s4"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}
{"name": "gather_data_for_subcel", "code": "__int64 __fastcall gather_data_for_subcel ( __int64 @@a1@@ , int @@a2@@ , int @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ ) { __int64 @@result@@ ; int v6 ; unsigned __int8 @@v10@@ [ Number ] ; unsigned __int8 @@v11@@ [ Number ] ; int @@v12@@ ; int @@v13@@ ; int @@i@@ ; if ( * ( _DWORD * ) ( @@a4@@ + Number ) ) { * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( Number L * ( @@a3@@ * * ( _DWORD * ) ( @@a4@@ + Number ) / Number + @@a2@@ / Number ) + * ( _QWORD * ) ( @@a4@@ + Number ) ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = eval_motion_dist ( @@a4@@ , @@a2@@ , @@a3@@ , * ( _QWORD * ) ( * ( _QWORD * ) ( @@a4@@ + Number ) + Number L * ( @@a3@@ * * ( _DWORD * ) ( @@a4@@ + Number ) / Number + @@a2@@ / Number ) ) , Number ) ; } else { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } if ( * ( _DWORD * ) ( @@a4@@ + Number ) <= Number ) * ( _DWORD * ) @@a1@@ = Number ; else * ( _DWORD * ) @@a1@@ = block_sse ( * ( _QWORD * ) ( @@a4@@ + Number ) , * ( _QWORD * ) ( @@a4@@ + Number ) , @@a2@@ , @@a3@@ , @@a2@@ , @@a3@@ , * ( _QWORD * ) ( @@a4@@ + Number ) + Number L , * ( _QWORD * ) ( @@a4@@ + Number ) + Number L , Number ) ; @@v12@@ = @@a3@@ * * ( _DWORD * ) ( @@a4@@ + Number ) / Number + @@a2@@ / Number ; get_frame_mb ( * ( _QWORD * ) ( @@a4@@ + Number ) , @@a2@@ , @@a3@@ , @@v11@@ , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = index_mb ( @@v11@@ , @@a5@@ + Number , * ( _DWORD * ) ( @@a5@@ + Number ) , ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; @@result@@ = @@a1@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { * ( _DWORD * ) ( @@a1@@ + Number * ( @@i@@ + Number L ) + Number ) = * ( _DWORD * ) ( Number L * ( Number * @@v12@@ + @@i@@ ) + * ( _QWORD * ) ( @@a5@@ + Number ) ) ; get_frame_mb ( * ( _QWORD * ) ( @@a4@@ + Number ) , Number * ( @@i@@ & Number ) + @@a2@@ , ( @@i@@ & Number ) + @@a3@@ , @@v10@@ , Number ) ; v6 = squared_diff_macroblock ( ( unsigned __int8 * ) ( Number * * ( _DWORD * ) ( @@a1@@ + Number * ( @@i@@ + Number L ) + Number ) + @@a5@@ + Number ) , @@v10@@ , Number ) + * ( _DWORD * ) ( @@a1@@ + Number ) ; @@result@@ = @@a1@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = v6 ; } @@v13@@ = Number ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@result@@ = @@v13@@ ; if ( ( ( __int64 ) * ( int * ) ( @@a1@@ + Number L * @@i@@ ) << Number ) + * ( _QWORD * ) ( @@a4@@ + Number ) * bitsUsed_6270 [ @@i@@ ] < ( unsigned __int64 ) @@v13@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) = @@i@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = bitsUsed_6270 [ @@i@@ ] ; @@result@@ = ( * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ ) << Number ) + ( unsigned int ) * ( _QWORD * ) ( @@a4@@ + Number ) * bitsUsed_6270 [ @@i@@ ] ; @@v13@@ = ( * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ ) << Number ) + * ( _QWORD * ) ( @@a4@@ + Number ) * bitsUsed_6270 [ @@i@@ ] ; } } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "v11", "t": {"T": 2, "n": 52, "s": 1, "t": "unsigned __int8"}, "location": "s64"}, {"n": "v10", "t": {"T": 2, "n": 12, "s": 1, "t": "unsigned __int8"}, "location": "s76"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "gather_data_for_cel", "code": "__int64 __fastcall gather_data_for_cel ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 result ; int v4 ; int v5 ; int v6 ; int v7 ; int @@v9@@ [ Number ] ; int @@v10@@ ; unsigned __int8 @@v11@@ [ Number ] ; int @@v12@@ ; int @@v13@@ ; int @@v14@@ ; int @@j@@ ; int @@i@@ ; @@v12@@ = * ( _DWORD * ) ( @@a1@@ + Number ) * * ( _DWORD * ) ( @@a2@@ + Number ) / Number + * ( _DWORD * ) ( @@a1@@ + Number ) / Number ; @@v9@@ [ Number ] = Number ; @@v9@@ [ Number ] = Number ; @@v9@@ [ Number ] = Number ; @@v10@@ = Number ; if ( * ( _DWORD * ) ( @@a2@@ + Number ) ) { * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L * @@v12@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = eval_motion_dist ( @@a2@@ , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L * @@v12@@ ) , Number ) ; } else { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; } if ( * ( _DWORD * ) ( @@a2@@ + Number ) <= Number ) * ( _DWORD * ) @@a1@@ = Number ; else * ( _DWORD * ) @@a1@@ = block_sse ( * ( _QWORD * ) ( @@a2@@ + Number ) , * ( _QWORD * ) ( @@a2@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a2@@ + Number ) + Number L , * ( _QWORD * ) ( @@a2@@ + Number ) + Number L , Number ) ; get_frame_mb ( * ( _QWORD * ) ( @@a2@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@v11@@ , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = index_mb ( @@v11@@ , @@a3@@ + Number , * ( _DWORD * ) ( @@a3@@ + Number ) , ( _DWORD * ) ( @@a1@@ + Number ) , Number ) ; gather_data_for_subcel ( @@a1@@ + Number , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@a3@@ ) ; gather_data_for_subcel ( @@a1@@ + Number , * ( _DWORD * ) ( @@a1@@ + Number ) + Number , * ( _DWORD * ) ( @@a1@@ + Number ) , @@a2@@ , @@a3@@ ) ; gather_data_for_subcel ( @@a1@@ + Number , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) + Number , @@a2@@ , @@a3@@ ) ; gather_data_for_subcel ( @@a1@@ + Number , * ( _DWORD * ) ( @@a1@@ + Number ) + Number , * ( _DWORD * ) ( @@a1@@ + Number ) + Number , @@a2@@ , @@a3@@ ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; @@v13@@ = Number ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) += * ( _DWORD * ) ( @@a1@@ + Number * ( * ( int * ) ( @@a1@@ + Number L * @@i@@ + Number ) + Number L * @@i@@ + Number ) + Number ) ; @@v13@@ += * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) ; } @@v14@@ = Number ; @@v10@@ = @@v13@@ + Number ; for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( ( ( __int64 ) * ( int * ) ( @@a1@@ + Number L * @@i@@ ) << Number ) + * ( _QWORD * ) ( @@a2@@ + Number ) * @@v9@@ [ @@i@@ ] < ( unsigned __int64 ) @@v14@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) = @@i@@ ; @@v14@@ = ( * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ ) << Number ) + * ( _QWORD * ) ( @@a2@@ + Number ) * @@v9@@ [ @@i@@ ] ; } } ++ * ( _DWORD * ) ( @@a3@@ + Number * ( * ( int * ) ( @@a1@@ + Number ) + Number L ) + Number ) ; * ( _DWORD * ) ( @@a3@@ + Number ) += @@v9@@ [ * ( int * ) ( @@a1@@ + Number ) ] ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) ++ * ( _DWORD * ) ( @@a3@@ + Number * ( * ( int * ) ( @@a1@@ + Number ) + Number L ) + Number ) ; result = * ( unsigned int * ) ( @@a1@@ + Number ) ; if ( ( _DWORD ) result == Number ) { for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { if ( * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) == Number ) { v4 = * ( _DWORD * ) ( @@a1@@ + Number L * @@i@@ + Number ) ; v5 = * ( _DWORD * ) ( @@a3@@ + Number * ( v4 + Number L ) + Number ) + Number ; result = v4 + Number L ; * ( _DWORD * ) ( @@a3@@ + Number * result + Number ) = v5 ; } else { result = * ( unsigned int * ) ( @@a1@@ + Number L * @@i@@ + Number ) ; if ( ( _DWORD ) result == Number ) { for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { v6 = * ( _DWORD * ) ( @@a1@@ + Number * ( @@j@@ + Number L * @@i@@ + Number ) + Number ) ; v7 = * ( _DWORD * ) ( @@a3@@ + Number * ( v6 + Number L ) + Number ) + Number ; result = v6 + Number L ; * ( _DWORD * ) ( @@a3@@ + Number * result + Number ) = v7 ; } } } } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v11", "t": {"T": 2, "n": 204, "s": 1, "t": "unsigned __int8"}, "location": "s224"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s228"}, {"n": "v9", "t": {"T": 2, "n": 3, "s": 4, "t": "int"}, "location": "s240"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]}