Ticket #11399: bplustree_find.disasm

File bplustree_find.disasm, 9.7 KB (added by anevilyak, 9 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