{"name": "parse_option", "code": "__int64 __fastcall parse_option ( __int64 @@a1@@ , __int64 @@a2@@ , const char * @@a3@@ , const char * * @@a4@@ ) { __int64 @@result@@ ; int @@v7@@ ; const char * * @@v8@@ ; @@v8@@ = find_option ( @@a4@@ , ( const char * ) @@a2@@ ) ; if ( ! * @@v8@@ && * ( _BYTE * ) @@a2@@ == Number && * ( _BYTE * ) ( @@a2@@ + Number ) == Number ) { @@v8@@ = find_option ( @@a4@@ , ( const char * ) ( @@a2@@ + Number ) ) ; if ( * @@v8@@ && ( ( _DWORD ) @@v8@@ [ Number ] & Number ) != Number ) @@a3@@ = String ; } else if ( ( ( _DWORD ) @@v8@@ [ Number ] & Number ) != Number ) { @@a3@@ = String ; } if ( ! * @@v8@@ ) @@v8@@ = find_option ( @@a4@@ , String ) ; if ( * @@v8@@ ) { if ( ( ( _DWORD ) @@v8@@ [ Number ] & Number ) == Number || @@a3@@ ) { @@v7@@ = write_option ( @@a1@@ , ( __int64 ) @@v8@@ , ( const char * ) @@a2@@ , @@a3@@ ) ; if ( @@v7@@ >= Number ) @@result@@ = ( ( _DWORD ) @@v8@@ [ Number ] & Number ) != Number ; else @@result@@ = ( unsigned int ) @@v7@@ ; } else { av_log ( Number L , Number L , String , ( const char * ) @@a2@@ ) ; @@result@@ = Number L ; } } else { av_log ( Number L , Number L , String , ( const char * ) @@a2@@ ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const char *"}, "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": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v8", "t": {"T": 3, "t": "const char *"}, "location": "s16"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}]}
{"name": "find_option", "code": "const char * * __fastcall find_option ( const char * * @@a1@@ , const char * @@a2@@ ) { int @@v2@@ ; int @@v5@@ ; char * @@v6@@ ; @@v6@@ = strchr ( @@a2@@ , Number ) ; if ( @@v6@@ ) @@v2@@ = ( _DWORD ) @@v6@@ - ( _DWORD ) @@a2@@ ; else @@v2@@ = strlen ( @@a2@@ ) ; @@v5@@ = @@v2@@ ; while ( * @@a1@@ && ( strncmp ( @@a2@@ , * @@a1@@ , @@v5@@ ) || strlen ( * @@a1@@ ) != @@v5@@ ) ) @@a1@@ += Number ; return @@a1@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char *"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r8"}, {"n": "v6", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v5", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}]} {"name": "write_option", "code": "__int64 __fastcall write_option ( __int64 @@a1@@ , __int64 @@a2@@ , const char * @@a3@@ , const char * @@a4@@ ) { __int64 * v4 ; void * v5 ; float @@v7@@ ; const char * v8 ; __int64 @@v11@@ [ Number ] ; __int64 @@v12@@ ; signed int @@v13@@ ; __int64 @@v14@@ ; int * @@v15@@ ; char * @@v16@@ ; __int64 * @@v17@@ ; __int64 * @@v18@@ ; if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) v4 = ( __int64 * ) ( * ( _QWORD * ) ( @@a2@@ + Number ) + @@a1@@ ) ; else v4 = * ( __int64 * * ) ( @@a2@@ + Number ) ; @@v18@@ = v4 ; if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { @@v17@@ = @@v18@@ ; @@v16@@ = strchr ( @@a3@@ , Number ) ; @@v15@@ = ( int * ) ( @@v18@@ + Number ) ; * @@v18@@ = grow_array ( * @@v18@@ , Number L , @@v18@@ + Number , ( unsigned int ) ( * ( ( _DWORD * ) @@v18@@ + Number ) + Number ) ) ; if ( @@v16@@ ) v5 = @@v16@@ + Number ; else v5 = & unk_6A4B ; @@v14@@ = av_strdup ( v5 ) ; if ( ! @@v14@@ ) return Number L ; * ( _QWORD * ) ( Number L * * @@v15@@ - Number + * @@v17@@ ) = @@v14@@ ; @@v18@@ = ( __int64 * ) ( * @@v17@@ + Number L * * @@v15@@ - Number + Number ) ; } if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { @@v12@@ = av_strdup ( @@a4@@ ) ; av_freep ( @@v18@@ ) ; if ( ! @@v12@@ ) return Number L ; * @@v18@@ = @@v12@@ ; } else if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number || ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { * ( _DWORD * ) @@v18@@ = ( int ) parse_number_or_die ( ( __int64 ) @@a3@@ , ( __int64 ) @@a4@@ , Number , Number , Number ) ; } else if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { * @@v18@@ = ( unsigned int ) ( int ) parse_number_or_die ( ( __int64 ) @@a3@@ , ( __int64 ) @@a4@@ , Number , Number , Number ) ; } else if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { * @@v18@@ = parse_time_or_die ( @@a3@@ , @@a4@@ , Number ) ; } else if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { @@v7@@ = parse_number_or_die ( ( __int64 ) @@a3@@ , ( __int64 ) @@a4@@ , Number , - INFINITY , INFINITY ) ; * ( float * ) @@v18@@ = @@v7@@ ; } else if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) { * ( double * ) @@v18@@ = parse_number_or_die ( ( __int64 ) @@a3@@ , ( __int64 ) @@a4@@ , Number , - INFINITY , INFINITY ) ; } else if ( * ( _QWORD * ) ( @@a2@@ + Number ) ) { @@v13@@ = ( * ( __int64 ( __fastcall * * ) ( __int64 , const char * , const char * ) ) ( @@a2@@ + Number ) ) ( @@a1@@ , @@a3@@ , @@a4@@ ) ; if ( @@v13@@ < Number ) { @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; @@v11@@ [ Number ] = Number L ; v8 = ( const char * ) av_make_error_string ( ( __int64 ) @@v11@@ , Number L , @@v13@@ ) ; av_log ( Number L , Number L , String , @@a4@@ , @@a3@@ , v8 ) ; return ( unsigned int ) @@v13@@ ; } } if ( ( * ( _DWORD * ) ( @@a2@@ + Number ) & Number ) != Number ) exit_program ( Number ) ; return Number L ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const char"}, "location": "r24"}, {"n": "v7", "t": {"T": 1, "n": "float", "s": 4}, "location": "r496"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v11", "t": {"T": 2, "n": 9, "s": 8, "t": "__int64"}, "location": "s136"}, {"n": "v18", "t": {"T": 3, "t": "__int64"}, "location": "s16"}, {"n": "v17", "t": {"T": 3, "t": "__int64"}, "location": "s24"}, {"n": "v16", "t": {"T": 3, "t": "char"}, "location": "s32"}, {"n": "v15", "t": {"T": 3, "t": "int"}, "location": "s40"}, {"n": "v14", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v13", "t": {"T": 1, "n": "signed int", "s": 4}, "location": "s52"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}]} {"name": "parse_options", "code": "__int64 __fastcall parse_options ( __int64 @@a1@@ , int @@a2@@ , __int64 @@a3@@ , const char * * @@a4@@ , void ( __fastcall * @@a5@@ ) ( __int64 , _BYTE * ) ) { int v5 ; __int64 result ; int @@v10@@ ; _BYTE * @@v11@@ ; int @@v12@@ ; int @@v13@@ ; @@v12@@ = Number ; prepare_app_arguments ( ) ; @@v13@@ = Number ; while ( Number ) { result = ( unsigned int ) @@a2@@ ; if ( @@v13@@ >= @@a2@@ ) break ; v5 = @@v13@@ ++ ; @@v11@@ = * ( _BYTE * * ) ( @@a3@@ + Number L * v5 ) ; if ( @@v12@@ && * @@v11@@ == Number && @@v11@@ [ Number ] ) { if ( @@v11@@ [ Number ] != Number || @@v11@@ [ Number ] ) { @@v10@@ = parse_option ( @@a1@@ , ( __int64 ) ( @@v11@@ + Number ) , * ( const char * * ) ( Number L * @@v13@@ + @@a3@@ ) , @@a4@@ ) ; if ( @@v10@@ < Number ) exit_program ( Number ) ; @@v13@@ += @@v10@@ ; } else { @@v12@@ = Number ; } } else if ( @@a5@@ ) { @@a5@@ ( @@a1@@ , @@v11@@ ) ; } } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 3, "t": "const char *"}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 9, "n": "void (__fastcall *)(__int64, _BYTE *)"}, "location": "r72"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v11", "t": {"T": 3, "t": "_BYTE"}, "location": "s24"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}]}