{"name": "ff_thread_release_buffer", "code": "int __fastcall ff_thread_release_buffer ( __int64 @@a1@@ , _QWORD * @@a2@@ ) { _BOOL4 v2 ; __int64 v3 ; __int64 @@v5@@ ; __int64 @@v6@@ ; _BOOL4 @@v7@@ ; char * @@v8@@ ; @@v8@@ = * ( char * * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; v2 = ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) == Number || * ( _DWORD * ) ( @@a1@@ + Number ) || * ( _UNKNOWN * * ) ( @@a1@@ + Number ) == & avcodec_default_get_buffer2 ; @@v7@@ = v2 ; v3 = * @@a2@@ ; if ( * @@a2@@ ) { v3 = * ( _QWORD * ) ( * @@a2@@ + Number L ) ; if ( v3 ) { if ( ( * ( _DWORD * ) ( @@a1@@ + Number ) & Number ) != Number ) av_log ( @@a1@@ , Number L , String , @@a2@@ ) ; av_buffer_unref ( @@a2@@ + Number ) ; @@a2@@ [ Number ] = Number L ; @@a2@@ [ Number ] = @@a2@@ [ Number ] ; if ( @@v7@@ ) { LODWORD ( v3 ) = av_frame_unref ( * @@a2@@ ) ; } else { @@v6@@ = * ( _QWORD * ) @@v8@@ ; pthread_mutex_lock ( ( pthread_mutex_t * ) ( * ( _QWORD * ) @@v8@@ + Number L ) ) ; if ( ( unsigned int ) ( * ( ( _DWORD * ) @@v8@@ + Number ) + Number ) <= Number ) { @@v5@@ = av_fast_realloc ( * ( ( _QWORD * ) @@v8@@ + Number ) , @@v8@@ + Number , Number L * ( * ( ( _DWORD * ) @@v8@@ + Number ) + Number ) ) ; if ( @@v5@@ ) { * ( ( _QWORD * ) @@v8@@ + Number ) = @@v5@@ ; av_frame_move_ref ( * ( ( _QWORD * ) @@v8@@ + Number ) + Number L * * ( ( int * ) @@v8@@ + Number ) , * @@a2@@ ) ; ++ * ( ( _DWORD * ) @@v8@@ + Number ) ; } } LODWORD ( v3 ) = pthread_mutex_unlock ( ( pthread_mutex_t * ) ( @@v6@@ + Number ) ) ; } } } return v3 ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "_QWORD"}, "location": "r64"}, {"n": "v8", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v7", "t": {"T": 1, "n": "_BOOL4", "s": 4}, "location": "s20"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}]}