︙ | | | ︙ | |
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
call object_getClass@PLT
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call class_respondsToSelector@PLT
testq %rax, %rax
jz fail
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call objc_msg_lookup@PLT
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
movq -0x18(%rbp), %rdx
call *%rax
testq %rax, %rax
jz fail
cmpq -0x10(%rbp), %rax
je fail
movq %rax, -0x10(%rbp)
movq %rax, %rdi
movq -0x18(%rbp), %rsi
call objc_msg_lookup@PLT
movq %rax, %r11
|
|
|
|
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
call object_getClass@PLT
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call class_respondsToSelector@PLT
testq %rax, %rax
jz 0f
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call objc_msg_lookup@PLT
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
movq -0x18(%rbp), %rdx
call *%rax
testq %rax, %rax
jz 0f
cmpq -0x10(%rbp), %rax
je 0f
movq %rax, -0x10(%rbp)
movq %rax, %rdi
movq -0x18(%rbp), %rsi
call objc_msg_lookup@PLT
movq %rax, %r11
|
︙ | | | ︙ | |
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
movq -0x8(%rbp), %rax
movq %rbp, %rsp
popq %rbp
jmpq *%r11
fail:
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq %rbp, %rsp
popq %rbp
jmp of_method_not_found@PLT
|
<
>
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
movq -0x8(%rbp), %rax
movq %rbp, %rsp
popq %rbp
jmpq *%r11
0:
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq %rbp, %rsp
popq %rbp
jmp of_method_not_found@PLT
|
︙ | | | ︙ | |
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
call object_getClass@PLT
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call class_respondsToSelector@PLT
testq %rax, %rax
jz fail_stret
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call objc_msg_lookup@PLT
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
movq -0x20(%rbp), %rdx
call *%rax
testq %rax, %rax
jz fail_stret
cmpq -0x18(%rbp), %rax
je fail_stret
movq %rax, -0x18(%rbp)
movq %rax, %rdi
movq -0x20(%rbp), %rsi
call objc_msg_lookup_stret@PLT
movq %rax, %r11
|
|
|
|
|
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
call object_getClass@PLT
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call class_respondsToSelector@PLT
testq %rax, %rax
jz 0f
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
call objc_msg_lookup@PLT
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
movq -0x20(%rbp), %rdx
call *%rax
testq %rax, %rax
jz 0f
cmpq -0x18(%rbp), %rax
je 0f
movq %rax, -0x18(%rbp)
movq %rax, %rdi
movq -0x20(%rbp), %rsi
call objc_msg_lookup_stret@PLT
movq %rax, %r11
|
︙ | | | ︙ | |
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
movq -0x8(%rbp), %rax
movq %rbp, %rsp
popq %rbp
jmpq *%r11
fail_stret:
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq %rbp, %rsp
popq %rbp
|
<
>
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
movq -0x8(%rbp), %rax
movq %rbp, %rsp
popq %rbp
jmpq *%r11
0:
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq %rbp, %rsp
popq %rbp
|
︙ | | | ︙ | |