{"name": "roq_encode_video", "code": "__int64 __fastcall roq_encode_video ( __int64 @@a1@@ ) { __int64 v1 ; double v2 ; __int64 @@v3@@ ; double v4 ; unsigned __int64 v5 ; __int64 result ; __int64 @@v7@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; _QWORD * @@s@@ ; int @@i@@ ; @@s@@ = * ( _QWORD * * ) ( @@a1@@ + Number ) ; memset ( @@s@@ , Number , Number ) ; create_cel_evals ( @@a1@@ , @@s@@ ) ; generate_new_codebooks ( @@a1@@ , ( __int64 ) @@s@@ ) ; if ( * ( _DWORD * ) ( @@a1@@ + Number ) ) { motion_search ( @@a1@@ , Number ) ; motion_search ( @@a1@@ , Number ) ; } while ( Number ) { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( @@a1@@ + Number ) * * ( _DWORD * ) ( @@a1@@ + Number ) / Number ; ++ @@i@@ ) gather_data_for_cel ( Number L * @@i@@ + * @@s@@ , @@a1@@ , ( __int64 ) @@s@@ ) ; if ( * ( ( int * ) @@s@@ + Number ) <= Number ) break ; v1 = * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( v1 < Number ) { @@v3@@ = * ( _QWORD * ) ( @@a1@@ + Number ) & Number L | ( ( unsigned __int64 ) v1 >> Number ) ; v2 = ( double ) ( int ) @@v3@@ + ( double ) ( int ) @@v3@@ ; } else { v2 = ( double ) ( int ) v1 ; } v4 = v2 * Number ; if ( v4 >= Number ) v5 = ( unsigned int ) ( int ) ( v4 - Number ) ^ Number ; else v5 = ( unsigned int ) ( int ) v4 ; * ( _QWORD * ) ( @@a1@@ + Number ) = v5 ; } remap_codebooks ( @@a1@@ , ( __int64 ) @@s@@ ) ; write_codebooks ( @@a1@@ , ( __int64 ) @@s@@ ) ; reconstruct_and_encode_image ( @@a1@@ , ( __int64 ) @@s@@ , * ( unsigned int * ) ( @@a1@@ + Number ) , * ( unsigned int * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) * * ( _DWORD * ) ( @@a1@@ + Number ) / Number ) ; * ( _QWORD * ) ( * ( _QWORD * ) @@a1@@ + Number L ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v9@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v9@@ ; @@v8@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v8@@ ; @@v7@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v7@@ ; av_free ( * @@s@@ ) ; av_free ( @@s@@ [ Number ] ) ; result = @@a1@@ ; ++ * ( _DWORD * ) ( @@a1@@ + Number ) ; return result ; }", "source": [{"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "s", "t": {"T": 3, "t": "_QWORD"}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}]}
{"name": "create_cel_evals", "code": "__int64 __fastcall create_cel_evals ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { int v2 ; __int64 result ; int @@k@@ ; int @@i@@ ; int @@j@@ ; int @@v7@@ ; @@v7@@ = Number ; * @@a2@@ = av_malloc ( ( unsigned int ) ( Number * ( * ( _DWORD * ) ( @@a1@@ + Number ) * * ( _DWORD * ) ( @@a1@@ + Number ) / Number ) ) ) ; for ( @@i@@ = Number ; ; @@i@@ += Number ) { result = * ( unsigned int * ) ( @@a1@@ + Number ) ; if ( @@i@@ >= ( int ) result ) break ; for ( @@j@@ = Number ; @@j@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ; @@j@@ += Number ) { for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { * ( _DWORD * ) ( * @@a2@@ + Number L * @@v7@@ + Number ) = Number * ( @@k@@ & Number ) + @@j@@ ; v2 = @@v7@@ ++ ; * ( _DWORD * ) ( * @@a2@@ + Number L * v2 + Number ) = Number * ( @@k@@ & Number ) + @@i@@ ; } } } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}]} {"name": "motion_search", "code": "__int64 __fastcall motion_search ( __int64 @@a1@@ , int @@a2@@ ) { int v2 ; __int64 result ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; int @@v7@@ ; int @@v8@@ ; int @@v9@@ ; int @@v10@@ ; int @@v11@@ ; int @@v12@@ ; __int64 @@v13@@ ; __int64 @@v14@@ ; int @@k@@ ; int @@j@@ ; int @@i@@ ; int @@v18@@ ; int @@v19@@ ; @@v6@@ = Number L ; @@v12@@ = * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ * * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ ; if ( @@a2@@ == Number ) { @@v14@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v13@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; } else { @@v14@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v13@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; } for ( @@i@@ = Number ; ; @@i@@ += @@a2@@ ) { result = * ( unsigned int * ) ( @@a1@@ + Number ) ; if ( @@i@@ >= ( int ) result ) break ; for ( @@j@@ = Number ; @@j@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ; @@j@@ += @@a2@@ ) { @@v19@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , Number L , @@a2@@ ) ; @@v6@@ = Number L ; if ( @@a2@@ == Number ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * ( * ( _DWORD * ) ( @@a1@@ + Number ) / Number * ( @@i@@ / Number ) + @@j@@ / Number ) ) , Number ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * ( * ( _DWORD * ) ( @@a1@@ + Number ) / Number * ( @@i@@ / Number ) + @@j@@ / Number ) ) ; } } @@v10@@ = @@i@@ / @@a2@@ * * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ + @@j@@ / @@a2@@ ; if ( @@v10@@ < @@v12@@ && @@v10@@ >= Number ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) ; } } if ( ++ @@v10@@ < @@v12@@ && @@v10@@ >= Number ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) ; } } @@v10@@ = ( @@i@@ / @@a2@@ + Number ) * * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ + @@j@@ / @@a2@@ ; if ( @@v10@@ < @@v12@@ && @@v10@@ >= Number ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( Number L * @@v10@@ + @@v14@@ ) ; } } @@v7@@ = @@i@@ / @@a2@@ * * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ + @@j@@ / @@a2@@ - Number ; @@v8@@ = @@v7@@ - * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ + Number ; @@v9@@ = @@v8@@ + Number ; if ( @@i@@ ) { for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { v2 = mid_pred ( * ( _DWORD * ) ( @@v13@@ + Number L * @@v7@@ + Number L * @@k@@ ) , * ( _DWORD * ) ( @@v13@@ + Number L * @@v8@@ + Number L * @@k@@ ) , * ( _DWORD * ) ( @@v13@@ + Number L * @@v9@@ + Number L * @@k@@ ) ) ; * ( ( _DWORD * ) & @@v5@@ + @@k@@ ) = v2 ; } @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , @@v5@@ , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = @@v5@@ ; } for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( Number L * * ( & @@v7@@ + @@k@@ ) + @@v13@@ ) , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( Number L * * ( & @@v7@@ + @@k@@ ) + @@v13@@ ) ; } } } else if ( @@j@@ ) { @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , * ( _QWORD * ) ( Number L * @@v7@@ + @@v13@@ ) , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = * ( _QWORD * ) ( Number L * @@v7@@ + @@v13@@ ) ; } } @@v5@@ = @@v6@@ ; @@v18@@ = Number ; while ( @@v18@@ != @@v19@@ ) { @@v18@@ = @@v19@@ ; for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { LODWORD ( @@v4@@ ) = @@v5@@ + offsets_6224 [ Number * @@k@@ ] ; HIDWORD ( @@v4@@ ) = HIDWORD ( @@v5@@ ) + dword_4024 [ Number * @@k@@ ] ; @@v11@@ = eval_motion_dist ( @@a1@@ , @@j@@ , @@i@@ , @@v4@@ , @@a2@@ ) ; if ( @@v11@@ < @@v19@@ ) { @@v19@@ = @@v11@@ ; @@v6@@ = @@v4@@ ; } } @@v5@@ = @@v6@@ ; } @@v10@@ = @@i@@ / @@a2@@ * * ( _DWORD * ) ( @@a1@@ + Number ) / @@a2@@ + @@j@@ / @@a2@@ ; * ( _QWORD * ) ( @@v13@@ + Number L * @@v10@@ ) = @@v6@@ ; } } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s80"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s88"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]} {"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"}]} {"name": "remap_codebooks", "code": "__int64 __fastcall remap_codebooks ( __int64 @@a1@@ , __int64 @@a2@@ ) { int v2 ; __int64 result ; int v4 ; int v5 ; int @@j@@ ; int i ; int k ; v4 = Number ; for ( i = Number ; i <= Number ; ++ i ) { if ( * ( _DWORD * ) ( @@a2@@ + Number * ( i + Number L ) + Number ) ) { * ( _DWORD * ) ( @@a2@@ + Number * ( i + Number L ) + Number ) = v4 ; * ( _DWORD * ) ( @@a2@@ + Number L * v4 + Number ) = i ; for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { v2 = * ( _DWORD * ) ( @@a1@@ + Number * ( Number L * i + @@j@@ + Number ) + Number ) ; ++ * ( _DWORD * ) ( @@a2@@ + Number * ( v2 + Number L ) + Number ) ; } ++ v4 ; } } * ( _DWORD * ) ( @@a2@@ + Number ) = v4 ; v5 = Number ; for ( k = Number ; k <= Number ; ++ k ) { if ( * ( _DWORD * ) ( @@a2@@ + Number * ( k + Number L ) + Number ) ) { * ( _DWORD * ) ( @@a2@@ + Number * ( k + Number L ) ) = v5 ; * ( _DWORD * ) ( @@a2@@ + Number * ( v5 ++ + Number L ) ) = k ; } } result = @@a2@@ ; * ( _DWORD * ) ( @@a2@@ + Number ) = v5 ; return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s8"}]} {"name": "write_codebooks", "code": "__int64 __fastcall write_codebooks ( __int64 @@a1@@ , __int64 @@a2@@ ) { __int64 @@result@@ ; void * * @@v3@@ ; int @@k@@ ; int i ; int j ; @@v3@@ = ( void * * ) ( @@a1@@ + Number ) ; @@result@@ = * ( unsigned int * ) ( @@a2@@ + Number ) ; if ( ( _DWORD ) @@result@@ ) { * ( _WORD * ) * @@v3@@ = Number ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; * ( _DWORD * ) * @@v3@@ = Number * * ( _DWORD * ) ( @@a2@@ + Number ) + Number * * ( _DWORD * ) ( @@a2@@ + Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; * ( _BYTE * ) * @@v3@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; * ( _BYTE * ) * @@v3@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; for ( i = Number ; i < * ( _DWORD * ) ( @@a2@@ + Number ) ; ++ i ) { memcpy ( * @@v3@@ , ( const void * ) ( Number L * * ( int * ) ( @@a2@@ + Number * ( i + Number L ) ) + Number + @@a1@@ + Number ) , Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; * ( _BYTE * ) * @@v3@@ = * ( _BYTE * ) ( @@a1@@ + Number L * * ( int * ) ( @@a2@@ + Number * ( i + Number L ) ) + Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; * ( _BYTE * ) * @@v3@@ = * ( _BYTE * ) ( @@a1@@ + Number L * * ( int * ) ( @@a2@@ + Number * ( i + Number L ) ) + Number ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; } for ( j = Number ; ; ++ j ) { @@result@@ = * ( unsigned int * ) ( @@a2@@ + Number ) ; if ( j >= ( int ) @@result@@ ) break ; for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { * ( _BYTE * ) * @@v3@@ = * ( _DWORD * ) ( @@a2@@ + Number * ( * ( int * ) ( @@a1@@ + Number * ( Number L * * ( int * ) ( @@a2@@ + Number L * j + Number ) + @@k@@ + Number ) + Number ) + Number L ) ) ; * @@v3@@ = ( char * ) * @@v3@@ + Number ; } } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v3", "t": {"T": 3, "t": "void *"}, "location": "s24"}]} {"name": "reconstruct_and_encode_image", "code": "__int64 __fastcall reconstruct_and_encode_image ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , int @@a5@@ ) { int @@v5@@ ; int v6 ; unsigned __int8 v7 ; int v8 ; int v9 ; unsigned __int8 v10 ; int v11 ; int v12 ; __int64 result ; int @@v15@@ ; unsigned int @@v16@@ ; __int64 @@v17@@ ; __int64 @@v18@@ [ Number ] ; int @@v19@@ ; __int64 * @@v20@@ ; int @@v21@@ ; __int64 * @@v22@@ ; int @@v23@@ ; __int64 * @@v24@@ ; int @@v25@@ ; __int64 * @@v26@@ ; int @@v27@@ ; __int64 * @@v28@@ ; _QWORD * @@v29@@ ; int @@v30@@ ; _QWORD * @@v31@@ ; _QWORD * @@v32@@ ; _QWORD * @@v33@@ ; int * @@v34@@ ; int @@v35@@ ; unsigned int @@v36@@ ; unsigned int @@v37@@ ; unsigned int @@v38@@ ; unsigned int @@v39@@ ; __int64 @@v40@@ ; int @@v41@@ ; int @@k@@ ; int @@j@@ ; int @@i@@ ; @@v41@@ = Number ; @@v15@@ = Number ; @@v16@@ = Number ; @@v18@@ [ Number ] = ( __int64 ) & @@v17@@ ; @@v18@@ [ Number ] = @@a1@@ + Number ; if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) * ( _DWORD * ) ( @@a2@@ + Number ) += Number ; @@v29@@ = ( _QWORD * ) ( @@a1@@ + Number ) ; * * ( _WORD * * ) ( @@a1@@ + Number ) = Number ; * @@v29@@ += Number L ; @@v5@@ = * ( _DWORD * ) ( @@a2@@ + Number ) ; @@v31@@ = ( _QWORD * ) ( @@a1@@ + Number ) ; @@v30@@ = @@v5@@ / Number ; * * ( _DWORD * * ) ( @@a1@@ + Number ) = @@v5@@ / Number ; * @@v31@@ += Number L ; @@v32@@ = ( _QWORD * ) ( @@a1@@ + Number ) ; * * ( _BYTE * * ) ( @@a1@@ + Number ) = Number ; ++ * @@v32@@ ; @@v33@@ = ( _QWORD * ) ( @@a1@@ + Number ) ; * * ( _BYTE * * ) ( @@a1@@ + Number ) = Number ; ++ * @@v33@@ ; for ( @@i@@ = Number ; @@i@@ < @@a5@@ ; ++ @@i@@ ) { @@v40@@ = * ( _QWORD * ) @@a2@@ + Number L * @@i@@ ; @@v39@@ = * ( _DWORD * ) ( @@v40@@ + Number ) ; @@v38@@ = * ( _DWORD * ) ( @@v40@@ + Number ) ; @@v41@@ += * ( _DWORD * ) ( @@v40@@ + Number L * * ( int * ) ( @@v40@@ + Number ) ) ; v6 = * ( _DWORD * ) ( @@v40@@ + Number ) ; if ( v6 == Number ) { write_typecode ( ( __int64 ) & @@v15@@ , Number ) ; for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { @@v37@@ = Number * ( @@j@@ & Number ) + @@v39@@ ; @@v36@@ = Number * ( @@j@@ & Number ) + @@v38@@ ; v9 = * ( _DWORD * ) ( @@v40@@ + Number L * @@j@@ + Number ) ; if ( v9 == Number ) { for ( @@k@@ = Number ; @@k@@ <= Number ; ++ @@k@@ ) { @@v35@@ = * ( _DWORD * ) ( @@v40@@ + Number * ( @@k@@ + Number L * @@j@@ + Number ) + Number ) ; v12 = * ( _DWORD * ) ( @@a2@@ + Number * ( @@v35@@ + Number L ) ) ; @@v20@@ = @@v18@@ ; @@v19@@ = v12 ; * ( _BYTE * ) @@v18@@ [ Number ] = v12 ; ++ * @@v20@@ ; ff_apply_vector_2x2 ( @@a1@@ , @@v37@@ + Number * ( @@k@@ & Number ) , @@v36@@ + ( @@k@@ & Number ) , Number L * @@v35@@ + @@a1@@ + Number ) ; } } else if ( v9 <= Number ) { if ( v9 == Number ) { v11 = * ( _DWORD * ) ( @@a2@@ + Number * ( * ( int * ) ( @@v40@@ + Number L * @@j@@ + Number ) + Number L ) + Number ) ; @@v22@@ = @@v18@@ ; @@v21@@ = v11 ; * ( _BYTE * ) @@v18@@ [ Number ] = v11 ; ++ * @@v22@@ ; @@v34@@ = ( int * ) ( @@a1@@ + Number + Number L * * ( int * ) ( @@v40@@ + Number L * @@j@@ + Number ) ) ; ff_apply_vector_2x2 ( @@a1@@ , @@v37@@ , @@v36@@ , Number L * * @@v34@@ + @@a1@@ + Number ) ; ff_apply_vector_2x2 ( @@a1@@ , @@v37@@ + Number , @@v36@@ , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; ff_apply_vector_2x2 ( @@a1@@ , @@v37@@ , @@v36@@ + Number , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; ff_apply_vector_2x2 ( @@a1@@ , @@v37@@ + Number , @@v36@@ + Number , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; } else if ( v9 && v9 == Number ) { v10 = motion_arg ( * ( _QWORD * ) ( @@v40@@ + Number L * @@j@@ + Number ) ) ; @@v24@@ = @@v18@@ ; @@v23@@ = v10 ; * ( _BYTE * ) @@v18@@ [ Number ] = v10 ; ++ * @@v24@@ ; ff_apply_motion_4x4 ( @@a1@@ , @@v37@@ , @@v36@@ , * ( unsigned int * ) ( @@v40@@ + Number L * @@j@@ + Number ) , * ( unsigned int * ) ( @@v40@@ + Number * ( @@j@@ + Number L ) + Number ) ) ; } } write_typecode ( ( __int64 ) & @@v15@@ , * ( _DWORD * ) ( @@v40@@ + Number L * @@j@@ + Number ) ) ; } } else if ( v6 <= Number ) { if ( v6 == Number ) { v8 = * ( _DWORD * ) ( @@a2@@ + Number * ( * ( int * ) ( @@v40@@ + Number ) + Number L ) + Number ) ; @@v26@@ = @@v18@@ ; @@v25@@ = v8 ; * ( _BYTE * ) @@v18@@ [ Number ] = v8 ; ++ * @@v26@@ ; write_typecode ( ( __int64 ) & @@v15@@ , Number ) ; @@v34@@ = ( int * ) ( @@a1@@ + Number + Number L * * ( int * ) ( @@v40@@ + Number ) ) ; ff_apply_vector_4x4 ( @@a1@@ , @@v39@@ , @@v38@@ , Number L * * @@v34@@ + @@a1@@ + Number ) ; ff_apply_vector_4x4 ( @@a1@@ , @@v39@@ + Number , @@v38@@ , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; ff_apply_vector_4x4 ( @@a1@@ , @@v39@@ , @@v38@@ + Number , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; ff_apply_vector_4x4 ( @@a1@@ , @@v39@@ + Number , @@v38@@ + Number , Number L * @@v34@@ [ Number ] + @@a1@@ + Number ) ; } else if ( v6 ) { if ( v6 == Number ) { v7 = motion_arg ( * ( _QWORD * ) ( @@v40@@ + Number ) ) ; @@v28@@ = @@v18@@ ; @@v27@@ = v7 ; * ( _BYTE * ) @@v18@@ [ Number ] = v7 ; ++ * @@v28@@ ; write_typecode ( ( __int64 ) & @@v15@@ , Number ) ; ff_apply_motion_8x8 ( @@a1@@ , @@v39@@ , @@v38@@ , * ( unsigned int * ) ( @@v40@@ + Number ) , * ( unsigned int * ) ( @@v40@@ + Number ) ) ; } } else { write_typecode ( ( __int64 ) & @@v15@@ , Number ) ; } } } while ( Number ) { result = @@v16@@ ; if ( ! @@v16@@ ) break ; write_typecode ( ( __int64 ) & @@v15@@ , Number ) ; } return result ; }", "source": [{"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r1280"}, {"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "__int64", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "int", "s": 4}, "location": "r72"}, {"n": "v29", "t": {"T": 3, "t": "_QWORD"}, "location": "s104"}, {"n": "v28", "t": {"T": 3, "t": "__int64"}, "location": "s112"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s116"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v26", "t": {"T": 3, "t": "__int64"}, "location": "s128"}, {"n": "v25", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v24", "t": {"T": 3, "t": "__int64"}, "location": "s144"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s148"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v22", "t": {"T": 3, "t": "__int64"}, "location": "s160"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s164"}, {"n": "v20", "t": {"T": 3, "t": "__int64"}, "location": "s176"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s180"}, {"n": "k", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "v18", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s208"}, {"n": "v41", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v17", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s272"}, {"n": "v16", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s276"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s280"}, {"n": "v40", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v39", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s36"}, {"n": "v38", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s40"}, {"n": "v37", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v36", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s48"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v34", "t": {"T": 3, "t": "int"}, "location": "s64"}, {"n": "v33", "t": {"T": 3, "t": "_QWORD"}, "location": "s72"}, {"n": "v32", "t": {"T": 3, "t": "_QWORD"}, "location": "s80"}, {"n": "v31", "t": {"T": 3, "t": "_QWORD"}, "location": "s88"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s92"}]} {"name": "generate_new_codebooks", "code": "__int64 __fastcall generate_new_codebooks ( __int64 @@a1@@ , __int64 @@a2@@ ) { _DWORD @@v3@@ [ Number ] ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; int @@v7@@ ; _DWORD * @@v8@@ ; int @@j@@ ; int @@i@@ ; @@v8@@ = ( _DWORD * ) ( @@a2@@ + Number ) ; @@v7@@ = * ( _DWORD * ) ( @@a1@@ + Number ) * * ( _DWORD * ) ( @@a1@@ + Number ) / Number ; @@v6@@ = av_malloc ( Number L ) ; @@v5@@ = av_malloc ( ( unsigned int ) ( Number * @@v7@@ ) ) ; @@v4@@ = av_malloc ( ( unsigned int ) ( Number * @@v7@@ ) ) ; create_clusters ( * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , * ( _DWORD * ) ( @@a1@@ + Number ) , @@v5@@ ) ; for ( @@i@@ = Number ; @@i@@ < Number * @@v7@@ ; ++ @@i@@ ) { @@v3@@ [ Number ] = Number ; * ( _DWORD * ) ( Number L * @@i@@ + @@v4@@ ) = * ( unsigned __int8 * ) ( @@i@@ + @@v5@@ ) ; } generate_codebook ( @@a1@@ , @@a2@@ , @@v4@@ , @@v7@@ , @@v6@@ , Number , Number ) ; * @@v8@@ = Number ; * ( _QWORD * ) ( @@a2@@ + Number ) = av_malloc ( ( unsigned int ) ( Number * @@v7@@ ) ) ; generate_codebook ( @@a1@@ , @@a2@@ , @@v4@@ , Number * @@v7@@ , @@a1@@ + Number , Number , Number ) ; @@v8@@ [ Number ] = Number ; for ( @@i@@ = Number ; @@i@@ < @@v8@@ [ Number ] ; ++ @@i@@ ) unpack_roq_cell ( @@a1@@ + Number + Number L * @@i@@ , & @@v8@@ [ Number * @@i@@ + Number ] ) ; for ( @@i@@ = Number ; @@i@@ < * @@v8@@ ; ++ @@i@@ ) { for ( @@j@@ = Number ; @@j@@ <= Number ; ++ @@j@@ ) { unpack_roq_cell ( @@v6@@ + Number L * ( Number * @@i@@ + @@j@@ ) , @@v3@@ ) ; index_mb ( ( unsigned __int8 * ) @@v3@@ , ( __int64 ) ( @@v8@@ + Number ) , @@v8@@ [ Number ] , ( _DWORD * ) ( Number * ( Number L * @@i@@ + @@j@@ + Number ) + @@a1@@ + Number ) , Number ) ; } unpack_roq_qcell ( ( __int64 ) ( @@v8@@ + Number ) , Number L * @@i@@ + @@a1@@ + Number , ( __int64 ) & @@v8@@ [ Number * @@i@@ + Number ] ) ; enlarge_roq_mb4 ( ( __int64 ) & @@v8@@ [ Number * @@i@@ + Number ] , & @@v8@@ [ Number * @@i@@ + Number ] ) ; } av_free ( @@v5@@ ) ; av_free ( @@v4@@ ) ; return av_free ( @@v6@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "j", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v8", "t": {"T": 3, "t": "_DWORD"}, "location": "s24"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "v3", "t": {"T": 2, "n": 4, "s": 4, "t": "_DWORD"}, "location": "s72"}]} {"name": "roq_encode_frame", "code": "__int64 __fastcall roq_encode_frame ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ , __int64 @@a4@@ ) { __int64 @@v5@@ ; @@v5@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; * ( _QWORD * ) ( @@v5@@ + Number ) = @@a2@@ ; * ( _QWORD * ) @@v5@@ = @@a1@@ ; * ( _QWORD * ) ( @@v5@@ + Number ) = @@a4@@ ; if ( * ( _DWORD * ) ( @@a4@@ + Number ) ) * ( _QWORD * ) ( @@v5@@ + Number ) = * ( _DWORD * ) ( @@a4@@ + Number ) - Number ; else * ( _QWORD * ) ( @@v5@@ + Number ) = Number L ; if ( @@a3@@ <= ( Number * ( * ( _DWORD * ) ( @@v5@@ + Number ) * * ( _DWORD * ) ( @@v5@@ + Number ) / Number ) + Number ) / Number + Number ) { av_log ( @@a1@@ , Number L , String ) ; return Number ; } if ( * ( _DWORD * ) ( @@v5@@ + Number ) == * ( _DWORD * ) ( @@a1@@ + Number ) ) * ( _DWORD * ) ( @@v5@@ + Number ) = Number ; if ( * ( _DWORD * ) ( @@v5@@ + Number ) ) { if ( ( * ( unsigned int ( __fastcall * * ) ( __int64 , _QWORD ) ) ( @@a1@@ + Number ) ) ( @@a1@@ , * ( _QWORD * ) ( @@v5@@ + Number ) ) || ( * ( unsigned int ( __fastcall * * ) ( __int64 , _QWORD ) ) ( @@a1@@ + Number ) ) ( @@a1@@ , * ( _QWORD * ) ( @@v5@@ + Number ) ) ) { av_log ( @@a1@@ , Number L , String ) ; return Number ; } roq_write_video_info_chunk ( @@v5@@ ) ; * ( _DWORD * ) ( @@v5@@ + Number ) = Number ; } roq_encode_video ( @@v5@@ ) ; return * ( _QWORD * ) ( @@v5@@ + Number ) - @@a2@@ ; }", "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": "__int64", "s": 8}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}]}