Skip to content

Instantly share code, notes, and snippets.

@travitch
Last active April 7, 2020 00:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travitch/78c01ea0f7270a7114a708ec008de34d to your computer and use it in GitHub Desktop.
Save travitch/78c01ea0f7270a7114a708ec008de34d to your computer and use it in GitHub Desktop.
ARM call frame setup
Machine code
0001010c <f1>:
1010c: e92d4800 push {fp, lr}
10110: e28db004 add fp, sp, #4
10114: e24dd008 sub sp, sp, #8
10118: e50b0008 str r0, [fp, #-8]
1011c: e51b3008 ldr r3, [fp, #-8]
10120: e2833001 add r3, r3, #1
10124: e1a00003 mov r0, r3
10128: ebffffea bl 100d8 <f2>
1012c: e1a00000 nop ; (mov r0, r0)
10130: e24bd004 sub sp, fp, #4
10134: e8bd8800 pop {fp, pc}
Macaw output
function 0x1010c
0x1010c:
; _R13 = stack_frame + 0
# 0x1010c 0x1010c: STMDB_A1(xxxxxxxx.xxxxxxxx.00x0xxxx.xxxx1001) Rn 13, W 1, cond 14, register_list 18432
# 0x1010c: STMDB_A1(xxxxxxxx.xxxxxxxx.00x0xxxx.xxxx1001) Rn 13, W 1, cond 14, register_list 18432
r775 := (bv_add _R13_0 (0xfffffff8 :: [32]))
r797 := (bv_add _R13_0 (0xfffffff8 :: [32]))
write_mem r797 0x10114
r799 := (bv_add _R13_0 (0xfffffff4 :: [32]))
r800 := undef :: [(bv 32)]
write_mem r799 r800
r802 := (bv_add _R13_0 (0xfffffff4 :: [32]))
write_mem r802 r800
r804 := (bv_add _R13_0 (0xfffffff4 :: [32]))
write_mem r804 r800
r805 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r805 r800
r806 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r806 r800
r807 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r807 r800
r808 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r808 r800
r809 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r809 r800
r810 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r810 r800
r811 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r811 r800
r812 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r812 r800
r813 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r813 r800
r814 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r814 r800
r815 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r815 r800
r816 := (bv_add _R13_0 (0xfffffff0 :: [32]))
write_mem r816 r800
write_mem r816 _R0_0
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r805 _R11_0
write_mem r806 r800
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r804 _R12_0
write_mem r805 r800
write_mem r805 _R11_0
write_mem r806 r800
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r802 r775
write_mem r804 r800
write_mem r804 _R12_0
write_mem r805 r800
write_mem r805 _R11_0
write_mem r806 r800
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r799 _R14_0
write_mem r802 r800
write_mem r802 r775
write_mem r804 r800
write_mem r804 _R12_0
write_mem r805 r800
write_mem r805 _R11_0
write_mem r806 r800
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
write_mem r799 r800
write_mem r799 _R14_0
write_mem r802 r800
write_mem r802 r775
write_mem r804 r800
write_mem r804 _R12_0
write_mem r805 r800
write_mem r805 _R11_0
write_mem r806 r800
write_mem r806 _R10_0
write_mem r807 r800
write_mem r807 _R9_0
write_mem r808 r800
write_mem r808 _R8_0
write_mem r809 r800
write_mem r809 _R7_0
write_mem r810 r800
write_mem r810 _R6_0
write_mem r811 r800
write_mem r811 _R5_0
write_mem r812 r800
write_mem r812 _R4_0
write_mem r813 r800
write_mem r813 _R3_0
write_mem r814 r800
write_mem r814 _R2_0
write_mem r815 r800
write_mem r815 _R1_0
write_mem r816 r800
write_mem r816 _R0_0
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment