{"name": "init_vmlinux", "code": "__int64 init_vmlinux ( ) { int @@v1@@ ; * ( ( _BYTE * ) & symbol_conf + Number ) = Number ; if ( * ( ( _QWORD * ) & symbol_conf + Number ) ) eprintf ( Number L , String , * ( ( const char * * ) & symbol_conf + Number ) ) ; else * ( ( _BYTE * ) & symbol_conf + Number ) = Number ; @@v1@@ = symbol__init ( ) ; if ( @@v1@@ >= Number ) { @@v1@@ = machine__init ( & machine , & unk_5925 , Number ) ; if ( @@v1@@ >= Number && ( int ) machine__create_kernel_maps ( & machine ) < Number ) eprintf ( Number L , String ) ; } else { eprintf ( Number L , String ) ; } if ( @@v1@@ < Number ) eprintf ( Number L , String ) ; return ( unsigned int ) @@v1@@ ; }", "source": [{"n": "v1", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}]}
{"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"}]} {"name": "show_perf_probe_events", "code": "__int64 show_perf_probe_events ( ) { int @@v1@@ ; int @@fd@@ ; __int64 @@i@@ ; __int64 @@v4@@ ; char @@s@@ [ Number ] ; char @@v6@@ [ Number ] ; unsigned __int64 @@v7@@ ; @@v7@@ = __readfsqword ( Number ) ; setup_pager ( ) ; @@v1@@ = init_vmlinux ( ) ; if ( @@v1@@ < Number ) return ( unsigned int ) @@v1@@ ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; memset ( @@v6@@ , Number , sizeof ( @@v6@@ ) ) ; @@fd@@ = open_kprobe_events ( Number ) ; if ( @@fd@@ < Number ) return ( unsigned int ) @@fd@@ ; @@v4@@ = get_probe_trace_command_rawlist ( @@fd@@ ) ; close ( @@fd@@ ) ; if ( ! @@v4@@ ) return Number L ; for ( @@i@@ = strlist__first ( @@v4@@ ) ; @@i@@ ; @@i@@ = strlist__next ( @@i@@ ) ) { @@v1@@ = parse_probe_trace_command ( * ( const char * * ) ( @@i@@ + Number ) , ( __int64 ) @@s@@ ) ; if ( @@v1@@ >= Number ) { @@v1@@ = convert_to_perf_probe_event ( ( __int64 ) @@s@@ , ( __int64 ) @@v6@@ ) ; if ( @@v1@@ >= Number ) @@v1@@ = show_perf_probe_event ( ( __int64 ) @@v6@@ ) ; } clear_perf_probe_event ( ( __int64 ) @@v6@@ ) ; clear_probe_trace_event ( ( __int64 ) @@s@@ ) ; if ( @@v1@@ < Number ) break ; } strlist__delete ( @@v4@@ ) ; return ( unsigned int ) @@v1@@ ; }", "source": [{"n": "s", "t": {"T": 2, "n": 64, "s": 1, "t": "char"}, "location": "s144"}, {"n": "v4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s160"}, {"n": "fd", "t": {"T": 1, "n": "int", "s": 4}, "location": "s164"}, {"n": "v1", "t": {"T": 1, "n": "int", "s": 4}, "location": "s168"}, {"n": "v7", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v6", "t": {"T": 2, "n": 72, "s": 1, "t": "char"}, "location": "s80"}]} {"name": "add_perf_probe_events", "code": "__int64 __fastcall add_perf_probe_events ( __int64 @@a1@@ , int @@a2@@ , unsigned int @@a3@@ , const char * @@a4@@ , unsigned __int8 @@a5@@ ) { int i ; int j ; int k ; int @@l@@ ; int @@v13@@ ; _QWORD * @@ptr@@ ; @@ptr@@ = zalloc ( Number L * @@a2@@ ) ; if ( ! @@ptr@@ ) return Number L ; @@v13@@ = init_vmlinux ( ) ; if ( @@v13@@ >= Number ) { for ( i = Number ; i < @@a2@@ ; ++ i ) { @@ptr@@ [ Number * i ] = Number L * i + @@a1@@ ; @@v13@@ = convert_to_probe_trace_events ( @@ptr@@ [ Number * i ] , & @@ptr@@ [ Number * i + Number ] , @@a3@@ , @@a4@@ ) ; if ( @@v13@@ < Number ) goto LABEL_12 ; LODWORD ( @@ptr@@ [ Number * i + Number ] ) = @@v13@@ ; } for ( j = Number ; j < @@a2@@ ; ++ j ) { @@v13@@ = _add_probe_trace_events ( ( char * * ) @@ptr@@ [ Number * j ] , @@ptr@@ [ Number * j + Number ] , @@ptr@@ [ Number * j + Number ] , @@a5@@ ) ; if ( @@v13@@ < Number ) break ; } LABEL_12 : for ( k = Number ; k < @@a2@@ ; ++ k ) { for ( @@l@@ = Number ; @@l@@ < SLODWORD ( @@ptr@@ [ Number * k + Number ] ) ; ++ @@l@@ ) clear_probe_trace_event ( ( ( __int64 ) @@l@@ << Number ) + @@ptr@@ [ Number * k + Number ] ) ; free ( ( void * ) @@ptr@@ [ Number * k + Number ] ) ; } } free ( @@ptr@@ ) ; return ( unsigned int ) @@v13@@ ; }", "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": "unsigned __int8", "s": 1}, "location": "r72"}, {"n": "ptr", "t": {"T": 3, "t": "_QWORD"}, "location": "s16"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}, {"n": "l", "t": {"T": 1, "n": "int", "s": 4}, "location": "s24"}]} {"name": "show_available_funcs", "code": "__int64 __fastcall show_available_funcs ( const char * @@a1@@ , __int64 @@a2@@ ) { __int64 result ; const char * v3 ; int @@v4@@ ; __int64 @@v5@@ ; setup_pager ( ) ; @@v4@@ = init_vmlinux ( ) ; if ( @@v4@@ < Number ) return ( unsigned int ) @@v4@@ ; @@v5@@ = kernel_get_module_map ( @@a1@@ ) ; if ( @@v5@@ ) { available_func_filter = @@a2@@ ; if ( ( unsigned int ) map__load ( @@v5@@ , filter_available_functions ) ) { eprintf ( Number L , String ) ; result = Number L ; } else { if ( ( unsigned __int8 ) dso__sorted_by_name ( * ( _QWORD * ) ( @@v5@@ + Number ) , * ( unsigned __int8 * ) ( @@v5@@ + Number ) ) != Number ) dso__sort_by_name ( * ( _QWORD * ) ( @@v5@@ + Number ) , * ( unsigned __int8 * ) ( @@v5@@ + Number ) ) ; dso__fprintf_symbols_by_name ( * ( _QWORD * ) ( @@v5@@ + Number ) , * ( unsigned __int8 * ) ( @@v5@@ + Number ) , stdout ) ; result = Number L ; } } else { v3 = @@a1@@ ; if ( ! @@a1@@ ) v3 = String ; eprintf ( Number L , String , v3 ) ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 3, "t": "const char"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s20"}]}