{"name": "e_snprintf", "code": "__int64 e_snprintf ( char * @@a1@@ , size_t @@a2@@ , const char * @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ , ... ) { int @@v7@@ ; gcc_va_list @@arg@@ ; unsigned __int64 @@v9@@ ; __int64 @@v10@@ ; __int64 @@v11@@ ; __int64 @@v12@@ ; va_start ( @@arg@@ , @@a6@@ ) ; @@v10@@ = @@a4@@ ; @@v11@@ = @@a5@@ ; @@v12@@ = @@a6@@ ; @@v9@@ = __readfsqword ( Number ) ; @@arg@@ [ Number ] . gp_offset = Number ; @@v7@@ = vsnprintf ( @@a1@@ , @@a2@@ , @@a3@@ , @@arg@@ ) ; if ( @@v7@@ >= ( int ) @@a2@@ ) @@v7@@ = Number ; return ( unsigned int ) @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v12", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s136"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s144"}, {"n": "v10", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s152"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s184"}, {"n": "arg", "t": {"T": 2, "n": 1, "s": 24, "t": "__va_list_tag"}, "location": "s208"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s212"}]}
{"name": "synthesize_perf_probe_arg", "code": "signed __int64 __fastcall synthesize_perf_probe_arg ( __int64 * @@a1@@ , char * @@a2@@ , size_t @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { __int64 v6 ; __int64 v7 ; __int64 v8 ; const char * v9 ; char * v11 ; size_t @@v13@@ ; int @@v14@@ ; __int64 @@v15@@ ; char * @@v16@@ ; @@v15@@ = @@a1@@ [ Number ] ; if ( * @@a1@@ && @@a1@@ [ Number ] ) { @@v14@@ = e_snprintf ( @@a2@@ , @@a3@@ , String , * @@a1@@ , @@a1@@ [ Number ] , @@a6@@ ) ; } else { if ( * @@a1@@ ) v8 = * @@a1@@ ; else v8 = @@a1@@ [ Number ] ; @@v14@@ = e_snprintf ( @@a2@@ , @@a3@@ , String , v8 , @@a5@@ , @@a6@@ ) ; } if ( @@v14@@ > Number ) { @@v16@@ = & @@a2@@ [ @@v14@@ ] ; @@v13@@ = @@a3@@ - @@v14@@ ; while ( @@v15@@ ) { if ( * * ( _BYTE * * ) ( @@v15@@ + Number ) == Number ) { @@v14@@ = e_snprintf ( @@v16@@ , @@v13@@ , String , * ( _QWORD * ) ( @@v15@@ + Number ) , v6 , v7 ) ; } else { if ( * ( _BYTE * ) ( @@v15@@ + Number ) ) v9 = String ; else v9 = String ; @@v14@@ = e_snprintf ( @@v16@@ , @@v13@@ , String , ( __int64 ) v9 , * ( _QWORD * ) ( @@v15@@ + Number ) , v7 ) ; } if ( @@v14@@ <= Number ) goto LABEL_23 ; @@v16@@ += @@v14@@ ; @@v13@@ -= @@v14@@ ; @@v15@@ = * ( _QWORD * ) @@v15@@ ; } if ( ! @@a1@@ [ Number ] ) return @@v16@@ - @@a2@@ ; @@v14@@ = e_snprintf ( @@v16@@ , @@v13@@ , String , @@a1@@ [ Number ] , v6 , v7 ) ; if ( @@v14@@ > Number ) { @@v16@@ += @@v14@@ ; return @@v16@@ - @@a2@@ ; } } LABEL_23 : v11 = strerror ( - @@v14@@ ) ; eprintf ( Number L , String , v11 ) ; return ( unsigned int ) @@v14@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v16", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v15", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v14", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v13", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s56"}]} {"name": "synthesize_perf_probe_point", "code": "char * __fastcall synthesize_perf_probe_point ( __int64 @@a1@@ ) { __int64 v1 ; __int64 v2 ; __int64 v3 ; __int64 v4 ; __int64 v5 ; unsigned int v6 ; char * v8 ; int @@v9@@ ; int @@v10@@ ; char * s ; char * sa ; char * @@ptr@@ ; __int64 @@v14@@ [ Number ] ; __int64 @@v15@@ [ Number ] ; __int64 @@v16@@ [ Number ] ; @@v16@@ [ Number ] = __readfsqword ( Number ) ; @@v14@@ [ Number ] = Number L ; @@v14@@ [ Number ] = Number L ; @@v14@@ [ Number ] = Number L ; @@v14@@ [ Number ] = Number L ; @@v15@@ [ Number ] = Number L ; @@v15@@ [ Number ] = Number L ; @@v15@@ [ Number ] = Number L ; @@v15@@ [ Number ] = Number L ; @@v16@@ [ Number ] = Number L ; @@v16@@ [ Number ] = Number L ; @@v16@@ [ Number ] = Number L ; @@v16@@ [ Number ] = Number L ; @@ptr@@ = ( char * ) zalloc ( Number ) ; if ( @@ptr@@ ) { if ( ! * ( _QWORD * ) ( @@a1@@ + Number ) || ( @@v9@@ = e_snprintf ( ( char * ) @@v14@@ , Number , String , * ( _QWORD * ) ( @@a1@@ + Number ) , v1 , v2 ) , @@v9@@ > Number ) ) { if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) || ( @@v9@@ = e_snprintf ( ( char * ) @@v15@@ , Number , String , * ( unsigned int * ) ( @@a1@@ + Number ) , v1 , v2 ) , @@v9@@ > Number ) ) { if ( ! * ( _QWORD * ) @@a1@@ ) goto LABEL_14 ; s = * ( char * * ) @@a1@@ ; @@v10@@ = strlen ( * ( const char * * ) @@a1@@ ) ; if ( @@v10@@ > Number ) { sa = strchr ( ( const char * ) ( @@v10@@ - Number L + * ( _QWORD * ) @@a1@@ ) , Number ) ; if ( sa ) v5 = ( __int64 ) ( sa + Number ) ; else v5 = @@v10@@ - Number L + * ( _QWORD * ) @@a1@@ ; s = ( char * ) v5 ; } @@v9@@ = e_snprintf ( ( char * ) @@v16@@ , Number , String , ( __int64 ) s , v3 , v4 ) ; if ( @@v9@@ > Number ) { LABEL_14 : if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) { v6 = * ( _BYTE * ) ( @@a1@@ + Number ) ? ( unsigned int ) e_snprintf ( @@ptr@@ , Number , String , * ( _QWORD * ) ( @@a1@@ + Number ) , ( __int64 ) @@v14@@ , ( __int64 ) String , @@v15@@ , @@v16@@ ) : ( unsigned int ) e_snprintf ( @@ptr@@ , Number , String , * ( _QWORD * ) ( @@a1@@ + Number ) , ( __int64 ) @@v14@@ , ( __int64 ) & unk_5925 , @@v15@@ , @@v16@@ ) ; @@v9@@ = v6 ; } else { @@v9@@ = e_snprintf ( @@ptr@@ , Number , String , ( __int64 ) @@v16@@ , ( __int64 ) @@v15@@ , v2 ) ; } if ( @@v9@@ > Number ) return @@ptr@@ ; } } } } else { @@v9@@ = Number ; } v8 = strerror ( - @@v9@@ ) ; eprintf ( Number L , String , v8 ) ; if ( @@ptr@@ ) free ( @@ptr@@ ) ; return Number L ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v14", "t": {"T": 2, "n": 4, "s": 8, "t": "__int64"}, "location": "s112"}, {"n": "ptr", "t": {"T": 3, "t": "char"}, "location": "s120"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s132"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s136"}, {"n": "v16", "t": {"T": 2, "n": 6, "s": 8, "t": "__int64"}, "location": "s48"}, {"n": "v15", "t": {"T": 2, "n": 4, "s": 8, "t": "__int64"}, "location": "s80"}]} {"name": "__synthesize_probe_trace_arg_ref", "code": "__int64 __fastcall _synthesize_probe_trace_arg_ref ( _QWORD * @@a1@@ , char * * @@a2@@ , size_t * @@a3@@ , int @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { int @@v7@@ ; int @@v9@@ ; @@v7@@ = @@a4@@ ; if ( ! * @@a1@@ || ( @@v7@@ = _synthesize_probe_trace_arg_ref ( * @@a1@@ , @@a2@@ , @@a3@@ , ( unsigned int ) ( @@a4@@ + Number ) ) , @@v7@@ >= Number ) ) { @@v9@@ = e_snprintf ( * @@a2@@ , * @@a3@@ , String , @@a1@@ [ Number ] , @@a5@@ , @@a6@@ ) ; if ( @@v9@@ >= Number ) { * @@a2@@ += @@v9@@ ; * @@a3@@ -= @@v9@@ ; } else { @@v7@@ = @@v9@@ ; } } return ( unsigned int ) @@v7@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "size_t"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "int", "s": 4}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "_QWORD"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char *"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "v7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s44"}]} {"name": "synthesize_probe_trace_arg", "code": "char * __fastcall synthesize_probe_trace_arg ( __int64 * @@a1@@ , char * @@a2@@ , size_t @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { __int64 v6 ; __int64 v7 ; __int64 v9 ; __int64 v10 ; size_t @@v12@@ ; char * @@v13@@ ; __int64 * @@v14@@ ; unsigned int @@v15@@ ; unsigned int @@v16@@ ; _QWORD * @@v17@@ ; char * @@v18@@ ; unsigned __int64 @@v19@@ ; @@v14@@ = @@a1@@ ; @@v13@@ = @@a2@@ ; @@v12@@ = @@a3@@ ; @@v19@@ = __readfsqword ( Number ) ; @@v17@@ = ( _QWORD * ) @@a1@@ [ Number ] ; @@v16@@ = Number ; @@v18@@ = @@a2@@ ; if ( * @@a1@@ ) @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , * @@v14@@ , @@a5@@ , @@a6@@ ) ; else @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , @@v12@@ , @@a5@@ , @@a6@@ ) ; if ( ( @@v15@@ & Number ) != Number ) return ( char * ) @@v15@@ ; @@v13@@ += ( int ) @@v15@@ ; @@v12@@ -= ( int ) @@v15@@ ; if ( * ( _BYTE * ) @@v14@@ [ Number ] == Number && @@v14@@ [ Number ] ) @@v17@@ = ( _QWORD * ) * @@v17@@ ; if ( @@v17@@ ) { @@v16@@ = _synthesize_probe_trace_arg_ref ( @@v17@@ , & @@v13@@ , & @@v12@@ , Number , v6 , v7 ) ; if ( ( @@v16@@ & Number ) != Number ) return ( char * ) @@v16@@ ; } if ( * ( _BYTE * ) @@v14@@ [ Number ] == Number && @@v14@@ [ Number ] ) @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , @@v14@@ [ Number ] , * ( _QWORD * ) ( @@v14@@ [ Number ] + Number ) , v7 ) ; else @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , @@v14@@ [ Number ] , v6 , v7 ) ; if ( ( @@v15@@ & Number ) != Number ) return ( char * ) @@v15@@ ; @@v13@@ += ( int ) @@v15@@ ; for ( @@v12@@ -= ( int ) @@v15@@ ; @@v16@@ -- ; @@v12@@ -= ( int ) @@v15@@ ) { @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , @@v12@@ , v9 , v10 ) ; if ( ( @@v15@@ & Number ) != Number ) return ( char * ) @@v15@@ ; @@v13@@ += ( int ) @@v15@@ ; } if ( @@v14@@ [ Number ] ) { @@v15@@ = e_snprintf ( @@v13@@ , @@v12@@ , String , @@v14@@ [ Number ] , v9 , v10 ) ; if ( ( int ) @@v15@@ <= Number ) return ( char * ) @@v15@@ ; @@v13@@ += ( int ) @@v15@@ ; } return ( char * ) ( @@v13@@ - @@v18@@ ) ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "__int64"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "char"}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v18", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v17", "t": {"T": 3, "t": "_QWORD"}, "location": "s24"}, {"n": "v16", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s28"}, {"n": "v15", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s32"}, {"n": "v14", "t": {"T": 3, "t": "__int64"}, "location": "s40"}, {"n": "v13", "t": {"T": 3, "t": "char"}, "location": "s48"}, {"n": "v12", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s56"}, {"n": "v19", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "synthesize_probe_trace_command", "code": "char * __fastcall synthesize_probe_trace_command ( __int64 @@a1@@ ) { char * result ; const char * @@v2@@ ; void * v3 ; unsigned int @@v4@@ ; __int64 @@v5@@ ; __int64 @@v6@@ ; __int64 * v7 ; int @@i@@ ; int @@v10@@ ; int @@v11@@ ; char * @@ptr@@ ; @@ptr@@ = ( char * ) zalloc ( Number ) ; if ( ! @@ptr@@ ) return Number L ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) ) @@v2@@ = String ; else @@v2@@ = ( const char * ) & unk_5925 ; v3 = * ( void * * ) ( @@a1@@ + Number ) ; if ( ! v3 ) v3 = & unk_5925 ; if ( * ( _BYTE * ) ( @@a1@@ + Number ) ) @@v4@@ = Number ; else @@v4@@ = Number ; @@v10@@ = e_snprintf ( @@ptr@@ , Number , String , @@v4@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) @@a1@@ , v3 , @@v2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( @@v10@@ <= Number ) { LABEL_17 : free ( @@ptr@@ ) ; result = Number L ; } else { for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ; ++ @@i@@ ) { v7 = ( __int64 * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * @@i@@ ) ; @@v11@@ = ( unsigned int ) synthesize_probe_trace_arg ( v7 , & @@ptr@@ [ @@v10@@ ] , Number - @@v10@@ , ( __int64 ) v7 , @@v5@@ , @@v6@@ ) ; if ( @@v11@@ <= Number ) goto LABEL_17 ; @@v10@@ += @@v11@@ ; } result = @@ptr@@ ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v4", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "r64"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "v6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v2", "t": {"T": 3, "t": "const char"}, "location": "r88"}, {"n": "ptr", "t": {"T": 3, "t": "char"}, "location": "s16"}, {"n": "v11", "t": {"T": 1, "n": "int", "s": 4}, "location": "s28"}, {"n": "v10", "t": {"T": 1, "n": "int", "s": 4}, "location": "s32"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s36"}]} {"name": "open_kprobe_events", "code": "__int64 __fastcall open_kprobe_events ( unsigned __int8 @@a1@@ ) { __int64 @@v1@@ ; __int64 @@v2@@ ; __int64 result ; int * v4 ; char * v5 ; int @@v6@@ ; __int64 @@v7@@ ; char @@file@@ [ Number ] ; unsigned __int64 @@v9@@ ; @@v9@@ = __readfsqword ( Number ) ; @@v7@@ = debugfs_find_mountpoint ( ) ; if ( @@v7@@ ) { @@v6@@ = e_snprintf ( @@file@@ , Number , String , @@v7@@ , @@v1@@ , @@v2@@ ) ; if ( @@v6@@ >= Number ) { eprintf ( Number L , String , @@file@@ , @@a1@@ ) ; if ( @@a1@@ && probe_event_dry_run != Number ) @@v6@@ = open64 ( @@file@@ , Number , Number L ) ; else @@v6@@ = open64 ( @@file@@ , Number , Number L ) ; } if ( @@v6@@ < Number ) { if ( * _errno_location ( ) == Number ) { eprintf ( Number L , String ) ; } else { v4 = _errno_location ( ) ; v5 = strerror ( * v4 ) ; eprintf ( Number L , String , v5 ) ; } } result = ( unsigned int ) @@v6@@ ; } else { eprintf ( Number L , String ) ; result = Number L ; } return result ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "unsigned __int8", "s": 1}, "location": "r56"}, {"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "v2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "file", "t": {"T": 2, "n": 4104, "s": 1, "t": "char"}, "location": "s4112"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s4120"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s4124"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"name": "show_perf_probe_event", "code": "__int64 __fastcall show_perf_probe_event ( __int64 @@a1@@ ) { __int64 v1 ; __int64 @@v3@@ ; __int64 v4 ; int @@i@@ ; int @@v6@@ ; char * @@ptr@@ ; char @@v8@@ [ Number ] ; unsigned __int64 @@v9@@ ; @@v9@@ = __readfsqword ( Number ) ; @@ptr@@ = synthesize_perf_probe_point ( @@a1@@ + Number ) ; if ( ! @@ptr@@ ) return Number L ; @@v6@@ = e_snprintf ( @@v8@@ , Number , String , * ( _QWORD * ) ( @@a1@@ + Number ) , * ( _QWORD * ) @@a1@@ , v1 ) ; if ( @@v6@@ < Number ) return ( unsigned int ) @@v6@@ ; printf ( String , @@v8@@ , @@ptr@@ ) ; if ( * ( int * ) ( @@a1@@ + Number ) > Number ) { printf ( String ) ; for ( @@i@@ = Number ; @@i@@ < * ( _DWORD * ) ( @@a1@@ + Number ) ; ++ @@i@@ ) { @@v6@@ = synthesize_perf_probe_arg ( ( __int64 * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * @@i@@ ) , @@v8@@ , Number , * ( _QWORD * ) ( @@a1@@ + Number ) + Number L * @@i@@ , @@v3@@ , v4 ) ; if ( @@v6@@ < Number ) break ; printf ( String , @@v8@@ ) ; } } puts ( String ) ; free ( @@ptr@@ ) ; return ( unsigned int ) @@v6@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "v8", "t": {"T": 2, "n": 136, "s": 1, "t": "char"}, "location": "s144"}, {"n": "ptr", "t": {"T": 3, "t": "char"}, "location": "s152"}, {"n": "v6", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s160"}, {"n": "v9", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]} {"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": "get_new_event_name", "code": "__int64 __fastcall get_new_event_name ( char * @@a1@@ , size_t @@a2@@ , const char * @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { char * v6 ; __int64 result ; __int64 v8 ; char @@v9@@ ; int @@i@@ ; int @@v13@@ ; @@v9@@ = @@a5@@ ; @@v13@@ = e_snprintf ( @@a1@@ , @@a2@@ , String , ( __int64 ) @@a3@@ , @@a5@@ , @@a6@@ ) ; if ( @@v13@@ >= Number ) { if ( ! strlist__has_entry ( @@a4@@ , ( __int64 ) @@a1@@ ) ) { result = Number L ; } else if ( @@v9@@ != Number ) { eprintf ( Number L , String , @@a3@@ ) ; result = Number L ; } else { for ( @@i@@ = Number ; @@i@@ <= Number ; ++ @@i@@ ) { @@v13@@ = e_snprintf ( @@a1@@ , @@a2@@ , String , ( __int64 ) @@a3@@ , ( unsigned int ) @@i@@ , v8 ) ; if ( @@v13@@ < Number ) goto LABEL_2 ; if ( ! strlist__has_entry ( @@a4@@ , ( __int64 ) @@a1@@ ) ) break ; } if ( @@i@@ == Number ) { eprintf ( Number L , String ) ; @@v13@@ = Number ; } result = ( unsigned int ) @@v13@@ ; } } else { LABEL_2 : v6 = strerror ( - @@v13@@ ) ; eprintf ( Number L , String , v6 ) ; result = ( unsigned int ) @@v13@@ ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "const char"}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "a1", "t": {"T": 3, "t": "char"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "r64"}, {"n": "a5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r72"}, {"n": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v13", "t": {"T": 1, "n": "int", "s": 4}, "location": "s12"}, {"n": "i", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16"}, {"n": "v9", "t": {"T": 1, "n": "char", "s": 1}, "location": "s52"}]} {"name": "__del_trace_probe_event", "code": "__int64 __fastcall _del_trace_probe_event ( int @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , __int64 @@a6@@ ) { size_t v6 ; char * v8 ; int @@v9@@ ; char * @@v10@@ ; char @@s@@ [ Number ] ; char @@v12@@ [ Number ] ; unsigned __int64 @@v13@@ ; @@v13@@ = __readfsqword ( Number ) ; @@v9@@ = e_snprintf ( @@s@@ , Number , String , * ( _QWORD * ) ( @@a2@@ + Number ) , @@a5@@ , @@a6@@ ) ; if ( @@v9@@ >= Number ) { @@v10@@ = strchr ( @@v12@@ , Number ) ; if ( @@v10@@ ) { * @@v10@@ = Number ; eprintf ( Number L , String , @@s@@ ) ; v6 = strlen ( @@s@@ ) ; if ( ( int ) write ( @@a1@@ , @@s@@ , v6 ) >= Number ) { printf ( String , * ( const char * * ) ( @@a2@@ + Number ) ) ; return Number L ; } @@v9@@ = - * _errno_location ( ) ; } else { eprintf ( Number L , String , * ( const char * * ) ( @@a2@@ + Number ) ) ; @@v9@@ = Number ; } } v8 = strerror ( - @@v9@@ ) ; eprintf ( Number L , String , v8 ) ; return ( unsigned int ) @@v9@@ ; }", "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": "a6", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r80"}, {"n": "v12", "t": {"T": 2, "n": 134, "s": 1, "t": "char"}, "location": "s142"}, {"n": "s", "t": {"T": 2, "n": 2, "s": 1, "t": "char"}, "location": "s144"}, {"n": "v10", "t": {"T": 3, "t": "char"}, "location": "s152"}, {"n": "v9", "t": {"T": 1, "n": "int", "s": 4}, "location": "s156"}, {"n": "v13", "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"}]}