{"name": "release_delayed_buffers", "code": "__int64 __fastcall release_delayed_buffers ( __int64 * @@a1@@ ) { __int64 @@v1@@ ; __int64 @@result@@ ; __int64 @@v3@@ ; __int64 @@i@@ ; for ( @@i@@ = * @@a1@@ ; ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@i@@ + Number ) ) ) { @@result@@ = * ( ( unsigned int * ) @@a1@@ + Number ) ; if ( ( int ) @@result@@ <= Number ) break ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@i@@ + Number ) ) ; if ( * ( _DWORD * ) ( @@a1@@ [ Number ] + Number ) ) { if ( * ( _DWORD * ) ( @@a1@@ [ Number ] + Number ) != Number ) { av_log ( Number L , Number L , String , String , String , Number L ) ; abort ( ) ; } } @@v1@@ = @@a1@@ [ Number ] ; @@v3@@ = @@v1@@ + Number L * ( int ) -- * ( ( _DWORD * ) @@a1@@ + Number ) ; * ( _QWORD * ) ( @@v3@@ + Number ) = @@v3@@ ; av_frame_unref ( @@v3@@ ) ; } return @@result@@ ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}]}
{"name": "submit_packet", "code": "__int64 __fastcall submit_packet ( __int64 * @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 result ; int v4 ; unsigned int @@v6@@ ; unsigned int v7 ; int v8 ; __int64 @@v9@@ ; __int64 @@v10@@ ; int @@v11@@ ; @@v10@@ = * @@a1@@ ; @@v9@@ = * ( _QWORD * ) ( * @@a1@@ + Number ) ; if ( ! * ( _DWORD * ) ( @@a3@@ + Number ) && ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ [ Number ] + Number ) + Number L ) & Number ) == Number ) return Number L ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; v7 = update_context_from_user ( @@a1@@ [ Number ] , @@a2@@ ) ; if ( v7 ) { pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; result = v7 ; } else { * ( ( _DWORD * ) @@a1@@ + Number ) = ( * ( _DWORD * ) ( @@a1@@ [ Number ] + Number ) & Number ) != Number ; release_delayed_buffers ( @@a1@@ ) ; if ( ! @@v9@@ ) goto LABEL_14 ; if ( * ( _DWORD * ) ( @@v9@@ + Number ) == Number ) { pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v9@@ + Number ) ) ; while ( * ( _DWORD * ) ( @@v9@@ + Number ) == Number ) pthread_cond_wait ( ( pthread_cond_t * ) ( @@v9@@ + Number ) , ( pthread_mutex_t * ) ( @@v9@@ + Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v9@@ + Number ) ) ; } @@v6@@ = update_context_from_thread ( @@a1@@ [ Number ] , * ( _QWORD * ) ( @@v9@@ + Number ) , Number ) ; if ( @@v6@@ ) { pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; result = @@v6@@ ; } else { LABEL_14 : av_packet_unref ( @@a1@@ + Number ) ; v8 = av_packet_ref ( @@a1@@ + Number , @@a3@@ ) ; if ( v8 >= Number ) { * ( ( _DWORD * ) @@a1@@ + Number ) = Number ; _mm_mfence ( ) ; pthread_cond_signal ( ( pthread_cond_t * ) ( @@a1@@ + Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; if ( ! * ( _DWORD * ) ( @@a1@@ [ Number ] + Number ) && ( * ( _UNKNOWN * * ) ( @@a1@@ [ Number ] + Number ) != & avcodec_default_get_format || * ( _UNKNOWN * * ) ( @@a1@@ [ Number ] + Number ) != & avcodec_default_get_buffer2 ) ) { while ( * ( ( _DWORD * ) @@a1@@ + Number ) != Number && * ( ( _DWORD * ) @@a1@@ + Number ) ) { @@v11@@ = Number ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; while ( * ( ( _DWORD * ) @@a1@@ + Number ) == Number ) pthread_cond_wait ( ( pthread_cond_t * ) ( @@a1@@ + Number ) , ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; v4 = * ( ( _DWORD * ) @@a1@@ + Number ) ; if ( v4 == Number ) { * ( ( _DWORD * ) @@a1@@ + Number ) = ff_get_buffer ( @@a1@@ [ Number ] , @@a1@@ [ Number ] , * ( ( unsigned int * ) @@a1@@ + Number ) ) ; } else if ( v4 == Number ) { * ( ( _DWORD * ) @@a1@@ + Number ) = ff_get_format ( @@a1@@ [ Number ] , @@a1@@ [ Number ] ) ; } else { @@v11@@ = Number ; } if ( @@v11@@ ) { * ( ( _DWORD * ) @@a1@@ + Number ) = Number ; _mm_mfence ( ) ; pthread_cond_signal ( ( pthread_cond_t * ) ( @@a1@@ + Number ) ) ; } pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; } } * ( _QWORD * ) ( @@v10@@ + Number ) = @@a1@@ ; ++ * ( _DWORD * ) ( @@v10@@ + Number ) ; result = Number L ; } else { pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@a1@@ + Number ) ) ; av_log ( @@a1@@ [ Number ] , Number L , String ) ; result = ( unsigned int ) v8 ; } } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s76"}]} {"name": "ff_frame_thread_free", "code": "_QWORD * __fastcall ff_frame_thread_free ( _QWORD * @@a1@@ , int @@a2@@ ) { _QWORD * @@result@@ ; __int64 @@v3@@ ; __int64 @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; int i ; int j ; @@v6@@ = * ( _QWORD * ) ( @@a1@@ [ Number ] + Number L ) ; @@v5@@ = @@a1@@ [ Number ] ; park_frame_worker_threads ( ( _QWORD * ) @@v6@@ , @@a2@@ ) ; if ( * ( _QWORD * ) ( @@v6@@ + Number ) && * ( _QWORD * ) ( @@v6@@ + Number ) != * ( _QWORD * ) @@v6@@ && ( int ) update_context_from_thread ( * ( _QWORD * ) ( * ( _QWORD * ) @@v6@@ + Number L ) , * ( _QWORD * ) ( * ( _QWORD * ) ( @@v6@@ + Number ) + Number L ) , Number ) < Number ) { av_log ( @@a1@@ , Number L , String ) ; * * ( _DWORD * * ) ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v6@@ + Number ) + Number L ) + Number L ) = * * ( _DWORD * * ) ( * ( _QWORD * ) ( * ( _QWORD * ) @@v6@@ + Number L ) + Number L ) ; * * ( _DWORD * * ) ( * ( _QWORD * ) ( * ( _QWORD * ) @@v6@@ + Number L ) + Number L ) = Number ; } for ( i = Number ; i < @@a2@@ ; ++ i ) { @@v3@@ = * ( _QWORD * ) @@v6@@ + Number L * i ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v3@@ + Number ) ) ; * ( _DWORD * ) ( @@v3@@ + Number ) = Number ; pthread_cond_signal ( ( pthread_cond_t * ) ( @@v3@@ + Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v3@@ + Number ) ) ; if ( * ( _DWORD * ) ( @@v3@@ + Number ) ) pthread_join ( * ( _QWORD * ) ( @@v3@@ + Number ) , Number L ) ; * ( _DWORD * ) ( @@v3@@ + Number ) = Number ; if ( * ( _QWORD * ) ( @@v5@@ + Number ) && * ( _QWORD * ) ( @@v3@@ + Number ) ) ( * ( void ( __fastcall * * ) ( _QWORD ) ) ( @@v5@@ + Number ) ) ( * ( _QWORD * ) ( @@v3@@ + Number ) ) ; release_delayed_buffers ( ( __int64 * ) @@v3@@ ) ; av_frame_free ( @@v3@@ + Number ) ; } for ( j = Number ; j < @@a2@@ ; ++ j ) { @@v4@@ = * ( _QWORD * ) @@v6@@ + Number L * j ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@v4@@ + Number ) ) ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@v4@@ + Number ) ) ; pthread_cond_destroy ( ( pthread_cond_t * ) ( @@v4@@ + Number ) ) ; pthread_cond_destroy ( ( pthread_cond_t * ) ( @@v4@@ + Number ) ) ; pthread_cond_destroy ( ( pthread_cond_t * ) ( @@v4@@ + Number ) ) ; av_packet_unref ( @@v4@@ + Number ) ; av_freep ( @@v4@@ + Number ) ; if ( j && * ( _QWORD * ) ( @@v4@@ + Number ) ) { av_freep ( * ( _QWORD * ) ( @@v4@@ + Number ) + Number L ) ; av_freep ( * ( _QWORD * ) ( @@v4@@ + Number ) + Number L ) ; } if ( * ( _QWORD * ) ( @@v4@@ + Number ) ) { av_freep ( * ( _QWORD * ) ( @@v4@@ + Number ) + Number L ) ; av_buffer_unref ( * ( _QWORD * ) ( @@v4@@ + Number ) + Number L ) ; } av_freep ( @@v4@@ + Number ) ; } av_freep ( @@v6@@ ) ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; pthread_mutex_destroy ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; pthread_cond_destroy ( ( pthread_cond_t * ) ( @@v6@@ + Number ) ) ; av_freep ( @@a1@@ [ Number ] + Number L ) ; if ( @@a1@@ [ Number ] && @@a1@@ [ Number ] && * ( _QWORD * ) ( @@a1@@ [ Number ] + Number L ) ) av_opt_free ( @@a1@@ [ Number ] ) ; @@result@@ = @@a1@@ ; @@a1@@ [ Number ] = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}]} {"name": "ff_thread_flush", "code": "_QWORD * __fastcall ff_thread_flush ( __int64 @@a1@@ ) { _QWORD * @@result@@ ; __int64 @@v2@@ ; _QWORD * @@v3@@ ; int @@i@@ ; @@result@@ = * ( _QWORD * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v3@@ = @@result@@ ; if ( @@result@@ ) { park_frame_worker_threads ( @@result@@ , * ( _DWORD * ) ( @@a1@@ + Number ) ) ; if ( @@v3@@ [ Number ] && @@v3@@ [ Number ] != * @@v3@@ ) update_context_from_thread ( * ( _QWORD * ) ( * @@v3@@ + Number L ) , * ( _QWORD * ) ( @@v3@@ [ Number ] + Number L ) , Number ) ; * ( ( _DWORD * ) @@v3@@ + Number ) = Number ; * ( ( _DWORD * ) @@v3@@ + Number ) = * ( ( _DWORD * ) @@v3@@ + Number ) ; * ( ( _DWORD * ) @@v3@@ + Number ) = Number ; @@v3@@ [ Number ] = Number L ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { @@result@@ = ( _QWORD * ) * ( unsigned int * ) ( @@a1@@ + Number ) ; if ( @@i@@ >= ( int ) @@result@@ ) break ; @@v2@@ = * @@v3@@ + Number L * @@i@@ ; * ( _DWORD * ) ( @@v2@@ + Number ) = Number ; av_frame_unref ( * ( _QWORD * ) ( @@v2@@ + Number ) ) ; * ( _DWORD * ) ( @@v2@@ + Number ) = Number ; release_delayed_buffers ( ( __int64 * ) @@v2@@ ) ; if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( * ( void ( __fastcall * * ) ( _QWORD ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( * ( _QWORD * ) ( @@v2@@ + Number ) ) ; } } return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 3, "t": "_QWORD"}, "location": "r8"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "s24"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}