# Android ARM Executables (.elf)

Assembler code

```armasm
.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
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/8.4/user-guide/disassembler/disassembly-gallery/android-arm-executables-.elf.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
