{"name": "die_walk_lines", "code": "__int64 __fastcall die_walk_lines ( struct Dwarf_Die_s * @@a1@@ , Dwarf_Half * @@a2@@ , Dwarf_Error * @@a3@@ ) { __int64 result ; __int64 v4 ; Dwarf_Unsigned @@v6@@ ; __int64 @@v7@@ ; Dwarf_Addr @@v8@@ ; size_t @@v9@@ ; struct Dwarf_Die_s * @@v10@@ ; size_t @@i@@ ; Dwarf_Line @@v12@@ ; __int64 @@v13@@ ; char @@v14@@ [ Number ] ; __int64 @@v15@@ [ Number ] ; __int64 @@v16@@ ; unsigned __int64 @@v17@@ ; @@v17@@ = __readfsqword ( Number ) ; HIDWORD ( @@v6@@ ) = Number ; if ( dwarf_tag ( @@a1@@ , @@a2@@ , @@a3@@ ) == Number ) @@v10@@ = @@a1@@ ; else @@v10@@ = ( struct Dwarf_Die_s * ) dwarf_diecu ( @@a1@@ , @@v14@@ , Number L , Number L ) ; if ( @@v10@@ ) { if ( ( unsigned int ) dwarf_getsrclines ( @@v10@@ , & @@v7@@ , & @@v9@@ ) ) { eprintf ( Number L , String ) ; result = Number L ; } else { eprintf ( Number L , String , @@v9@@ ) ; for ( @@i@@ = Number L ; @@i@@ < @@v9@@ ; ++ @@i@@ ) { @@v12@@ = ( Dwarf_Line ) dwarf_onesrcline ( @@v7@@ , @@i@@ ) ; if ( ! @@v12@@ || dwarf_lineno ( @@v12@@ , & @@v6@@ , ( Dwarf_Error * ) & @@v6@@ ) || dwarf_lineaddr ( @@v12@@ , & @@v8@@ , ( Dwarf_Error * ) & @@v8@@ ) ) { eprintf ( Number L , String ) ; } else if ( @@a1@@ == @@v10@@ || ( unsigned int ) dwarf_haspc ( @@a1@@ , @@v8@@ ) && ! die_find_inlinefunc ( @@a1@@ , @@v8@@ , @@v14@@ ) ) { LODWORD ( v4 ) = dwarf_linesrc ( @@v12@@ , Number L , Number L ) ; @@v13@@ = v4 ; HIDWORD ( @@v6@@ ) = ( ( __int64 ( __fastcall * ) ( __int64 , _QWORD , Dwarf_Addr , Dwarf_Error * ) ) @@a2@@ ) ( v4 , ( unsigned int ) @@v6@@ , @@v8@@ , @@a3@@ ) ; if ( HIDWORD ( @@v6@@ ) ) return HIDWORD ( @@v6@@ ) ; } } if ( @@a1@@ == @@v10@@ ) { @@v15@@ [ Number ] = Number L ; @@v16@@ = Number L ; @@v15@@ [ Number ] = ( __int64 ) @@a2@@ ; @@v15@@ [ Number ] = ( __int64 ) @@a3@@ ; dwarf_getfuncs ( @@v10@@ , _die_walk_culines_cb , @@v15@@ , Number L ) ; HIDWORD ( @@v6@@ ) = @@v16@@ ; } else { HIDWORD ( @@v6@@ ) = _die_walk_funclines ( @@a1@@ , Number , ( __int64 ( __fastcall * ) ( _QWORD , _QWORD , _QWORD , _QWORD ) ) @@a2@@ , ( __int64 ) @@a3@@ ) ; } result = HIDWORD ( @@v6@@ ) ; } } else { eprintf ( Number L , String ) ; result = Number L ; } return result ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "Dwarf_Error"}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "struct Dwarf_Die_s"}, "location": "r56"}, {"n": "a2", "t": {"T": 3, "t": "Dwarf_Half"}, "location": "r64"}, {"n": "i", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s104"}, {"n": "v10", "t": {"T": 3, "t": "struct Dwarf_Die_s"}, "location": "s112"}, {"n": "v9", "t": {"T": 1, "n": "size_t", "s": 8}, "location": "s120"}, {"n": "v8", "t": {"T": 1, "n": "Dwarf_Addr", "s": 8}, "location": "s128"}, {"n": "v7", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s136"}, {"n": "v6", "t": {"T": 1, "n": "Dwarf_Unsigned", "s": 8}, "location": "s144"}, {"n": "v16", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s24"}, {"n": "v15", "t": {"T": 2, "n": 3, "s": 8, "t": "__int64"}, "location": "s48"}, {"n": "v17", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v14", "t": {"T": 2, "n": 32, "s": 1, "t": "char"}, "location": "s80"}, {"n": "v13", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s88"}, {"n": "v12", "t": {"T": 1, "n": "Dwarf_Line", "s": 8}, "location": "s96"}]}
{"name": "die_find_inlinefunc", "code": "void * __fastcall die_find_inlinefunc ( void * @@a1@@ , __int64 @@a2@@ , void * @@a3@@ ) { __int64 @@v5@@ ; void * @@src@@ ; Dwarf_Die @@v7@@ [ Number ] ; @@src@@ = @@a1@@ ; @@v5@@ = @@a2@@ ; @@v7@@ [ Number ] = ( Dwarf_Die ) __readfsqword ( Number ) ; @@src@@ = die_find_child ( ( struct Dwarf_Die_s * ) @@a1@@ , ( __int64 ( __fastcall * ) ( Dwarf_Die * , __int64 ) ) _die_find_inline_cb , ( __int64 ) & @@v5@@ , @@v7@@ ) ; if ( ! @@src@@ ) return Number L ; while ( @@src@@ ) { memcpy ( @@a3@@ , @@src@@ , Number ) ; @@src@@ = die_find_child ( ( struct Dwarf_Die_s * ) @@src@@ , ( __int64 ( __fastcall * ) ( Dwarf_Die * , __int64 ) ) _die_find_inline_cb , ( __int64 ) & @@v5@@ , @@v7@@ ) ; } return @@a3@@ ; }", "source": [{"n": "a3", "t": {"T": 3, "t": "void"}, "location": "r16"}, {"n": "a1", "t": {"T": 3, "t": "void"}, "location": "r56"}, {"n": "a2", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "r64"}, {"n": "v7", "t": {"T": 2, "n": 6, "s": 8, "t": "Dwarf_Die"}, "location": "s48"}, {"n": "src", "t": {"T": 3, "t": "void"}, "location": "s56"}, {"n": "v5", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s64"}]}