{"name": "ui_browser__hists_seek", "code": "unsigned __int64 __fastcall ui_browser__hists_seek ( __int64 @@a1@@ , __int64 @@a2@@ , int @@a3@@ ) { __int64 v3 ; __int64 v4 ; __int64 v5 ; __int64 v6 ; __int64 @@v9@@ ; char @@v10@@ ; unsigned __int16 @@v11@@ ; __int64 @@v12@@ ; __int64 v13 ; __int64 v14 ; unsigned __int64 @@v15@@ ; @@v9@@ = @@a2@@ ; @@v15@@ = __readfsqword ( Number ) ; @@v10@@ = Number ; if ( ! * ( _DWORD * ) ( @@a1@@ + Number ) ) return __readfsqword ( Number ) ^ @@v15@@ ; ui_browser__hists_init_top ( @@a1@@ ) ; if ( @@a3@@ == Number ) { v4 = rb_last ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v12@@ = hists__filter_prev_entries ( v4 ) ; @@v10@@ = Number ; } else { if ( @@a3@@ > Number ) return __readfsqword ( Number ) ^ @@v15@@ ; if ( @@a3@@ ) { if ( @@a3@@ != Number ) return __readfsqword ( Number ) ^ @@v15@@ ; @@v12@@ = * ( _QWORD * ) ( @@a1@@ + Number ) ; goto LABEL_11 ; } v3 = rb_first ( * ( _QWORD * ) ( @@a1@@ + Number ) ) ; @@v12@@ = hists__filter_entries ( v3 ) ; } * ( _WORD * ) ( * ( _QWORD * ) ( @@a1@@ + Number ) - Number L + Number ) = Number ; LABEL_11 : if ( @@a2@@ > Number ) { while ( Number ) { v13 = @@v12@@ - Number ; if ( * ( _BYTE * ) ( @@v12@@ - Number + Number ) ) { @@v11@@ = * ( _WORD * ) ( v13 + Number ) - * ( _WORD * ) ( v13 + Number ) ; if ( @@v9@@ <= @@v11@@ ) { * ( _WORD * ) ( v13 + Number ) += @@v9@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; return __readfsqword ( Number ) ^ @@v15@@ ; } @@v9@@ -= @@v11@@ ; * ( _WORD * ) ( v13 + Number ) = Number ; } v5 = rb_next ( @@v12@@ ) ; @@v12@@ = hists__filter_entries ( v5 ) ; if ( @@v12@@ ) { -- @@v9@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; if ( @@v9@@ ) continue ; } return __readfsqword ( Number ) ^ @@v15@@ ; } } if ( @@a2@@ >= Number ) { * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; * ( _WORD * ) ( @@v12@@ - Number + Number ) = Number ; return __readfsqword ( Number ) ^ @@v15@@ ; } while ( Number ) { v14 = @@v12@@ - Number ; if ( * ( _BYTE * ) ( @@v12@@ - Number + Number ) ) { if ( @@v10@@ ) { if ( - @@v9@@ <= * ( unsigned __int16 * ) ( v14 + Number ) ) { * ( _WORD * ) ( v14 + Number ) += @@v9@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; return __readfsqword ( Number ) ^ @@v15@@ ; } @@v9@@ += * ( unsigned __int16 * ) ( v14 + Number ) ; * ( _WORD * ) ( v14 + Number ) = Number ; } else { if ( - @@v9@@ <= * ( unsigned __int16 * ) ( v14 + Number ) ) { * ( _WORD * ) ( v14 + Number ) = * ( _WORD * ) ( v14 + Number ) + @@v9@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; return __readfsqword ( Number ) ^ @@v15@@ ; } @@v9@@ += * ( unsigned __int16 * ) ( v14 + Number ) ; * ( _WORD * ) ( v14 + Number ) = Number ; } } v6 = rb_prev ( @@v12@@ ) ; @@v12@@ = hists__filter_prev_entries ( v6 ) ; if ( ! @@v12@@ ) return __readfsqword ( Number ) ^ @@v15@@ ; ++ @@v9@@ ; * ( _QWORD * ) ( @@a1@@ + Number ) = @@v12@@ ; if ( ! @@v9@@ ) break ; @@v10@@ = Number ; } if ( * ( _BYTE * ) ( @@v12@@ - Number + Number ) ) * ( _WORD * ) ( @@v12@@ - Number + Number ) = * ( _WORD * ) ( @@v12@@ - Number + Number ) ; return __readfsqword ( Number ) ^ @@v15@@ ; }", "source": [{"n": "a3", "t": {"T": 1, "n": "int", "s": 4}, "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": 1, "n": "__int64", "s": 8}, "location": "s64"}, {"n": "v11", "t": {"T": 1, "n": "unsigned __int16", "s": 2}, "location": "s66"}, {"n": "v10", "t": {"T": 1, "n": "char", "s": 1}, "location": "s67"}, {"n": "v15", "t": {"T": 1, "n": "unsigned __int64", "s": 8}, "location": "s8"}, {"n": "v9", "t": {"T": 1, "n": "__int64", "s": 8}, "location": "s96"}]}