{"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": "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_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"}]} {"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_frame_thread_init", "code": "__int64 __fastcall ff_frame_thread_init ( __int64 @@a1@@ ) { int v1 ; _QWORD * @@v3@@ ; _QWORD * v4 ; __int64 v5 ; __int64 v6 ; __int64 v7 ; __int64 v8 ; __int64 v9 ; __int64 v10 ; __int64 v11 ; __int64 v12 ; __int64 v13 ; __int64 v14 ; __int64 v15 ; __int64 v16 ; __int64 v17 ; int v18 ; void * @@v19@@ [ Number ] ; void * @@arg@@ ; __int64 @@v21@@ ; int @@v22@@ ; __int64 @@v23@@ ; unsigned int @@v24@@ ; int @@i@@ ; const void * * @@v26@@ ; int @@v27@@ ; @@v27@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; @@v23@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v26@@ = ( const void * * ) @@a1@@ ; @@v24@@ = Number ; if ( ! @@v27@@ ) { @@v22@@ = av_cpu_count ( ) ; if ( @@v22@@ <= Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; @@v27@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; } else { v1 = Number ; if ( @@v22@@ <= Number ) v1 = @@v22@@ ; * ( _DWORD * ) ( @@a1@@ + Number ) = v1 + Number ; @@v27@@ = * ( _DWORD * ) ( @@a1@@ + Number ) ; } } if ( @@v27@@ <= Number ) { * ( _DWORD * ) ( @@a1@@ + Number ) = Number ; return Number L ; } @@v21@@ = av_mallocz ( Number L ) ; * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) = @@v21@@ ; if ( ! @@v21@@ ) return Number L ; * ( _QWORD * ) @@v21@@ = av_mallocz_array ( @@v27@@ , Number L ) ; if ( ! * ( _QWORD * ) @@v21@@ ) { av_freep ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; return Number L ; } pthread_mutex_init ( ( pthread_mutex_t * ) ( @@v21@@ + Number ) , Number L ) ; pthread_mutex_init ( ( pthread_mutex_t * ) ( @@v21@@ + Number ) , Number L ) ; pthread_mutex_init ( ( pthread_mutex_t * ) ( @@v21@@ + Number ) , Number L ) ; pthread_cond_init ( ( pthread_cond_t * ) ( @@v21@@ + Number ) , Number L ) ; * ( _DWORD * ) ( @@v21@@ + Number ) = Number ; * ( _DWORD * ) ( @@v21@@ + Number ) = Number ; for ( @@i@@ = Number ; ; ++ @@i@@ ) { if ( @@i@@ >= @@v27@@ ) return Number L ; @@v19@@ [ Number ] = ( void * ) av_malloc ( Number L ) ; @@arg@@ = ( void * ) ( * ( _QWORD * ) @@v21@@ + Number L * @@i@@ ) ; pthread_mutex_init ( ( pthread_mutex_t * ) ( ( char * ) @@arg@@ + Number ) , Number L ) ; pthread_mutex_init ( ( pthread_mutex_t * ) ( ( char * ) @@arg@@ + Number ) , Number L ) ; pthread_cond_init ( ( pthread_cond_t * ) ( ( char * ) @@arg@@ + Number ) , Number L ) ; pthread_cond_init ( ( pthread_cond_t * ) ( ( char * ) @@arg@@ + Number ) , Number L ) ; pthread_cond_init ( ( pthread_cond_t * ) ( ( char * ) @@arg@@ + Number ) , Number L ) ; * ( ( _QWORD * ) @@arg@@ + Number ) = av_frame_alloc ( ) ; if ( ! * ( ( _QWORD * ) @@arg@@ + Number ) ) { av_freep ( @@v19@@ ) ; @@v24@@ = Number ; goto LABEL_33 ; } * ( _QWORD * ) @@arg@@ = @@v21@@ ; * ( ( void * * ) @@arg@@ + Number ) = @@v19@@ [ Number ] ; if ( ! @@v19@@ [ Number ] ) { @@v24@@ = Number ; goto LABEL_33 ; } qmemcpy ( @@v19@@ [ Number ] , @@v26@@ , Number ) ; * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) = av_malloc ( Number L ) ; if ( ! * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) ) { * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) = Number L ; @@v24@@ = Number ; goto LABEL_33 ; } @@v3@@ = @@v26@@ [ Number ] ; v4 = ( _QWORD * ) * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) ; v5 = @@v3@@ [ Number ] ; * v4 = * @@v3@@ ; v4 [ Number ] = v5 ; v6 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v6 ; v7 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v7 ; v8 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v8 ; v9 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v9 ; v10 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v10 ; v11 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v11 ; v12 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v12 ; v13 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v13 ; v14 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v14 ; v15 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v15 ; v16 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v16 ; v17 = @@v3@@ [ Number ] ; v4 [ Number ] = @@v3@@ [ Number ] ; v4 [ Number ] = v17 ; * ( _QWORD * ) ( * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) + Number L ) = @@arg@@ ; * ( _QWORD * ) ( * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) + Number L ) = ( char * ) @@arg@@ + Number ; if ( ! @@i@@ ) { @@v26@@ = ( const void * * ) @@v19@@ [ Number ] ; if ( * ( _QWORD * ) ( @@v23@@ + Number ) ) @@v24@@ = ( * ( __int64 ( __fastcall * * ) ( void * ) ) ( @@v23@@ + Number ) ) ( @@v19@@ [ Number ] ) ; update_context_from_thread ( @@a1@@ , ( __int64 ) @@v19@@ [ Number ] , Number ) ; goto LABEL_28 ; } * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) = av_malloc ( * ( int * ) ( @@v23@@ + Number ) ) ; if ( ! * ( ( _QWORD * ) @@v19@@ [ Number ] + Number ) ) break ; memcpy ( * ( ( void * * ) @@v19@@ [ Number ] + Number ) , @@v26@@ [ Number ] , * ( int * ) ( @@v23@@ + Number ) ) ; * * ( ( _DWORD * * ) @@v19@@ [ Number ] + Number ) = Number ; if ( * ( _QWORD * ) ( @@v23@@ + Number ) ) @@v24@@ = ( * ( __int64 ( __fastcall * * ) ( void * ) ) ( @@v23@@ + Number ) ) ( @@v19@@ [ Number ] ) ; LABEL_28 : if ( ! @@v24@@ ) { @@v19@@ [ Number ] = ( char * ) @@arg@@ + Number ; * ( ( _DWORD * ) @@arg@@ + Number ) = ( * ( ( _DWORD * ) @@v19@@ [ Number ] + Number ) & Number ) != Number ; v18 = pthread_create ( ( pthread_t * ) @@arg@@ + Number , Number L , frame_worker_thread , @@arg@@ ) ; @@v24@@ = - v18 ; * ( ( _DWORD * ) @@arg@@ + Number ) = v18 == Number ; if ( * ( ( _DWORD * ) @@arg@@ + Number ) ) continue ; } goto LABEL_33 ; } @@v24@@ = Number ; LABEL_33 : ff_frame_thread_free ( ( _QWORD * ) @@a1@@ , @@i@@ + Number ) ; return @@v24@@ ; }", "source": [{"n": "v3", "t": {"T": 3, "t": "_QWORD"}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v27", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v26", "t": {"T": 3, "t": "const void *"}, "location": "s24"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v24", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v23", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v22", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}, {"n": "v21", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "arg", "t": {"T": 3, "t": "void"}, "location": "s64"}, {"n": "v19", "t": {"T": 2, "n": 2, "s": 8, "t": "void *"}, "location": "s80"}]} {"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"}]}