{"name": "perf_evsel__hists_browse", "code": "__int64 __fastcall perf_evsel__hists_browse ( __int64 @@a1@@ , int @@a2@@ , __int64 @@a3@@ , __int64 @@a4@@ , char @@a5@@ , void ( __fastcall * @@a6@@ ) ( __int64 ) , __int64 @@a7@@ , unsigned int @@a8@@ ) { __int64 v9 ; char * v10 ; int v11 ; const char * v12 ; const char * v13 ; int v14 ; const char * v15 ; const char * v16 ; int v17 ; int v18 ; unsigned int v19 ; const char * v20 ; const char * v21 ; unsigned int @@v27@@ ; int @@v28@@ ; int @@v29@@ ; int @@v30@@ ; int @@v31@@ ; int @@v32@@ ; int @@v33@@ ; int @@v34@@ ; int @@v35@@ ; int @@v36@@ ; __int64 @@v37@@ ; __int64 @@v38@@ ; __int64 @@v39@@ ; _QWORD * @@v40@@ ; __int64 @@v41@@ ; __int64 @@v42@@ ; _QWORD * @@v43@@ ; __int64 @@v44@@ ; char * @@s@@ [ Number ] ; char @@v46@@ [ Number ] ; unsigned __int64 @@v47@@ ; @@v47@@ = __readfsqword ( Number ) ; @@v39@@ = @@a1@@ + Number ; @@v40@@ = hist_browser__new ( @@a1@@ + Number ) ; @@v27@@ = Number ; @@v28@@ = Number ; if ( ! @@v40@@ ) return Number ; @@v41@@ = pstack__new ( Number L ) ; if ( ! @@v41@@ ) goto LABEL_141 ; ui_helpline__push ( @@a3@@ ) ; memset ( @@s@@ , Number , sizeof ( @@s@@ ) ) ; do { while ( Number ) { while ( Number ) { do { while ( Number ) { while ( Number ) { while ( Number ) { do { while ( Number ) { LABEL_5 : @@v37@@ = Number L ; @@v38@@ = Number L ; @@v29@@ = Number ; @@v30@@ = Number ; @@v31@@ = Number ; @@v32@@ = Number ; @@v33@@ = Number ; @@v34@@ = Number ; @@v35@@ = Number ; @@v27@@ = Number ; @@v28@@ = hist_browser__run ( ( __int64 ) @@v40@@ , @@a4@@ , @@a6@@ , @@a7@@ , @@a8@@ ) ; if ( @@v40@@ [ Number ] ) { @@v37@@ = hist_browser__selected_thread ( ( __int64 ) @@v40@@ ) ; if ( * ( _QWORD * ) @@v40@@ [ Number ] ) v9 = * ( _QWORD * ) ( * ( _QWORD * ) @@v40@@ [ Number ] + Number L ) ; else v9 = Number L ; @@v38@@ = v9 ; } if ( @@v28@@ != Number ) break ; LABEL_27 : if ( @@a2@@ != Number ) goto LABEL_140 ; } } while ( @@v28@@ > Number ) ; if ( @@v28@@ != Number ) break ; LABEL_40 : ui_browser__help_window ( @@v40@@ , String String String String String String String String String String String String String String String String String String String ) ; } if ( @@v28@@ <= Number ) { if ( @@v28@@ == Number ) goto LABEL_50 ; if ( @@v28@@ <= Number ) break ; } } if ( @@v28@@ != Number ) break ; if ( ( unsigned __int8 ) pstack__empty ( @@v41@@ ) ) { if ( @@a5@@ ) goto LABEL_140 ; } else { @@v42@@ = pstack__pop ( @@v41@@ ) ; if ( @@v42@@ == @@v40@@ [ Number ] + Number L ) { LABEL_116 : ui_helpline__pop ( ) ; * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) = Number L ; sort_dso [ Number ] = Number ; LABEL_122 : hists__filter_by_dso ( @@v39@@ ) ; hist_browser__reset ( ( __int64 ) @@v40@@ ) ; } else if ( @@v42@@ == @@v40@@ [ Number ] + Number L ) { LABEL_126 : ui_helpline__pop ( ) ; * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) = Number L ; sort_thread [ Number ] = Number ; LABEL_131 : hists__filter_by_thread ( @@v39@@ ) ; hist_browser__reset ( ( __int64 ) @@v40@@ ) ; } } } } while ( @@v28@@ > Number ) ; if ( @@v28@@ < Number ) break ; switch ( @@v28@@ ) { case String : case String : goto LABEL_40 ; case String : if ( * ( ( _BYTE * ) @@v40@@ + Number ) != Number ) { ui_browser__warning ( @@v40@@ , Number * @@a8@@ , String ) ; goto LABEL_5 ; } if ( ! @@v40@@ [ Number ] || ! * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) || ( * ( _BYTE * ) ( * ( _QWORD * ) ( * ( _QWORD * ) @@v40@@ [ Number ] + Number L ) + Number L ) & Number ) != Number ) { goto LABEL_5 ; } break ; case String : goto LABEL_114 ; case String : goto LABEL_140 ; case String : if ( ( unsigned int ) ui_browser__input_window ( String , String , @@v46@@ , String , Number * @@a8@@ ) == Number ) { if ( @@v46@@ [ Number ] ) v10 = @@v46@@ ; else v10 = Number L ; * ( _QWORD * ) ( @@a1@@ + Number ) = v10 ; hists__filter_by_symbol ( @@v39@@ ) ; hist_browser__reset ( ( __int64 ) @@v40@@ ) ; } goto LABEL_5 ; case String : goto LABEL_124 ; default : goto LABEL_5 ; } while ( Number ) { @@v44@@ = hist_browser__selected_entry ( ( __int64 ) @@v40@@ ) ; if ( ! @@v44@@ ) break ; if ( @@v29@@ == @@v33@@ ) { * ( _QWORD * ) ( @@v44@@ + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v44@@ + Number ) + Number L ) ; * ( _QWORD * ) ( @@v44@@ + Number ) = * * ( _QWORD * * ) ( @@v44@@ + Number ) ; } else if ( @@v29@@ == @@v34@@ ) { * ( _QWORD * ) ( @@v44@@ + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v44@@ + Number ) + Number L ) ; * ( _QWORD * ) ( @@v44@@ + Number ) = * ( _QWORD * ) ( * ( _QWORD * ) ( @@v44@@ + Number ) + Number L ) ; } * ( _BYTE * ) ( @@v44@@ + Number ) = Number ; @@v36@@ = hist_entry__tui_annotate ( @@v44@@ , * ( unsigned int * ) ( @@a1@@ + Number ) , @@a6@@ , @@a7@@ , @@a8@@ ) ; * ( _BYTE * ) ( @@v44@@ + Number ) = Number ; if ( @@v36@@ != Number && @@v36@@ != Number || @@v34@@ == Number || @@v33@@ == Number ) { ui_browser__update_nr_entries ( @@v40@@ , ( unsigned int ) * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) ) ; if ( @@v36@@ ) ui_browser__handle_resize ( @@v40@@ ) ; goto LABEL_5 ; } LABEL_94 : @@v29@@ = ui__popup_menu ( @@v27@@ , @@s@@ ) ; if ( @@v29@@ == @@v27@@ - Number ) goto LABEL_140 ; if ( @@v29@@ == Number ) { free_popup_options ( ( __int64 ) @@s@@ , @@v27@@ - Number ) ; goto LABEL_5 ; } if ( @@v29@@ != @@v30@@ && @@v29@@ != @@v34@@ && @@v29@@ != @@v33@@ ) { if ( @@v29@@ == @@v35@@ ) { map__browse ( * ( _QWORD * ) @@v40@@ [ Number ] ) ; goto LABEL_5 ; } if ( @@v29@@ != @@v31@@ ) { if ( @@v29@@ != @@v32@@ ) goto LABEL_5 ; LABEL_124 : if ( * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) ) { pstack__remove ( @@v41@@ , @@v40@@ [ Number ] + Number L ) ; goto LABEL_126 ; } if ( * ( _BYTE * ) ( @@v37@@ + Number ) ) v21 = * ( const char * * ) ( @@v37@@ + Number ) ; else v21 = ( const char * ) & unk_3EEB ; ui_helpline__fpush ( String , v21 , * ( unsigned int * ) ( @@v37@@ + Number ) ) ; * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) = @@v37@@ ; sort_thread [ Number ] = Number ; pstack__push ( @@v41@@ , @@v40@@ [ Number ] + Number L ) ; goto LABEL_131 ; } LABEL_114 : if ( * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) ) { pstack__remove ( @@v41@@ , @@v40@@ [ Number ] + Number L ) ; goto LABEL_116 ; } if ( @@v38@@ ) { if ( * ( _DWORD * ) ( @@v38@@ + Number ) ) v20 = String ; else v20 = * ( const char * * ) ( @@v38@@ + Number ) ; ui_helpline__fpush ( String , v20 ) ; * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) = @@v38@@ ; sort_dso [ Number ] = Number ; pstack__push ( @@v41@@ , @@v40@@ [ Number ] + Number L ) ; goto LABEL_122 ; } goto LABEL_5 ; } } } if ( @@v28@@ == Number ) break ; if ( @@v28@@ <= Number ) { if ( @@v28@@ == Number ) { LABEL_50 : if ( * ( ( _BYTE * ) @@v40@@ + Number ) == Number ) { if ( sort__branch_mode == Number ) { @@v43@@ = * ( _QWORD * * ) ( @@v40@@ [ Number ] + Number L ) ; if ( @@v40@@ [ Number ] && @@v43@@ && @@v43@@ [ Number ] && ( * ( _BYTE * ) ( * ( _QWORD * ) ( * @@v43@@ + Number L ) + Number L ) & Number ) == Number && asprintf ( @@s@@ , String , ( const char * ) ( @@v43@@ [ Number ] + Number L ) ) > Number ) { @@v27@@ = Number ; @@v33@@ = Number ; } if ( @@v40@@ [ Number ] && @@v43@@ && @@v43@@ [ Number ] && ( * ( _BYTE * ) ( * ( _QWORD * ) ( @@v43@@ [ Number ] + Number L ) + Number L ) & Number ) == Number && ( @@v43@@ [ Number ] != @@v43@@ [ Number ] || * ( _QWORD * ) ( @@v43@@ [ Number ] + Number L ) != * ( _QWORD * ) ( * @@v43@@ + Number L ) ) && asprintf ( & @@s@@ [ @@v27@@ ] , String , ( const char * ) ( @@v43@@ [ Number ] + Number L ) ) > Number ) { v11 = @@v27@@ ++ ; @@v34@@ = v11 ; } } else if ( @@v40@@ [ Number ] && * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) && ( * ( _BYTE * ) ( * ( _QWORD * ) ( * ( _QWORD * ) @@v40@@ [ Number ] + Number L ) + Number L ) & Number ) == Number && asprintf ( @@s@@ , String , ( const char * ) ( * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) + Number L ) ) > Number ) { @@v27@@ = Number ; @@v30@@ = Number ; } if ( @@v37@@ ) { v12 = ( const char * ) ( * ( _BYTE * ) ( @@v37@@ + Number ) ? * ( _QWORD * ) ( @@v37@@ + Number ) : & unk_3EEB ) ; v13 = * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) ? String : String ; if ( asprintf ( & @@s@@ [ @@v27@@ ] , String , v13 , v12 , * ( unsigned int * ) ( @@v37@@ + Number ) ) > Number ) { v14 = @@v27@@ ++ ; @@v32@@ = v14 ; } } if ( @@v38@@ ) { v15 = * ( _DWORD * ) ( @@v38@@ + Number ) ? String : * ( _QWORD * ) ( @@v38@@ + Number ) ; v16 = * ( _QWORD * ) ( @@v40@@ [ Number ] + Number L ) ? String : String ; if ( asprintf ( & @@s@@ [ @@v27@@ ] , String , v16 , v15 ) > Number ) { v17 = @@v27@@ ++ ; @@v31@@ = v17 ; } } if ( @@v40@@ [ Number ] && * ( _QWORD * ) @@v40@@ [ Number ] && asprintf ( & @@s@@ [ @@v27@@ ] , String ) > Number ) { v18 = @@v27@@ ++ ; @@v35@@ = v18 ; } } v19 = @@v27@@ ++ ; @@s@@ [ v19 ] = String ; goto LABEL_94 ; } if ( @@v28@@ <= Number ) { if ( @@v28@@ == Number ) goto LABEL_140 ; if ( @@v28@@ == Number ) goto LABEL_27 ; } } } } while ( @@a5@@ != Number && ( unsigned __int8 ) ui_browser__dialog_yesno ( @@v40@@ , String ) != Number ) ; LABEL_140 : pstack__delete ( @@v41@@ ) ; LABEL_141 : hist_browser__delete ( @@v40@@ ) ; free_popup_options ( ( __int64 ) @@s@@ , @@v27@@ - Number ) ; return ( unsigned int ) @@v28@@ ; }", "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": 1, "n": "char", "s": 1}, "location": "r72"}, {"n": "a6", "t": {"T": 9, "n": "void (__fastcall *)(__int64)"}, "location": "r80"}, {"n": "a7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s-16"}, {"n": "a8", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s-24"}, {"n": "s", "t": {"T": 2, "n": 16, "s": 8, "t": "char *"}, "location": "s208"}, {"n": "v44", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s216"}, {"n": "v43", "t": {"T": 3, "t": "_QWORD"}, "location": "s224"}, {"n": "v42", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s232"}, {"n": "v41", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s240"}, {"n": "v40", "t": {"T": 3, "t": "_QWORD"}, "location": "s248"}, {"n": "v39", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s256"}, {"n": "v38", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s264"}, {"n": "v37", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s272"}, {"n": "v36", "t": {"T": 1, "n": "int", "s": 4}, "location": "s276"}, {"n": "v35", "t": {"T": 1, "n": "int", "s": 4}, "location": "s280"}, {"n": "v34", "t": {"T": 1, "n": "int", "s": 4}, "location": "s284"}, {"n": "v33", "t": {"T": 1, "n": "int", "s": 4}, "location": "s288"}, {"n": "v32", "t": {"T": 1, "n": "int", "s": 4}, "location": "s292"}, {"n": "v31", "t": {"T": 1, "n": "int", "s": 4}, "location": "s296"}, {"n": "v30", "t": {"T": 1, "n": "int", "s": 4}, "location": "s300"}, {"n": "v29", "t": {"T": 1, "n": "int", "s": 4}, "location": "s304"}, {"n": "v28", "t": {"T": 1, "n": "int", "s": 4}, "location": "s308"}, {"n": "v27", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s312"}, {"n": "v47", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v46", "t": {"T": 2, "n": 72, "s": 1, "t": "char"}, "location": "s80"}]}