18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include "platform.h"
.globl _OFForward
.globl _OFForward_stret
.section __TEXT, __text, regular, pure_instructions
_OFForward:
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0xC0, %rsp /* 16-byte alignment */
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
|
>
>
>
>
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include "platform.h"
.globl _OFForward
.globl _OFForward_stret
.section __TEXT, __text, regular, pure_instructions
_OFForward:
#ifdef HAVE_ENDBR64
endbr64
#endif
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0xC0, %rsp /* 16-byte alignment */
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
|
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
movq %rbp, %rsp
popq %rbp
jmp _OFMethodNotFound
_OFForward_stret:
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0xC0, %rsp /* 16-byte alignment */
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
|
>
>
>
>
|
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
movq %rbp, %rsp
popq %rbp
jmp _OFMethodNotFound
_OFForward_stret:
#ifdef HAVE_ENDBR64
endbr64
#endif
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0xC0, %rsp /* 16-byte alignment */
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
|
186
187
188
189
190
191
192
193
194
195
196
197
198
199
|
movq %rbp, %rsp
popq %rbp
jmp _OFMethodNotFound_stret
init:
leaq module(%rip), %rdi
jmp ___objc_exec_class
.section __DATA, __mod_init_func, mod_init_funcs
.quad init
.section __TEXT, __cstring, cstring_literals
|
>
>
>
>
|
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
movq %rbp, %rsp
popq %rbp
jmp _OFMethodNotFound_stret
init:
#ifdef HAVE_ENDBR64
endbr64
#endif
leaq module(%rip), %rdi
jmp ___objc_exec_class
.section __DATA, __mod_init_func, mod_init_funcs
.quad init
.section __TEXT, __cstring, cstring_literals
|