{"name": "flac_parse", "code": "__int64 __fastcall flac_parse ( __int64 @@a1@@ , __int64 @@a2@@ , char * * @@a3@@ , int * @@a4@@ , __int64 @@a5@@ , int @@a6@@ ) { __int64 result ; unsigned __int64 v7 ; int v8 ; int v9 ; unsigned __int64 v10 ; int v11 ; int v12 ; int v13 ; int v14 ; char @@v19@@ [ Number ] ; int @@v20@@ ; char @@s@@ [ Number ] ; int @@v22@@ ; int @@v23@@ ; int @@v24@@ ; unsigned int * @@v25@@ ; unsigned int * @@v26@@ ; unsigned int * @@v27@@ ; __int64 * @@v28@@ ; unsigned __int64 @@v29@@ ; unsigned __int64 @@v30@@ ; unsigned int * @@i@@ ; @@v28@@ = * ( __int64 * * ) @@a1@@ ; @@v30@@ = @@a5@@ ; @@v29@@ = @@a5@@ ; if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) { if ( frame_header_is_valid ( @@a2@@ , @@a5@@ , ( __int64 ) @@v19@@ ) ) * ( _DWORD * ) ( @@a2@@ + Number ) = @@v20@@ ; * @@a3@@ = ( char * ) @@a5@@ ; * @@a4@@ = @@a6@@ ; result = ( unsigned int ) @@a6@@ ; } else { * @@v28@@ = @@a2@@ ; if ( * ( ( _DWORD * ) @@v28@@ + Number ) ) { result = get_best_header ( ( __int64 ) @@v28@@ , @@a3@@ , @@a4@@ ) ; } else if ( @@v28@@ [ Number ] && * ( _QWORD * ) ( @@v28@@ [ Number ] + Number ) ) { @@v27@@ = * ( unsigned int * * ) ( @@v28@@ [ Number ] + Number ) ; for ( @@i@@ = ( unsigned int * ) @@v28@@ [ Number ] ; @@i@@ != @@v27@@ ; @@i@@ = @@v26@@ ) { if ( @@i@@ != ( unsigned int * ) @@v28@@ [ Number ] ) av_log ( @@a2@@ , Number L , String , @@i@@ [ Number ] , * @@i@@ , * * ( ( unsigned int * * ) @@i@@ + Number ) ) ; @@v26@@ = ( unsigned int * ) * ( ( _QWORD * ) @@i@@ + Number ) ; av_freep ( @@i@@ + Number ) ; av_free ( @@i@@ ) ; -- * ( ( _DWORD * ) @@v28@@ + Number ) ; } av_fifo_drain ( @@v28@@ [ Number ] , * @@v27@@ ) ; for ( @@i@@ = ( unsigned int * ) * ( ( _QWORD * ) @@v27@@ + Number ) ; @@i@@ ; @@i@@ = ( unsigned int * ) * ( ( _QWORD * ) @@i@@ + Number ) ) * @@i@@ -= * @@v27@@ ; -- * ( ( _DWORD * ) @@v28@@ + Number ) ; * @@v27@@ = Number ; @@v28@@ [ Number ] = ( __int64 ) @@v27@@ ; if ( * ( ( int * ) @@v28@@ + Number ) <= Number ) { @@v28@@ [ Number ] = Number L ; goto LABEL_50 ; } @@v28@@ [ Number ] = ( __int64 ) @@v27@@ ; result = get_best_header ( ( __int64 ) @@v28@@ , @@a3@@ , @@a4@@ ) ; } else { if ( @@v28@@ [ Number ] ) { for ( @@i@@ = ( unsigned int * ) @@v28@@ [ Number ] ; @@i@@ != ( unsigned int * ) @@v28@@ [ Number ] ; @@i@@ = @@v25@@ ) { @@v25@@ = ( unsigned int * ) * ( ( _QWORD * ) @@i@@ + Number ) ; av_freep ( @@i@@ + Number ) ; av_free ( @@i@@ ) ; } @@v28@@ [ Number ] = * ( _QWORD * ) ( @@v28@@ [ Number ] + Number ) ; av_freep ( @@v28@@ [ Number ] + Number ) ; av_freep ( @@v28@@ + Number ) ; } LABEL_50 : while ( @@a5@@ && @@v30@@ < @@a6@@ + @@a5@@ && * ( ( int * ) @@v28@@ + Number ) <= Number || ! @@a5@@ && ! * ( ( _DWORD * ) @@v28@@ + Number ) ) { if ( @@a5@@ ) { @@v24@@ = Number - * ( ( _DWORD * ) @@v28@@ + Number ) ; if ( ( __int64 ) ( @@a6@@ + @@a5@@ - @@v30@@ ) <= @@v24@@ << Number ) v7 = @@a6@@ + @@a5@@ - @@v30@@ ; else v7 = @@v24@@ << Number ; @@v30@@ += v7 ; } else { * ( ( _DWORD * ) @@v28@@ + Number ) = Number ; @@a6@@ = Number ; @@v30@@ = @@v29@@ + Number ; } v8 = @@v30@@ - @@v29@@ ; v9 = av_fifo_size ( @@v28@@ [ Number ] ) ; if ( ( int ) av_fifo_realloc2 ( @@v28@@ [ Number ] , ( unsigned int ) ( v8 + v9 ) ) < Number ) { v10 = @@v30@@ - @@v29@@ ; v11 = av_fifo_size ( @@v28@@ [ Number ] ) ; av_log ( @@a2@@ , Number L , String , v10 + v11 ) ; LABEL_68 : * @@a3@@ = Number L ; * @@a4@@ = Number ; return @@v30@@ - @@a5@@ ; } if ( @@a5@@ ) { av_fifo_generic_write ( @@v28@@ [ Number ] , @@v29@@ , ( unsigned int ) ( @@v30@@ - @@v29@@ ) , Number L ) ; } else { memset ( @@s@@ , Number , Number ) ; av_fifo_generic_write ( @@v28@@ [ Number ] , @@s@@ , Number L , Number L ) ; } v12 = av_fifo_size ( @@v28@@ [ Number ] ) ; @@v23@@ = v12 - ( @@v30@@ - @@v29@@ ) - Number ; v13 = Number ; if ( @@v23@@ >= Number ) v13 = @@v23@@ ; @@v23@@ = v13 ; @@v22@@ = find_new_headers ( ( __int64 ) @@v28@@ , v13 ) ; if ( @@v22@@ < Number ) { av_log ( @@a2@@ , Number L , String ) ; goto LABEL_68 ; } * ( ( _DWORD * ) @@v28@@ + Number ) = @@v22@@ ; if ( * ( ( _DWORD * ) @@v28@@ + Number ) || * ( ( int * ) @@v28@@ + Number ) > Number ) { if ( * ( ( _DWORD * ) @@v28@@ + Number ) || * ( ( _DWORD * ) @@v28@@ + Number ) ) score_sequences ( @@v28@@ ) ; if ( * ( ( _DWORD * ) @@v28@@ + Number ) ) { * ( _QWORD * ) ( @@v28@@ [ Number ] + Number ) -= Number L ; * ( _DWORD * ) ( @@v28@@ [ Number ] + Number ) -= Number ; @@a6@@ = Number ; @@v30@@ = Number L ; @@v29@@ = Number L ; } } else { if ( ! @@a5@@ || @@v30@@ >= @@a6@@ + @@a5@@ ) goto LABEL_68 ; @@v29@@ = @@v30@@ ; } } @@i@@ = ( unsigned int * ) @@v28@@ [ Number ] ; for ( @@i@@ = ( unsigned int * ) @@v28@@ [ Number ] ; @@i@@ ; @@i@@ = ( unsigned int * ) * ( ( _QWORD * ) @@i@@ + Number ) ) { if ( ! @@v28@@ [ Number ] || ( signed int ) @@i@@ [ Number ] > * ( _DWORD * ) ( @@v28@@ [ Number ] + Number ) ) @@v28@@ [ Number ] = ( __int64 ) @@i@@ ; } if ( ! @@v28@@ [ Number ] ) goto LABEL_68 ; * ( ( _DWORD * ) @@v28@@ + Number ) = Number ; if ( * ( int * ) @@v28@@ [ Number ] <= Number ) { if ( ! @@a6@@ ) return get_best_header ( ( __int64 ) @@v28@@ , @@a3@@ , @@a4@@ ) ; goto LABEL_68 ; } av_log ( @@a2@@ , Number L , String , * ( unsigned int * ) @@v28@@ [ Number ] ) ; * ( _DWORD * ) ( @@a2@@ + Number ) = Number ; * @@a4@@ = * ( _DWORD * ) @@v28@@ [ Number ] ; * @@a3@@ = flac_fifo_read_wrap ( @@v28@@ , Number , * @@a4@@ , @@v28@@ + Number , ( __int64 ) ( @@v28@@ + Number ) ) ; if ( @@a6@@ ) { result = @@v30@@ - @@a5@@ ; } else { v14 = * ( _DWORD * ) @@v28@@ [ Number ] ; result = v14 - ( unsigned int ) av_fifo_size ( @@v28@@ [ Number ] ) ; } } } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "char *"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "int"}, "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": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "int", "s": 4}, "location": "r80"}, {"n": "s", "t": {"T": 2, "n": 28, "s": 1, "t": "char"}, "location": "s104"}, {"n": "v20", "t": {"T": 1, "n": "int", "s": 4}, "location": "s140"}, {"n": "v19", "t": {"T": 2, "n": 12, "s": 1, "t": "char"}, "location": "s152"}, {"n": "i", "t": {"T": 3, "t": "unsigned int"}, "location": "s16"}, {"n": "v30", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s24"}, {"n": "v29", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s32"}, {"n": "v28", "t": {"T": 3, "t": "__int64"}, "location": "s40"}, {"n": "v27", "t": {"T": 3, "t": "unsigned int"}, "location": "s48"}, {"n": "v26", "t": {"T": 3, "t": "unsigned int"}, "location": "s56"}, {"n": "v25", "t": {"T": 3, "t": "unsigned int"}, "location": "s64"}, {"n": "v24", "t": {"T": 1, "n": "int", "s": 4}, "location": "s68"}, {"n": "v23", "t": {"T": 1, "n": "int", "s": 4}, "location": "s72"}, {"n": "v22", "t": {"T": 1, "n": "int", "s": 4}, "location": "s76"}]}