#include <stdio.h>
typedef char String[1024];
int main(void) {
String name = "ドラゴン";
printf("私は%sです\n", name);
return 0;
}
|main| PROC
|$LN3|
stp fp,lr,[sp,#-0x10]!
mov fp,sp
bl __security_push_cookie
sub sp,sp,#0x400
add x8,sp,#8
str x8,[sp]
ldr x9,[sp]
adrp x8,|$SG4982|
add x8,x8,|$SG4982|
ldr x10,[x8]
str x10,[x9]
ldr w10,[x8,#8]
str w10,[x9,#8]
ldrsb w8,[x8,#0xC]
strb w8,[x9,#0xC]
add x0,sp,#0x15
mov x2,#0x3F3
mov w1,#0
bl memset
add x1,sp,#8
adrp x8,|$SG4983|
add x0,x8,|$SG4983|
bl printf
mov w0,#0
add sp,sp,#0x400
bl __security_pop_cookie
ldp fp,lr,[sp],#0x10
ret
なぜ64ビットのx10と32ビットのw8を使用しているか不明
blはサブルーチン呼び出し