## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Android ARM Executables (.elf)

Assembler code

    .text:00008270
    .text:00008270 ; =============== S U B R O U T I N E =======================================
    .text:00008270
    .text:00008270 ; Attributes: library function noreturn bp-based frame
    .text:00008270
    .text:00008270                 EXPORT _start
    .text:00008270 _start                                  ; DATA XREF: LOAD:00008018↑o
    .text:00008270
    .text:00008270 structors       = -0x14
    .text:00008270 var_8           = -8
    .text:00008270
    .text:00008270                 LDR     R12, =(_GLOBAL_OFFSET_TABLE_ - 0x828C)
    .text:00008274                 PUSH    {R11,LR}
    .text:00008278                 LDR     R3, =(__PREINIT_ARRAY___ptr - 0x9FEC)
    .text:0000827C                 ADD     R11, SP, #4
    .text:00008280                 SUB     SP, SP, #0x10
    .text:00008284                 ADD     R12, PC, R12    ; _GLOBAL_OFFSET_TABLE_
    .text:00008288                 LDR     R3, [R12,R3]    ; __PREINIT_ARRAY__
    .text:0000828C                 STR     R3, [R11,#structors]
    .text:00008290                 LDR     R3, =(__INIT_ARRAY___ptr - 0x9FEC)
    .text:00008294                 ADD     R0, R11, #4     ; raw_args
    .text:00008298                 LDR     R3, [R12,R3]    ; __INIT_ARRAY__
    .text:0000829C                 STR     R3, [R11,#structors.init_array]
    .text:000082A0                 LDR     R3, =(__FINI_ARRAY___ptr - 0x9FEC)
    .text:000082A4                 MOV     R1, #0          ; onexit
    .text:000082A8                 LDR     R3, [R12,R3]    ; __FINI_ARRAY__
    .text:000082AC                 STR     R3, [R11,#structors.fini_array]
    .text:000082B0                 LDR     R3, =(__CTOR_LIST___ptr - 0x9FEC)
    .text:000082B4                 LDR     R3, [R12,R3]    ; __CTOR_LIST__
    .text:000082B8                 STR     R3, [R11,#var_8]
    .text:000082BC                 LDR     R3, =(main_ptr - 0x9FEC)
    .text:000082C0                 LDR     R2, [R12,R3]    ; main ; slingshot
    .text:000082C4                 SUB     R3, R11, #-structors ; structors
    .text:000082C8                 BL      __libc_init
    .text:000082CC ; ---------------------------------------------------------------------------
    .text:000082CC                 SUB     SP, R11, #4