Difference between revisions of "Kernelcache loader (iBoot command)"

From The iPhone Wiki
Jump to: navigation, search
(iPhone 3GS 8920x from iBoot-636.66: - added the address for same in the iOS 5.1b3)
(iPhone 3GS 8920x from iBoot-636.66)
 
Line 1: Line 1:
 
== iPhone 3GS 8920x from iBoot-636.66 ==
 
== 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 at ROM:5FF120C8. Complete disassembly to follow later)
+
(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==
 
==Disassembly for kernelcache Loader==

Latest revision as of 20:52, 4 March 2012

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