42
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
|
42
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
|
-
+
-
+
-
+
|
movaps %xmm5, -0xA0(%rbp)
movaps %xmm6, -0xB0(%rbp)
movaps %xmm7, -0xC0(%rbp)
call _object_getClass
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
call _class_respondsToSelector
testq %rax, %rax
jz 0f
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
call _objc_msg_lookup
movq -0x10(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
movq -0x18(%rbp), %rdx
call *%rax
testq %rax, %rax
jz 0f
cmpq -0x10(%rbp), %rax
je 0f
|
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
-
+
-
+
-
+
|
movaps %xmm6, -0xB0(%rbp)
movaps %xmm7, -0xC0(%rbp)
movq %rsi, %rdi
call _object_getClass
movq %rax, %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
call _class_respondsToSelector
testq %rax, %rax
jz 0f
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
call _objc_msg_lookup
movq -0x18(%rbp), %rdi
leaq sel_forwardingTargetForSelector_(%rip), %rsi
leaq Lsel_forwardingTargetForSelector_(%rip), %rsi
movq -0x20(%rbp), %rdx
call *%rax
testq %rax, %rax
jz 0f
cmpq -0x18(%rbp), %rax
je 0f
|
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
|
movq -0x20(%rbp), %rdx
movq %rbp, %rsp
popq %rbp
jmp _OFMethodNotFound_stret
init:
leaq module(%rip), %rdi
Linit:
leaq Lmodule(%rip), %rdi
jmp ___objc_exec_class
.section __DATA, __mod_init_func, mod_init_funcs
.quad init
.quad Linit
.section __TEXT, __cstring, cstring_literals
str_forwardingTargetForSelector_:
Lstr_forwardingTargetForSelector_:
.asciz "forwardingTargetForSelector:"
.section __DATA, __data
sel_forwardingTargetForSelector_:
.quad str_forwardingTargetForSelector_, 0
Lsel_forwardingTargetForSelector_:
.quad Lstr_forwardingTargetForSelector_, 0
.quad 0, 0
symtab:
.quad 0, sel_forwardingTargetForSelector_
Lsymtab:
.quad 0, Lsel_forwardingTargetForSelector_
.short 0, 0
.long 0
.quad 0
module:
.quad 8, 32, 0, symtab
Lmodule:
.quad 8, 32, 0, Lsymtab
|