{"name": "strlist__next", "code": "__int64 __fastcall strlist__next ( __int64 @@a1@@ ) { __int64 @@result@@ ; __int64 @@v2@@ ; if ( ! @@a1@@ ) return Number L ; @@v2@@ = rb_next ( @@a1@@ ) ; if ( @@v2@@ ) @@result@@ = @@v2@@ ; else @@result@@ = Number L ; return @@result@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "result", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}]}
{"name": "show_available_vars_at", "code": "__int64 __fastcall show_available_vars_at ( __int64 @@a1@@ , __int64 @@a2@@ , unsigned int @@a3@@ , __int64 @@a4@@ , unsigned __int8 @@a5@@ ) { int @@i@@ ; int @@v10@@ ; int @@v11@@ ; void * @@ptr@@ ; __int64 @@j@@ ; void * @@v14@@ ; __int64 @@v15@@ ; char * @@v16@@ ; unsigned __int64 @@v17@@ ; @@v17@@ = __readfsqword ( Number ) ; @@ptr@@ = Number L ; @@v14@@ = ( void * ) synthesize_perf_probe_point ( @@a2@@ + Number ) ; if ( ! @@v14@@ ) return Number L ; eprintf ( Number L , String , ( const char * ) @@v14@@ ) ; @@v11@@ = debuginfo__find_available_vars_at ( @@a1@@ , @@a2@@ , & @@ptr@@ , @@a3@@ , @@a5@@ ) ; if ( @@v11@@ > Number ) { fprintf ( stdout , String , ( const char * ) @@v14@@ ) ; for ( @@i@@ = Number ; @@i@@ < @@v11@@ ; ++ @@i@@ ) { @@v15@@ = ( __int64 ) @@ptr@@ + Number * @@i@@ ; fprintf ( stdout , String , * ( const char * * ) @@v15@@ , * ( _QWORD * ) ( @@v15@@ + Number ) ) ; free ( * ( void * * ) @@v15@@ ) ; @@v10@@ = Number ; if ( * ( _QWORD * ) ( @@v15@@ + Number ) ) { for ( @@j@@ = strlist__first ( * ( _QWORD * ) ( @@v15@@ + Number ) ) ; @@j@@ ; @@j@@ = strlist__next ( @@j@@ ) ) { @@v16@@ = strchr ( * ( const char * * ) ( @@j@@ + Number ) , Number ) + Number ; if ( ( unsigned __int8 ) strfilter__compare ( @@a4@@ , @@v16@@ ) ) { fprintf ( stdout , String , * ( const char * * ) ( @@j@@ + Number ) ) ; ++ @@v10@@ ; } } strlist__delete ( * ( _QWORD * ) ( @@v15@@ + Number ) ) ; } if ( ! @@v10@@ ) fwrite ( String , Number , Number , stdout ) ; } free ( @@ptr@@ ) ; } else { eprintf ( Number L , String , ( const char * ) @@v14@@ , ( unsigned int ) @@v11@@ ) ; } free ( @@v14@@ ) ; return ( unsigned int ) @@v11@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "a5", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r72"}, {"n": "v16", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v15", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v14", "t": {"T": 3, "t": "void"}, "location": "s32"}, {"n": "j", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s48"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s52"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s56"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v17", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"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": "get_probe_trace_event_names", "code": "__int64 __fastcall get_probe_trace_event_names ( int @@a1@@ , char @@a2@@ ) { __int64 @@v2@@ ; int @@v4@@ ; __int64 @@i@@ ; __int64 @@v6@@ ; __int64 @@v7@@ ; __int64 @@s@@ [ Number ] ; char @@v9@@ [ Number ] ; unsigned __int64 @@v10@@ ; @@v10@@ = __readfsqword ( Number ) ; @@v4@@ = Number ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; @@v6@@ = get_probe_trace_command_rawlist ( @@a1@@ ) ; @@v7@@ = strlist__new ( Number L , Number L ) ; for ( @@i@@ = strlist__first ( @@v6@@ ) ; @@i@@ ; @@i@@ = strlist__next ( @@i@@ ) ) { @@v4@@ = parse_probe_trace_command ( * ( const char * * ) ( @@i@@ + Number ) , ( __int64 ) @@s@@ ) ; if ( @@v4@@ < Number ) break ; if ( @@a2@@ ) { @@v4@@ = e_snprintf ( @@v9@@ , Number , String , @@s@@ [ Number ] , @@s@@ [ Number ] , @@v2@@ ) ; if ( @@v4@@ >= Number ) @@v4@@ = strlist__add ( @@v7@@ , @@v9@@ ) ; } else { @@v4@@ = strlist__add ( @@v7@@ , @@s@@ [ Number ] ) ; } clear_probe_trace_event ( ( __int64 ) @@s@@ ) ; if ( @@v4@@ < Number ) break ; } strlist__delete ( @@v6@@ ) ; if ( @@v4@@ >= Number ) return @@v7@@ ; strlist__delete ( @@v7@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "char", "s": 1}, "location": "r64"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v9", "t": {"T": 2, "n": 136, "s": 1, "t": "char"}, "location": "s144"}, {"n": "s", "t": {"T": 2, "n": 8, "s": 8, "t": "__int64"}, "location": "s208"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s216"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s224"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s232"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s236"}, {"n": "v10", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "del_trace_probe_event", "code": "__int64 __fastcall del_trace_probe_event ( int @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { __int64 @@result@@ ; __int64 v7 ; __int64 v8 ; __int64 v9 ; __int64 v10 ; __int64 v11 ; __int64 v12 ; int @@v14@@ ; int @@v15@@ ; __int64 v16 ; __int64 v17 ; __int64 @@v18@@ ; char @@s@@ [ Number ] ; unsigned __int64 @@v20@@ ; @@v20@@ = __readfsqword ( Number ) ; @@v14@@ = Number ; @@v15@@ = e_snprintf ( @@s@@ , Number , String , @@a2@@ , @@a3@@ , @@a6@@ ) ; if ( @@v15@@ >= Number ) { if ( strpbrk ( @@s@@ , String ) ) { v16 = strlist__first ( @@a4@@ ) ; @@v18@@ = strlist__next ( v16 ) ; while ( v16 ) { if ( ( unsigned __int8 ) strglobmatch ( * ( _QWORD * ) ( v16 + Number ) , @@s@@ ) ) { ++ @@v14@@ ; @@v15@@ = _del_trace_probe_event ( @@a1@@ , v16 , v16 , v7 , v8 , v9 ) ; if ( @@v15@@ < Number ) break ; strlist__remove ( @@a4@@ , v16 ) ; } v16 = @@v18@@ ; @@v18@@ = strlist__next ( @@v18@@ ) ; } } else { v17 = strlist__find ( @@a4@@ , @@s@@ ) ; if ( v17 ) { @@v14@@ = Number ; @@v15@@ = _del_trace_probe_event ( @@a1@@ , v17 , v17 , v10 , v11 , v12 ) ; if ( @@v15@@ >= Number ) strlist__remove ( @@a4@@ , v17 ) ; } } if ( ! @@v14@@ && @@v15@@ >= Number ) eprintf ( Number L , String , @@s@@ ) ; @@result@@ = ( unsigned int ) @@v15@@ ; } else { eprintf ( Number L , String ) ; @@result@@ = ( unsigned int ) @@v15@@ ; } return @@result@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 1, "n": "int", "s": 4}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "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": "__int64", "s": 8}, "location": "r80"}, {"n": "s", "t": {"T": 2, "n": 136, "s": 1, "t": "char"}, "location": "s144"}, {"n": "v18", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v15", "t": {"T": 1, "n": "int", "s": 4}, "location": "s164"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s168"}, {"n": "v20", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "del_perf_probe_events", "code": "__int64 __fastcall del_perf_probe_events ( __int64 @@a1@@ ) { __int64 @@v2@@ ; __int64 @@v3@@ ; int @@v4@@ ; int @@fd@@ ; const char * @@v6@@ ; __int64 @@v7@@ ; __int64 @@i@@ ; __int64 @@v9@@ ; char * @@s@@ ; char * @@v11@@ ; @@v4@@ = Number ; @@fd@@ = open_kprobe_events ( Number ) ; if ( @@fd@@ < Number ) return ( unsigned int ) @@fd@@ ; @@v9@@ = get_probe_trace_event_names ( @@fd@@ , Number ) ; if ( ! @@v9@@ ) return Number L ; for ( @@i@@ = strlist__first ( @@a1@@ ) ; @@i@@ ; @@i@@ = strlist__next ( @@i@@ ) ) { @@s@@ = strdup ( * ( const char * * ) ( @@i@@ + Number ) ) ; if ( ! @@s@@ ) { @@v4@@ = Number ; break ; } eprintf ( Number L , String , @@s@@ ) ; @@v11@@ = strchr ( @@s@@ , Number ) ; if ( @@v11@@ ) { @@v6@@ = @@s@@ ; * @@v11@@ = Number ; @@v7@@ = ( __int64 ) ( @@v11@@ + Number ) ; eprintf ( Number L , String , @@s@@ , @@v11@@ + Number ) ; } else { @@v6@@ = String ; @@v7@@ = ( __int64 ) @@s@@ ; eprintf ( Number L , String , String , @@s@@ ) ; } @@v4@@ = del_trace_probe_event ( @@fd@@ , ( __int64 ) @@v6@@ , @@v7@@ , @@v9@@ , @@v2@@ , @@v3@@ ) ; free ( @@s@@ ) ; if ( @@v4@@ < Number ) break ; } strlist__delete ( @@v9@@ ) ; close ( @@fd@@ ) ; return ( unsigned int ) @@v4@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v11", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "s", "t": {"T": 3, "t": "char"}, "location": "s24"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v6", "t": {"T": 3, "t": "const char"}, "location": "s56"}, {"n": "fd", "t": {"T": 1, "n": "int", "s": 4}, "location": "s60"}, {"n": "v4", "t": {"T": 1, "n": "int", "s": 4}, "location": "s64"}]}