16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include "config.h"
.globl OFForward
.globl OFForward_stret
.section .text
OFForward:
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0x90, %rsp /* 16-byte alignment */
movq %rax, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
|
>
>
>
>
|
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include "config.h"
.globl OFForward
.globl OFForward_stret
.section .text
OFForward:
#ifdef HAVE_ENDBR64
endbr64
#endif
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0x90, %rsp /* 16-byte alignment */
movq %rax, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
jmp OFMethodNotFound
.def OFForward
.scl 2
.type 32
.endef
OFForward_stret:
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0x90, %rsp /* 16-byte alignment */
movq %rax, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
|
>
>
>
>
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
jmp OFMethodNotFound
.def OFForward
.scl 2
.type 32
.endef
OFForward_stret:
#ifdef HAVE_ENDBR64
endbr64
#endif
pushq %rbp
movq %rsp, %rbp
/* Save all arguments */
subq $0x90, %rsp /* 16-byte alignment */
movq %rax, -0x28(%rbp)
movq %rcx, -0x30(%rbp)
|
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
jmp OFMethodNotFound_stret
.def OFForward_stret
.scl 2
.type 32
.endef
init:
leaq module(%rip), %rcx
jmp __objc_exec_class
.section .ctors, "aw"
.quad init
.section .rodata
|
>
>
>
>
|
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
|
jmp OFMethodNotFound_stret
.def OFForward_stret
.scl 2
.type 32
.endef
init:
#ifdef HAVE_ENDBR64
endbr64
#endif
leaq module(%rip), %rcx
jmp __objc_exec_class
.section .ctors, "aw"
.quad init
.section .rodata
|