## 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

# 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