{"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": "update_context_from_thread", "code": "__int64 __fastcall update_context_from_thread ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { unsigned int @@v5@@ ; @@v5@@ = Number ; if ( @@a1@@ != @@a2@@ && ( @@a3@@ || ( * ( _DWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) & Number ) == Number ) ) { * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ; if ( ( * ( _QWORD * ) ( @@a1@@ + Number ) != Number L ) != ( * ( _QWORD * ) ( @@a2@@ + Number ) != Number L ) || * ( _QWORD * ) ( @@a1@@ + Number ) && * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != * ( _QWORD * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + Number L ) ) { av_buffer_unref ( @@a1@@ + Number ) ; if ( * ( _QWORD * ) ( @@a2@@ + Number ) ) { * ( _QWORD * ) ( @@a1@@ + Number ) = av_buffer_ref ( * ( _QWORD * ) ( @@a2@@ + Number ) ) ; if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) ) return Number L ; } } * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; } if ( @@a3@@ ) { * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) - Number ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; } else if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) { @@v5@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , __int64 ) ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ) ( @@a1@@ , @@a2@@ ) ; } return @@v5@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "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": "v5", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}]} {"name": "update_context_from_user", "code": "__int64 __fastcall update_context_from_user ( __int64 @@a1@@ , __int64 @@a2@@ ) { int @@v3@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; memcpy ( ( void * ) ( @@a1@@ + Number ) , ( const void * ) ( @@a2@@ + Number ) , Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; * ( _QWORD * ) ( @@a1@@ + Number ) = * ( _QWORD * ) ( @@a2@@ + Number ) ; * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; if ( * ( _DWORD * ) ( @@a2@@ + Number ) && * ( _QWORD * ) ( @@a2@@ + Number ) ) { if ( * ( _DWORD * ) ( @@a1@@ + Number ) < * ( _DWORD * ) ( @@a2@@ + Number ) ) { @@v3@@ = av_reallocp_array ( @@a1@@ + Number , * ( int * ) ( @@a2@@ + Number ) , Number L ) ; if ( @@v3@@ < Number ) return ( unsigned int ) @@v3@@ ; } memcpy ( * ( void * * ) ( @@a1@@ + Number ) , * ( const void * * ) ( @@a2@@ + Number ) , Number L * * ( int * ) ( @@a2@@ + Number ) ) ; } * ( _DWORD * ) ( @@a1@@ + Number ) = * ( _DWORD * ) ( @@a2@@ + Number ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v3", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}]} {"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": "ff_thread_decode_frame", "code": "__int64 __fastcall ff_thread_decode_frame ( __int64 @@a1@@ , __int64 @@a2@@ , _DWORD * @@a3@@ , __int64 @@a4@@ ) { int @@v4@@ ; __int64 @@v8@@ ; __int64 @@v9@@ ; int @@v10@@ ; int @@v11@@ ; @@v9@@ = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v11@@ = * ( _DWORD * ) ( @@v9@@ + Number ) ; async_unlock ( @@v9@@ ) ; @@v10@@ = submit_packet ( ( __int64 * ) ( * ( _QWORD * ) @@v9@@ + Number L * * ( int * ) ( @@v9@@ + Number ) ) , @@a1@@ , @@a4@@ ) ; if ( ! @@v10@@ ) { if ( * ( _DWORD * ) ( @@v9@@ + Number ) > * ( _DWORD * ) ( @@a1@@ + Number ) - Number - ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) ) * ( _DWORD * ) ( @@v9@@ + Number ) = Number ; if ( * ( _DWORD * ) ( @@v9@@ + Number ) && ( * @@a3@@ = Number , * ( _DWORD * ) ( @@a4@@ + Number ) ) ) { @@v10@@ = * ( _DWORD * ) ( @@a4@@ + Number ) ; } else { do { @@v4@@ = @@v11@@ ++ ; @@v8@@ = * ( _QWORD * ) @@v9@@ + Number L * @@v4@@ ; if ( * ( _DWORD * ) ( @@v8@@ + Number ) ) { pthread_mutex_lock ( ( pthread_mutex_t * ) ( @@v8@@ + Number ) ) ; while ( * ( _DWORD * ) ( @@v8@@ + Number ) ) pthread_cond_wait ( ( pthread_cond_t * ) ( @@v8@@ + Number ) , ( pthread_mutex_t * ) ( @@v8@@ + Number ) ) ; pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v8@@ + Number ) ) ; } av_frame_move_ref ( @@a2@@ , * ( _QWORD * ) ( @@v8@@ + Number ) ) ; * @@a3@@ = * ( _DWORD * ) ( @@v8@@ + Number ) ; * ( _QWORD * ) ( @@a2@@ + Number ) = * ( _QWORD * ) ( @@v8@@ + Number ) ; @@v10@@ = * ( _DWORD * ) ( @@v8@@ + Number ) ; * ( _DWORD * ) ( @@v8@@ + Number ) = Number ; * ( _DWORD * ) ( @@v8@@ + Number ) = Number ; if ( @@v11@@ >= * ( _DWORD * ) ( @@a1@@ + Number ) ) @@v11@@ = Number ; } while ( ! * ( _DWORD * ) ( @@a4@@ + Number ) && ! * @@a3@@ && @@v10@@ >= Number && @@v11@@ != * ( _DWORD * ) ( @@v9@@ + Number ) ) ; update_context_from_thread ( @@a1@@ , * ( _QWORD * ) ( @@v8@@ + Number ) , Number ) ; if ( * ( _DWORD * ) ( @@v9@@ + Number ) >= * ( _DWORD * ) ( @@a1@@ + Number ) ) * ( _DWORD * ) ( @@v9@@ + Number ) = Number ; * ( _DWORD * ) ( @@v9@@ + Number ) = @@v11@@ ; if ( @@v10@@ >= Number ) @@v10@@ = * ( _DWORD * ) ( @@a4@@ + Number ) ; } } async_lock ( @@v9@@ ) ; return ( unsigned int ) @@v10@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "_DWORD"}, "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": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}]}