Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Kernelcache loader (iBoot command)

From The Apple Wiki

iPhone 3GS 8920x from iBoot-636.66

(N.B - In iBoot iBoot-1219.62.8, from iOS 5.1b3 (the latest at the time of this writing) for k48AP (iPad), the kernelcache loader is split over several functions, with the main body (LZSSDEC and Mach-O) provided by the function at ROM:5FF120C8. Complete disassembly to follow later)

Disassembly for kernelcache Loader

N88AP_iBoot:4FF15E04     ; =============== S U B R O U T I N E =======================================
N88AP_iBoot:4FF15E04
N88AP_iBoot:4FF15E04     ; Attributes: bp-based frame
N88AP_iBoot:4FF15E04
N88AP_iBoot:4FF15E04     ; int __fastcall LoadImage_kernelcache_img3(int memoery_pos, int memory_size)
N88AP_iBoot:4FF15E04     LoadImage_kernelcache_img3              ; CODE XREF: sub_4FF0067C+C8�p
N88AP_iBoot:4FF15E04                                             ; n88ap__iBoot__bootx_function+4E�p
N88AP_iBoot:4FF15E04
N88AP_iBoot:4FF15E04     var_C4          = -0xC4
N88AP_iBoot:4FF15E04     param_R1        = -0xC0
N88AP_iBoot:4FF15E04     var_BC          = -0xBC
N88AP_iBoot:4FF15E04     var_B8          = -0xB8
N88AP_iBoot:4FF15E04     var_B4          = -0xB4
N88AP_iBoot:4FF15E04     var_B0          = -0xB0
N88AP_iBoot:4FF15E04     var_AC          = -0xAC
N88AP_iBoot:4FF15E04     var_A8          = -0xA8
N88AP_iBoot:4FF15E04     var_A4          = -0xA4
N88AP_iBoot:4FF15E04     var_A0          = -0xA0
N88AP_iBoot:4FF15E04     var_9C          = -0x9C
N88AP_iBoot:4FF15E04     var_98          = -0x98
N88AP_iBoot:4FF15E04     var_94          = -0x94
N88AP_iBoot:4FF15E04     var_90          = -0x90
N88AP_iBoot:4FF15E04     var_8C          = -0x8C
N88AP_iBoot:4FF15E04     var_88          = -0x88
N88AP_iBoot:4FF15E04     var_84          = -0x84
N88AP_iBoot:4FF15E04     var_7E          = -0x7E
N88AP_iBoot:4FF15E04     var_78          = -0x78
N88AP_iBoot:4FF15E04     var_74          = -0x74
N88AP_iBoot:4FF15E04     param_R2        = -0x70
N88AP_iBoot:4FF15E04     var_6C          = -0x6C
N88AP_iBoot:4FF15E04     param_R3        = -0x68
N88AP_iBoot:4FF15E04     var_64          = -0x64
N88AP_iBoot:4FF15E04     var_60          = -0x60
N88AP_iBoot:4FF15E04     var_5C          = -0x5C
N88AP_iBoot:4FF15E04     var_58          = -0x58
N88AP_iBoot:4FF15E04     var_54          = -0x54
N88AP_iBoot:4FF15E04     var_34          = -0x34
N88AP_iBoot:4FF15E04     var_24          = -0x24
N88AP_iBoot:4FF15E04     oldR4           = -0x14
N88AP_iBoot:4FF15E04     oldR5           = -0x10
N88AP_iBoot:4FF15E04     oldR6           = -0xC
N88AP_iBoot:4FF15E04     oldR7           = -8
N88AP_iBoot:4FF15E04     oldLR           = -4
N88AP_iBoot:4FF15E04
N88AP_iBoot:4FF15E04 000                 PUSH    {R4-R7,LR}      ; Push registers
N88AP_iBoot:4FF15E06 014                 ADD     R7, SP, #0xC    ; Rd = Op1 + Op2
N88AP_iBoot:4FF15E08 014                 PUSH.W  {R8,R10,R11}    ; Push registers
N88AP_iBoot:4FF15E0C 020                 SUB     SP, SP, #0xA4   ; Rd = Op1 - Op2
N88AP_iBoot:4FF15E0E 0C4                 LDR.W   R5, =dword_4FF2A308 ; Load from Memory
N88AP_iBoot:4FF15E12 0C4                 MOV     R8, R2          ; Rd = Op2
N88AP_iBoot:4FF15E14 0C4                 MOVS    R2, #0          ; Type
N88AP_iBoot:4FF15E16 0C4                 LDR     R3, [R5]        ; Load from Memory
N88AP_iBoot:4FF15E18 0C4                 STR     R3, [SP,#0xC4+var_24] ; Store to Memory
N88AP_iBoot:4FF15E1A 0C4                 BL      n88ap__iBoot__MEMZ_STRUCT_INIT ; Branch with Link
N88AP_iBoot:4FF15E1E 0C4                 CBNZ    R0, loc_4FF15E30 ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF15E20 0C4                 LDR.W   R0, =aKernelcacheImageCorrupt ; "Kernelcache image corrupt\n"
N88AP_iBoot:4FF15E24 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15E28 0C4                 MOV.W   R0, #0xFFFFFFFF ; Rd = Op2
N88AP_iBoot:4FF15E2C 0C4                 B.W     loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15E30     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15E30
N88AP_iBoot:4FF15E30     loc_4FF15E30                            ; CODE XREF: LoadImage_kernelcache_img3+1A�j
N88AP_iBoot:4FF15E30 0C4                 LDR     R3, [R0,#4]     ; param_R3
N88AP_iBoot:4FF15E32 0C4                 CMP.W   R3, #0xF00000   ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15E36 0C4                 BLS     loc_4FF15E48    ; Branch
N88AP_iBoot:4FF15E38 0C4                 LDR.W   R0, =aKernelcacheTooLarge ; "Kernelcache too large\n"
N88AP_iBoot:4FF15E3C 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15E40 0C4                 MOV     R0, 0xFFFFFFFE  ; mem_info
N88AP_iBoot:4FF15E44 0C4                 B.W     loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15E48     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15E48
N88AP_iBoot:4FF15E48     loc_4FF15E48                            ; CODE XREF: LoadImage_kernelcache_img3+32�j
N88AP_iBoot:4FF15E48 0C4                 MOV.W   R3, #0x43000000 ; Rd = Op2
N88AP_iBoot:4FF15E4C 0C4                 LDR.W   R1, ='krnl'     ; TAG_TYPE
N88AP_iBoot:4FF15E50 0C4                 STR     R3, [SP,#0xC4+var_58] ; Store to Memory
N88AP_iBoot:4FF15E52 0C4                 ADD     R2, SP, #0xC4+var_58 ; unknown1
N88AP_iBoot:4FF15E54 0C4                 MOV.W   R3, #0xF00000   ; Rd = Op2
N88AP_iBoot:4FF15E58 0C4                 STR     R3, [SP,#0xC4+var_5C] ; Store to Memory
N88AP_iBoot:4FF15E5A 0C4                 ADD     R3, SP, #0xC4+var_5C ; unknown2
N88AP_iBoot:4FF15E5C 0C4                 BL      n88ap__iBoot__image_load ; Branch with Link
N88AP_iBoot:4FF15E60 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15E62 0C4                 BGE     loc_4FF15E74    ; Branch
N88AP_iBoot:4FF15E64 0C4                 LDR.W   R0, =aKernelcacheImageNotValid ; "Kernelcache image not valid\n"
N88AP_iBoot:4FF15E68 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15E6C 0C4                 MOV     R0, 0xFFFFFFFD
N88AP_iBoot:4FF15E70 0C4                 B.W     loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15E74     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15E74
N88AP_iBoot:4FF15E74     loc_4FF15E74                            ; CODE XREF: LoadImage_kernelcache_img3+5E�j
N88AP_iBoot:4FF15E74 0C4                 LDR     R0, [SP,#0xC4+var_58] ; Load from Memory
N88AP_iBoot:4FF15E76 0C4                 LDR     R0, [R0]        ; Load from Memory
N88AP_iBoot:4FF15E78 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF15E7C 0C4                 LDR.W   R3, ='comp'     ; Load from Memory
N88AP_iBoot:4FF15E80 0C4                 CMP     R0, R3          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15E82 0C4                 MOV     R4, R0          ; Rd = Op2
N88AP_iBoot:4FF15E84 0C4                 IT NE                   ; If Then
N88AP_iBoot:4FF15E86 0C4                 MOVNE   R0, 0xFFFFFFFC
N88AP_iBoot:4FF15E8A 0C4                 BNE.W   loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15E8E 0C4                 B.W     loc_4FF16B48    ; Branch
N88AP_iBoot:4FF15E92     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15E92
N88AP_iBoot:4FF15E92     loc_4FF15E92                            ; CODE XREF: LoadImage_kernelcache_img3+D56�j
N88AP_iBoot:4FF15E92 0C4                 LDR     R0, [R6,#4]     ; Load from Memory
N88AP_iBoot:4FF15E94 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF15E98 0C4                 LDR.W   R3, ='lzss'     ; param_R3
N88AP_iBoot:4FF15E9C 0C4                 CMP     R0, R3          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15E9E 0C4                 IT NE                   ; If Then
N88AP_iBoot:4FF15EA0 0C4                 LDRNE.W R0, =aUnknownKernelcacheCompressionType ; "unknown kernelcache compression type\n"
N88AP_iBoot:4FF15EA4 0C4                 BNE     loc_4FF15F30    ; Branch
N88AP_iBoot:4FF15EA6 0C4                 ADD.W   R11, R6, #0x180 ; Rd = Op1 + Op2
N88AP_iBoot:4FF15EAA 0C4                 MOV     R1, R6          ; param_R1
N88AP_iBoot:4FF15EAC 0C4                 LDR.W   R0, =aLoadingKernelCacheAtX___ ; "Loading kernel cache at %#x..."
N88AP_iBoot:4FF15EB0 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15EB4 0C4                 MOV     R1, R11         ; param_R1
N88AP_iBoot:4FF15EB6 0C4                 LDR.W   R0, =aDataStartsAtP ; "data starts at %p\n"
N88AP_iBoot:4FF15EBA 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15EBE 0C4                 LDR     R0, [R6,#0x10]  ; Load from Memory
N88AP_iBoot:4FF15EC0 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF15EC4 0C4                 RSB.W   R3, R6, #3      ; Rd = Op2 - Op1
N88AP_iBoot:4FF15EC8 0C4                 ADD     R3, R11         ; Rd = Op1 + Op2
N88AP_iBoot:4FF15ECA 0C4                 ADDS    R3, R3, R0      ; Rd = Op1 + Op2
N88AP_iBoot:4FF15ECC 0C4                 STR     R0, [SP,#0xC4+var_BC] ; Store to Memory
N88AP_iBoot:4FF15ECE 0C4                 BIC.W   R3, R3, #3      ; Rd = Op1 & ~Op2
N88AP_iBoot:4FF15ED2 0C4                 STR     R3, [SP,#0xC4+param_R1] ; Store to Memory
N88AP_iBoot:4FF15ED4 0C4                 LDR     R0, [R6,#0xC]   ; Load from Memory
N88AP_iBoot:4FF15ED6 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF15EDA 0C4                 LDR     R2, [SP,#0xC4+param_R1] ; Load from Memory
N88AP_iBoot:4FF15EDC 0C4                 ADD.W   R1, R2, R0      ; Rd = Op1 + Op2
N88AP_iBoot:4FF15EE0 0C4                 CMP.W   R1, #0xF00000   ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15EE4 0C4                 MOV     R10, R0         ; Rd = Op2
N88AP_iBoot:4FF15EE6 0C4                 ITT HI                  ; If Then
N88AP_iBoot:4FF15EE8 0C4                 MOVHI.W R2, #0xF00000   ; Rd = Op2
N88AP_iBoot:4FF15EEC 0C4                 LDRHI.W R0, =aUncompressedSizeTooLargeUMaxD ; "uncompressed size too large %u, max %d\n"...
N88AP_iBoot:4FF15EF0 0C4                 BHI     loc_4FF15F12    ; Branch
N88AP_iBoot:4FF15EF2 0C4                 LDR     R3, [SP,#0xC4+param_R1] ; Load from Memory
N88AP_iBoot:4FF15EF4 0C4                 MOV     R2, R11         ; Rd = Op2
N88AP_iBoot:4FF15EF6 0C4                 ADD.W   R4, R3, R6      ; Rd = Op1 + Op2
N88AP_iBoot:4FF15EFA 0C4                 RSB.W   R1, R3, #0xF00000 ; Rd = Op2 - Op1
N88AP_iBoot:4FF15EFE 0C4                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF15F00 0C4                 LDR     R3, [SP,#0xC4+var_BC] ; Load from Memory
N88AP_iBoot:4FF15F02 0C4                 BL      sub_4FF1D5DC    ; Branch with Link
N88AP_iBoot:4FF15F06 0C4                 CMP     R10, R0         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15F08 0C4                 MOV     R1, R0          ; param_R1
N88AP_iBoot:4FF15F0A 0C4                 BEQ     loc_4FF15F18    ; Branch
N88AP_iBoot:4FF15F0C 0C4                 LDR.W   R0, =aSizeMismatchFromLzssDShouldBeD ; "size mismatch from lzss %d, should be %"...
N88AP_iBoot:4FF15F10 0C4                 MOV     R2, R10         ; param_R2
N88AP_iBoot:4FF15F12
N88AP_iBoot:4FF15F12     loc_4FF15F12                            ; CODE XREF: LoadImage_kernelcache_img3+EC�j
N88AP_iBoot:4FF15F12 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15F16 0C4                 B       loc_4FF15F42    ; Branch
N88AP_iBoot:4FF15F18     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F18
N88AP_iBoot:4FF15F18     loc_4FF15F18                            ; CODE XREF: LoadImage_kernelcache_img3+106�j
N88AP_iBoot:4FF15F18 0C4                 LDR     R0, [R6,#8]     ; Load from Memory
N88AP_iBoot:4FF15F1A 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF15F1E 0C4                 MOV     R1, R10         ; Rd = Op2
N88AP_iBoot:4FF15F20 0C4                 MOV     R11, R0         ; Rd = Op2
N88AP_iBoot:4FF15F22 0C4                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF15F24 0C4                 BL      sub_4FF1CB3C    ; Branch with Link
N88AP_iBoot:4FF15F28 0C4                 CMP     R11, R0         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15F2A 0C4                 BEQ     loc_4FF15F36    ; Branch
N88AP_iBoot:4FF15F2C 0C4                 LDR.W   R0, =aAdlerMismatch ; "adler mismatch\n"
N88AP_iBoot:4FF15F30
N88AP_iBoot:4FF15F30     loc_4FF15F30                            ; CODE XREF: LoadImage_kernelcache_img3+A0�j
N88AP_iBoot:4FF15F30                                             ; LoadImage_kernelcache_img3+D52�j
N88AP_iBoot:4FF15F30 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15F34 0C4                 B       loc_4FF15F42    ; Branch
N88AP_iBoot:4FF15F36     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F36
N88AP_iBoot:4FF15F36     loc_4FF15F36                            ; CODE XREF: LoadImage_kernelcache_img3+126�j
N88AP_iBoot:4FF15F36 0C4                 LDR.W   R0, =aDone      ; "done\n"
N88AP_iBoot:4FF15F3A 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15F3E 0C4                 STR     R4, [SP,#0xC4+var_58] ; Store to Memory
N88AP_iBoot:4FF15F40 0C4                 CBNZ    R4, loc_4FF15F4A ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF15F42
N88AP_iBoot:4FF15F42     loc_4FF15F42                            ; CODE XREF: LoadImage_kernelcache_img3+112�j
N88AP_iBoot:4FF15F42                                             ; LoadImage_kernelcache_img3+130�j
N88AP_iBoot:4FF15F42 0C4                 MOV     R0, 0xFFFFFFFB
N88AP_iBoot:4FF15F46 0C4                 B.W     loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15F4A     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F4A
N88AP_iBoot:4FF15F4A     loc_4FF15F4A                            ; CODE XREF: LoadImage_kernelcache_img3+13C�j
N88AP_iBoot:4FF15F4A 0C4                 LDR     R1, [SP,#0xC4+param_R1] ; param_R1
N88AP_iBoot:4FF15F4C 0C4                 LDR.W   R3, =0xFEEDFACE ; param_R3
N88AP_iBoot:4FF15F50 0C4                 LDR     R0, [R1,R6]     ; Load from Memory
N88AP_iBoot:4FF15F52 0C4                 CMP     R0, R3          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15F54 0C4                 IT NE                   ; If Then
N88AP_iBoot:4FF15F56 0C4                 MOVNE   R0, 0xFFFFFFFA
N88AP_iBoot:4FF15F5A 0C4                 BNE.W   loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF15F5E 0C4                 B.W     loc_4FF16B5E    ; Branch
N88AP_iBoot:4FF15F62     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F62
N88AP_iBoot:4FF15F62     loc_4FF15F62                            ; CODE XREF: LoadImage_kernelcache_img3+D9A�j
N88AP_iBoot:4FF15F62 0C4                 LDR.W   R0, =aLoad_macho_imageFailedToLoadDeviceTree ; "load_macho_image: failed to load device"...
N88AP_iBoot:4FF15F66 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF15F6A 0C4                 B.W     loc_4FF16B34    ; Branch
N88AP_iBoot:4FF15F6E     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F6E
N88AP_iBoot:4FF15F6E     loc_4FF15F6E                            ; CODE XREF: LoadImage_kernelcache_img3+D96�j
N88AP_iBoot:4FF15F6E 0C4                 LDR.W   R2, =dword_4FF2CD04 ; Load from Memory
N88AP_iBoot:4FF15F72 0C4                 ADD.W   R10, R6, #0x1C  ; Rd = Op1 + Op2
N88AP_iBoot:4FF15F76 0C4                 LDR     R0, [R2]        ; Load from Memory
N88AP_iBoot:4FF15F78 0C4                 BL      sub_4FF138BC    ; Branch with Link
N88AP_iBoot:4FF15F7C 0C4                 LDR.W   R3, =dword_4FF2CD10 ; Load from Memory
N88AP_iBoot:4FF15F80 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF15F82 0C4                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF15F84 0C4                 STR     R6, [R3]        ; Store to Memory
N88AP_iBoot:4FF15F86 0C4                 LDR     R6, [R6,#0x10]  ; Load from Memory
N88AP_iBoot:4FF15F88 0C4                 STR     R1, [SP,#0xC4+var_B8] ; Store to Memory
N88AP_iBoot:4FF15F8A 0C4                 STR     R6, [SP,#0xC4+var_B0] ; Store to Memory
N88AP_iBoot:4FF15F8C 0C4                 B       loc_4FF160AC    ; Branch
N88AP_iBoot:4FF15F8E     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF15F8E
N88AP_iBoot:4FF15F8E     loc_4FF15F8E                            ; CODE XREF: LoadImage_kernelcache_img3+2AE�j
N88AP_iBoot:4FF15F8E 0C4                 LDR.W   R2, [R10,#4]    ; Load from Memory
N88AP_iBoot:4FF15F92 0C4                 STR     R2, [SP,#0xC4+var_B4] ; Store to Memory
N88AP_iBoot:4FF15F94 0C4                 LDR.W   R3, [R10]       ; Load from Memory
N88AP_iBoot:4FF15F98 0C4                 CMP     R3, #2          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15F9A 0C4                 STR     R3, [SP,#0xC4+var_C4] ; Store to Memory
N88AP_iBoot:4FF15F9C 0C4                 BEQ.W   loc_4FF16BA2    ; Branch
N88AP_iBoot:4FF15FA0 0C4                 CMP     R3, #5          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15FA2 0C4                 BEQ     loc_4FF1607C    ; Branch
N88AP_iBoot:4FF15FA4 0C4                 CMP     R3, #1          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15FA6 0C4                 BNE     loc_4FF1609C    ; Branch
N88AP_iBoot:4FF15FA8 0C4                 LDR.W   R2, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF15FAC 0C4                 LDR.W   R3, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF15FB0 0C4                 LDR.W   R1, [R10,#0x18] ; Load from Memory
N88AP_iBoot:4FF15FB4 0C4                 LDR     R2, [R2,#4]     ; Load from Memory
N88AP_iBoot:4FF15FB6 0C4                 LDR     R3, [R3,#8]     ; Load from Memory
N88AP_iBoot:4FF15FB8 0C4                 STR     R1, [SP,#0xC4+var_A4] ; Store to Memory
N88AP_iBoot:4FF15FBA 0C4                 LDR.W   R11, [R10,#0x1C] ; Load from Memory
N88AP_iBoot:4FF15FBE 0C4                 STR     R2, [SP,#0xC4+var_AC] ; Store to Memory
N88AP_iBoot:4FF15FC0 0C4                 LDR.W   R2, =dword_4FF2CD10 ; Load from Memory
N88AP_iBoot:4FF15FC4 0C4                 STR     R3, [SP,#0xC4+var_A8] ; Store to Memory
N88AP_iBoot:4FF15FC6 0C4                 LDR.W   R1, [R10,#0x20] ; Load from Memory
N88AP_iBoot:4FF15FCA 0C4                 LDR     R2, [R2]        ; Load from Memory
N88AP_iBoot:4FF15FCC 0C4                 ADD.W   R4, R10, #8     ; Rd = Op1 + Op2
N88AP_iBoot:4FF15FD0 0C4                 STR     R1, [SP,#0xC4+var_98] ; Store to Memory
N88AP_iBoot:4FF15FD2 0C4                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF15FD4 0C4                 LDR.W   R1, =a__pagezero ; "__PAGEZERO"
N88AP_iBoot:4FF15FD8 0C4                 STR     R2, [SP,#0xC4+var_9C] ; Store to Memory
N88AP_iBoot:4FF15FDA 0C4                 LDR.W   R6, [R10,#0x24] ; Load from Memory
N88AP_iBoot:4FF15FDE 0C4                 BL      sub_4FF1ECA0    ; Branch with Link
N88AP_iBoot:4FF15FE2 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF15FE4 0C4                 BEQ.W   loc_4FF16BA2    ; Branch
N88AP_iBoot:4FF15FE8 0C4                 LDR     R3, [SP,#0xC4+var_A8] ; Load from Memory
N88AP_iBoot:4FF15FEA 0C4                 LDR     R1, [SP,#0xC4+var_A4] ; Load from Memory
N88AP_iBoot:4FF15FEC 0C4                 LDR     R2, [SP,#0xC4+var_AC] ; Load from Memory
N88AP_iBoot:4FF15FEE 0C4                 ADD.W   R0, R3, R1      ; Rd = Op1 + Op2
N88AP_iBoot:4FF15FF2 0C4                 SUBS    R0, R0, R2      ; Rd = Op1 - Op2
N88AP_iBoot:4FF15FF4 0C4                 MOVS    R1, #0x20 ; ' ' ; param_R3
N88AP_iBoot:4FF15FF6 0C4                 STR     R0, [SP,#0xC4+var_A0] ; Store to Memory
N88AP_iBoot:4FF15FF8 0C4                 LDR.W   R2, =aKernelS   ; "Kernel-%s"
N88AP_iBoot:4FF15FFC 0C4                 ADD     R0, SP, #0xC4+var_54 ; param_R2
N88AP_iBoot:4FF15FFE 0C4                 MOV     R3, R4          ; Rd = Op2
N88AP_iBoot:4FF16000 0C4                 BL      sub_4FF1EC48    ; Branch with Link
N88AP_iBoot:4FF16004 0C4                 ADD     R0, SP, #0xC4+var_54 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16006 0C4                 LDR     R1, [SP,#0xC4+var_A0] ; Load from Memory
N88AP_iBoot:4FF16008 0C4                 MOV     R2, R11         ; Rd = Op2
N88AP_iBoot:4FF1600A 0C4                 BL      N88AP__iBoot__AllocateMemoryRange ; Branch with Link
N88AP_iBoot:4FF1600E 0C4                 CMP.W   R11, #0         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16012 0C4                 BEQ     loc_4FF16028    ; Branch
N88AP_iBoot:4FF16014 0C4                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF16016 0C4                 LDR.W   R1, =a__prelink ; "__PRELINK"
N88AP_iBoot:4FF1601A 0C4                 BL      sub_4FF1ECA0    ; Branch with Link
N88AP_iBoot:4FF1601E 0C4                 CBNZ    R0, loc_4FF16028 ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF16020 0C4                 LDR.W   R3, =dword_4FF2CD14 ; Load from Memory
N88AP_iBoot:4FF16024 0C4                 LDR     R1, [SP,#0xC4+var_C4] ; Load from Memory
N88AP_iBoot:4FF16026 0C4                 STR     R1, [R3]        ; Store to Memory
N88AP_iBoot:4FF16028
N88AP_iBoot:4FF16028     loc_4FF16028                            ; CODE XREF: LoadImage_kernelcache_img3+20E�j
N88AP_iBoot:4FF16028                                             ; LoadImage_kernelcache_img3+21A�j
N88AP_iBoot:4FF16028 0C4                 CBZ     R6, loc_4FF1603A ; Compare and Branch on Zero
N88AP_iBoot:4FF1602A 0C4                 LDR     R2, [SP,#0xC4+var_9C] ; Load from Memory
N88AP_iBoot:4FF1602C 0C4                 LDR     R3, [SP,#0xC4+var_98] ; Load from Memory
N88AP_iBoot:4FF1602E 0C4                 LDR     R0, [SP,#0xC4+var_A0] ; Load from Memory
N88AP_iBoot:4FF16030 0C4                 ADD.W   R1, R2, R3      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16034 0C4                 MOV     R2, R6          ; Rd = Op2
N88AP_iBoot:4FF16036 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF1603A
N88AP_iBoot:4FF1603A     loc_4FF1603A                            ; CODE XREF: LoadImage_kernelcache_img3:loc_4FF16028�j
N88AP_iBoot:4FF1603A 0C4                 CMP     R11, R6         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF1603C 0C4                 BLE     loc_4FF1604E    ; Branch
N88AP_iBoot:4FF1603E 0C4                 LDR     R1, [SP,#0xC4+var_A0] ; Load from Memory
N88AP_iBoot:4FF16040 0C4                 RSB.W   R2, R6, R11     ; Rd = Op2 - Op1
N88AP_iBoot:4FF16044 0C4                 ADD.W   R0, R1, R6      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16048 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF1604A 0C4                 BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF1604E
N88AP_iBoot:4FF1604E     loc_4FF1604E                            ; CODE XREF: LoadImage_kernelcache_img3+238�j
N88AP_iBoot:4FF1604E 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF16050 0C4                 MOVS    R0, #1          ; Rd = Op2
N88AP_iBoot:4FF16052 0C4                 MOV     R2, R1          ; Rd = Op2
N88AP_iBoot:4FF16054 0C4                 BL      sub_4FF1E344    ; Branch with Link
N88AP_iBoot:4FF16058 0C4                 LDR     R2, [SP,#0xC4+var_A4] ; Load from Memory
N88AP_iBoot:4FF1605A 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1605C 0C4                 ADD.W   R4, R11, R2     ; Rd = Op1 + Op2
N88AP_iBoot:4FF16060 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF16064 0C4                 CMP     R4, R0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16066 0C4                 BLS.W   loc_4FF16BA2    ; Branch
N88AP_iBoot:4FF1606A 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1606C 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF16070 0C4                 RSB.W   R0, R0, R4      ; Rd = Op2 - Op1
N88AP_iBoot:4FF16074 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF16078 0C4                 B.W     loc_4FF16BA2    ; Branch
N88AP_iBoot:4FF1607C     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF1607C
N88AP_iBoot:4FF1607C     loc_4FF1607C                            ; CODE XREF: LoadImage_kernelcache_img3+19E�j
N88AP_iBoot:4FF1607C 0C4                 LDR.W   R3, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16080 0C4                 LDR.W   R1, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16084 0C4                 LDR     R2, [R3,#8]     ; Load from Memory
N88AP_iBoot:4FF16086 0C4                 LDR.W   R3, [R10,#0x4C] ; Load from Memory
N88AP_iBoot:4FF1608A 0C4                 ADD     R3, R2          ; Rd = Op1 + Op2
N88AP_iBoot:4FF1608C 0C4                 LDR     R2, [R1,#4]     ; Load from Memory
N88AP_iBoot:4FF1608E 0C4                 RSB.W   R2, R2, R3      ; Rd = Op2 - Op1
N88AP_iBoot:4FF16092 0C4                 LDR.W   R3, =dword_4FF2CBC8 ; Load from Memory
N88AP_iBoot:4FF16096 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16098 0C4                 B.W     loc_4FF16BA2    ; Branch
N88AP_iBoot:4FF1609C     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF1609C
N88AP_iBoot:4FF1609C     loc_4FF1609C                            ; CODE XREF: LoadImage_kernelcache_img3+1A2�j
N88AP_iBoot:4FF1609C 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF1609E 0C4                 BNE.W   loc_4FF16B34    ; Branch
N88AP_iBoot:4FF160A2
N88AP_iBoot:4FF160A2     loc_4FF160A2                            ; CODE XREF: LoadImage_kernelcache_img3+DA0�j
N88AP_iBoot:4FF160A2 0C4                 LDR     R2, [SP,#0xC4+var_B4] ; Load from Memory
N88AP_iBoot:4FF160A4 0C4                 LDR     R3, [SP,#0xC4+var_B8] ; Load from Memory
N88AP_iBoot:4FF160A6 0C4                 ADD     R10, R2         ; Rd = Op1 + Op2
N88AP_iBoot:4FF160A8 0C4                 ADDS    R3, #1          ; Rd = Op1 + Op2
N88AP_iBoot:4FF160AA 0C4                 STR     R3, [SP,#0xC4+var_B8] ; Store to Memory
N88AP_iBoot:4FF160AC
N88AP_iBoot:4FF160AC     loc_4FF160AC                            ; CODE XREF: LoadImage_kernelcache_img3+188�j
N88AP_iBoot:4FF160AC 0C4                 LDR     R1, [SP,#0xC4+var_B8] ; Load from Memory
N88AP_iBoot:4FF160AE 0C4                 LDR     R2, [SP,#0xC4+var_B0] ; Load from Memory
N88AP_iBoot:4FF160B0 0C4                 CMP     R1, R2          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF160B2 0C4                 BLT.W   loc_4FF15F8E    ; Branch
N88AP_iBoot:4FF160B6 0C4                 LDR.W   R3, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF160BA 0C4                 LDR.W   R10, =dword_4FF2A03C ; Load from Memory
N88AP_iBoot:4FF160BE 0C4                 MOVS    R6, #1          ; Rd = Op2
N88AP_iBoot:4FF160C0 0C4                 LDR.W   R2, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF160C4 0C4                 LDR.W   R1, [R10]       ; Load from Memory
N88AP_iBoot:4FF160C8 0C4                 STR     R6, [R3,#0x18]  ; Store to Memory
N88AP_iBoot:4FF160CA 0C4                 LDR.W   R3, =aRdMd0NandEnableReformat1Progress ; "rd=md0 nand-enable-reformat=1 -progress"...
N88AP_iBoot:4FF160CE 0C4                 LDR.W   R0, ='Teth'     ; Load from Memory
N88AP_iBoot:4FF160D2 0C4                 CMP     R1, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF160D4 0C4                 ITE NE                  ; If Then
N88AP_iBoot:4FF160D6 0C4                 MOVNE   R4, R3          ; Rd = Op2
N88AP_iBoot:4FF160D8 0C4                 MOVEQ   R4, R2          ; Rd = Op2
N88AP_iBoot:4FF160DA 0C4                 MOVS    R2, #0x10       ; Rd = Op2
N88AP_iBoot:4FF160DC 0C4                 ADD     R1, SP, #0xC4+var_34 ; Rd = Op1 + Op2
N88AP_iBoot:4FF160DE 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF160E2 0C4                 CMP.W   R0, #0xFFFFFFFF ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF160E6 0C4                 BEQ     loc_4FF160FA    ; Branch
N88AP_iBoot:4FF160E8 0C4                 LDRB.W  R3, [SP,#0xC4+var_34] ; Load from Memory
N88AP_iBoot:4FF160EC 0C4                 CBZ     R3, loc_4FF160FA ; Compare and Branch on Zero
N88AP_iBoot:4FF160EE 0C4                 LDR.W   R0, =aIsTethered ; "is-tethered"
N88AP_iBoot:4FF160F2 0C4                 MOV     R1, R6          ; Rd = Op2
N88AP_iBoot:4FF160F4 0C4                 MOVS    R2, #0          ; Rd = Op2
N88AP_iBoot:4FF160F6 0C4                 BL      sub_4FF1D084    ; Branch with Link
N88AP_iBoot:4FF160FA
N88AP_iBoot:4FF160FA     loc_4FF160FA                            ; CODE XREF: LoadImage_kernelcache_img3+2E2�j
N88AP_iBoot:4FF160FA                                             ; LoadImage_kernelcache_img3+2E8�j
N88AP_iBoot:4FF160FA 0C4                 LDR.W   R0, =aIsTethered ; "is-tethered"
N88AP_iBoot:4FF160FE 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF16100 0C4                 BL      sub_4FF1CD88    ; Branch with Link
N88AP_iBoot:4FF16104 0C4                 CBZ     R0, loc_4FF16114 ; Compare and Branch on Zero
N88AP_iBoot:4FF16106 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF1610A 0C4                 LDR.W   R2, =aSForceUsbPower1 ; "%s force-usb-power=1 "
N88AP_iBoot:4FF1610E 0C4                 MOV.W   R1, #0x100      ; Rd = Op2
N88AP_iBoot:4FF16112 0C4                 B       loc_4FF16120    ; Branch
N88AP_iBoot:4FF16114     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16114
N88AP_iBoot:4FF16114     loc_4FF16114                            ; CODE XREF: LoadImage_kernelcache_img3+300�j
N88AP_iBoot:4FF16114 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; param_R2
N88AP_iBoot:4FF16118 0C4                 LDR.W   R2, =aS_2       ; "%s "
N88AP_iBoot:4FF1611C 0C4                 MOV.W   R1, #0x100      ; param_R3
N88AP_iBoot:4FF16120
N88AP_iBoot:4FF16120     loc_4FF16120                            ; CODE XREF: LoadImage_kernelcache_img3+30E�j
N88AP_iBoot:4FF16120 0C4                 MOV     R3, R4          ; Rd = Op2
N88AP_iBoot:4FF16122 0C4                 BL      sub_4FF1EC48    ; Branch with Link
N88AP_iBoot:4FF16126 0C4                 LDR.W   R1, =n88ap__iBOOT__gBootArgs.commandLine ; param_R1
N88AP_iBoot:4FF1612A 0C4                 LDR.W   R0, =aGbootargs_commandlineS ; "gBootArgs.commandLine = [%s]\n"
N88AP_iBoot:4FF1612E 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF16132 0C4                 MOVS    R2, #0          ; Rd = Op2
N88AP_iBoot:4FF16134 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF16138 0C4                 LDR.W   R1, =aS_3       ; "-s"
N88AP_iBoot:4FF1613C 0C4                 BL      sub_4FF15CE8    ; Branch with Link
N88AP_iBoot:4FF16140 0C4                 MOV     R2, R0          ; Rd = Op2
N88AP_iBoot:4FF16142 0C4                 CBNZ    R0, loc_4FF16152 ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF16144 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF16148 0C4                 LDR.W   R1, =aV_1       ; "-v"
N88AP_iBoot:4FF1614C 0C4                 BL      sub_4FF15CE8    ; Branch with Link
N88AP_iBoot:4FF16150 0C4                 CBZ     R0, loc_4FF1615A ; Compare and Branch on Zero
N88AP_iBoot:4FF16152
N88AP_iBoot:4FF16152     loc_4FF16152                            ; CODE XREF: LoadImage_kernelcache_img3+33E�j
N88AP_iBoot:4FF16152 0C4                 LDR.W   R1, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16156 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF16158 0C4                 STR     R3, [R1,#0x18]  ; Store to Memory
N88AP_iBoot:4FF1615A
N88AP_iBoot:4FF1615A     loc_4FF1615A                            ; CODE XREF: LoadImage_kernelcache_img3+34C�j
N88AP_iBoot:4FF1615A 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF1615E 0C4                 LDR.W   R1, =aDebug     ; "debug="
N88AP_iBoot:4FF16162 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16164 0C4                 BL      sub_4FF15CE8    ; Branch with Link
N88AP_iBoot:4FF16168 0C4                 CBZ     R0, loc_4FF1616E ; Compare and Branch on Zero
N88AP_iBoot:4FF1616A 0C4                 BL      sub_4FF19FD4    ; Branch with Link
N88AP_iBoot:4FF1616E
N88AP_iBoot:4FF1616E     loc_4FF1616E                            ; CODE XREF: LoadImage_kernelcache_img3+364�j
N88AP_iBoot:4FF1616E 0C4                 LDR.W   R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF16172 0C4                 LDR.W   R1, =aForceUsbPower1 ; "force-usb-power=1"
N88AP_iBoot:4FF16176 0C4                 MOVS    R2, #0          ; Rd = Op2
N88AP_iBoot:4FF16178 0C4                 BL      sub_4FF15CE8    ; Branch with Link
N88AP_iBoot:4FF1617C 0C4                 CBZ     R0, loc_4FF16186 ; Compare and Branch on Zero
N88AP_iBoot:4FF1617E 0C4                 LDR.W   R3, =dword_4FF2A148 ; Load from Memory
N88AP_iBoot:4FF16182 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16184 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16186
N88AP_iBoot:4FF16186     loc_4FF16186                            ; CODE XREF: LoadImage_kernelcache_img3+378�j
N88AP_iBoot:4FF16186 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF16188 0C4                 MOVS    R2, #0x14       ; Rd = Op2
N88AP_iBoot:4FF1618A 0C4                 ADD     R0, SP, #0xC4+var_94 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1618C 0C4                 BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16190 0C4                 ADD     R0, SP, #0xC4+var_94 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16192 0C4                 BL      sub_4FF17200    ; Branch with Link
N88AP_iBoot:4FF16196 0C4                 LDR.W   R6, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF1619A 0C4                 LDR     R3, [SP,#0xC4+var_88] ; Load from Memory
N88AP_iBoot:4FF1619C 0C4                 LDR.W   R2, =dword_4FF2CD0C ; Load from Memory
N88AP_iBoot:4FF161A0 0C4                 MOV.W   R11, #0         ; Rd = Op2
N88AP_iBoot:4FF161A4 0C4                 STR     R3, [R6,#0x1C]  ; Store to Memory
N88AP_iBoot:4FF161A6 0C4                 LDR     R3, [SP,#0xC4+var_90] ; Load from Memory
N88AP_iBoot:4FF161A8 0C4                 MOV     R1, R11         ; Rd = Op2
N88AP_iBoot:4FF161AA 0C4                 STR.W   R11, [R2]       ; Store to Memory
N88AP_iBoot:4FF161AE 0C4                 STR     R3, [R6,#0x20]  ; Store to Memory
N88AP_iBoot:4FF161B0 0C4                 LDR     R3, [SP,#0xC4+var_8C] ; Load from Memory
N88AP_iBoot:4FF161B2 0C4                 LDR.W   R0, =aVramSize  ; "vram-size"
N88AP_iBoot:4FF161B6 0C4                 STR     R3, [R6,#0x24]  ; Store to Memory
N88AP_iBoot:4FF161B8 0C4                 LDR     R3, [SP,#0xC4+var_84] ; Load from Memory
N88AP_iBoot:4FF161BA 0C4                 STR     R3, [R6,#0x28]  ; Store to Memory
N88AP_iBoot:4FF161BC 0C4                 LDR     R3, [SP,#0xC4+var_94] ; Load from Memory
N88AP_iBoot:4FF161BE 0C4                 STR     R3, [R6,#0x14]  ; Store to Memory
N88AP_iBoot:4FF161C0 0C4                 BL      sub_4FF1CD88    ; Branch with Link
N88AP_iBoot:4FF161C4 0C4                 LDR.W   R3, =dword_4FF2CD0C ; Load from Memory
N88AP_iBoot:4FF161C8 0C4                 LDR     R2, [R6,#0xC]   ; Load from Memory
N88AP_iBoot:4FF161CA 0C4                 CMP.W   R0, #0x300000   ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF161CE 0C4                 STR     R0, [R3]        ; Store to Memory
N88AP_iBoot:4FF161D0 0C4                 ITTT CC                 ; If Then
N88AP_iBoot:4FF161D2 0C4                 LDRCC.W R1, =dword_4FF2CD0C ; Load from Memory
N88AP_iBoot:4FF161D6 0C4                 MOVCC.W R3, #0x300000   ; Rd = Op2
N88AP_iBoot:4FF161DA 0C4                 STRCC   R3, [R1]        ; Store to Memory
N88AP_iBoot:4FF161DC 0C4                 LDR.W   R1, =dword_4FF2CD0C ; Load from Memory
N88AP_iBoot:4FF161E0 0C4                 LDR     R3, [R1]        ; Load from Memory
N88AP_iBoot:4FF161E2 0C4                 RSB.W   R3, R3, R2      ; Rd = Op2 - Op1
N88AP_iBoot:4FF161E6 0C4                 LDR.W   R2, =dword_4FF2CD08 ; Load from Memory
N88AP_iBoot:4FF161EA 0C4                 STR     R3, [R6,#0xC]   ; Store to Memory
N88AP_iBoot:4FF161EC 0C4                 LDR     R0, [R2]        ; Load from Memory
N88AP_iBoot:4FF161EE 0C4                 STR     R0, [R6,#0x34]  ; Store to Memory
N88AP_iBoot:4FF161F0 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF161F4 0C4                 LDR     R2, [R6,#4]     ; Load from Memory
N88AP_iBoot:4FF161F6 0C4                 MOV     R3, R0          ; Rd = Op2
N88AP_iBoot:4FF161F8 0C4                 STR     R0, [R6,#0x30]  ; Store to Memory
N88AP_iBoot:4FF161FA 0C4                 LDR     R0, [R6,#8]     ; Load from Memory
N88AP_iBoot:4FF161FC 0C4                 SUBS    R0, R0, R2      ; Rd = Op1 - Op2
N88AP_iBoot:4FF161FE 0C4                 ADDS    R0, R0, R3      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16200 0C4                 LDR.W   R3, =dword_4FF2CD04 ; Load from Memory
N88AP_iBoot:4FF16204 0C4                 LDR     R1, [R3]        ; Load from Memory
N88AP_iBoot:4FF16206 0C4                 LDR.W   R3, =dword_4FF2CD08 ; Load from Memory
N88AP_iBoot:4FF1620A 0C4                 LDR     R2, [R3]        ; Load from Memory
N88AP_iBoot:4FF1620C 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16210 0C4                 LDR     R3, [R6,#4]     ; Load from Memory
N88AP_iBoot:4FF16212 0C4                 LDR     R0, [R6,#8]     ; Load from Memory
N88AP_iBoot:4FF16214 0C4                 LDR.W   R1, =dword_4FF2CD04 ; Load from Memory
N88AP_iBoot:4FF16218 0C4                 SUBS    R0, R0, R3      ; Rd = Op1 - Op2
N88AP_iBoot:4FF1621A 0C4                 LDR     R3, [R6,#0x30]  ; Load from Memory
N88AP_iBoot:4FF1621C 0C4                 ADDS    R0, R0, R3      ; Rd = Op1 + Op2
N88AP_iBoot:4FF1621E 0C4                 STR     R0, [R1]        ; Store to Memory
N88AP_iBoot:4FF16220 0C4                 BL      sub_4FF138BC    ; Branch with Link
N88AP_iBoot:4FF16224 0C4                 LDR.W   R3, =dword_4FF2CD08 ; Load from Memory
N88AP_iBoot:4FF16228 0C4                 LDR.W   R2, =dword_4FF2CD04 ; Load from Memory
N88AP_iBoot:4FF1622C 0C4                 LDR.W   R0, =aDevicetree ; "DeviceTree"
N88AP_iBoot:4FF16230 0C4                 LDR     R1, [R2]        ; Load from Memory
N88AP_iBoot:4FF16232 0C4                 LDR     R2, [R3]        ; Load from Memory
N88AP_iBoot:4FF16234 0C4                 BL      N88AP__iBoot__AllocateMemoryRange ; Branch with Link
N88AP_iBoot:4FF16238 0C4                 LDR.W   R3, [R10]       ; Load from Memory
N88AP_iBoot:4FF1623C 0C4                 CBZ     R3, loc_4FF16270 ; Compare and Branch on Zero
N88AP_iBoot:4FF1623E 0C4                 LDR.W   R10, =dword_4FF2A040 ; Load from Memory
N88AP_iBoot:4FF16242 0C4                 LDR.W   R0, [R10]       ; Load from Memory
N88AP_iBoot:4FF16246 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF1624A 0C4                 LDR     R1, [R6,#8]     ; Load from Memory
N88AP_iBoot:4FF1624C 0C4                 LDR     R3, [R6,#4]     ; Load from Memory
N88AP_iBoot:4FF1624E 0C4                 LDR.W   R2, [R10]       ; Load from Memory
N88AP_iBoot:4FF16252 0C4                 SUBS    R1, R1, R3      ; Rd = Op1 - Op2
N88AP_iBoot:4FF16254 0C4                 MOV     R4, R0          ; Rd = Op2
N88AP_iBoot:4FF16256 0C4                 LDR.W   R0, =dword_4FF2A03C ; Load from Memory
N88AP_iBoot:4FF1625A 0C4                 ADDS    R1, R1, R4      ; Rd = Op1 + Op2
N88AP_iBoot:4FF1625C 0C4                 LDR     R0, [R0]        ; Load from Memory
N88AP_iBoot:4FF1625E 0C4                 BLX     sub_4FF1EE64    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16262 0C4                 LDR.W   R2, [R10]       ; Load from Memory
N88AP_iBoot:4FF16266 0C4                 LDR.W   R0, =aRamdisk   ; "RAMDisk"
N88AP_iBoot:4FF1626A 0C4                 MOV     R1, R4          ; Rd = Op2
N88AP_iBoot:4FF1626C 0C4                 BL      N88AP__iBoot__AllocateMemoryRange ; Branch with Link
N88AP_iBoot:4FF16270
N88AP_iBoot:4FF16270     loc_4FF16270                            ; CODE XREF: LoadImage_kernelcache_img3+438�j
N88AP_iBoot:4FF16270 0C4                 MOV     R0, R11         ; Rd = Op2
N88AP_iBoot:4FF16272 0C4                 LDR.W   R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF16276 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16278 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF1627C 0C4                 CBZ     R0, loc_4FF1629E ; Compare and Branch on Zero
N88AP_iBoot:4FF1627E 0C4                 LDR.W   R3, =aModelNumber ; "model-number"
N88AP_iBoot:4FF16282 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16284 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16286 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16288 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1628A 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1628C 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16290 0C4                 CBZ     R0, loc_4FF1629E ; Compare and Branch on Zero
N88AP_iBoot:4FF16292 0C4                 LDR.W   R0, ='Mod#'     ; Load from Memory
N88AP_iBoot:4FF16296 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16298 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF1629A 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF1629E
N88AP_iBoot:4FF1629E     loc_4FF1629E                            ; CODE XREF: LoadImage_kernelcache_img3+478�j
N88AP_iBoot:4FF1629E                                             ; LoadImage_kernelcache_img3+48C�j
N88AP_iBoot:4FF1629E 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF162A0 0C4                 LDR.W   R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF162A4 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162A6 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF162AA 0C4                 CBZ     R0, loc_4FF162CC ; Compare and Branch on Zero
N88AP_iBoot:4FF162AC 0C4                 LDR.W   R3, =aRegionInfo ; "region-info"
N88AP_iBoot:4FF162B0 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF162B2 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF162B4 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF162B6 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162B8 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162BA 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF162BE 0C4                 CBZ     R0, loc_4FF162CC ; Compare and Branch on Zero
N88AP_iBoot:4FF162C0 0C4                 LDR.W   R0, ='Regn'     ; Load from Memory
N88AP_iBoot:4FF162C4 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF162C6 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF162C8 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF162CC
N88AP_iBoot:4FF162CC     loc_4FF162CC                            ; CODE XREF: LoadImage_kernelcache_img3+4A6�j
N88AP_iBoot:4FF162CC                                             ; LoadImage_kernelcache_img3+4BA�j
N88AP_iBoot:4FF162CC 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF162CE 0C4                 LDR.W   R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF162D2 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162D4 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF162D8 0C4                 CBZ     R0, loc_4FF162FA ; Compare and Branch on Zero
N88AP_iBoot:4FF162DA 0C4                 LDR.W   R3, =aSerialNumber ; "serial-number"
N88AP_iBoot:4FF162DE 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF162E0 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF162E2 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF162E4 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162E6 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF162E8 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF162EC 0C4                 CBZ     R0, loc_4FF162FA ; Compare and Branch on Zero
N88AP_iBoot:4FF162EE 0C4                 LDR.W   R0, ='SrNm'     ; Load from Memory
N88AP_iBoot:4FF162F2 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF162F4 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF162F6 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF162FA
N88AP_iBoot:4FF162FA     loc_4FF162FA                            ; CODE XREF: LoadImage_kernelcache_img3+4D4�j
N88AP_iBoot:4FF162FA                                             ; LoadImage_kernelcache_img3+4E8�j
N88AP_iBoot:4FF162FA 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF162FC 0C4                 LDR.W   R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF16300 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16302 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16306 0C4                 CBZ     R0, loc_4FF16328 ; Compare and Branch on Zero
N88AP_iBoot:4FF16308 0C4                 LDR.W   R3, =aMlbSerialNumber ; "mlb-serial-number"
N88AP_iBoot:4FF1630C 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1630E 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16310 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16312 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16314 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16316 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1631A 0C4                 CBZ     R0, loc_4FF16328 ; Compare and Branch on Zero
N88AP_iBoot:4FF1631C 0C4                 LDR.W   R0, ='MLB#'     ; Load from Memory
N88AP_iBoot:4FF16320 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16322 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16324 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF16328
N88AP_iBoot:4FF16328     loc_4FF16328                            ; CODE XREF: LoadImage_kernelcache_img3+502�j
N88AP_iBoot:4FF16328                                             ; LoadImage_kernelcache_img3+516�j
N88AP_iBoot:4FF16328 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1632A 0C4                 LDR.W   R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF1632E 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16330 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16334 0C4                 CBZ     R0, loc_4FF16356 ; Compare and Branch on Zero
N88AP_iBoot:4FF16336 0C4                 LDR.W   R3, =aConfigNumber ; "config-number"
N88AP_iBoot:4FF1633A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1633C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1633E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16340 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16342 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16344 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16348 0C4                 CBZ     R0, loc_4FF16356 ; Compare and Branch on Zero
N88AP_iBoot:4FF1634A 0C4                 LDR.W   R0, ='CFG#'     ; Load from Memory
N88AP_iBoot:4FF1634E 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16350 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16352 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF16356
N88AP_iBoot:4FF16356     loc_4FF16356                            ; CODE XREF: LoadImage_kernelcache_img3+530�j
N88AP_iBoot:4FF16356                                             ; LoadImage_kernelcache_img3+544�j
N88AP_iBoot:4FF16356 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16358 0C4                 LDR.W   R1, =aPram      ; "pram"
N88AP_iBoot:4FF1635C 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1635E 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16362 0C4                 CBZ     R0, loc_4FF16388 ; Compare and Branch on Zero
N88AP_iBoot:4FF16364 0C4                 LDR.W   R3, =aReg       ; "reg"
N88AP_iBoot:4FF16368 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1636A 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1636C 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1636E 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16370 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16372 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16376 0C4                 CBZ     R0, loc_4FF16388 ; Compare and Branch on Zero
N88AP_iBoot:4FF16378 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1637A 0C4                 LDR.W   R2, =0x4FFFC000 ; Load from Memory
N88AP_iBoot:4FF1637E 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16380 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16382 0C4                 MOV.W   R2, #0x4000     ; Rd = Op2
N88AP_iBoot:4FF16386 0C4                 STR     R2, [R3,#4]     ; Store to Memory
N88AP_iBoot:4FF16388
N88AP_iBoot:4FF16388     loc_4FF16388                            ; CODE XREF: LoadImage_kernelcache_img3+55E�j
N88AP_iBoot:4FF16388                                             ; LoadImage_kernelcache_img3+572�j
N88AP_iBoot:4FF16388 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1638A 0C4                 LDR.W   R1, =aVram      ; "vram"
N88AP_iBoot:4FF1638E 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16390 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16394 0C4                 CBZ     R0, loc_4FF163BC ; Compare and Branch on Zero
N88AP_iBoot:4FF16396 0C4                 LDR.W   R3, =aReg       ; "reg"
N88AP_iBoot:4FF1639A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1639C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1639E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF163A0 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF163A2 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF163A4 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF163A8 0C4                 CBZ     R0, loc_4FF163BC ; Compare and Branch on Zero
N88AP_iBoot:4FF163AA 0C4                 LDR.W   R2, =dword_4FF2CD0C ; Load from Memory
N88AP_iBoot:4FF163AE 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF163B0 0C4                 LDR     R1, [R2]        ; Load from Memory
N88AP_iBoot:4FF163B2 0C4                 RSB.W   R2, R1, #0x50000000 ; Rd = Op2 - Op1
N88AP_iBoot:4FF163B6 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF163B8 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF163BA 0C4                 STR     R1, [R3,#4]     ; Store to Memory
N88AP_iBoot:4FF163BC
N88AP_iBoot:4FF163BC     loc_4FF163BC                            ; CODE XREF: LoadImage_kernelcache_img3+590�j
N88AP_iBoot:4FF163BC                                             ; LoadImage_kernelcache_img3+5A4�j
N88AP_iBoot:4FF163BC 0C4                 LDR.W   R0, =aNetworkType ; "network-type"
N88AP_iBoot:4FF163C0 0C4                 BL      sub_4FF1CD9C    ; Branch with Link
N88AP_iBoot:4FF163C4 0C4                 CBZ     R0, loc_4FF163D4 ; Compare and Branch on Zero
N88AP_iBoot:4FF163C6 0C4                 LDR.W   R1, =aEthernet  ; "ethernet"
N88AP_iBoot:4FF163CA 0C4                 BL      sub_4FF1ECA0    ; Branch with Link
N88AP_iBoot:4FF163CE 0C4                 CBZ     R0, loc_4FF163D4 ; Compare and Branch on Zero
N88AP_iBoot:4FF163D0 0C4                 MOVS    R6, #1          ; Rd = Op2
N88AP_iBoot:4FF163D2 0C4                 B       loc_4FF163D6    ; Branch
N88AP_iBoot:4FF163D4     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF163D4
N88AP_iBoot:4FF163D4     loc_4FF163D4                            ; CODE XREF: LoadImage_kernelcache_img3+5C0�j
N88AP_iBoot:4FF163D4                                             ; LoadImage_kernelcache_img3+5CA�j
N88AP_iBoot:4FF163D4 0C4                 MOVS    R6, #0          ; Rd = Op2
N88AP_iBoot:4FF163D6
N88AP_iBoot:4FF163D6     loc_4FF163D6                            ; CODE XREF: LoadImage_kernelcache_img3+5CE�j
N88AP_iBoot:4FF163D6 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF163D8 0C4                 LDR.W   R1, =aChosen    ; "chosen"
N88AP_iBoot:4FF163DC 0C4                 ADD     R2, SP, #0xC4+var_64 ; Rd = Op1 + Op2
N88AP_iBoot:4FF163DE 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF163E2 0C4                 CBNZ    R0, loc_4FF163EE ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF163E4 0C4                 LDR.W   R0, =aUpdatedevicetreeFailedToFindTheChosenNode ; "UpdateDeviceTree: failed to find the /c"...
N88AP_iBoot:4FF163E8 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF163EC 0C4                 B       loc_4FF16AD4    ; Branch
N88AP_iBoot:4FF163EE     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF163EE
N88AP_iBoot:4FF163EE     loc_4FF163EE                            ; CODE XREF: LoadImage_kernelcache_img3+5DE�j
N88AP_iBoot:4FF163EE 0C4                 LDR.W   R3, =aDebugEnabled ; "debug-enabled"
N88AP_iBoot:4FF163F2 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF163F4 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF163F6 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF163F8 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF163FA 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF163FC 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16400 0C4                 CBZ     R0, loc_4FF16410 ; Compare and Branch on Zero
N88AP_iBoot:4FF16402 0C4                 MOVS    R0, #0x20 ; ' ' ; Rd = Op2
N88AP_iBoot:4FF16404 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF16408 0C4                 CBZ     R0, loc_4FF16410 ; Compare and Branch on Zero
N88AP_iBoot:4FF1640A 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1640C 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF1640E 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16410
N88AP_iBoot:4FF16410     loc_4FF16410                            ; CODE XREF: LoadImage_kernelcache_img3+5FC�j
N88AP_iBoot:4FF16410                                             ; LoadImage_kernelcache_img3+604�j
N88AP_iBoot:4FF16410 0C4                 LDR.W   R3, =aDevelopmentCert ; "development-cert"
N88AP_iBoot:4FF16414 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16416 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16418 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1641A 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1641C 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1641E 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16422 0C4                 CBZ     R0, loc_4FF16434 ; Compare and Branch on Zero
N88AP_iBoot:4FF16424 0C4                 MOV.W   R0, #BlackRa1n__iPhoneTypeInfo ; Rd = Op2
N88AP_iBoot:4FF16428 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF1642C 0C4                 CBZ     R0, loc_4FF16434 ; Compare and Branch on Zero
N88AP_iBoot:4FF1642E 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16430 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16432 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16434
N88AP_iBoot:4FF16434     loc_4FF16434                            ; CODE XREF: LoadImage_kernelcache_img3+61E�j
N88AP_iBoot:4FF16434                                             ; LoadImage_kernelcache_img3+628�j
N88AP_iBoot:4FF16434 0C4                 LDR.W   R3, =aProductionCert ; "production-cert"
N88AP_iBoot:4FF16438 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF1643A 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1643C 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1643E 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16440 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16442 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16446 0C4                 CBZ     R0, loc_4FF16458 ; Compare and Branch on Zero
N88AP_iBoot:4FF16448 0C4                 MOV.W   R0, #0x200000   ; Rd = Op2
N88AP_iBoot:4FF1644C 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF16450 0C4                 CBZ     R0, loc_4FF16458 ; Compare and Branch on Zero
N88AP_iBoot:4FF16452 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16454 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16456 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16458
N88AP_iBoot:4FF16458     loc_4FF16458                            ; CODE XREF: LoadImage_kernelcache_img3+642�j
N88AP_iBoot:4FF16458                                             ; LoadImage_kernelcache_img3+64C�j
N88AP_iBoot:4FF16458 0C4                 LDR.W   R3, =aGidAesKey ; "gid-aes-key"
N88AP_iBoot:4FF1645C 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF1645E 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16460 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16462 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16464 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16466 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1646A 0C4                 CBZ     R0, loc_4FF1647C ; Compare and Branch on Zero
N88AP_iBoot:4FF1646C 0C4                 MOV.W   R0, #0x40000    ; Rd = Op2
N88AP_iBoot:4FF16470 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF16474 0C4                 CBZ     R0, loc_4FF1647C ; Compare and Branch on Zero
N88AP_iBoot:4FF16476 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16478 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF1647A 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF1647C
N88AP_iBoot:4FF1647C     loc_4FF1647C                            ; CODE XREF: LoadImage_kernelcache_img3+666�j
N88AP_iBoot:4FF1647C                                             ; LoadImage_kernelcache_img3+670�j
N88AP_iBoot:4FF1647C 0C4                 LDR.W   R3, =aUidAesKey ; "uid-aes-key"
N88AP_iBoot:4FF16480 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16482 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16484 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16486 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16488 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1648A 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1648E 0C4                 CBZ     R0, loc_4FF164A0 ; Compare and Branch on Zero
N88AP_iBoot:4FF16490 0C4                 MOV.W   R0, #0x80000    ; Rd = Op2
N88AP_iBoot:4FF16494 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF16498 0C4                 CBZ     R0, loc_4FF164A0 ; Compare and Branch on Zero
N88AP_iBoot:4FF1649A 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1649C 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF1649E 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF164A0
N88AP_iBoot:4FF164A0     loc_4FF164A0                            ; CODE XREF: LoadImage_kernelcache_img3+68A�j
N88AP_iBoot:4FF164A0                                             ; LoadImage_kernelcache_img3+694�j
N88AP_iBoot:4FF164A0 0C4                 LDR.W   R3, =aSecureBoot ; "secure-boot"
N88AP_iBoot:4FF164A4 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF164A6 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF164A8 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF164AA 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164AC 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164AE 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF164B2 0C4                 CBZ     R0, loc_4FF164C4 ; Compare and Branch on Zero
N88AP_iBoot:4FF164B4 0C4                 MOV.W   R0, #0x10000000 ; Rd = Op2
N88AP_iBoot:4FF164B8 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF164BC 0C4                 CBZ     R0, loc_4FF164C4 ; Compare and Branch on Zero
N88AP_iBoot:4FF164BE 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF164C0 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF164C2 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF164C4
N88AP_iBoot:4FF164C4     loc_4FF164C4                            ; CODE XREF: LoadImage_kernelcache_img3+6AE�j
N88AP_iBoot:4FF164C4                                             ; LoadImage_kernelcache_img3+6B8�j
N88AP_iBoot:4FF164C4 0C4                 LDR     R3, =aSoftwareBehavior ; "software-behavior"
N88AP_iBoot:4FF164C6 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF164C8 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF164CA 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF164CC 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164CE 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164D0 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF164D4 0C4                 CBZ     R0, loc_4FF164E0 ; Compare and Branch on Zero
N88AP_iBoot:4FF164D6 0C4                 LDR     R0, ='SwBh'     ; Load from Memory
N88AP_iBoot:4FF164D8 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF164DA 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF164DC 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF164E0
N88AP_iBoot:4FF164E0     loc_4FF164E0                            ; CODE XREF: LoadImage_kernelcache_img3+6D0�j
N88AP_iBoot:4FF164E0 0C4                 LDR     R3, =aSystemTrusted ; "system-trusted"
N88AP_iBoot:4FF164E2 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF164E4 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF164E6 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF164E8 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164EA 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF164EC 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF164F0 0C4                 CBZ     R0, loc_4FF16502 ; Compare and Branch on Zero
N88AP_iBoot:4FF164F2 0C4                 MOV.W   R0, #0x20000000 ; Rd = Op2
N88AP_iBoot:4FF164F6 0C4                 BL      sub_4FF19FAC    ; Branch with Link
N88AP_iBoot:4FF164FA 0C4                 CBZ     R0, loc_4FF16502 ; Compare and Branch on Zero
N88AP_iBoot:4FF164FC 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF164FE 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16500 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16502
N88AP_iBoot:4FF16502     loc_4FF16502                            ; CODE XREF: LoadImage_kernelcache_img3+6EC�j
N88AP_iBoot:4FF16502                                             ; LoadImage_kernelcache_img3+6F6�j
N88AP_iBoot:4FF16502 0C4                 LDR     R3, =aBoardId   ; "board-id"
N88AP_iBoot:4FF16504 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16506 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16508 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1650A 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1650C 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1650E 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16512 0C4                 CBZ     R0, loc_4FF1651C ; Compare and Branch on Zero
N88AP_iBoot:4FF16514 0C4                 LDR     R4, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16516 0C4                 BL      sub_4FF184E4    ; Branch with Link
N88AP_iBoot:4FF1651A 0C4                 STR     R0, [R4]        ; Store to Memory
N88AP_iBoot:4FF1651C
N88AP_iBoot:4FF1651C     loc_4FF1651C                            ; CODE XREF: LoadImage_kernelcache_img3+70E�j
N88AP_iBoot:4FF1651C 0C4                 LDR     R3, =aChipId    ; "chip-id"
N88AP_iBoot:4FF1651E 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16520 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16522 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16524 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16526 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16528 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1652C 0C4                 CBZ     R0, loc_4FF16536 ; Compare and Branch on Zero
N88AP_iBoot:4FF1652E 0C4                 LDR     R4, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16530 0C4                 BL      sub_4FF1F8F8    ; Branch with Link
N88AP_iBoot:4FF16534 0C4                 STR     R0, [R4]        ; Store to Memory
N88AP_iBoot:4FF16536
N88AP_iBoot:4FF16536     loc_4FF16536                            ; CODE XREF: LoadImage_kernelcache_img3+728�j
N88AP_iBoot:4FF16536 0C4                 LDR     R3, =aUniqueChipId ; "unique-chip-id"
N88AP_iBoot:4FF16538 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF1653A 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1653C 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1653E 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16540 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16542 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16546 0C4                 CBZ     R0, loc_4FF16552 ; Compare and Branch on Zero
N88AP_iBoot:4FF16548 0C4                 LDR     R4, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1654A 0C4                 BL      sub_4FF1F904    ; Branch with Link
N88AP_iBoot:4FF1654E 0C4                 STMIA.W R4, {R0,R1}     ; Store Block to Memory
N88AP_iBoot:4FF16552
N88AP_iBoot:4FF16552     loc_4FF16552                            ; CODE XREF: LoadImage_kernelcache_img3+742�j
N88AP_iBoot:4FF16552 0C4                 LDR     R3, =aFirmwareVersion ; "firmware-version"
N88AP_iBoot:4FF16554 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16556 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16558 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1655A 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1655C 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1655E 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16562 0C4                 CBZ     R0, loc_4FF1656E ; Compare and Branch on Zero
N88AP_iBoot:4FF16564 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16566 0C4                 LDR     R1, =aIboot636_66 ; "iBoot-636.66"
N88AP_iBoot:4FF16568 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF1656A 0C4                 BL      sub_4FF1ED1C    ; Branch with Link
N88AP_iBoot:4FF1656E
N88AP_iBoot:4FF1656E     loc_4FF1656E                            ; CODE XREF: LoadImage_kernelcache_img3+75E�j
N88AP_iBoot:4FF1656E 0C4                 LDR     R3, =aBootpResponse ; "bootp-response"
N88AP_iBoot:4FF16570 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF16572 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16574 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16576 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16578 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1657A 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1657E 0C4                 CBZ     R0, loc_4FF165E2 ; Compare and Branch on Zero
N88AP_iBoot:4FF16580 0C4                 LDR     R4, =dword_4FF2CD18 ; Load from Memory
N88AP_iBoot:4FF16582 0C4                 ADD     R1, SP, #0xC4+var_74 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16584 0C4                 MOV.W   R10, #2         ; Rd = Op2
N88AP_iBoot:4FF16588 0C4                 LDR     R0, =aIpaddr    ; "ipaddr"
N88AP_iBoot:4FF1658A 0C4                 STRB.W  R10, [R4]       ; Store to Memory
N88AP_iBoot:4FF1658E 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF16590 0C4                 STR     R3, [SP,#0xC4+var_74] ; Store to Memory
N88AP_iBoot:4FF16592 0C4                 BL      sub_4FF1D170    ; Branch with Link
N88AP_iBoot:4FF16596 0C4                 ADD.W   R0, R4, #0x10   ; Rd = Op1 + Op2
N88AP_iBoot:4FF1659A 0C4                 ADD     R1, SP, #0xC4+var_74 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1659C 0C4                 MOVS    R2, #4          ; Rd = Op2
N88AP_iBoot:4FF1659E 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF165A2 0C4                 LDR     R0, =aGateway   ; "gateway"
N88AP_iBoot:4FF165A4 0C4                 BL      sub_4FF1CD9C    ; Branch with Link
N88AP_iBoot:4FF165A8 0C4                 CBZ     R0, loc_4FF165D6 ; Compare and Branch on Zero
N88AP_iBoot:4FF165AA 0C4                 ADD     R1, SP, #0xC4+var_74 ; Rd = Op1 + Op2
N88AP_iBoot:4FF165AC 0C4                 LDR     R0, =aGateway   ; "gateway"
N88AP_iBoot:4FF165AE 0C4                 BL      sub_4FF1D170    ; Branch with Link
N88AP_iBoot:4FF165B2 0C4                 LDR     R1, =dword_4FF25954 ; Load from Memory
N88AP_iBoot:4FF165B4 0C4                 MOVS    R2, #4          ; Rd = Op2
N88AP_iBoot:4FF165B6 0C4                 ADD.W   R0, R4, #0xEC   ; Rd = Op1 + Op2
N88AP_iBoot:4FF165BA 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF165BE 0C4                 LDR     R1, =dword_4FF2595C ; Load from Memory
N88AP_iBoot:4FF165C0 0C4                 MOV     R2, R10         ; Rd = Op2
N88AP_iBoot:4FF165C2 0C4                 ADD.W   R0, R4, #0xF0   ; Rd = Op1 + Op2
N88AP_iBoot:4FF165C6 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF165CA 0C4                 ADD.W   R0, R4, #0xF2   ; Rd = Op1 + Op2
N88AP_iBoot:4FF165CE 0C4                 ADD     R1, SP, #0xC4+var_74 ; Rd = Op1 + Op2
N88AP_iBoot:4FF165D0 0C4                 MOVS    R2, #4          ; Rd = Op2
N88AP_iBoot:4FF165D2 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF165D6
N88AP_iBoot:4FF165D6     loc_4FF165D6                            ; CODE XREF: LoadImage_kernelcache_img3+7A4�j
N88AP_iBoot:4FF165D6 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF165D8 0C4                 MOV     R1, R4          ; Rd = Op2
N88AP_iBoot:4FF165DA 0C4                 MOV.W   R2, #0x12C      ; Rd = Op2
N88AP_iBoot:4FF165DE 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF165E2
N88AP_iBoot:4FF165E2     loc_4FF165E2                            ; CODE XREF: LoadImage_kernelcache_img3+77A�j
N88AP_iBoot:4FF165E2 0C4                 LDR     R0, =n88ap__iBOOT__gBootArgs.commandLine ; Load from Memory
N88AP_iBoot:4FF165E4 0C4                 LDR     R1, =aRd_1      ; "rd="
N88AP_iBoot:4FF165E6 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF165E8 0C4                 BL      sub_4FF15CE8    ; Branch with Link
N88AP_iBoot:4FF165EC 0C4                 CBNZ    R0, loc_4FF1660C ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF165EE 0C4                 LDR     R3, =aRootMatching ; "root-matching"
N88AP_iBoot:4FF165F0 0C4                 LDR     R0, [SP,#0xC4+var_64] ; Load from Memory
N88AP_iBoot:4FF165F2 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF165F4 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF165F6 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF165F8 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF165FA 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF165FE 0C4                 CBZ     R0, loc_4FF1660C ; Compare and Branch on Zero
N88AP_iBoot:4FF16600 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; param_R2
N88AP_iBoot:4FF16602 0C4                 LDR     R1, [SP,#0xC4+param_R3] ; param_R3
N88AP_iBoot:4FF16604 0C4                 LDR     R2, =aDictKeyIoproviderclassKeyStringIomediaStringK ; "<dict><key>IOProviderClass</key><string"...
N88AP_iBoot:4FF16606 0C4                 MOVS    R3, #1          ; Rd = Op2
N88AP_iBoot:4FF16608 0C4                 BL      sub_4FF1EC48    ; Branch with Link
N88AP_iBoot:4FF1660C
N88AP_iBoot:4FF1660C     loc_4FF1660C                            ; CODE XREF: LoadImage_kernelcache_img3+7E8�j
N88AP_iBoot:4FF1660C                                             ; LoadImage_kernelcache_img3+7FA�j
N88AP_iBoot:4FF1660C 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1660E 0C4                 LDR     R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF16610 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16612 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16616 0C4                 CBZ     R0, loc_4FF16634 ; Compare and Branch on Zero
N88AP_iBoot:4FF16618 0C4                 LDR     R3, =aPlatformName ; "platform-name"
N88AP_iBoot:4FF1661A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1661C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1661E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16620 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16622 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16624 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16628 0C4                 CBZ     R0, loc_4FF16634 ; Compare and Branch on Zero
N88AP_iBoot:4FF1662A 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1662C 0C4                 LDR     R1, =aS5l8920x  ; "s5l8920x"
N88AP_iBoot:4FF1662E 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16630 0C4                 BL      sub_4FF1ED1C    ; Branch with Link
N88AP_iBoot:4FF16634
N88AP_iBoot:4FF16634     loc_4FF16634                            ; CODE XREF: LoadImage_kernelcache_img3+812�j
N88AP_iBoot:4FF16634                                             ; LoadImage_kernelcache_img3+824�j
N88AP_iBoot:4FF16634 0C4                 ADD.W   R0, SP, #0xC4+var_7E ; Rd = Op1 + Op2
N88AP_iBoot:4FF16638 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF1663A 0C4                 MOVS    R2, #6          ; Rd = Op2
N88AP_iBoot:4FF1663C 0C4                 BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16640 0C4                 LDR     R0, =aEthaddr   ; "ethaddr"
N88AP_iBoot:4FF16642 0C4                 BL      sub_4FF1CD9C    ; Branch with Link
N88AP_iBoot:4FF16646 0C4                 CBZ     R0, loc_4FF16654 ; Compare and Branch on Zero
N88AP_iBoot:4FF16648 0C4                 ADD.W   R1, SP, #0xC4+var_7E ; Rd = Op1 + Op2
N88AP_iBoot:4FF1664C 0C4                 LDR     R0, =aEthaddr   ; "ethaddr"
N88AP_iBoot:4FF1664E 0C4                 BL      sub_4FF1D0C4    ; Branch with Link
N88AP_iBoot:4FF16652 0C4                 B       loc_4FF16664    ; Branch
N88AP_iBoot:4FF16654     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16654
N88AP_iBoot:4FF16654     loc_4FF16654                            ; CODE XREF: LoadImage_kernelcache_img3+842�j
N88AP_iBoot:4FF16654 0C4                 STR     R0, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF16656 0C4                 MOVS    R0, #6          ; Rd = Op2
N88AP_iBoot:4FF16658 0C4                 ADD.W   R1, SP, #0xC4+var_7E ; Rd = Op1 + Op2
N88AP_iBoot:4FF1665C 0C4                 MOV     R2, R0          ; Rd = Op2
N88AP_iBoot:4FF1665E 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16660 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF16664
N88AP_iBoot:4FF16664     loc_4FF16664                            ; CODE XREF: LoadImage_kernelcache_img3+84E�j
N88AP_iBoot:4FF16664 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16666 0C4                 LDR     R1, =dword_4FF214E8 ; Load from Memory
N88AP_iBoot:4FF16668 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1666A 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF1666E 0C4                 CBZ     R0, loc_4FF1668E ; Compare and Branch on Zero
N88AP_iBoot:4FF16670 0C4                 LDR     R3, =aLocalMacAddress ; "local-mac-address"
N88AP_iBoot:4FF16672 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16674 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16676 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16678 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1667A 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1667C 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16680 0C4                 CBZ     R0, loc_4FF1668E ; Compare and Branch on Zero
N88AP_iBoot:4FF16682 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16684 0C4                 ADD.W   R1, SP, #0xC4+var_7E ; Rd = Op1 + Op2
N88AP_iBoot:4FF16688 0C4                 MOVS    R2, #6          ; Rd = Op2
N88AP_iBoot:4FF1668A 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF1668E
N88AP_iBoot:4FF1668E     loc_4FF1668E                            ; CODE XREF: LoadImage_kernelcache_img3+86A�j
N88AP_iBoot:4FF1668E                                             ; LoadImage_kernelcache_img3+87C�j
N88AP_iBoot:4FF1668E 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16690 0C4                 LDR     R1, =aEthernet  ; "ethernet"
N88AP_iBoot:4FF16692 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16694 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16698 0C4                 CBZ     R0, loc_4FF166DC ; Compare and Branch on Zero
N88AP_iBoot:4FF1669A 0C4                 LDR     R3, =aLocalMacAddress ; "local-mac-address"
N88AP_iBoot:4FF1669C 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1669E 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF166A0 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF166A2 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166A4 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166A6 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF166AA 0C4                 CBZ     R0, loc_4FF166DC ; Compare and Branch on Zero
N88AP_iBoot:4FF166AC 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF166AE 0C4                 ADD.W   R1, SP, #0xC4+var_7E ; Rd = Op1 + Op2
N88AP_iBoot:4FF166B2 0C4                 MOVS    R2, #6          ; Rd = Op2
N88AP_iBoot:4FF166B4 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF166B8 0C4                 CBZ     R6, loc_4FF166DC ; Compare and Branch on Zero
N88AP_iBoot:4FF166BA 0C4                 LDR     R3, =aCompatible ; "compatible"
N88AP_iBoot:4FF166BC 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF166BE 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF166C0 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF166C2 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166C4 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166C6 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF166CA 0C4                 CBZ     R0, loc_4FF166DC ; Compare and Branch on Zero
N88AP_iBoot:4FF166CC 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF166CE 0C4                 LDR     R1, =aXxx       ; "xxx"
N88AP_iBoot:4FF166D0 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF166D2 0C4                 BL      sub_4FF1ED1C    ; Branch with Link
N88AP_iBoot:4FF166D6 0C4                 LDR     R0, =aEthernetDisabled ; "Ethernet disabled\n"
N88AP_iBoot:4FF166D8 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF166DC
N88AP_iBoot:4FF166DC     loc_4FF166DC                            ; CODE XREF: LoadImage_kernelcache_img3+894�j
N88AP_iBoot:4FF166DC                                             ; LoadImage_kernelcache_img3+8A6�j
N88AP_iBoot:4FF166DC                                             ; LoadImage_kernelcache_img3+8B4�j
N88AP_iBoot:4FF166DC                                             ; LoadImage_kernelcache_img3+8C6�j
N88AP_iBoot:4FF166DC 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF166DE 0C4                 LDR     R1, =aArmIoSdio ; "arm-io/sdio"
N88AP_iBoot:4FF166E0 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166E2 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF166E6 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF166E8 0C4                 BEQ     loc_4FF16768    ; Branch
N88AP_iBoot:4FF166EA 0C4                 LDR     R3, =aLocalMacAddress ; "local-mac-address"
N88AP_iBoot:4FF166EC 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF166EE 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF166F0 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF166F2 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166F4 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF166F6 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF166FA 0C4                 CBZ     R0, loc_4FF1671C ; Compare and Branch on Zero
N88AP_iBoot:4FF166FC 0C4                 LDR     R0, =aWifiaddr  ; "wifiaddr"
N88AP_iBoot:4FF166FE 0C4                 BL      sub_4FF1CD9C    ; Branch with Link
N88AP_iBoot:4FF16702 0C4                 CBZ     R0, loc_4FF1670E ; Compare and Branch on Zero
N88AP_iBoot:4FF16704 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16706 0C4                 LDR     R0, =aWifiaddr  ; "wifiaddr"
N88AP_iBoot:4FF16708 0C4                 BL      sub_4FF1D0C4    ; Branch with Link
N88AP_iBoot:4FF1670C 0C4                 B       loc_4FF1671C    ; Branch
N88AP_iBoot:4FF1670E     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF1670E
N88AP_iBoot:4FF1670E     loc_4FF1670E                            ; CODE XREF: LoadImage_kernelcache_img3+8FE�j
N88AP_iBoot:4FF1670E 0C4                 STR     R0, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF16710 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16712 0C4                 MOVS    R0, #1          ; Rd = Op2
N88AP_iBoot:4FF16714 0C4                 MOVS    R2, #6          ; Rd = Op2
N88AP_iBoot:4FF16716 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16718 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF1671C
N88AP_iBoot:4FF1671C     loc_4FF1671C                            ; CODE XREF: LoadImage_kernelcache_img3+8F6�j
N88AP_iBoot:4FF1671C                                             ; LoadImage_kernelcache_img3+908�j
N88AP_iBoot:4FF1671C 0C4                 LDR     R3, =aTxCalibration ; "tx-calibration"
N88AP_iBoot:4FF1671E 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16720 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16722 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16724 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16726 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16728 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1672C 0C4                 CBZ     R0, loc_4FF16746 ; Compare and Branch on Zero
N88AP_iBoot:4FF1672E 0C4                 LDR     R0, =aInstallingWifiCalibration ; "Installing WIFI Calibration\n"
N88AP_iBoot:4FF16730 0C4                 MOVS    R3, #0          ; param_R3
N88AP_iBoot:4FF16732 0C4                 STR     R3, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF16734 0C4                 BL      N88AP__iBOOT__console_printf ; Branch with Link
N88AP_iBoot:4FF16738 0C4                 MOVS    R0, #2          ; Rd = Op2
N88AP_iBoot:4FF1673A 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1673C 0C4                 MOV.W   R2, #0x400      ; Rd = Op2
N88AP_iBoot:4FF16740 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16742 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF16746
N88AP_iBoot:4FF16746     loc_4FF16746                            ; CODE XREF: LoadImage_kernelcache_img3+928�j
N88AP_iBoot:4FF16746 0C4                 LDR     R3, =aVendorId  ; "vendor-id"
N88AP_iBoot:4FF16748 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1674A 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1674C 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF1674E 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16750 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16752 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16756 0C4                 CBZ     R0, loc_4FF16768 ; Compare and Branch on Zero
N88AP_iBoot:4FF16758 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF1675A 0C4                 MOVS    R0, #3          ; Rd = Op2
N88AP_iBoot:4FF1675C 0C4                 STR     R3, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF1675E 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16760 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16762 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16764 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF16768
N88AP_iBoot:4FF16768     loc_4FF16768                            ; CODE XREF: LoadImage_kernelcache_img3+8E4�j
N88AP_iBoot:4FF16768                                             ; LoadImage_kernelcache_img3+952�j
N88AP_iBoot:4FF16768 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF1676A 0C4                 LDR     R1, =aArmIoUart3Bluetooth ; "arm-io/uart3/bluetooth"
N88AP_iBoot:4FF1676C 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1676E 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16772 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16774 0C4                 BEQ.W   loc_4FF16960    ; Branch
N88AP_iBoot:4FF16778 0C4                 LDR     R3, =aLocalMacAddress ; "local-mac-address"
N88AP_iBoot:4FF1677A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1677C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1677E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16780 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16782 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16784 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16788 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF1678A 0C4                 BEQ.W   loc_4FF1693E    ; Branch
N88AP_iBoot:4FF1678E 0C4                 LDR     R0, =aBtaddr    ; "btaddr"
N88AP_iBoot:4FF16790 0C4                 BL      sub_4FF1CD9C    ; Branch with Link
N88AP_iBoot:4FF16794 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16796 0C4                 BEQ.W   loc_4FF16930    ; Branch
N88AP_iBoot:4FF1679A 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF1679C 0C4                 LDR     R0, =aBtaddr    ; "btaddr"
N88AP_iBoot:4FF1679E 0C4                 BL      sub_4FF1D0C4    ; Branch with Link
N88AP_iBoot:4FF167A2 0C4                 B       loc_4FF1693E    ; Branch
N88AP_iBoot:4FF167A2     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF167A4 0C4 off_4FF167A4    DCD dword_4FF2A308      ; DATA XREF: LoadImage_kernelcache_img3+A�r
N88AP_iBoot:4FF167A8     ; int off_4FF167A8
N88AP_iBoot:4FF167A8 0C4 off_4FF167A8    DCD aKernelcacheImageCorrupt
N88AP_iBoot:4FF167A8                                             ; DATA XREF: LoadImage_kernelcache_img3+1C�r
N88AP_iBoot:4FF167A8                                             ; "Kernelcache image corrupt\n"
N88AP_iBoot:4FF167AC     ; int off_4FF167AC
N88AP_iBoot:4FF167AC 0C4 off_4FF167AC    DCD aKernelcacheTooLarge
N88AP_iBoot:4FF167AC                                             ; DATA XREF: LoadImage_kernelcache_img3+34�r
N88AP_iBoot:4FF167AC                                             ; "Kernelcache too large\n"
N88AP_iBoot:4FF167B0     ; char *dword_4FF167B0
N88AP_iBoot:4FF167B0 0C4 dword_4FF167B0  DCD 'krnl'              ; DATA XREF: LoadImage_kernelcache_img3+48�r
N88AP_iBoot:4FF167B4     ; int off_4FF167B4
N88AP_iBoot:4FF167B4 0C4 off_4FF167B4    DCD aKernelcacheImageNotValid
N88AP_iBoot:4FF167B4                                             ; DATA XREF: LoadImage_kernelcache_img3+60�r
N88AP_iBoot:4FF167B4                                             ; "Kernelcache image not valid\n"
N88AP_iBoot:4FF167B8 0C4 dword_4FF167B8  DCD 'comp'              ; DATA XREF: LoadImage_kernelcache_img3+78�r
N88AP_iBoot:4FF167BC     ; int dword_4FF167BC
N88AP_iBoot:4FF167BC 0C4 dword_4FF167BC  DCD 'lzss'              ; DATA XREF: LoadImage_kernelcache_img3+94�r
N88AP_iBoot:4FF167C0 0C4 off_4FF167C0    DCD aUnknownKernelcacheCompressionType
N88AP_iBoot:4FF167C0                                             ; DATA XREF: LoadImage_kernelcache_img3+9C�r
N88AP_iBoot:4FF167C0                                             ; "unknown kernelcache compression type\n"
N88AP_iBoot:4FF167C4     ; int off_4FF167C4
N88AP_iBoot:4FF167C4 0C4 off_4FF167C4    DCD aLoadingKernelCacheAtX___
N88AP_iBoot:4FF167C4                                             ; DATA XREF: LoadImage_kernelcache_img3+A8�r
N88AP_iBoot:4FF167C4                                             ; "Loading kernel cache at %#x..."
N88AP_iBoot:4FF167C8     ; int off_4FF167C8
N88AP_iBoot:4FF167C8 0C4 off_4FF167C8    DCD aDataStartsAtP      ; DATA XREF: LoadImage_kernelcache_img3+B2�r
N88AP_iBoot:4FF167C8                                             ; "data starts at %p\n"
N88AP_iBoot:4FF167CC 0C4 off_4FF167CC    DCD aUncompressedSizeTooLargeUMaxD
N88AP_iBoot:4FF167CC                                             ; DATA XREF: LoadImage_kernelcache_img3+E8�r
N88AP_iBoot:4FF167CC                                             ; "uncompressed size too large %u, max %d\n"...
N88AP_iBoot:4FF167D0     ; int off_4FF167D0
N88AP_iBoot:4FF167D0 0C4 off_4FF167D0    DCD aSizeMismatchFromLzssDShouldBeD
N88AP_iBoot:4FF167D0                                             ; DATA XREF: LoadImage_kernelcache_img3+108�r
N88AP_iBoot:4FF167D0                                             ; "size mismatch from lzss %d, should be %"...
N88AP_iBoot:4FF167D4     ; int off_4FF167D4
N88AP_iBoot:4FF167D4 0C4 off_4FF167D4    DCD aAdlerMismatch      ; DATA XREF: LoadImage_kernelcache_img3+128�r
N88AP_iBoot:4FF167D4                                             ; "adler mismatch\n"
N88AP_iBoot:4FF167D8     ; int off_4FF167D8
N88AP_iBoot:4FF167D8 0C4 off_4FF167D8    DCD aDone               ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF15F36�r
N88AP_iBoot:4FF167D8                                             ; "done\n"
N88AP_iBoot:4FF167DC     ; int dword_4FF167DC
N88AP_iBoot:4FF167DC 0C4 dword_4FF167DC  DCD 0xFEEDFACE          ; DATA XREF: LoadImage_kernelcache_img3+148�r
N88AP_iBoot:4FF167E0     ; int off_4FF167E0
N88AP_iBoot:4FF167E0 0C4 off_4FF167E0    DCD aLoad_macho_imageFailedToLoadDeviceTree
N88AP_iBoot:4FF167E0                                             ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF15F62�r
N88AP_iBoot:4FF167E0                                             ; "load_macho_image: failed to load device"...
N88AP_iBoot:4FF167E4 0C4 off_4FF167E4    DCD dword_4FF2CD04      ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF15F6E�r
N88AP_iBoot:4FF167E4                                             ; LoadImage_kernelcache_img3+3FC�r
N88AP_iBoot:4FF167E4                                             ; LoadImage_kernelcache_img3+410�r
N88AP_iBoot:4FF167E4                                             ; LoadImage_kernelcache_img3+424�r
N88AP_iBoot:4FF167E8 0C4 off_4FF167E8    DCD dword_4FF2CD10      ; DATA XREF: LoadImage_kernelcache_img3+178�r
N88AP_iBoot:4FF167E8                                             ; LoadImage_kernelcache_img3+1BC�r
N88AP_iBoot:4FF167EC 0C4 off_4FF167EC    DCD dword_4FF2CBCC      ; DATA XREF: LoadImage_kernelcache_img3+1A4�r
N88AP_iBoot:4FF167EC                                             ; LoadImage_kernelcache_img3+1A8�r
N88AP_iBoot:4FF167EC                                             ; LoadImage_kernelcache_img3:loc_4FF1607C�r
N88AP_iBoot:4FF167EC                                             ; LoadImage_kernelcache_img3+27C�r
N88AP_iBoot:4FF167EC                                             ; LoadImage_kernelcache_img3+2B2�r ...
N88AP_iBoot:4FF167F0 0C4 off_4FF167F0    DCD a__pagezero         ; DATA XREF: LoadImage_kernelcache_img3+1D0�r
N88AP_iBoot:4FF167F0                                             ; "__PAGEZERO"
N88AP_iBoot:4FF167F4 0C4 off_4FF167F4    DCD aKernelS            ; DATA XREF: LoadImage_kernelcache_img3+1F4�r
N88AP_iBoot:4FF167F4                                             ; "Kernel-%s"
N88AP_iBoot:4FF167F8 0C4 off_4FF167F8    DCD a__prelink          ; DATA XREF: LoadImage_kernelcache_img3+212�r
N88AP_iBoot:4FF167F8                                             ; "__PRELINK"
N88AP_iBoot:4FF167FC 0C4 off_4FF167FC    DCD dword_4FF2CD14      ; DATA XREF: LoadImage_kernelcache_img3+21C�r
N88AP_iBoot:4FF16800 0C4 off_4FF16800    DCD dword_4FF2CBC8      ; DATA XREF: LoadImage_kernelcache_img3+28E�r
N88AP_iBoot:4FF16804 0C4 off_4FF16804    DCD dword_4FF2A03C      ; DATA XREF: LoadImage_kernelcache_img3+2B6�r
N88AP_iBoot:4FF16804                                             ; LoadImage_kernelcache_img3+452�r
N88AP_iBoot:4FF16808 0C4 off_4FF16808    DCD dword_4FF214E8      ; DATA XREF: LoadImage_kernelcache_img3+2BC�r
N88AP_iBoot:4FF16808                                             ; LoadImage_kernelcache_img3+46E�r
N88AP_iBoot:4FF16808                                             ; LoadImage_kernelcache_img3+49C�r
N88AP_iBoot:4FF16808                                             ; LoadImage_kernelcache_img3+4CA�r
N88AP_iBoot:4FF16808                                             ; LoadImage_kernelcache_img3+4F8�r ...
N88AP_iBoot:4FF1680C 0C4 off_4FF1680C    DCD aRdMd0NandEnableReformat1Progress
N88AP_iBoot:4FF1680C                                             ; DATA XREF: LoadImage_kernelcache_img3+2C6�r
N88AP_iBoot:4FF1680C                                             ; "rd=md0 nand-enable-reformat=1 -progress"...
N88AP_iBoot:4FF16810 0C4 dword_4FF16810  DCD 'Teth'              ; DATA XREF: LoadImage_kernelcache_img3+2CA�r
N88AP_iBoot:4FF16814 0C4 off_4FF16814    DCD aIsTethered         ; DATA XREF: LoadImage_kernelcache_img3+2EA�r
N88AP_iBoot:4FF16814                                             ; LoadImage_kernelcache_img3:loc_4FF160FA�r
N88AP_iBoot:4FF16814                                             ; "is-tethered"
N88AP_iBoot:4FF16818     ; int off_4FF16818
N88AP_iBoot:4FF16818 0C4 off_4FF16818    DCD n88ap__iBOOT__gBootArgs.commandLine
N88AP_iBoot:4FF16818                                             ; DATA XREF: LoadImage_kernelcache_img3+302�r
N88AP_iBoot:4FF16818                                             ; LoadImage_kernelcache_img3:loc_4FF16114�r
N88AP_iBoot:4FF16818                                             ; LoadImage_kernelcache_img3+322�r
N88AP_iBoot:4FF16818                                             ; LoadImage_kernelcache_img3+330�r
N88AP_iBoot:4FF16818                                             ; LoadImage_kernelcache_img3+340�r ...
N88AP_iBoot:4FF1681C 0C4 off_4FF1681C    DCD aSForceUsbPower1    ; DATA XREF: LoadImage_kernelcache_img3+306�r
N88AP_iBoot:4FF1681C                                             ; "%s force-usb-power=1 "
N88AP_iBoot:4FF16820 0C4 off_4FF16820    DCD aS_2                ; DATA XREF: LoadImage_kernelcache_img3+314�r
N88AP_iBoot:4FF16820                                             ; "%s "
N88AP_iBoot:4FF16824     ; int off_4FF16824
N88AP_iBoot:4FF16824 0C4 off_4FF16824    DCD aGbootargs_commandlineS
N88AP_iBoot:4FF16824                                             ; DATA XREF: LoadImage_kernelcache_img3+326�r
N88AP_iBoot:4FF16824                                             ; "gBootArgs.commandLine = [%s]\n"
N88AP_iBoot:4FF16828 0C4 off_4FF16828    DCD aS_3                ; DATA XREF: LoadImage_kernelcache_img3+334�r
N88AP_iBoot:4FF16828                                             ; "-s"
N88AP_iBoot:4FF1682C 0C4 off_4FF1682C    DCD aV_1                ; DATA XREF: LoadImage_kernelcache_img3+344�r
N88AP_iBoot:4FF1682C                                             ; "-v"
N88AP_iBoot:4FF16830 0C4 off_4FF16830    DCD aDebug              ; DATA XREF: LoadImage_kernelcache_img3+35A�r
N88AP_iBoot:4FF16830                                             ; "debug="
N88AP_iBoot:4FF16834 0C4 off_4FF16834    DCD aForceUsbPower1     ; DATA XREF: LoadImage_kernelcache_img3+36E�r
N88AP_iBoot:4FF16834                                             ; "force-usb-power=1"
N88AP_iBoot:4FF16838 0C4 off_4FF16838    DCD dword_4FF2A148      ; DATA XREF: LoadImage_kernelcache_img3+37A�r
N88AP_iBoot:4FF1683C 0C4 off_4FF1683C    DCD dword_4FF2CD0C      ; DATA XREF: LoadImage_kernelcache_img3+398�r
N88AP_iBoot:4FF1683C                                             ; LoadImage_kernelcache_img3+3C0�r
N88AP_iBoot:4FF1683C                                             ; LoadImage_kernelcache_img3+3CE�r
N88AP_iBoot:4FF1683C                                             ; LoadImage_kernelcache_img3+3D8�r
N88AP_iBoot:4FF1683C                                             ; LoadImage_kernelcache_img3+5A6�r
N88AP_iBoot:4FF16840 0C4 off_4FF16840    DCD aVramSize           ; DATA XREF: LoadImage_kernelcache_img3+3AE�r
N88AP_iBoot:4FF16840                                             ; "vram-size"
N88AP_iBoot:4FF16844 0C4 off_4FF16844    DCD dword_4FF2CD08      ; DATA XREF: LoadImage_kernelcache_img3+3E2�r
N88AP_iBoot:4FF16844                                             ; LoadImage_kernelcache_img3+402�r
N88AP_iBoot:4FF16844                                             ; LoadImage_kernelcache_img3+420�r
N88AP_iBoot:4FF16848 0C4 off_4FF16848    DCD aDevicetree         ; DATA XREF: LoadImage_kernelcache_img3+428�r
N88AP_iBoot:4FF16848                                             ; "DeviceTree"
N88AP_iBoot:4FF1684C 0C4 off_4FF1684C    DCD dword_4FF2A040      ; DATA XREF: LoadImage_kernelcache_img3+43A�r
N88AP_iBoot:4FF16850 0C4 off_4FF16850    DCD aRamdisk            ; DATA XREF: LoadImage_kernelcache_img3+462�r
N88AP_iBoot:4FF16850                                             ; "RAMDisk"
N88AP_iBoot:4FF16854 0C4 off_4FF16854    DCD aModelNumber        ; DATA XREF: LoadImage_kernelcache_img3+47A�r
N88AP_iBoot:4FF16854                                             ; "model-number"
N88AP_iBoot:4FF16858 0C4 dword_4FF16858  DCD 'Mod#'              ; DATA XREF: LoadImage_kernelcache_img3+48E�r
N88AP_iBoot:4FF1685C 0C4 off_4FF1685C    DCD aRegionInfo         ; DATA XREF: LoadImage_kernelcache_img3+4A8�r
N88AP_iBoot:4FF1685C                                             ; "region-info"
N88AP_iBoot:4FF16860 0C4 dword_4FF16860  DCD 'Regn'              ; DATA XREF: LoadImage_kernelcache_img3+4BC�r
N88AP_iBoot:4FF16864 0C4 off_4FF16864    DCD aSerialNumber       ; DATA XREF: LoadImage_kernelcache_img3+4D6�r
N88AP_iBoot:4FF16864                                             ; "serial-number"
N88AP_iBoot:4FF16868 0C4 dword_4FF16868  DCD 'SrNm'              ; DATA XREF: LoadImage_kernelcache_img3+4EA�r
N88AP_iBoot:4FF1686C 0C4 off_4FF1686C    DCD aMlbSerialNumber    ; DATA XREF: LoadImage_kernelcache_img3+504�r
N88AP_iBoot:4FF1686C                                             ; "mlb-serial-number"
N88AP_iBoot:4FF16870 0C4 dword_4FF16870  DCD 'MLB#'              ; DATA XREF: LoadImage_kernelcache_img3+518�r
N88AP_iBoot:4FF16874 0C4 off_4FF16874    DCD aConfigNumber       ; DATA XREF: LoadImage_kernelcache_img3+532�r
N88AP_iBoot:4FF16874                                             ; "config-number"
N88AP_iBoot:4FF16878 0C4 dword_4FF16878  DCD 'CFG#'              ; DATA XREF: LoadImage_kernelcache_img3+546�r
N88AP_iBoot:4FF1687C 0C4 off_4FF1687C    DCD aPram               ; DATA XREF: LoadImage_kernelcache_img3+554�r
N88AP_iBoot:4FF1687C                                             ; "pram"
N88AP_iBoot:4FF16880 0C4 off_4FF16880    DCD aReg                ; DATA XREF: LoadImage_kernelcache_img3+560�r
N88AP_iBoot:4FF16880                                             ; LoadImage_kernelcache_img3+592�r
N88AP_iBoot:4FF16880                                             ; "reg"
N88AP_iBoot:4FF16884 0C4 off_4FF16884    DCD 0x4FFFC000          ; DATA XREF: LoadImage_kernelcache_img3+576�r
N88AP_iBoot:4FF16888 0C4 off_4FF16888    DCD aVram               ; DATA XREF: LoadImage_kernelcache_img3+586�r
N88AP_iBoot:4FF16888                                             ; "vram"
N88AP_iBoot:4FF1688C 0C4 off_4FF1688C    DCD aNetworkType        ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF163BC�r
N88AP_iBoot:4FF1688C                                             ; "network-type"
N88AP_iBoot:4FF16890 0C4 off_4FF16890    DCD aEthernet           ; DATA XREF: LoadImage_kernelcache_img3+5C2�r
N88AP_iBoot:4FF16890                                             ; LoadImage_kernelcache_img3+88C�r
N88AP_iBoot:4FF16890                                             ; "ethernet"
N88AP_iBoot:4FF16894 0C4 off_4FF16894    DCD aChosen             ; DATA XREF: LoadImage_kernelcache_img3+5D4�r
N88AP_iBoot:4FF16894                                             ; "chosen"
N88AP_iBoot:4FF16898     ; int off_4FF16898
N88AP_iBoot:4FF16898 0C4 off_4FF16898    DCD aUpdatedevicetreeFailedToFindTheChosenNode
N88AP_iBoot:4FF16898                                             ; DATA XREF: LoadImage_kernelcache_img3+5E0�r
N88AP_iBoot:4FF16898                                             ; "UpdateDeviceTree: failed to find the /c"...
N88AP_iBoot:4FF1689C 0C4 off_4FF1689C    DCD aDebugEnabled       ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF163EE�r
N88AP_iBoot:4FF1689C                                             ; "debug-enabled"
N88AP_iBoot:4FF168A0 0C4 off_4FF168A0    DCD aDevelopmentCert    ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16410�r
N88AP_iBoot:4FF168A0                                             ; "development-cert"
N88AP_iBoot:4FF168A4 0C4 off_4FF168A4    DCD aProductionCert     ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16434�r
N88AP_iBoot:4FF168A4                                             ; "production-cert"
N88AP_iBoot:4FF168A8 0C4 off_4FF168A8    DCD aGidAesKey          ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16458�r
N88AP_iBoot:4FF168A8                                             ; "gid-aes-key"
N88AP_iBoot:4FF168AC 0C4 off_4FF168AC    DCD aUidAesKey          ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF1647C�r
N88AP_iBoot:4FF168AC                                             ; "uid-aes-key"
N88AP_iBoot:4FF168B0 0C4 off_4FF168B0    DCD aSecureBoot         ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF164A0�r
N88AP_iBoot:4FF168B0                                             ; "secure-boot"
N88AP_iBoot:4FF168B4 0C4 off_4FF168B4    DCD aSoftwareBehavior   ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF164C4�r
N88AP_iBoot:4FF168B4                                             ; "software-behavior"
N88AP_iBoot:4FF168B8 0C4 dword_4FF168B8  DCD 'SwBh'              ; DATA XREF: LoadImage_kernelcache_img3+6D2�r
N88AP_iBoot:4FF168BC 0C4 off_4FF168BC    DCD aSystemTrusted      ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF164E0�r
N88AP_iBoot:4FF168BC                                             ; "system-trusted"
N88AP_iBoot:4FF168C0 0C4 off_4FF168C0    DCD aBoardId            ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16502�r
N88AP_iBoot:4FF168C0                                             ; "board-id"
N88AP_iBoot:4FF168C4 0C4 off_4FF168C4    DCD aChipId             ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF1651C�r
N88AP_iBoot:4FF168C4                                             ; "chip-id"
N88AP_iBoot:4FF168C8 0C4 off_4FF168C8    DCD aUniqueChipId       ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16536�r
N88AP_iBoot:4FF168C8                                             ; "unique-chip-id"
N88AP_iBoot:4FF168CC 0C4 off_4FF168CC    DCD aFirmwareVersion    ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16552�r
N88AP_iBoot:4FF168CC                                             ; "firmware-version"
N88AP_iBoot:4FF168D0 0C4 off_4FF168D0    DCD aIboot636_66        ; DATA XREF: LoadImage_kernelcache_img3+762�r
N88AP_iBoot:4FF168D0                                             ; "iBoot-636.66"
N88AP_iBoot:4FF168D4 0C4 off_4FF168D4    DCD aBootpResponse      ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF1656E�r
N88AP_iBoot:4FF168D4                                             ; "bootp-response"
N88AP_iBoot:4FF168D8 0C4 off_4FF168D8    DCD dword_4FF2CD18      ; DATA XREF: LoadImage_kernelcache_img3+77C�r
N88AP_iBoot:4FF168DC 0C4 off_4FF168DC    DCD aIpaddr             ; DATA XREF: LoadImage_kernelcache_img3+784�r
N88AP_iBoot:4FF168DC                                             ; "ipaddr"
N88AP_iBoot:4FF168E0 0C4 off_4FF168E0    DCD aGateway            ; DATA XREF: LoadImage_kernelcache_img3+79E�r
N88AP_iBoot:4FF168E0                                             ; LoadImage_kernelcache_img3+7A8�r
N88AP_iBoot:4FF168E0                                             ; "gateway"
N88AP_iBoot:4FF168E4 0C4 off_4FF168E4    DCD dword_4FF25954      ; DATA XREF: LoadImage_kernelcache_img3+7AE�r
N88AP_iBoot:4FF168E8 0C4 off_4FF168E8    DCD dword_4FF2595C      ; DATA XREF: LoadImage_kernelcache_img3+7BA�r
N88AP_iBoot:4FF168EC 0C4 off_4FF168EC    DCD aRd_1               ; DATA XREF: LoadImage_kernelcache_img3+7E0�r
N88AP_iBoot:4FF168EC                                             ; "rd="
N88AP_iBoot:4FF168F0 0C4 off_4FF168F0    DCD aRootMatching       ; DATA XREF: LoadImage_kernelcache_img3+7EA�r
N88AP_iBoot:4FF168F0                                             ; "root-matching"
N88AP_iBoot:4FF168F4 0C4 off_4FF168F4    DCD aDictKeyIoproviderclassKeyStringIomediaStringK
N88AP_iBoot:4FF168F4                                             ; DATA XREF: LoadImage_kernelcache_img3+800�r
N88AP_iBoot:4FF168F4                                             ; "<dict><key>IOProviderClass</key><string"...
N88AP_iBoot:4FF168F8 0C4 off_4FF168F8    DCD aPlatformName       ; DATA XREF: LoadImage_kernelcache_img3+814�r
N88AP_iBoot:4FF168F8                                             ; "platform-name"
N88AP_iBoot:4FF168FC 0C4 off_4FF168FC    DCD aS5l8920x           ; DATA XREF: LoadImage_kernelcache_img3+828�r
N88AP_iBoot:4FF168FC                                             ; "s5l8920x"
N88AP_iBoot:4FF16900 0C4 off_4FF16900    DCD aEthaddr            ; DATA XREF: LoadImage_kernelcache_img3+83C�r
N88AP_iBoot:4FF16900                                             ; LoadImage_kernelcache_img3+848�r
N88AP_iBoot:4FF16900                                             ; "ethaddr"
N88AP_iBoot:4FF16904 0C4 off_4FF16904    DCD aLocalMacAddress    ; DATA XREF: LoadImage_kernelcache_img3+86C�r
N88AP_iBoot:4FF16904                                             ; LoadImage_kernelcache_img3+896�r
N88AP_iBoot:4FF16904                                             ; LoadImage_kernelcache_img3+8E6�r
N88AP_iBoot:4FF16904                                             ; LoadImage_kernelcache_img3+974�r
N88AP_iBoot:4FF16904                                             ; "local-mac-address"
N88AP_iBoot:4FF16908 0C4 off_4FF16908    DCD aCompatible         ; DATA XREF: LoadImage_kernelcache_img3+8B6�r
N88AP_iBoot:4FF16908                                             ; "compatible"
N88AP_iBoot:4FF1690C 0C4 off_4FF1690C    DCD aXxx                ; DATA XREF: LoadImage_kernelcache_img3+8CA�r
N88AP_iBoot:4FF1690C                                             ; "xxx"
N88AP_iBoot:4FF16910     ; int off_4FF16910
N88AP_iBoot:4FF16910 0C4 off_4FF16910    DCD aEthernetDisabled   ; DATA XREF: LoadImage_kernelcache_img3+8D2�r
N88AP_iBoot:4FF16910                                             ; "Ethernet disabled\n"
N88AP_iBoot:4FF16914 0C4 off_4FF16914    DCD aArmIoSdio          ; DATA XREF: LoadImage_kernelcache_img3+8DA�r
N88AP_iBoot:4FF16914                                             ; "arm-io/sdio"
N88AP_iBoot:4FF16918 0C4 off_4FF16918    DCD aWifiaddr           ; DATA XREF: LoadImage_kernelcache_img3+8F8�r
N88AP_iBoot:4FF16918                                             ; LoadImage_kernelcache_img3+902�r
N88AP_iBoot:4FF16918                                             ; "wifiaddr"
N88AP_iBoot:4FF1691C 0C4 off_4FF1691C    DCD aTxCalibration      ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF1671C�r
N88AP_iBoot:4FF1691C                                             ; "tx-calibration"
N88AP_iBoot:4FF16920     ; int off_4FF16920
N88AP_iBoot:4FF16920 0C4 off_4FF16920    DCD aInstallingWifiCalibration
N88AP_iBoot:4FF16920                                             ; DATA XREF: LoadImage_kernelcache_img3+92A�r
N88AP_iBoot:4FF16920                                             ; "Installing WIFI Calibration\n"
N88AP_iBoot:4FF16924 0C4 off_4FF16924    DCD aVendorId           ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16746�r
N88AP_iBoot:4FF16924                                             ; "vendor-id"
N88AP_iBoot:4FF16928 0C4 off_4FF16928    DCD aArmIoUart3Bluetooth
N88AP_iBoot:4FF16928                                             ; DATA XREF: LoadImage_kernelcache_img3+966�r
N88AP_iBoot:4FF16928                                             ; "arm-io/uart3/bluetooth"
N88AP_iBoot:4FF1692C 0C4 off_4FF1692C    DCD aBtaddr             ; DATA XREF: LoadImage_kernelcache_img3+98A�r
N88AP_iBoot:4FF1692C                                             ; LoadImage_kernelcache_img3+998�r
N88AP_iBoot:4FF1692C                                             ; "btaddr"
N88AP_iBoot:4FF16930     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16930
N88AP_iBoot:4FF16930     loc_4FF16930                            ; CODE XREF: LoadImage_kernelcache_img3+992�j
N88AP_iBoot:4FF16930 0C4                 STR     R0, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF16932 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16934 0C4                 MOVS    R0, #4          ; Rd = Op2
N88AP_iBoot:4FF16936 0C4                 MOVS    R2, #6          ; Rd = Op2
N88AP_iBoot:4FF16938 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1693A 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF1693E
N88AP_iBoot:4FF1693E     loc_4FF1693E                            ; CODE XREF: LoadImage_kernelcache_img3+986�j
N88AP_iBoot:4FF1693E                                             ; LoadImage_kernelcache_img3+99E�j
N88AP_iBoot:4FF1693E 0C4                 LDR     R3, =aVendorId  ; "vendor-id"
N88AP_iBoot:4FF16940 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16942 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16944 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16946 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16948 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1694A 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1694E 0C4                 CBZ     R0, loc_4FF16960 ; Compare and Branch on Zero
N88AP_iBoot:4FF16950 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF16952 0C4                 MOVS    R0, #5          ; Rd = Op2
N88AP_iBoot:4FF16954 0C4                 STR     R3, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF16956 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16958 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF1695A 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1695C 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF16960
N88AP_iBoot:4FF16960     loc_4FF16960                            ; CODE XREF: LoadImage_kernelcache_img3+970�j
N88AP_iBoot:4FF16960                                             ; LoadImage_kernelcache_img3+B4A�j
N88AP_iBoot:4FF16960 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16962 0C4                 LDR     R1, =aBaseband  ; "baseband"
N88AP_iBoot:4FF16964 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16966 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF1696A 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF1696C 0C4                 BEQ     loc_4FF169CC    ; Branch
N88AP_iBoot:4FF1696E 0C4                 LDR     R3, =aBatteryId ; "battery-id"
N88AP_iBoot:4FF16970 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16972 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16974 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16976 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16978 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF1697A 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF1697E 0C4                 CBZ     R0, loc_4FF16988 ; Compare and Branch on Zero
N88AP_iBoot:4FF16980 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16982 0C4                 LDR     R1, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16984 0C4                 BL      sub_4FF10090    ; Branch with Link
N88AP_iBoot:4FF16988
N88AP_iBoot:4FF16988     loc_4FF16988                            ; CODE XREF: LoadImage_kernelcache_img3+B7A�j
N88AP_iBoot:4FF16988 0C4                 LDR     R3, =aDeviceImei ; "device-imei"
N88AP_iBoot:4FF1698A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF1698C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF1698E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16990 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16992 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16994 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16998 0C4                 CBZ     R0, loc_4FF169AA ; Compare and Branch on Zero
N88AP_iBoot:4FF1699A 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF1699C 0C4                 MOVS    R0, #7          ; Rd = Op2
N88AP_iBoot:4FF1699E 0C4                 STR     R3, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF169A0 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF169A2 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF169A4 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169A6 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF169AA
N88AP_iBoot:4FF169AA     loc_4FF169AA                            ; CODE XREF: LoadImage_kernelcache_img3+B94�j
N88AP_iBoot:4FF169AA 0C4                 LDR     R3, =aSnum      ; "snum"
N88AP_iBoot:4FF169AC 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF169AE 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF169B0 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF169B2 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169B4 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169B6 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF169BA 0C4                 CBZ     R0, loc_4FF169CC ; Compare and Branch on Zero
N88AP_iBoot:4FF169BC 0C4                 MOVS    R3, #0          ; Rd = Op2
N88AP_iBoot:4FF169BE 0C4                 MOVS    R0, #8          ; Rd = Op2
N88AP_iBoot:4FF169C0 0C4                 STR     R3, [SP,#0xC4+var_78] ; Store to Memory
N88AP_iBoot:4FF169C2 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF169C4 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF169C6 0C4                 ADD     R3, SP, #0xC4+var_78 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169C8 0C4                 BL      sub_4FF1A638    ; Branch with Link
N88AP_iBoot:4FF169CC
N88AP_iBoot:4FF169CC     loc_4FF169CC                            ; CODE XREF: LoadImage_kernelcache_img3+B68�j
N88AP_iBoot:4FF169CC                                             ; LoadImage_kernelcache_img3+BB6�j
N88AP_iBoot:4FF169CC 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF169CE 0C4                 LDR     R1, =aCharger   ; "charger"
N88AP_iBoot:4FF169D0 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169D2 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF169D6 0C4                 CBZ     R0, loc_4FF16A0C ; Compare and Branch on Zero
N88AP_iBoot:4FF169D8 0C4                 LDR     R3, =aBatteryId ; "battery-id"
N88AP_iBoot:4FF169DA 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF169DC 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF169DE 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF169E0 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169E2 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169E4 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF169E8 0C4                 CBZ     R0, loc_4FF169F2 ; Compare and Branch on Zero
N88AP_iBoot:4FF169EA 0C4                 LDR     R0, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF169EC 0C4                 LDR     R1, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF169EE 0C4                 BL      sub_4FF10090    ; Branch with Link
N88AP_iBoot:4FF169F2
N88AP_iBoot:4FF169F2     loc_4FF169F2                            ; CODE XREF: LoadImage_kernelcache_img3+BE4�j
N88AP_iBoot:4FF169F2 0C4                 LDR     R3, =aBootVoltage ; "boot-voltage"
N88AP_iBoot:4FF169F4 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF169F6 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF169F8 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF169FA 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169FC 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF169FE 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16A02 0C4                 CBZ     R0, loc_4FF16A0C ; Compare and Branch on Zero
N88AP_iBoot:4FF16A04 0C4                 LDR     R4, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16A06 0C4                 BL      sub_4FF04B90    ; Branch with Link
N88AP_iBoot:4FF16A0A 0C4                 STR     R0, [R4]        ; Store to Memory
N88AP_iBoot:4FF16A0C
N88AP_iBoot:4FF16A0C     loc_4FF16A0C                            ; CODE XREF: LoadImage_kernelcache_img3+BD2�j
N88AP_iBoot:4FF16A0C                                             ; LoadImage_kernelcache_img3+BFE�j
N88AP_iBoot:4FF16A0C 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16A0E 0C4                 LDR     R1, =aArmIoSpi1MultiTouch ; "arm-io/spi1/multi-touch"
N88AP_iBoot:4FF16A10 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A12 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16A16 0C4                 CBZ     R0, loc_4FF16A50 ; Compare and Branch on Zero
N88AP_iBoot:4FF16A18 0C4                 LDR     R3, =aMultiTouchCalibration ; "multi-touch-calibration"
N88AP_iBoot:4FF16A1A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16A1C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A1E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16A20 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A22 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A24 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16A28 0C4                 CBZ     R0, loc_4FF16A34 ; Compare and Branch on Zero
N88AP_iBoot:4FF16A2A 0C4                 LDR     R0, ='MtCl'     ; Load from Memory
N88AP_iBoot:4FF16A2C 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16A2E 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16A30 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF16A34
N88AP_iBoot:4FF16A34     loc_4FF16A34                            ; CODE XREF: LoadImage_kernelcache_img3+C24�j
N88AP_iBoot:4FF16A34 0C4                 LDR     R3, =aProxCalibration ; "prox-calibration"
N88AP_iBoot:4FF16A36 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16A38 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A3A 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16A3C 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A3E 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A40 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16A44 0C4                 CBZ     R0, loc_4FF16A50 ; Compare and Branch on Zero
N88AP_iBoot:4FF16A46 0C4                 LDR     R0, ='PxCl'     ; Load from Memory
N88AP_iBoot:4FF16A48 0C4                 LDR     R1, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16A4A 0C4                 LDR     R2, [SP,#0xC4+param_R3] ; Load from Memory
N88AP_iBoot:4FF16A4C 0C4                 BL      sub_4FF17C24    ; Branch with Link
N88AP_iBoot:4FF16A50
N88AP_iBoot:4FF16A50     loc_4FF16A50                            ; CODE XREF: LoadImage_kernelcache_img3+C12�j
N88AP_iBoot:4FF16A50                                             ; LoadImage_kernelcache_img3+C40�j
N88AP_iBoot:4FF16A50 0C4                 BL      sub_4FF189A4    ; Branch with Link
N88AP_iBoot:4FF16A54 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16A56 0C4                 BLT     loc_4FF16AD4    ; Branch
N88AP_iBoot:4FF16A58 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16A5A 0C4                 LDR     R1, =aChosenIboot ; "chosen/iBoot"
N88AP_iBoot:4FF16A5C 0C4                 ADD     R2, SP, #0xC4+var_60 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A5E 0C4                 BL      sub_4FF13964    ; Branch with Link
N88AP_iBoot:4FF16A62 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16A64 0C4                 BEQ     loc_4FF16AD4    ; Branch
N88AP_iBoot:4FF16A66 0C4                 BL      sub_4FF19F20    ; Branch with Link
N88AP_iBoot:4FF16A6A 0C4                 LDR     R3, =aStartTime ; "start-time"
N88AP_iBoot:4FF16A6C 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A6E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16A70 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A72 0C4                 MOV     R10, R0         ; Rd = Op2
N88AP_iBoot:4FF16A74 0C4                 MOV     R11, R1         ; Rd = Op2
N88AP_iBoot:4FF16A76 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16A78 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A7A 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16A7E 0C4                 CBZ     R0, loc_4FF16A88 ; Compare and Branch on Zero
N88AP_iBoot:4FF16A80 0C4                 LDR     R3, =dword_4FF2DC60 ; Load from Memory
N88AP_iBoot:4FF16A82 0C4                 LDR     R2, [R3]        ; Load from Memory
N88AP_iBoot:4FF16A84 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16A86 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16A88
N88AP_iBoot:4FF16A88     loc_4FF16A88                            ; CODE XREF: LoadImage_kernelcache_img3+C7A�j
N88AP_iBoot:4FF16A88 0C4                 LDR     R3, =aDebugWaitStart ; "debug-wait-start"
N88AP_iBoot:4FF16A8A 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16A8C 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A8E 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16A90 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A92 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16A94 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16A98 0C4                 CBZ     R0, loc_4FF16AA2 ; Compare and Branch on Zero
N88AP_iBoot:4FF16A9A 0C4                 LDR     R3, =dword_4FF2DC48 ; Load from Memory
N88AP_iBoot:4FF16A9C 0C4                 LDR     R2, [R3]        ; Load from Memory
N88AP_iBoot:4FF16A9E 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16AA0 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16AA2
N88AP_iBoot:4FF16AA2     loc_4FF16AA2                            ; CODE XREF: LoadImage_kernelcache_img3+C94�j
N88AP_iBoot:4FF16AA2 0C4                 LDR     R3, =aLoadKernelStart ; "load-kernel-start"
N88AP_iBoot:4FF16AA4 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16AA6 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AA8 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16AAA 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AAC 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AAE 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16AB2 0C4                 CBZ     R0, loc_4FF16ABC ; Compare and Branch on Zero
N88AP_iBoot:4FF16AB4 0C4                 LDR     R3, =dword_4FF2DC50 ; Load from Memory
N88AP_iBoot:4FF16AB6 0C4                 LDR     R2, [R3]        ; Load from Memory
N88AP_iBoot:4FF16AB8 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16ABA 0C4                 STR     R2, [R3]        ; Store to Memory
N88AP_iBoot:4FF16ABC
N88AP_iBoot:4FF16ABC     loc_4FF16ABC                            ; CODE XREF: LoadImage_kernelcache_img3+CAE�j
N88AP_iBoot:4FF16ABC 0C4                 LDR     R3, =aPopulateRegistryTime ; "populate-registry-time"
N88AP_iBoot:4FF16ABE 0C4                 LDR     R0, [SP,#0xC4+var_60] ; Load from Memory
N88AP_iBoot:4FF16AC0 0C4                 ADD     R1, SP, #0xC4+var_6C ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AC2 0C4                 STR     R3, [SP,#0xC4+var_6C] ; Store to Memory
N88AP_iBoot:4FF16AC4 0C4                 ADD     R2, SP, #0xC4+param_R2 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AC6 0C4                 ADD     R3, SP, #0xC4+param_R3 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AC8 0C4                 BL      sub_4FF1390C    ; Branch with Link
N88AP_iBoot:4FF16ACC 0C4                 CBZ     R0, loc_4FF16AD4 ; Compare and Branch on Zero
N88AP_iBoot:4FF16ACE 0C4                 LDR     R3, [SP,#0xC4+param_R2] ; Load from Memory
N88AP_iBoot:4FF16AD0 0C4                 STR.W   R10, [R3]       ; Store to Memory
N88AP_iBoot:4FF16AD4
N88AP_iBoot:4FF16AD4     loc_4FF16AD4                            ; CODE XREF: LoadImage_kernelcache_img3+5E8�j
N88AP_iBoot:4FF16AD4                                             ; LoadImage_kernelcache_img3+C52�j
N88AP_iBoot:4FF16AD4                                             ; LoadImage_kernelcache_img3+C60�j
N88AP_iBoot:4FF16AD4                                             ; LoadImage_kernelcache_img3+CC8�j
N88AP_iBoot:4FF16AD4 0C4                 MOV.W   R0, #0x1000     ; Rd = Op2
N88AP_iBoot:4FF16AD8 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF16ADC 0C4                 LDR     R3, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16ADE 0C4                 LDR     R4, =dword_4FF2DC40 ; Load from Memory
N88AP_iBoot:4FF16AE0 0C4                 MOV.W   R2, #0x1000     ; Rd = Op2
N88AP_iBoot:4FF16AE4 0C4                 LDR     R1, [R3,#8]     ; Load from Memory
N88AP_iBoot:4FF16AE6 0C4                 LDR     R3, [R3,#4]     ; Load from Memory
N88AP_iBoot:4FF16AE8 0C4                 SUBS    R1, R1, R3      ; Rd = Op1 - Op2
N88AP_iBoot:4FF16AEA 0C4                 ADDS    R1, R1, R0      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16AEC 0C4                 LDR     R0, =aBootargs  ; "BootArgs"
N88AP_iBoot:4FF16AEE 0C4                 STR     R1, [R4]        ; Store to Memory
N88AP_iBoot:4FF16AF0 0C4                 BL      N88AP__iBoot__AllocateMemoryRange ; Branch with Link
N88AP_iBoot:4FF16AF4 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16AF6 0C4                 BL      sub_4FF15CC8    ; Branch with Link
N88AP_iBoot:4FF16AFA 0C4                 LDR     R1, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16AFC 0C4                 LDR     R3, [R1,#4]     ; Load from Memory
N88AP_iBoot:4FF16AFE 0C4                 LDR     R2, [R1,#8]     ; Load from Memory
N88AP_iBoot:4FF16B00 0C4                 SUBS    R2, R2, R3      ; Rd = Op1 - Op2
N88AP_iBoot:4FF16B02 0C4                 LDR     R3, =0xFFFFC000 ; Load from Memory
N88AP_iBoot:4FF16B04 0C4                 ADD.W   R0, R0, #0x3000 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16B08 0C4                 ANDS    R0, R3          ; Rd = Op1 & Op2
N88AP_iBoot:4FF16B0A 0C4                 ADD.W   R3, R2, R0      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16B0E 0C4                 MOV.W   R2, #0x1000     ; Rd = Op2
N88AP_iBoot:4FF16B12 0C4                 STR     R3, [R1,#0x10]  ; Store to Memory
N88AP_iBoot:4FF16B14 0C4                 LDR     R0, [R4]        ; Load from Memory
N88AP_iBoot:4FF16B16 0C4                 MOVS    R1, #0          ; Rd = Op2
N88AP_iBoot:4FF16B18 0C4                 BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16B1C 0C4                 LDR     R1, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16B1E 0C4                 MOV.W   R2, #0x138      ; Rd = Op2
N88AP_iBoot:4FF16B22 0C4                 LDR     R0, [R4]        ; Load from Memory
N88AP_iBoot:4FF16B24 0C4                 BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address)
N88AP_iBoot:4FF16B28 0C4                 LDR     R0, =0x40000090 ; Load from Memory
N88AP_iBoot:4FF16B2A 0C4                 BL      N88AP__iBOOT__iBootSleepValid ; Branch with Link
N88AP_iBoot:4FF16B2E 0C4                 LDR     R3, =dword_4FF2CBC8 ; Load from Memory
N88AP_iBoot:4FF16B30 0C4                 LDR     R3, [R3]        ; Load from Memory
N88AP_iBoot:4FF16B32 0C4                 CBNZ    R3, loc_4FF16B40 ; Compare and Branch on Non-Zero
N88AP_iBoot:4FF16B34
N88AP_iBoot:4FF16B34     loc_4FF16B34                            ; CODE XREF: LoadImage_kernelcache_img3+166�j
N88AP_iBoot:4FF16B34                                             ; LoadImage_kernelcache_img3+29A�j
N88AP_iBoot:4FF16B34 0C4                 MOVS    R0, #1          ; Rd = Op2
N88AP_iBoot:4FF16B36 0C4                 BL      sub_4FF1A10C    ; Branch with Link
N88AP_iBoot:4FF16B3A 0C4                 MOV     R0, 0xFFFFFFF9
N88AP_iBoot:4FF16B3E 0C4                 B       loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF16B40     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16B40
N88AP_iBoot:4FF16B40     loc_4FF16B40                            ; CODE XREF: LoadImage_kernelcache_img3+D2E�j
N88AP_iBoot:4FF16B40 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16B42 0C4                 STR.W   R3, [R8]        ; Store to Memory
N88AP_iBoot:4FF16B46 0C4                 B       loc_4FF16BA8    ; Branch
N88AP_iBoot:4FF16B48     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16B48
N88AP_iBoot:4FF16B48     loc_4FF16B48                            ; CODE XREF: LoadImage_kernelcache_img3+8A�j
N88AP_iBoot:4FF16B48 0C4                 LDR     R6, [SP,#0xC4+var_58] ; Load from Memory
N88AP_iBoot:4FF16B4A 0C4                 LDR     R0, [R6]        ; Load from Memory
N88AP_iBoot:4FF16B4C 0C4                 BL      sub_4FF1F408    ; Branch with Link
N88AP_iBoot:4FF16B50 0C4                 CMP     R0, R4          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16B52 0C4                 IT NE                   ; If Then
N88AP_iBoot:4FF16B54 0C4                 LDRNE   R0, =aUnknownKernelcacheSignature ; "unknown kernelcache signature\n"
N88AP_iBoot:4FF16B56 0C4                 BNE.W   loc_4FF15F30    ; Branch
N88AP_iBoot:4FF16B5A 0C4                 B.W     loc_4FF15E92    ; Branch
N88AP_iBoot:4FF16B5E     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16B5E
N88AP_iBoot:4FF16B5E     loc_4FF16B5E                            ; CODE XREF: LoadImage_kernelcache_img3+15A�j
N88AP_iBoot:4FF16B5E 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16B60 0C4                 MOVS    R2, #1          ; Rd = Op2
N88AP_iBoot:4FF16B62 0C4                 MOV     R1, R0          ; Rd = Op2
N88AP_iBoot:4FF16B64 0C4                 BL      sub_4FF19FF0    ; Branch with Link
N88AP_iBoot:4FF16B68 0C4                 LDR     R2, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16B6A 0C4                 MOV.W   R3, #1          ; Rd = Op2
N88AP_iBoot:4FF16B6E 0C4                 LDR     R6, [SP,#0xC4+var_58] ; Load from Memory
N88AP_iBoot:4FF16B70 0C4                 STRH    R3, [R2]        ; Store to Memory
N88AP_iBoot:4FF16B72 0C4                 BL      sub_4FF1E3F8    ; Branch with Link
N88AP_iBoot:4FF16B76 0C4                 LDR     R1, =dword_4FF2CBCC ; Load from Memory
N88AP_iBoot:4FF16B78 0C4                 MOV.W   R3, #0xC0000000 ; Rd = Op2
N88AP_iBoot:4FF16B7C 0C4                 STR     R3, [R1,#4]     ; Store to Memory
N88AP_iBoot:4FF16B7E 0C4                 ADD.W   R3, R3, #0x80000000 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16B82 0C4                 STR     R3, [R1,#8]     ; Store to Memory
N88AP_iBoot:4FF16B84 0C4                 ADD.W   R3, R3, #0xD0000000 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16B88 0C4                 STR     R3, [R1,#0xC]   ; Store to Memory
N88AP_iBoot:4FF16B8A 0C4                 ADDS    R0, #1          ; Rd = Op1 + Op2
N88AP_iBoot:4FF16B8C 0C4                 STRH    R0, [R1,#2]     ; Store to Memory
N88AP_iBoot:4FF16B8E 0C4                 LDR     R0, =dword_4FF2CD04 ; Load from Memory
N88AP_iBoot:4FF16B90 0C4                 LDR     R1, =dword_4FF2CD08 ; Load from Memory
N88AP_iBoot:4FF16B92 0C4                 BL      sub_4FF13AEC    ; Branch with Link
N88AP_iBoot:4FF16B96 0C4                 CMP     R0, #0          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16B98 0C4                 MOV     R4, R0          ; Rd = Op2
N88AP_iBoot:4FF16B9A 0C4                 BGE.W   loc_4FF15F6E    ; Branch
N88AP_iBoot:4FF16B9E 0C4                 B.W     loc_4FF15F62    ; Branch
N88AP_iBoot:4FF16BA2     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16BA2
N88AP_iBoot:4FF16BA2     loc_4FF16BA2                            ; CODE XREF: LoadImage_kernelcache_img3+198�j
N88AP_iBoot:4FF16BA2                                             ; LoadImage_kernelcache_img3+1E0�j
N88AP_iBoot:4FF16BA2                                             ; LoadImage_kernelcache_img3+262�j
N88AP_iBoot:4FF16BA2                                             ; LoadImage_kernelcache_img3+274�j
N88AP_iBoot:4FF16BA2                                             ; LoadImage_kernelcache_img3+294�j
N88AP_iBoot:4FF16BA2 0C4                 MOVS    R0, #0          ; Rd = Op2
N88AP_iBoot:4FF16BA4 0C4                 B.W     loc_4FF160A2    ; Branch
N88AP_iBoot:4FF16BA8     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16BA8
N88AP_iBoot:4FF16BA8     loc_4FF16BA8                            ; CODE XREF: LoadImage_kernelcache_img3+28�j
N88AP_iBoot:4FF16BA8                                             ; LoadImage_kernelcache_img3+40�j
N88AP_iBoot:4FF16BA8                                             ; LoadImage_kernelcache_img3+6C�j
N88AP_iBoot:4FF16BA8                                             ; LoadImage_kernelcache_img3+86�j
N88AP_iBoot:4FF16BA8                                             ; LoadImage_kernelcache_img3+142�j ...
N88AP_iBoot:4FF16BA8 0C4                 LDR     R2, [SP,#0xC4+var_24] ; Load from Memory
N88AP_iBoot:4FF16BAA 0C4                 LDR     R3, [R5]        ; Load from Memory
N88AP_iBoot:4FF16BAC 0C4                 CMP     R2, R3          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16BAE 0C4                 BEQ     loc_4FF16BB4    ; Branch
N88AP_iBoot:4FF16BB0 0C4                 BL      N88AP__iBOOT____stack_chk_fail ; Branch with Link
N88AP_iBoot:4FF16BB4     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16BB4
N88AP_iBoot:4FF16BB4     loc_4FF16BB4                            ; CODE XREF: LoadImage_kernelcache_img3+DAA�j
N88AP_iBoot:4FF16BB4 0C4                 SUB.W   SP, R7, #0x18   ; Rd = Op1 - Op2
N88AP_iBoot:4FF16BB8 0C4                 POP.W   {R8,R10,R11}    ; Pop registers
N88AP_iBoot:4FF16BBC 0B8                 POP     {R4-R7,PC}      ; Pop registers
N88AP_iBoot:4FF16BBC     ; End of function LoadImage_kernelcache_img3
N88AP_iBoot:4FF16BBC
N88AP_iBoot:4FF16BBC     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16BBE                     DCW 0xBF00
N88AP_iBoot:4FF16BC0     off_4FF16BC0    DCD aVendorId           ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF1693E�r
N88AP_iBoot:4FF16BC0                                             ; "vendor-id"
N88AP_iBoot:4FF16BC4     off_4FF16BC4    DCD aBaseband           ; DATA XREF: LoadImage_kernelcache_img3+B5E�r
N88AP_iBoot:4FF16BC4                                             ; "baseband"
N88AP_iBoot:4FF16BC8     off_4FF16BC8    DCD aBatteryId          ; DATA XREF: LoadImage_kernelcache_img3+B6A�r
N88AP_iBoot:4FF16BC8                                             ; LoadImage_kernelcache_img3+BD4�r
N88AP_iBoot:4FF16BC8                                             ; "battery-id"
N88AP_iBoot:4FF16BCC     off_4FF16BCC    DCD aDeviceImei         ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16988�r
N88AP_iBoot:4FF16BCC                                             ; "device-imei"
N88AP_iBoot:4FF16BD0     off_4FF16BD0    DCD aSnum               ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF169AA�r
N88AP_iBoot:4FF16BD0                                             ; "snum"
N88AP_iBoot:4FF16BD4     off_4FF16BD4    DCD aCharger            ; DATA XREF: LoadImage_kernelcache_img3+BCA�r
N88AP_iBoot:4FF16BD4                                             ; "charger"
N88AP_iBoot:4FF16BD8     off_4FF16BD8    DCD aBootVoltage        ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF169F2�r
N88AP_iBoot:4FF16BD8                                             ; "boot-voltage"
N88AP_iBoot:4FF16BDC     off_4FF16BDC    DCD aArmIoSpi1MultiTouch
N88AP_iBoot:4FF16BDC                                             ; DATA XREF: LoadImage_kernelcache_img3+C0A�r
N88AP_iBoot:4FF16BDC                                             ; "arm-io/spi1/multi-touch"
N88AP_iBoot:4FF16BE0     off_4FF16BE0    DCD aMultiTouchCalibration
N88AP_iBoot:4FF16BE0                                             ; DATA XREF: LoadImage_kernelcache_img3+C14�r
N88AP_iBoot:4FF16BE0                                             ; "multi-touch-calibration"
N88AP_iBoot:4FF16BE4     dword_4FF16BE4  DCD 'MtCl'              ; DATA XREF: LoadImage_kernelcache_img3+C26�r
N88AP_iBoot:4FF16BE8     off_4FF16BE8    DCD aProxCalibration    ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16A34�r
N88AP_iBoot:4FF16BE8                                             ; "prox-calibration"
N88AP_iBoot:4FF16BEC     dword_4FF16BEC  DCD 'PxCl'              ; DATA XREF: LoadImage_kernelcache_img3+C42�r
N88AP_iBoot:4FF16BF0     off_4FF16BF0    DCD aChosenIboot        ; DATA XREF: LoadImage_kernelcache_img3+C56�r
N88AP_iBoot:4FF16BF0                                             ; "chosen/iBoot"
N88AP_iBoot:4FF16BF4     off_4FF16BF4    DCD aStartTime          ; DATA XREF: LoadImage_kernelcache_img3+C66�r
N88AP_iBoot:4FF16BF4                                             ; "start-time"
N88AP_iBoot:4FF16BF8     off_4FF16BF8    DCD dword_4FF2DC60      ; DATA XREF: LoadImage_kernelcache_img3+C7C�r
N88AP_iBoot:4FF16BFC     off_4FF16BFC    DCD aDebugWaitStart     ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16A88�r
N88AP_iBoot:4FF16BFC                                             ; "debug-wait-start"
N88AP_iBoot:4FF16C00     off_4FF16C00    DCD dword_4FF2DC48      ; DATA XREF: LoadImage_kernelcache_img3+C96�r
N88AP_iBoot:4FF16C04     off_4FF16C04    DCD aLoadKernelStart    ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16AA2�r
N88AP_iBoot:4FF16C04                                             ; "load-kernel-start"
N88AP_iBoot:4FF16C08     off_4FF16C08    DCD dword_4FF2DC50      ; DATA XREF: LoadImage_kernelcache_img3+CB0�r
N88AP_iBoot:4FF16C0C     off_4FF16C0C    DCD aPopulateRegistryTime
N88AP_iBoot:4FF16C0C                                             ; DATA XREF: LoadImage_kernelcache_img3:loc_4FF16ABC�r
N88AP_iBoot:4FF16C0C                                             ; "populate-registry-time"
N88AP_iBoot:4FF16C10     off_4FF16C10    DCD dword_4FF2CBCC      ; DATA XREF: LoadImage_kernelcache_img3+CD8�r
N88AP_iBoot:4FF16C10                                             ; LoadImage_kernelcache_img3+CF6�r
N88AP_iBoot:4FF16C10                                             ; LoadImage_kernelcache_img3+D18�r
N88AP_iBoot:4FF16C10                                             ; LoadImage_kernelcache_img3+D64�r
N88AP_iBoot:4FF16C10                                             ; LoadImage_kernelcache_img3+D72�r
N88AP_iBoot:4FF16C14     off_4FF16C14    DCD dword_4FF2DC40      ; DATA XREF: LoadImage_kernelcache_img3+CDA�r
N88AP_iBoot:4FF16C18     off_4FF16C18    DCD aBootargs           ; DATA XREF: LoadImage_kernelcache_img3+CE8�r
N88AP_iBoot:4FF16C18                                             ; "BootArgs"
N88AP_iBoot:4FF16C1C     dword_4FF16C1C  DCD 0xFFFFC000          ; DATA XREF: LoadImage_kernelcache_img3+CFE�r
N88AP_iBoot:4FF16C20     dword_4FF16C20  DCD 0x40000090          ; DATA XREF: LoadImage_kernelcache_img3+D24�r
N88AP_iBoot:4FF16C24     off_4FF16C24    DCD dword_4FF2CBC8      ; DATA XREF: LoadImage_kernelcache_img3+D2A�r
N88AP_iBoot:4FF16C28     off_4FF16C28    DCD aUnknownKernelcacheSignature
N88AP_iBoot:4FF16C28                                             ; DATA XREF: LoadImage_kernelcache_img3+D50�r
N88AP_iBoot:4FF16C28                                             ; "unknown kernelcache signature\n"
N88AP_iBoot:4FF16C2C     off_4FF16C2C    DCD dword_4FF2CD04      ; DATA XREF: LoadImage_kernelcache_img3+D8A�r
N88AP_iBoot:4FF16C30     off_4FF16C30    DCD dword_4FF2CD08      ; DATA XREF: LoadImage_kernelcache_img3+D8C�r
N88AP_iBoot:4FF16C34
N88AP_iBoot:4FF16C34     ; =============== S U B R O U T I N E =======================================
N88AP_iBoot:4FF16C34
N88AP_iBoot:4FF16C34
N88AP_iBoot:4FF16C34     sub_4FF16C34                            ; CODE XREF: N88AP__iBoot__load_bank_partitions+6E�p
N88AP_iBoot:4FF16C34                                             ; N88AP__iBoot__load_bank_partitions+D0�p
N88AP_iBoot:4FF16C34                                             ; N88AP__iBoot__nvram_save+D2�p
N88AP_iBoot:4FF16C34                                             ; N88AP__iBoot__nvram_save+120�p
N88AP_iBoot:4FF16C34                                             ; N88AP__iBoot__nvram_save+178�p
N88AP_iBoot:4FF16C34 000                 LDRB    R3, [R0]        ; Load from Memory
N88AP_iBoot:4FF16C36 000                 ADDS    R2, R0, #2      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16C38 000                 ADD.W   R12, R0, #0x10  ; Rd = Op1 + Op2
N88AP_iBoot:4FF16C3C 000                 B       loc_4FF16C46    ; Branch
N88AP_iBoot:4FF16C3E     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16C3E
N88AP_iBoot:4FF16C3E     loc_4FF16C3E                            ; CODE XREF: sub_4FF16C34+18�j
N88AP_iBoot:4FF16C3E 000                 LDRB.W  R0, [R2,#-1]    ; Load from Memory
N88AP_iBoot:4FF16C42 000                 ADD     R0, R3          ; Rd = Op1 + Op2
N88AP_iBoot:4FF16C44 000                 UXTH    R3, R0          ; Unsigned extend halfword to word
N88AP_iBoot:4FF16C46
N88AP_iBoot:4FF16C46     loc_4FF16C46                            ; CODE XREF: sub_4FF16C34+8�j
N88AP_iBoot:4FF16C46 000                 MOV     R1, R2          ; Rd = Op2
N88AP_iBoot:4FF16C48 000                 ADDS    R2, #1          ; Rd = Op1 + Op2
N88AP_iBoot:4FF16C4A 000                 CMP     R12, R1         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16C4C 000                 BHI     loc_4FF16C3E    ; Branch
N88AP_iBoot:4FF16C4E 000                 B       loc_4FF16C58    ; Branch
N88AP_iBoot:4FF16C50     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16C50
N88AP_iBoot:4FF16C50     loc_4FF16C50                            ; CODE XREF: sub_4FF16C34+26�j
N88AP_iBoot:4FF16C50 000                 AND.W   R2, R3, #0xFF   ; Rd = Op1 & Op2
N88AP_iBoot:4FF16C54 000                 ADD.W   R3, R2, R3,LSR#8 ; Rd = Op1 + Op2
N88AP_iBoot:4FF16C58
N88AP_iBoot:4FF16C58     loc_4FF16C58                            ; CODE XREF: sub_4FF16C34+1A�j
N88AP_iBoot:4FF16C58 000                 CMP     R3, #0xFF       ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16C5A 000                 BHI     loc_4FF16C50    ; Branch
N88AP_iBoot:4FF16C5C 000                 UXTB    R0, R3          ; Unsigned extend byte to word
N88AP_iBoot:4FF16C5E 000                 BX      LR              ; Branch to/from Thumb mode
N88AP_iBoot:4FF16C5E     ; End of function sub_4FF16C34
N88AP_iBoot:4FF16C5E
N88AP_iBoot:4FF16C60
N88AP_iBoot:4FF16C60     ; =============== S U B R O U T I N E =======================================
N88AP_iBoot:4FF16C60
N88AP_iBoot:4FF16C60
N88AP_iBoot:4FF16C60     sub_4FF16C60                            ; CODE XREF: N88AP__iBoot__load_bank_partitions+1F2�p
N88AP_iBoot:4FF16C60                                             ; N88AP__iBoot__nvram_save+1B2�p
N88AP_iBoot:4FF16C60 000                 PUSH    {R4,LR}         ; Push registers
N88AP_iBoot:4FF16C62 008                 LDR.W   R12, =off_4FF2A2FC ; Load from Memory
N88AP_iBoot:4FF16C66 008                 LDR.W   R9, =dword_4FF2CE64 ; Load from Memory
N88AP_iBoot:4FF16C6A 008                 LDR.W   LR, =dword_4FF2CE60 ; Load from Memory
N88AP_iBoot:4FF16C6E 008                 LDR.W   R3, [R12,#4]    ; Load from Memory
N88AP_iBoot:4FF16C72 008                 LDR.W   R4, [R9]        ; Load from Memory
N88AP_iBoot:4FF16C76 008                 LDR.W   R1, [LR]        ; Load from Memory
N88AP_iBoot:4FF16C7A 008                 B       loc_4FF16C96    ; Branch
N88AP_iBoot:4FF16C7C     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16C7C
N88AP_iBoot:4FF16C7C     loc_4FF16C7C                            ; CODE XREF: sub_4FF16C60+38�j
N88AP_iBoot:4FF16C7C 008                 CBZ     R4, loc_4FF16C86 ; Compare and Branch on Zero
N88AP_iBoot:4FF16C7E 008                 LDR     R0, [R3,#0x20]  ; Load from Memory
N88AP_iBoot:4FF16C80 008                 LDR     R2, [R4,#0x20]  ; Load from Memory
N88AP_iBoot:4FF16C82 008                 CMP     R0, R2          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16C84 008                 BCS     loc_4FF16C88    ; Branch
N88AP_iBoot:4FF16C86
N88AP_iBoot:4FF16C86     loc_4FF16C86                            ; CODE XREF: sub_4FF16C60:loc_4FF16C7C�j
N88AP_iBoot:4FF16C86 008                 MOV     R4, R3          ; Rd = Op2
N88AP_iBoot:4FF16C88
N88AP_iBoot:4FF16C88     loc_4FF16C88                            ; CODE XREF: sub_4FF16C60+24�j
N88AP_iBoot:4FF16C88 008                 CBZ     R1, loc_4FF16C92 ; Compare and Branch on Zero
N88AP_iBoot:4FF16C8A 008                 LDR     R0, [R3,#0x20]  ; Load from Memory
N88AP_iBoot:4FF16C8C 008                 LDR     R2, [R1,#0x20]  ; Load from Memory
N88AP_iBoot:4FF16C8E 008                 CMP     R0, R2          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16C90 008                 BLS     loc_4FF16C94    ; Branch
N88AP_iBoot:4FF16C92
N88AP_iBoot:4FF16C92     loc_4FF16C92                            ; CODE XREF: sub_4FF16C60:loc_4FF16C88�j
N88AP_iBoot:4FF16C92 008                 MOV     R1, R3          ; Rd = Op2
N88AP_iBoot:4FF16C94
N88AP_iBoot:4FF16C94     loc_4FF16C94                            ; CODE XREF: sub_4FF16C60+30�j
N88AP_iBoot:4FF16C94 008                 LDR     R3, [R3,#4]     ; Load from Memory
N88AP_iBoot:4FF16C96
N88AP_iBoot:4FF16C96     loc_4FF16C96                            ; CODE XREF: sub_4FF16C60+1A�j
N88AP_iBoot:4FF16C96 008                 CMP     R3, R12         ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16C98 008                 BNE     loc_4FF16C7C    ; Branch
N88AP_iBoot:4FF16C9A 008                 STR.W   R4, [R9]        ; Store to Memory
N88AP_iBoot:4FF16C9E 008                 STR.W   R1, [LR]        ; Store to Memory
N88AP_iBoot:4FF16CA2 008                 POP     {R4,PC}         ; Pop registers
N88AP_iBoot:4FF16CA2     ; End of function sub_4FF16C60
N88AP_iBoot:4FF16CA2
N88AP_iBoot:4FF16CA2     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16CA4     off_4FF16CA4    DCD off_4FF2A2FC        ; DATA XREF: sub_4FF16C60+2�r
N88AP_iBoot:4FF16CA8     off_4FF16CA8    DCD dword_4FF2CE64      ; DATA XREF: sub_4FF16C60+6�r
N88AP_iBoot:4FF16CAC     off_4FF16CAC    DCD dword_4FF2CE60      ; DATA XREF: sub_4FF16C60+A�r
N88AP_iBoot:4FF16CB0
N88AP_iBoot:4FF16CB0     ; =============== S U B R O U T I N E =======================================
N88AP_iBoot:4FF16CB0
N88AP_iBoot:4FF16CB0     ; Attributes: bp-based frame
N88AP_iBoot:4FF16CB0
N88AP_iBoot:4FF16CB0     sub_4FF16CB0                            ; CODE XREF: N88AP__iBoot__load_bank_partitions+1FC�p
N88AP_iBoot:4FF16CB0                                             ; N88AP__iBoot__nvram_save+2C�p
N88AP_iBoot:4FF16CB0
N88AP_iBoot:4FF16CB0     oldR4           = -0x14
N88AP_iBoot:4FF16CB0     oldR5           = -0x10
N88AP_iBoot:4FF16CB0     oldR6           = -0xC
N88AP_iBoot:4FF16CB0     oldR7           = -8
N88AP_iBoot:4FF16CB0     oldLR           = -4
N88AP_iBoot:4FF16CB0
N88AP_iBoot:4FF16CB0 000                 PUSH    {R4-R7,LR}      ; Push registers
N88AP_iBoot:4FF16CB2 014                 ADD     R7, SP, #0xC    ; Rd = Op1 + Op2
N88AP_iBoot:4FF16CB4 014                 LDR     R4, [R0,#0xC]   ; Load from Memory
N88AP_iBoot:4FF16CB6 014                 ADD.W   R5, R0, #8      ; Rd = Op1 + Op2
N88AP_iBoot:4FF16CBA 014                 MOV     R6, R1          ; Rd = Op2
N88AP_iBoot:4FF16CBC 014                 B       loc_4FF16CCC    ; Branch
N88AP_iBoot:4FF16CBE     ; ---------------------------------------------------------------------------
N88AP_iBoot:4FF16CBE
N88AP_iBoot:4FF16CBE     loc_4FF16CBE                            ; CODE XREF: sub_4FF16CB0+1E�j
N88AP_iBoot:4FF16CBE 014                 ADD.W   R1, R4, #0x14   ; Rd = Op1 + Op2
N88AP_iBoot:4FF16CC2 014                 MOV     R0, R6          ; Rd = Op2
N88AP_iBoot:4FF16CC4 014                 BL      sub_4FF1ECA0    ; Branch with Link
N88AP_iBoot:4FF16CC8 014                 CBZ     R0, loc_4FF16CD2 ; Compare and Branch on Zero
N88AP_iBoot:4FF16CCA 014                 LDR     R4, [R4,#4]     ; Load from Memory
N88AP_iBoot:4FF16CCC
N88AP_iBoot:4FF16CCC     loc_4FF16CCC                            ; CODE XREF: sub_4FF16CB0+C�j
N88AP_iBoot:4FF16CCC 014                 CMP     R4, R5          ; Set cond. codes on Op1 - Op2
N88AP_iBoot:4FF16CCE 014                 BNE     loc_4FF16CBE    ; Branch
N88AP_iBoot:4FF16CD0 014                 MOVS    R4, #0          ; Rd = Op2
N88AP_iBoot:4FF16CD2
N88AP_iBoot:4FF16CD2     loc_4FF16CD2                            ; CODE XREF: sub_4FF16CB0+18�j
N88AP_iBoot:4FF16CD2 014                 MOV     R0, R4          ; Rd = Op2
N88AP_iBoot:4FF16CD4 014                 POP     {R4-R7,PC}      ; Pop registers
N88AP_iBoot:4FF16CD4     ; End of function sub_4FF16CB0
N88AP_iBoot:4FF16CD4