{"name": "show_sources", "code": "__int64 __fastcall show_sources ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 @@v5@@ ; const char * @@v6@@ ; unsigned int @@v7@@ ; unsigned int @@v8@@ ; const char * * @@v9@@ ; @@v9@@ = Number L ; @@v6@@ = Number L ; @@v5@@ = Number L ; @@v8@@ = Number ; @@v7@@ = av_log_get_level ( ) ; av_log_set_level ( Number L ) ; @@v8@@ = show_sinks_sources_parse_arg ( @@a3@@ , & @@v6@@ , ( __int64 ) & @@v5@@ ) ; if ( ( @@v8@@ & Number ) == Number ) { do { @@v9@@ = ( const char * * ) av_input_audio_device_next ( @@v9@@ ) ; if ( @@v9@@ && strcmp ( * @@v9@@ , String ) && ( ! @@v6@@ || ( unsigned int ) av_match_name ( @@v6@@ , * @@v9@@ ) ) ) print_device_sources ( ( __int64 ) @@v9@@ , @@v5@@ ) ; } while ( @@v9@@ ) ; do { @@v9@@ = ( const char * * ) av_input_video_device_next ( @@v9@@ ) ; if ( @@v9@@ && ( ! @@v6@@ || ( unsigned int ) av_match_name ( @@v6@@ , * @@v9@@ ) ) ) print_device_sources ( ( __int64 ) @@v9@@ , @@v5@@ ) ; } while ( @@v9@@ ) ; } av_dict_free ( & @@v5@@ ) ; av_free ( @@v6@@ ) ; av_log_set_level ( @@v7@@ ) ; return @@v8@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "v9", "t": {"T": 3, "t": "const char *"}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v6", "t": {"T": 3, "t": "const char"}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}]}
{"name": "print_device_sources", "code": "__int64 __fastcall print_device_sources ( __int64 @@a1@@ , __int64 @@a2@@ ) { const char * v3 ; __int64 @@v4@@ ; int @@i@@ ; unsigned int @@v6@@ ; @@v4@@ = Number L ; if ( ! @@a1@@ || ! * ( _QWORD * ) ( @@a1@@ + Number ) || * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != Number && * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != Number && * ( _DWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) != Number ) { return Number L ; } printf ( String , * ( const char * * ) @@a1@@ ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { @@v6@@ = avdevice_list_input_sources ( @@a1@@ , Number L , @@a2@@ , & @@v4@@ ) ; if ( ( @@v6@@ & Number ) == Number ) { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( @@v4@@ + Number ) ; ++ @@i@@ ) { if ( @@i@@ == * ( _DWORD * ) ( @@v4@@ + Number ) ) v3 = String ; else v3 = String ; printf ( String , v3 , * * ( const char * * * ) ( Number L * @@i@@ + * ( _QWORD * ) @@v4@@ ) , * ( const char * * ) ( * ( _QWORD * ) ( Number L * @@i@@ + * ( _QWORD * ) @@v4@@ ) + Number L ) ) ; } } else { puts ( String ) ; } } else { @@v6@@ = Number ; puts ( String ) ; } avdevice_free_list_devices ( & @@v4@@ ) ; return @@v6@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v6", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s12"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}]} {"name": "show_sinks_sources_parse_arg", "code": "__int64 __fastcall show_sinks_sources_parse_arg ( __int64 @@a1@@ , const char * * @@a2@@ , __int64 @@a3@@ ) { char * @@v4@@ ; int @@v6@@ ; char * v7 ; _BYTE * v8 ; if ( @@a1@@ ) { if ( ! @@a2@@ || ! @@a3@@ ) { av_log ( Number L , Number L , String , String , String , Number L ) ; abort ( ) ; } * @@a2@@ = ( const char * ) av_strdup ( @@a1@@ ) ; if ( ! * @@a2@@ ) return Number L ; v7 = strchr ( * @@a2@@ , Number ) ; if ( v7 ) { @@v4@@ = v7 ; v8 = v7 + Number ; * @@v4@@ = Number ; if ( * v8 ) { @@v6@@ = av_dict_parse_string ( @@a3@@ , v8 , String , String , Number L ) ; if ( @@v6@@ < Number ) { av_freep ( @@a2@@ ) ; return ( unsigned int ) @@v6@@ ; } } } } else { puts ( String ) ; } return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char *"}, "location": "r64"}, {"n": "v4", "t": {"T": 3, "t": "char"}, "location": "r8"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}]} {"name": "show_sinks", "code": "__int64 __fastcall show_sinks ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { __int64 @@v5@@ ; const char * @@v6@@ ; unsigned int @@v7@@ ; unsigned int @@v8@@ ; _QWORD * @@v9@@ ; @@v9@@ = Number L ; @@v6@@ = Number L ; @@v5@@ = Number L ; @@v8@@ = Number ; @@v7@@ = av_log_get_level ( ) ; av_log_set_level ( Number L ) ; @@v8@@ = show_sinks_sources_parse_arg ( @@a3@@ , & @@v6@@ , ( __int64 ) & @@v5@@ ) ; if ( ( @@v8@@ & Number ) == Number ) { do { @@v9@@ = ( _QWORD * ) av_output_audio_device_next ( @@v9@@ ) ; if ( @@v9@@ && ( ! @@v6@@ || ( unsigned int ) av_match_name ( @@v6@@ , * @@v9@@ ) ) ) print_device_sinks ( ( __int64 ) @@v9@@ , @@v5@@ ) ; } while ( @@v9@@ ) ; do { @@v9@@ = ( _QWORD * ) av_output_video_device_next ( @@v9@@ ) ; if ( @@v9@@ && ( ! @@v6@@ || ( unsigned int ) av_match_name ( @@v6@@ , * @@v9@@ ) ) ) print_device_sinks ( ( __int64 ) @@v9@@ , @@v5@@ ) ; } while ( @@v9@@ ) ; } av_dict_free ( & @@v5@@ ) ; av_free ( @@v6@@ ) ; av_log_set_level ( @@v7@@ ) ; return @@v8@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "v9", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v7", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s24"}, {"n": "v6", "t": {"T": 3, "t": "const char"}, "location": "s32"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}]}