# ARM Processor iOS (iPhone): C++ signatures

Assembler code

```
__text:00015E90                 BL      _readdir
__text:00015E94                 SUBS    R1, R0, #0
__text:00015E98                 BEQ     loc_15F2C
__text:00015E9C                 MOV     R3, #2
__text:00015EA0                 LDRB    R2, [R1,#7]
__text:00015EA4                 ADD     R0, SP, #0xA8+var_64
__text:00015EA8                 STR     R3, [SP,#0xA8+fctx.call_site]
__text:00015EAC                 ADD     R1, R1, #8
__text:00015EB0                 ADD     R3, SP, #0xA8+var_5D
__text:00015EB4                 BL      __ZNSsC1EPKcmRKSaIcE ; std::string::string(char const*,ulong,std::allocator<char> const&)
__text:00015EB8                 MOV     R3, #1
__text:00015EBC                 STR     R3, [SP,#0xA8+fctx.call_site]
__text:00015EC0                 ADD     R0, SP, #0xA8+var_64
__text:00015EC4                 LDR     R3, [SP,#0xA8+var_A4]
__text:00015EC8                 BLX     R3
__text:00015ECC                 CMP     R0, #0
__text:00015ED0                 BNE     loc_15F1C
__text:00015ED4                 MOV     R3, #0xFFFFFFFF
__text:00015ED8                 ADD     R0, SP, #0xA8+var_64 ; this
__text:00015EDC                 STR     R3, [SP,#0xA8+fctx.call_site]
__text:00015EE0                 BL      __ZNSsD2Ev      ; std::string::~string()
__text:00015EE4                 B       loc_15E84
__text:00015EE8 ; ---------------------------------------------------------------------------
__text:00015EE8 ;   cleanup() // owned by 15E64
__text:00015EE8                 LDR     R3, [SP,#0xA8+fctx.data]
__text:00015EEC                 STR     R3, [SP,#0xA8+lpuexcpt]
__text:00015EF0                 LDR     R3, [SP,#0xA8+fctx.call_site]
__text:00015EF4                 CMP     R3, #1
__text:00015EF8                 BEQ     loc_15F0C
__text:00015EFC                 MOV     R3, #0
__text:00015F00                 ADD     R0, SP, #0xA8+var_64 ; this
__text:00015F04                 STR     R3, [SP,#0xA8+fctx.call_site]
__text:00015F08                 BL      __ZNSsD2Ev      ; std::string::~string()
__text:00015F0C
__text:00015F0C loc_15F0C                               ; CODE XREF: sub_15E1C+DC↑j
__text:00015F0C                 MOV     R3, #0xFFFFFFFF

```


---

# 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/9.0/user-guide/disassembler/disassembly-gallery/arm-processor-ios-iphone-c++-signatures.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.
