{"name": "open_debuginfo", "code": "__int64 __fastcall open_debuginfo ( const char * @@a1@@ ) { const char * @@v2@@ ; __int64 @@v3@@ ; if ( @@a1@@ && strchr ( @@a1@@ , Number ) ) return debuginfo__new ( @@a1@@ ) ; @@v3@@ = kernel_get_module_path ( @@a1@@ ) ; if ( @@v3@@ ) return debuginfo__new ( @@v3@@ ) ; @@v2@@ = @@a1@@ ; if ( ! @@a1@@ ) @@v2@@ = String ; eprintf ( Number L , String , @@v2@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "v2", "t": {"T": 3, "t": "const char"}, "location": "r8"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}]}
{"name": "kernel_get_module_path", "code": "__int64 __fastcall kernel_get_module_path ( const char * @@a1@@ ) { __int64 @@result@@ ; __int64 @@v2@@ ; @@v2@@ = kernel_get_module_dso ( @@a1@@ ) ; if ( @@v2@@ ) @@result@@ = * ( _QWORD * ) ( @@v2@@ + Number ) ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}]} {"name": "try_to_find_probe_trace_events", "code": "__int64 __fastcall try_to_find_probe_trace_events ( __int64 @@a1@@ , __int64 * @@a2@@ , unsigned int @@a3@@ , const char * @@a4@@ ) { __int64 result ; const char * v5 ; unsigned __int8 @@v8@@ ; int @@v9@@ ; unsigned int @@v10@@ ; __int64 @@v11@@ ; @@v8@@ = perf_probe_event_need_dwarf ( @@a1@@ ) ; @@v11@@ = open_debuginfo ( @@a4@@ ) ; @@v9@@ = Number ; if ( @@v11@@ ) { @@v10@@ = debuginfo__find_trace_events ( @@v11@@ , @@a1@@ , @@a2@@ , @@a3@@ ) ; debuginfo__delete ( @@v11@@ ) ; if ( ( int ) @@v10@@ <= Number ) { if ( @@v10@@ ) { eprintf ( Number L , String , @@v10@@ ) ; if ( @@v10@@ == Number && ( eprintf ( Number L , String ) , @@v8@@ ^ Number ) ) { eprintf ( Number L , String ) ; result = Number L ; } else { result = @@v10@@ ; } } else { v5 = ( const char * ) synthesize_perf_probe_point ( @@a1@@ + Number ) ; eprintf ( Number L , String , v5 ) ; result = Number L ; } } else { eprintf ( Number L , String , @@v10@@ ) ; if ( @@a4@@ ) @@v9@@ = add_module_to_probe_trace_events ( * @@a2@@ , @@v10@@ , @@a4@@ ) ; if ( @@v9@@ >= Number ) result = @@v10@@ ; else result = ( unsigned int ) @@v9@@ ; } } else if ( @@v8@@ ) { eprintf ( Number L , String ) ; result = Number L ; } else { eprintf ( Number L , String ) ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "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": 3, "t": "__int64"}, "location": "r64"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v10", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s20"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}, {"n": "v8", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "s25"}]} {"name": "show_line_range", "code": "__int64 __fastcall show_line_range ( __int64 @@a1@@ , const char * @@a2@@ ) { __int64 result ; int * v3 ; char * v4 ; unsigned int v5 ; int v6 ; int v7 ; int @@v8@@ ; int v9 ; int v10 ; int v11 ; __int64 * @@i@@ ; __int64 @@v13@@ ; char * @@ptr@@ ; FILE * @@stream@@ ; @@v8@@ = Number ; v9 = init_vmlinux ( ) ; if ( v9 < Number ) return ( unsigned int ) v9 ; @@v13@@ = open_debuginfo ( @@a2@@ ) ; if ( @@v13@@ ) { v10 = debuginfo__find_line_range ( @@v13@@ , @@a1@@ ) ; debuginfo__delete ( @@v13@@ ) ; if ( v10 ) { if ( v10 >= Number ) { @@ptr@@ = * ( char * * ) ( @@a1@@ + Number ) ; v11 = get_real_path ( @@ptr@@ , * ( const char * * ) ( @@a1@@ + Number ) , ( char * * ) ( @@a1@@ + Number ) ) ; free ( @@ptr@@ ) ; if ( v11 >= Number ) { setup_pager ( ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) fprintf ( stdout , String , * ( const char * * ) ( @@a1@@ + Number ) , * ( const char * * ) ( @@a1@@ + Number ) , ( unsigned int ) ( * ( _DWORD * ) ( @@a1@@ + Number ) - * ( _DWORD * ) ( @@a1@@ + Number ) ) ) ; else fprintf ( stdout , String , * ( const char * * ) ( @@a1@@ + Number ) , * ( unsigned int * ) ( @@a1@@ + Number ) ) ; @@stream@@ = fopen64 ( * ( const char * * ) ( @@a1@@ + Number ) , String ) ; if ( @@stream@@ ) { while ( @@v8@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ) { v5 = @@v8@@ ++ ; v11 = show_one_line ( @@stream@@ , v5 , Number , Number ) ; if ( v11 < Number ) goto LABEL_29 ; } for ( @@i@@ = * ( __int64 * * ) ( @@a1@@ + Number ) ; @@i@@ != ( __int64 * ) ( @@a1@@ + Number ) ; @@i@@ = ( __int64 * ) * @@i@@ ) { while ( @@v8@@ < * ( ( _DWORD * ) @@i@@ + Number ) ) { v11 = show_one_line ( @@stream@@ , @@v8@@ - * ( _DWORD * ) ( @@a1@@ + Number ) , Number , Number ) ; if ( v11 < Number ) goto LABEL_29 ; ++ @@v8@@ ; } v6 = @@v8@@ ++ ; v11 = show_one_line ( @@stream@@ , v6 - * ( _DWORD * ) ( @@a1@@ + Number ) , Number , Number ) ; if ( v11 < Number ) goto LABEL_29 ; } if ( * ( _DWORD * ) ( @@a1@@ + Number ) == Number ) * ( _DWORD * ) ( @@a1@@ + Number ) = @@v8@@ + Number ; do { if ( @@v8@@ > * ( _DWORD * ) ( @@a1@@ + Number ) ) break ; v7 = @@v8@@ ++ ; v11 = _show_one_line ( @@stream@@ , v7 - * ( _DWORD * ) ( @@a1@@ + Number ) , Number , Number ) ; } while ( v11 > Number ) ; LABEL_29 : fclose ( @@stream@@ ) ; result = ( unsigned int ) v11 ; } else { v3 = _errno_location ( ) ; v4 = strerror ( * v3 ) ; eprintf ( Number L , String , * ( const char * * ) ( @@a1@@ + Number ) , v4 ) ; result = ( unsigned int ) - * _errno_location ( ) ; } } else { eprintf ( Number L , String , ( unsigned int ) v11 ) ; result = ( unsigned int ) v11 ; } } else { eprintf ( Number L , String , ( unsigned int ) v10 ) ; result = ( unsigned int ) v10 ; } } else { eprintf ( Number L , String ) ; result = Number L ; } } else { eprintf ( Number L , String ) ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "const char"}, "location": "r64"}, {"n": "stream", "t": {"T": 3, "t": "FILE"}, "location": "s32"}, {"n": "ptr", "t": {"T": 3, "t": "char"}, "location": "s40"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "i", "t": {"T": 3, "t": "__int64"}, "location": "s56"}, {"n": "v8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}]} {"name": "show_available_vars", "code": "__int64 __fastcall show_available_vars ( __int64 @@a1@@ , int @@a2@@ , unsigned int @@a3@@ , const char * @@a4@@ , __int64 @@a5@@ , unsigned __int8 @@a6@@ ) { __int64 @@result@@ ; int @@i@@ ; int @@v12@@ ; __int64 @@v13@@ ; @@v12@@ = init_vmlinux ( ) ; if ( @@v12@@ < Number ) return ( unsigned int ) @@v12@@ ; @@v13@@ = open_debuginfo ( @@a4@@ ) ; if ( @@v13@@ ) { setup_pager ( ) ; for ( @@i@@ = Number ; @@i@@ < @@a2@@ && @@v12@@ >= Number ; ++ @@i@@ ) @@v12@@ = show_available_vars_at ( @@v13@@ , Number L * @@i@@ + @@a1@@ , @@a3@@ , @@a5@@ , @@a6@@ ) ; debuginfo__delete ( @@v13@@ ) ; @@result@@ = ( unsigned int ) @@v12@@ ; } else { eprintf ( Number L , String ) ; @@result@@ = Number L ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "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": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "a6", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r80"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v12", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}]}