{"name": "symbol__annotate_zero_histograms", "code": "unsigned __int64 __fastcall symbol__annotate_zero_histograms ( __int64 @@a1@@ ) { __int64 @@v1@@ ; pthread_mutex_t * @@mutex@@ ; unsigned __int64 @@v4@@ ; @@v4@@ = __readfsqword ( Number ) ; @@mutex@@ = ( pthread_mutex_t * ) symbol__annotation ( @@a1@@ ) ; pthread_mutex_lock ( @@mutex@@ ) ; if ( @@mutex@@ [ Number ] . __align ) { memset ( ( void * ) ( @@mutex@@ [ Number ] . __align + Number ) , Number , * ( int * ) ( @@mutex@@ [ Number ] . __align + Number ) * * ( _QWORD * ) ( @@mutex@@ [ Number ] . __align + Number ) ) ; if ( * ( _QWORD * ) ( @@mutex@@ [ Number ] . __align + Number ) ) { @@v1@@ = symbol__size ( @@a1@@ ) ; memset ( * ( void * * ) ( @@mutex@@ [ Number ] . __align + Number ) , Number , Number * @@v1@@ ) ; } } pthread_mutex_unlock ( @@mutex@@ ) ; return __readfsqword ( Number ) ^ @@v4@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "v1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r8"}, {"n": "mutex", "t": {"T": 3, "t": "pthread_mutex_t"}, "location": "s16"}, {"n": "v4", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}
{"name": "symbol__size", "code": "__int64 __fastcall symbol__size ( __int64 @@a1@@ ) { return * ( _QWORD * ) ( @@a1@@ + Number ) - * ( _QWORD * ) ( @@a1@@ + Number ) ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "symbol__annotation", "code": "__int64 __fastcall symbol__annotation ( __int64 @@a1@@ ) { return @@a1@@ - * ( unsigned __int16 * ) symbol_conf ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}]} {"name": "symbol__annotate", "code": "__int64 __fastcall symbol__annotate ( __int64 @@a1@@ , __int64 @@a2@@ , __int64 @@a3@@ ) { const char * v4 ; __int64 v5 ; __int64 v6 ; const char * @@v7@@ ; const char * @@v8@@ ; __int64 v9 ; __int64 v10 ; const char * v11 ; const char * @@v12@@ ; const char * v13 ; char @@v16@@ ; char @@v17@@ ; char @@v18@@ ; int @@v19@@ ; unsigned int @@v20@@ ; int @@v21@@ ; int @@fd@@ ; void * @@ptr@@ ; char * @@v24@@ ; char * @@v25@@ ; FILE * @@stream@@ ; char @@v27@@ [ Number ] ; void * @@v28@@ ; __int64 @@v29@@ [ Number ] ; __int64 @@v30@@ ; char @@path@@ [ Number ] ; char @@s@@ [ Number ] ; __int64 @@v33@@ ; __int64 @@v34@@ ; __int64 @@v35@@ ; __int64 @@v36@@ ; __int64 @@v37@@ ; char @@buf@@ [ Number ] ; unsigned __int64 @@v39@@ ; @@v39@@ = __readfsqword ( Number ) ; @@v25@@ = * ( char * * ) ( @@a2@@ + Number ) ; @@ptr@@ = ( void * ) dso__build_id_filename ( @@v25@@ , Number L , Number L ) ; @@v16@@ = Number ; @@v20@@ = Number ; @@v17@@ = Number ; @@v19@@ = Number ; if ( @@ptr@@ ) _symbol__join_symfs ( @@path@@ , Number L , ( __int64 ) @@ptr@@ ) ; if ( ! @@ptr@@ ) { if ( ( @@v25@@ [ Number ] & Number ) != Number ) { eprintf ( Number L , verbose , String , ( const char * ) ( @@a1@@ + Number ) ) ; return Number L ; } goto LABEL_11 ; } if ( dso__is_kcore ( ( __int64 ) @@v25@@ ) ) { LABEL_11 : @@ptr@@ = ( void * ) * ( ( _QWORD * ) @@v25@@ + Number ) ; _symbol__join_symfs ( @@path@@ , Number L , ( __int64 ) @@ptr@@ ) ; @@v16@@ = Number ; goto LABEL_12 ; } if ( readlink ( @@path@@ , @@buf@@ , Number ) < Number || strstr ( @@buf@@ , String ) || access ( @@path@@ , Number ) ) { free ( @@ptr@@ ) ; goto LABEL_11 ; } LABEL_12 : if ( ! * ( ( _DWORD * ) @@v25@@ + Number ) && ! dso__is_kcore ( ( __int64 ) @@v25@@ ) ) { strcpy ( @@s@@ , String ) ; @@v33@@ = Number L ; @@v34@@ = Number L ; @@v35@@ = Number L ; @@v36@@ = Number L ; @@v37@@ = Number L ; @@v24@@ = Number L ; if ( ( @@v25@@ [ Number ] & Number ) == Number ) { if ( ( @@v25@@ [ Number ] & Number ) != Number ) { build_id__sprintf ( @@v25@@ + Number , Number L , & @@s@@ [ Number ] ) ; @@v24@@ = @@s@@ ; } @@v20@@ = Number ; @@v25@@ [ Number ] |= Number ; v4 = @@v24@@ ; if ( ! @@v24@@ ) v4 = ( const char * ) & unk_56F2 ; eprintf ( Number L , verbose , String String String String String String String String String String String String String String , ( const char * ) ( @@a1@@ + Number ) , v4 ) ; } goto LABEL_61 ; } v5 = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( @@a2@@ + Number ) ) ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; v6 = ( * ( __int64 ( __fastcall * * ) ( __int64 , _QWORD ) ) ( @@a2@@ + Number ) ) ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; eprintf ( Number L , verbose , String , String , ( const char * ) @@ptr@@ , ( const char * ) ( @@a1@@ + Number ) , v6 , v5 ) ; eprintf ( Number L , verbose , String , @@v25@@ , * ( ( const char * * ) @@v25@@ + Number ) , ( const void * ) @@a1@@ , ( const char * ) ( @@a1@@ + Number ) ) ; if ( dso__is_kcore ( ( __int64 ) @@v25@@ ) ) { @@v29@@ [ Number ] = ( __int64 ) @@path@@ ; @@v29@@ [ Number ] = map__rip_2objdump ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v29@@ [ Number ] = * ( _QWORD * ) ( @@a1@@ + Number ) ; @@v29@@ [ Number ] = * ( _QWORD * ) ( @@a1@@ + Number ) - * ( _QWORD * ) ( @@a1@@ + Number ) ; if ( ! ( unsigned int ) kcore_extract__create ( @@v29@@ ) ) { @@v17@@ = Number ; strlcpy ( @@path@@ , & @@v30@@ , Number L ) ; if ( @@v16@@ ) { free ( @@ptr@@ ) ; @@v16@@ = Number ; } @@ptr@@ = @@path@@ ; } goto LABEL_33 ; } if ( ! ( unsigned __int8 ) dso__needs_decompress ( @@v25@@ ) ) { LABEL_33 : if ( symbol_conf [ Number ] ) @@v7@@ = String ; else @@v7@@ = ( const char * ) & unk_56F2 ; if ( symbol_conf [ Number ] ) @@v8@@ = ( const char * ) & unk_56F2 ; else @@v8@@ = String ; v9 = map__rip_2objdump ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; v10 = map__rip_2objdump ( @@a2@@ , * ( _QWORD * ) ( @@a1@@ + Number ) ) ; if ( disassembler_style ) v11 = ( const char * ) disassembler_style ; else v11 = ( const char * ) & unk_56F2 ; if ( disassembler_style ) @@v12@@ = String ; else @@v12@@ = ( const char * ) & unk_56F2 ; if ( objdump_path ) v13 = ( const char * ) objdump_path ; else v13 = String ; snprintf ( @@buf@@ , Number , String , v13 , @@v12@@ , v11 , v10 , v9 , @@v8@@ , @@v7@@ , @@path@@ , ( const char * ) @@ptr@@ ) ; eprintf ( Number L , verbose , String , @@buf@@ ) ; @@stream@@ = popen ( @@buf@@ , String ) ; if ( @@stream@@ ) { @@v21@@ = Number ; while ( ! feof ( @@stream@@ ) && ( int ) symbol__parse_objdump_line ( @@a1@@ , @@a2@@ , @@stream@@ , @@a3@@ , & @@v19@@ ) >= Number ) ++ @@v21@@ ; if ( ! @@v21@@ ) eprintf ( Number L , verbose , String , @@buf@@ ) ; if ( dso__is_kcore ( ( __int64 ) @@v25@@ ) ) delete_last_nop ( @@a1@@ ) ; pclose ( @@stream@@ ) ; } else { eprintf ( Number L , verbose , String , @@buf@@ ) ; } if ( ( unsigned __int8 ) dso__needs_decompress ( @@v25@@ ) ) unlink ( @@path@@ ) ; goto LABEL_61 ; } if ( ! ( unsigned int ) _kmod_path__parse ( @@v27@@ , @@path@@ , Number L , Number L ) ) { snprintf ( @@s@@ , Number , String ) ; @@fd@@ = mkstemp64 ( @@s@@ ) ; if ( @@fd@@ >= Number ) { @@v18@@ = decompress_to_file ( @@v28@@ , @@path@@ , ( unsigned int ) @@fd@@ ) ; if ( @@v18@@ ) eprintf ( Number L , verbose , String , ( const char * ) @@v28@@ , @@path@@ ) ; free ( @@v28@@ ) ; close ( @@fd@@ ) ; if ( @@v18@@ != Number ) goto LABEL_61 ; strcpy ( @@path@@ , @@s@@ ) ; goto LABEL_33 ; } free ( @@v28@@ ) ; } LABEL_61 : if ( @@v17@@ ) kcore_extract__delete ( @@v29@@ ) ; if ( @@v16@@ ) free ( @@ptr@@ ) ; return @@v20@@ ; }", "source": [{"n": "v8", "t": {"T": 3, "t": "const char"}, "location": "r104"}, {"n": "v7", "t": {"T": 3, "t": "const char"}, "location": "r112"}, {"n": "a3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r16"}, {"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v12", "t": {"T": 3, "t": "const char"}, "location": "r72"}, {"n": "v37", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s12288"}, {"n": "v36", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s12296"}, {"n": "v35", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s12304"}, {"n": "v34", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s12312"}, {"n": "v33", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s12320"}, {"n": "s", "t": {"T": 2, "n": 16, "s": 1, "t": "char"}, "location": "s12336"}, {"n": "path", "t": {"T": 2, "n": 4096, "s": 1, "t": "char"}, "location": "s16432"}, {"n": "v30", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s16464"}, {"n": "v29", "t": {"T": 2, "n": 4, "s": 8, "t": "__int64"}, "location": "s16496"}, {"n": "v28", "t": {"T": 3, "t": "void"}, "location": "s16520"}, {"n": "v27", "t": {"T": 2, "n": 8, "s": 1, "t": "char"}, "location": "s16528"}, {"n": "stream", "t": {"T": 3, "t": "FILE"}, "location": "s16536"}, {"n": "v25", "t": {"T": 3, "t": "char"}, "location": "s16544"}, {"n": "v24", "t": {"T": 3, "t": "char"}, "location": "s16552"}, {"n": "ptr", "t": {"T": 3, "t": "void"}, "location": "s16560"}, {"n": "fd", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16564"}, {"n": "v21", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16568"}, {"n": "v20", "t": {"T": 1, "n": "unsigned int", "s": 4}, "location": "s16572"}, {"n": "v19", "t": {"T": 1, "n": "int", "s": 4}, "location": "s16576"}, {"n": "v18", "t": {"T": 1, "n": "char", "s": 1}, "location": "s16577"}, {"n": "v17", "t": {"T": 1, "n": "char", "s": 1}, "location": "s16578"}, {"n": "v16", "t": {"T": 1, "n": "char", "s": 1}, "location": "s16579"}, {"n": "v39", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s40"}, {"n": "buf", "t": {"T": 2, "n": 8200, "s": 1, "t": "char"}, "location": "s8240"}]} {"name": "symbol__annotate_zero_histogram", "code": "unsigned __int64 __fastcall symbol__annotate_zero_histogram ( __int64 @@a1@@ , int @@a2@@ ) { __int64 @@v3@@ ; void * @@s@@ ; unsigned __int64 @@v5@@ ; @@v5@@ = __readfsqword ( Number ) ; @@v3@@ = symbol__annotation ( @@a1@@ ) ; @@s@@ = ( void * ) annotation__histogram ( @@v3@@ , @@a2@@ ) ; memset ( @@s@@ , Number , * ( _QWORD * ) ( * ( _QWORD * ) ( @@v3@@ + Number ) + Number L ) ) ; return __readfsqword ( Number ) ^ @@v5@@ ; }", "source": [{"n": "a1", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "int", "s": 4}, "location": "r64"}, {"n": "s", "t": {"T": 3, "t": "void"}, "location": "s16"}, {"n": "v3", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v5", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}]}