Ticket #11399: bplustree_find.disasm

File bplustree_find.disasm, 9.7 KB (added by anevilyak, 5 years ago)

Disassembly of BPlusTree::Find()

Line 
100011e52 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)>:
2   11e52:   55                      push   %ebp
3   11e53:   89 e5                   mov    %esp,%ebp
4   11e55:   57                      push   %edi
5   11e56:   56                      push   %esi
6   11e57:   53                      push   %ebx
7   11e58:   83 ec 4c                sub    $0x4c,%esp
8   11e5b:   e8 07 8d ff ff          call   ab67 <__x86.get_pc_thunk.bx>
9   11e60:   81 c3 fc e4 01 00       add    $0x1e4fc,%ebx
10   11e66:   8b 45 10                mov    0x10(%ebp),%eax
11   11e69:   89 c7                   mov    %eax,%edi
12   11e6b:   48                      dec    %eax
13   11e6c:   66 3d ff 00             cmp    $0xff,%ax
14   11e70:   77 06                   ja     11e78 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x26>
15   11e72:   83 7d 0c 00             cmpl   $0x0,0xc(%ebp)
16   11e76:   75 33                   jne    11eab <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x59>
17   11e78:   83 ec 0c                sub    $0xc,%esp
18   11e7b:   68 05 00 00 80          push   $0x80000005
19   11e80:   e8 3b 76 ff ff          call   94c0 <strerror@plt>
20   11e85:   50                      push   %eax
21   11e86:   68 eb 08 00 00          push   $0x8eb
22   11e8b:   8d 83 ef ce ff ff       lea    -0x3111(%ebx),%eax
23   11e91:   50                      push   %eax
24   11e92:   8d 83 df bf ff ff       lea    -0x4021(%ebx),%eax
25   11e98:   50                      push   %eax
26   11e99:   e8 02 84 ff ff          call   a2a0 <dprintf@plt>
27   11e9e:   83 c4 20                add    $0x20,%esp
28   11ea1:   be 05 00 00 80          mov    $0x80000005,%esi
29   11ea6:   e9 b3 01 00 00          jmp    1205e <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x20c>
30   11eab:   8b 45 08                mov    0x8(%ebp),%eax
31   11eae:   80 78 3c 00             cmpb   $0x0,0x3c(%eax)
32   11eb2:   74 33                   je     11ee7 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x95>
33   11eb4:   83 ec 0c                sub    $0xc,%esp
34   11eb7:   68 04 00 00 80          push   $0x80000004
35   11ebc:   e8 ff 75 ff ff          call   94c0 <strerror@plt>
36   11ec1:   50                      push   %eax
37   11ec2:   68 ee 08 00 00          push   $0x8ee
38   11ec7:   8d 83 ef ce ff ff       lea    -0x3111(%ebx),%eax
39   11ecd:   50                      push   %eax
40   11ece:   8d 83 df bf ff ff       lea    -0x4021(%ebx),%eax
41   11ed4:   50                      push   %eax
42   11ed5:   e8 c6 83 ff ff          call   a2a0 <dprintf@plt>
43   11eda:   83 c4 20                add    $0x20,%esp
44   11edd:   be 04 00 00 80          mov    $0x80000004,%esi
45   11ee2:   e9 77 01 00 00          jmp    1205e <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x20c>
46   11ee7:   8b 45 08                mov    0x8(%ebp),%eax
47   11eea:   8b 50 24                mov    0x24(%eax),%edx
48   11eed:   8b 40 20                mov    0x20(%eax),%eax
49   11ef0:   89 45 b0                mov    %eax,-0x50(%ebp)
50   11ef3:   89 55 b4                mov    %edx,-0x4c(%ebp)
51   11ef6:   8b 45 08                mov    0x8(%ebp),%eax
52   11ef9:   89 45 cc                mov    %eax,-0x34(%ebp)
53   11efc:   c7 45 d0 00 00 00 00    movl   $0x0,-0x30(%ebp)
54   11f03:   8d 45 cc                lea    -0x34(%ebp),%eax
55   11f06:   89 45 ac                mov    %eax,-0x54(%ebp)
56   11f09:   e9 c9 00 00 00          jmp    11fd7 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x185>
57   11f0e:   66 c7 45 be 00 00       movw   $0x0,-0x42(%ebp)
58   11f14:   83 ec 08                sub    $0x8,%esp
59   11f17:   8d 45 c0                lea    -0x40(%ebp),%eax
60   11f1a:   50                      push   %eax
61   11f1b:   8d 45 be                lea    -0x42(%ebp),%eax
62   11f1e:   50                      push   %eax
63   11f1f:   31 c0                   xor    %eax,%eax
64   11f21:   66 89 f8                mov    %di,%ax
65   11f24:   50                      push   %eax
66   11f25:   ff 75 0c                pushl  0xc(%ebp)
67   11f28:   56                      push   %esi
68   11f29:   ff 75 08                pushl  0x8(%ebp)
69   11f2c:   e8 0f 7b ff ff          call   9a40 <BPlusTree::_FindKey(bplustree_node const*, unsigned char const*, unsigned short, unsigned short*, long long*)@plt>
70   11f31:   83 c4 20                add    $0x20,%esp
71   11f34:   8b 56 10                mov    0x10(%esi),%edx
72   11f37:   23 56 14                and    0x14(%esi),%edx
73   11f3a:   83 fa ff                cmp    $0xffffffff,%edx
74   11f3d:   75 48                   jne    11f87 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x135>
75   11f3f:   85 c0                   test   %eax,%eax
76   11f41:   0f 85 8c 00 00 00       jne    11fd3 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x181>
77   11f47:   83 7d 14 00             cmpl   $0x0,0x14(%ebp)
78   11f4b:   0f 84 82 00 00 00       je     11fd3 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x181>
79   11f51:   31 d2                   xor    %edx,%edx
80   11f53:   66 8b 56 1a             mov    0x1a(%esi),%dx
81   11f57:   83 c2 23                add    $0x23,%edx
82   11f5a:   83 e2 f8                and    $0xfffffff8,%edx
83   11f5d:   31 ff                   xor    %edi,%edi
84   11f5f:   66 8b 7e 18             mov    0x18(%esi),%di
85   11f63:   31 c9                   xor    %ecx,%ecx
86   11f65:   66 8b 4d be             mov    -0x42(%ebp),%cx
87   11f69:   c1 e1 03                shl    $0x3,%ecx
88   11f6c:   8d 0c 79                lea    (%ecx,%edi,2),%ecx
89   11f6f:   01 ce                   add    %ecx,%esi
90   11f71:   8b 7c 16 04             mov    0x4(%esi,%edx,1),%edi
91   11f75:   8b 34 16                mov    (%esi,%edx,1),%esi
92   11f78:   8b 4d 14                mov    0x14(%ebp),%ecx
93   11f7b:   89 31                   mov    %esi,(%ecx)
94   11f7d:   89 79 04                mov    %edi,0x4(%ecx)
95   11f80:   89 c6                   mov    %eax,%esi
96   11f82:   e9 c8 00 00 00          jmp    1204f <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x1fd>
97   11f87:   8b 55 c0                mov    -0x40(%ebp),%edx
98   11f8a:   8b 45 c4                mov    -0x3c(%ebp),%eax
99   11f8d:   8b 4d b4                mov    -0x4c(%ebp),%ecx
100   11f90:   31 c1                   xor    %eax,%ecx
101   11f92:   8b 75 b0                mov    -0x50(%ebp),%esi
102   11f95:   31 d6                   xor    %edx,%esi
103   11f97:   09 f1                   or     %esi,%ecx
104   11f99:   75 30                   jne    11fcb <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x179>
105   11f9b:   83 ec 0c                sub    $0xc,%esp
106   11f9e:   6a ff                   push   $0xffffffff
107   11fa0:   e8 1b 75 ff ff          call   94c0 <strerror@plt>
108   11fa5:   50                      push   %eax
109   11fa6:   68 0f 09 00 00          push   $0x90f
110   11fab:   8d 83 ef ce ff ff       lea    -0x3111(%ebx),%eax
111   11fb1:   50                      push   %eax
112   11fb2:   8d 83 df bf ff ff       lea    -0x4021(%ebx),%eax
113   11fb8:   50                      push   %eax
114   11fb9:   e8 e2 82 ff ff          call   a2a0 <dprintf@plt>
115   11fbe:   83 c4 20                add    $0x20,%esp
116   11fc1:   be ff ff ff ff          mov    $0xffffffff,%esi
117   11fc6:   e9 84 00 00 00          jmp    1204f <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x1fd>
118   11fcb:   89 55 b0                mov    %edx,-0x50(%ebp)
119   11fce:   89 45 b4                mov    %eax,-0x4c(%ebp)
120   11fd1:   eb 04                   jmp    11fd7 <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x185>
121   11fd3:   89 c6                   mov    %eax,%esi
122   11fd5:   eb 78                   jmp    1204f <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0x1fd>
123   11fd7:   6a 01                   push   $0x1
124   11fd9:   ff 75 b4                pushl  -0x4c(%ebp)
125   11fdc:   ff 75 b0                pushl  -0x50(%ebp)
126   11fdf:   ff 75 ac                pushl  -0x54(%ebp)
127   11fe2:   e8 99 7b ff ff          call   9b80 <CachedNode::SetTo(long long, bool)@plt>
128   11fe7:   89 c6                   mov    %eax,%esi
129   11fe9:   83 c4 10                add    $0x10,%esp
130   11fec:   85 c0                   test   %eax,%eax
131   11fee:   0f 85 1a ff ff ff       jne    11f0e <BPlusTree::Find(unsigned char const*, unsigned short, long long*)+0xbc>
132   11ff4:   83 ec 0c                sub    $0xc,%esp
133   11ff7:   8d 83 fd bf ff ff       lea    -0x4003(%ebx),%eax
134   11ffd:   50                      push   %eax
135   11ffe:   e8 9d 82 ff ff          call   a2a0 <dprintf@plt>
136   12003:   83 c4 04                add    $0x4,%esp
137   12006:   8b 45 08                mov    0x8(%ebp),%eax
138   12009:   8b 40 0c                mov    0xc(%eax),%eax
139   1200c:   ff 70 34                pushl  0x34(%eax)
140   1200f:   ff 70 30                pushl  0x30(%eax)
141   12012:   ff 75 b4                pushl  -0x4c(%ebp)
142   12015:   ff 75 b0                pushl  -0x50(%ebp)
143   12018:   8d 83 1c c7 ff ff       lea    -0x38e4(%ebx),%eax
144   1201e:   50                      push   %eax
145   1201f:   e8 7c 82 ff ff          call   a2a0 <dprintf@plt>
146   12024:   83 c4 14                add    $0x14,%esp
147   12027:   6a ff                   push   $0xffffffff
148   12029:   e8 92 74 ff ff          call   94c0 <strerror@plt>
149   1202e:   50                      push   %eax
150   1202f:   68 15 09 00 00          push   $0x915
151   12034:   8d 83 ef ce ff ff       lea    -0x3111(%ebx),%eax
152   1203a:   50                      push   %eax
153   1203b:   8d 83 df bf ff ff       lea    -0x4021(%ebx),%eax
154   12041:   50                      push   %eax
155   12042:   e8 59 82 ff ff          call   a2a0 <dprintf@plt>
156   12047:   83 c4 20                add    $0x20,%esp
157   1204a:   be ff ff ff ff          mov    $0xffffffff,%esi
158   1204f:   83 ec 0c                sub    $0xc,%esp
159   12052:   8d 45 cc                lea    -0x34(%ebp),%eax
160   12055:   50                      push   %eax
161   12056:   e8 95 76 ff ff          call   96f0 <CachedNode::Unset()@plt>
162   1205b:   83 c4 10                add    $0x10,%esp
163   1205e:   89 f0                   mov    %esi,%eax
164   12060:   8d 65 f4                lea    -0xc(%ebp),%esp
165   12063:   5b                      pop    %ebx
166   12064:   5e                      pop    %esi
167   12065:   5f                      pop    %edi
168   12066:   5d                      pop    %ebp
169   12067:   c3                      ret