{"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"}]}
{"name": "exit_program", "code": "void __fastcall __noreturn exit_program ( unsigned int @@a1@@ ) { if ( program_exit ) program_exit ( @@a1@@ ) ; exit ( @@a1@@ ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r56"}]} {"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"}]}