{"name": "disasm__calc_percent", "code": "unsigned __int64 __fastcall disasm__calc_percent ( __int64 @@a1@@ , int @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , _QWORD * @@a5@@ , unsigned __int64 * @@a6@@ ) { unsigned __int64 v6 ; double v7 ; double v8 ; unsigned __int64 v9 ; __int64 v10 ; unsigned int @@v15@@ ; double @@v16@@ ; __int64 v17 ; __int64 v18 ; _QWORD * @@v19@@ ; __int64 @@v20@@ ; unsigned __int64 @@v21@@ ; @@v21@@ = __readfsqword ( Number ) ; v17 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) ; @@v16@@ = Number ; * @@a6@@ = Number L ; if ( v17 ) { @@v20@@ = Number L * ( * ( _DWORD * ) ( v17 + Number ) - Number ) + Number ; while ( @@a3@@ < @@a4@@ ) { v18 = * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) + @@v20@@ * @@a3@@ ; if ( ! * @@a5@@ ) * @@a5@@ = * ( _QWORD * ) ( v18 + Number ) ; @@v16@@ = * ( double * ) ( v18 + Number L * @@a2@@ + Number ) + @@v16@@ ; v6 = * @@a6@@ ; if ( ( * @@a6@@ & Number ) != Number L ) v7 = ( double ) ( int ) ( * ( _DWORD * ) @@a6@@ & Number | ( v6 >> Number ) ) + ( double ) ( int ) ( * ( _DWORD * ) @@a6@@ & Number | ( v6 >> Number ) ) ; else v7 = ( double ) ( int ) v6 ; v8 = v7 + * ( double * ) ( v18 + Number L * @@a2@@ + Number ) ; if ( v8 >= Number ) v9 = ( unsigned int ) ( int ) ( v8 - Number ) ^ Number ; else v9 = ( unsigned int ) ( int ) v8 ; * @@a6@@ = v9 ; ++ @@a3@@ ; } } else { @@v19@@ = ( _QWORD * ) annotation__histogram ( @@a1@@ , @@a2@@ ) ; @@v15@@ = Number ; while ( @@a3@@ < @@a4@@ ) { v10 = @@a3@@ ++ ; @@v15@@ += @@v19@@ [ v10 + Number ] ; } if ( * @@v19@@ ) * @@a6@@ = @@v15@@ ; } return __readfsqword ( Number ) ^ @@v21@@ ; }", "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": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "a5", "t": {"T": 3, "t": "_QWORD"}, "location": "r72"}, {"n": "a6", "t": {"T": 3, "t": "unsigned __int64"}, "location": "r80"}, {"n": "v20", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v19", "t": {"T": 3, "t": "_QWORD"}, "location": "s24"}, {"n": "v16", "t": {"T": 1, "n": "double", "s": 8}, "location": "s40"}, {"n": "v15", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s44"}, {"n": "v21", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "annotation__histogram", "code": "__int64 __fastcall annotation__histogram ( __int64 @@a1@@ , int @@a2@@ ) { return * ( _QWORD * ) ( @@a1@@ + Number ) + Number L + * ( _QWORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) + Number L ) * @@a2@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}]} {"name": "disasm_line__print", "code": "__int64 __fastcall disasm_line__print ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , __int64 @@a5@@ , int @@a6@@ , int @@a7@@ , int @@a8@@ , __int64 * @@a9@@ ) { double @@v9@@ ; __int64 @@v11@@ ; int v12 ; __int64 * @@v13@@ ; int @@v18@@ ; int i ; int j ; int @@v21@@ ; int @@v22@@ ; char * @@s2@@ ; unsigned __int64 @@v24@@ ; double @@v25@@ ; double @@v26@@ ; void * @@ptr@@ ; void * @@v28@@ ; __int64 @@v29@@ ; __int64 @@v30@@ ; __int64 @@v31@@ ; _QWORD * @@v32@@ ; __int64 * @@v33@@ ; __int64 @@v34@@ ; unsigned __int64 @@v35@@ ; @@v18@@ = @@a2@@ ; @@v13@@ = @@a9@@ ; @@v35@@ = __readfsqword ( Number ) ; if ( * ( _QWORD * ) ( @@a1@@ + Number ) == Number ) { if ( @@a8@@ && @@a7@@ >= @@a8@@ ) return Number L ; @@v22@@ = Number ; if ( @@a9@@ ) return Number ; if ( perf_evsel__is_group_event ( @@a4@@ ) ) @@v22@@ = Number * * ( _DWORD * ) ( @@a4@@ + Number ) ; if ( * * ( _BYTE * * ) ( @@a1@@ + Number ) ) printf ( String , @@v22@@ , String , * ( const char * * ) ( @@a1@@ + Number ) ) ; else printf ( String , @@v22@@ , String ) ; } else { @@s2@@ = Number L ; @@v9@@ = Number ; @@v26@@ = Number ; @@ptr@@ = & @@v25@@ ; @@v28@@ = & @@v24@@ ; @@v21@@ = Number ; @@v29@@ = symbol__annotation ( @@a2@@ ) ; @@v30@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v31@@ = @@v30@@ + @@a3@@ ; @@v32@@ = disasm__get_next_ip_line ( * ( _QWORD * * ) ( @@v29@@ + Number ) , ( _QWORD * ) @@a1@@ ) ; if ( perf_evsel__is_group_event ( @@a4@@ ) ) { @@v21@@ = * ( _DWORD * ) ( @@a4@@ + Number ) ; @@ptr@@ = calloc ( @@v21@@ , Number ) ; @@v28@@ = calloc ( @@v21@@ , Number ) ; if ( ! @@ptr@@ || ! @@v28@@ ) return Number ; } for ( i = Number ; i < @@v21@@ ; ++ i ) { if ( @@v32@@ ) @@v11@@ = @@v32@@ [ Number ] ; else @@v11@@ = @@a5@@ ; if ( * ( _QWORD * ) ( * ( _QWORD * ) ( @@v29@@ + Number ) + Number L ) ) v12 = i ; else v12 = * ( _DWORD * ) ( @@a4@@ + Number ) + i ; disasm__calc_percent ( @@v29@@ , v12 , @@v30@@ , @@v11@@ , & @@s2@@ , & @@v24@@ ) ; @@v25@@ = @@v9@@ ; * ( ( double * ) @@ptr@@ + i ) = @@v9@@ ; * ( ( _QWORD * ) @@v28@@ + i ) = @@v24@@ ; @@v9@@ = @@v25@@ ; if ( @@v25@@ > @@v26@@ ) { @@v9@@ = @@v25@@ ; @@v26@@ = @@v25@@ ; } } if ( ( double ) @@a6@@ > @@v26@@ ) return Number ; if ( @@a8@@ && @@a7@@ >= @@a8@@ ) return Number L ; if ( @@a9@@ ) { while ( @@v13@@ != * ( __int64 * * ) ( @@v29@@ + Number ) && @@v13@@ != ( __int64 * ) @@a1@@ ) { disasm_line__print ( ( _DWORD ) @@v13@@ , @@v18@@ , @@a3@@ , @@a4@@ , @@a5@@ , Number , Number , Number , Number L ) ; @@v33@@ = ( __int64 * ) * @@v13@@ ; @@v13@@ = @@v33@@ ; } } @@v34@@ = get_percent_color ( @@v26@@ ) ; if ( @@s2@@ && ( ! prev_line_14041 || strcmp ( prev_line_14041 , @@s2@@ ) || @@v34@@ != prev_color_14042 ) ) { color_fprintf ( stdout , @@v34@@ , String , @@s2@@ ) ; prev_line_14041 = @@s2@@ ; prev_color_14042 = @@v34@@ ; } for ( j = Number ; j < @@v21@@ ; ++ j ) { @@v25@@ = * ( ( double * ) @@ptr@@ + j ) ; @@v24@@ = * ( ( _QWORD * ) @@v28@@ + j ) ; @@v34@@ = get_percent_color ( @@v25@@ ) ; if ( symbol_conf [ Number ] ) color_fprintf ( stdout , @@v34@@ , String , @@v24@@ ) ; else color_fprintf ( stdout , @@v34@@ , String , @@v25@@ ) ; } printf ( String ) ; color_fprintf ( stdout , String , String , @@v31@@ ) ; color_fprintf ( stdout , String , String , * ( const char * * ) ( @@a1@@ + Number ) ) ; if ( @@ptr@@ != & @@v25@@ ) free ( @@ptr@@ ) ; if ( @@v28@@ != & @@v24@@ ) free ( @@v28@@ ) ; } return Number L ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a4", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r24"}, {"n": "v9", "t": {"T": 1, "n": "double", "s": 8}, "location": "r496"}, {"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": "__int64", "s": 8}, "location": "r72"}, {"n": "v11", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "a6", "t": {"T": 1, "n": "int", "s": 4}, "location": "r80"}, {"n": "a7", "t": {"T": 1, "n": "int", "s": 4}, "location": "s-16"}, {"n": "a8", "t": {"T": 1, "n": "int", "s": 4}, "location": "s-24"}, {"n": "a9", "t": {"T": 3, "t": "__int64"}, "location": "s-32"}, {"n": "s2", "t": {"T": 3, "t": "char"}, "location": "s104"}, {"n": "v22", "t": {"T": 1, "n": "int", "s": 4}, "location": "s108"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s112"}, {"n": "v18", "t": {"T": 1, "n": "int", "s": 4}, "location": "s144"}, {"n": "v34", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16"}, {"n": "v13", "t": {"T": 3, "t": "__int64"}, "location": "s192"}, {"n": "v33", "t": {"T": 3, "t": "__int64"}, "location": "s24"}, {"n": "v32", "t": {"T": 3, "t": "_QWORD"}, "location": "s32"}, {"n": "v31", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s40"}, {"n": "v30", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s48"}, {"n": "v29", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s56"}, {"n": "v28", "t": {"T": 3, "t": "void"}, "location": "s64"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s72"}, {"n": "v35", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v26", "t": {"T": 1, "n": "double", "s": 8}, "location": "s80"}, {"n": "v25", "t": {"T": 1, "n": "double", "s": 8}, "location": "s88"}, {"n": "v24", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s96"}]}