Image load

Disassembly for image_load
N88AP_iBoot:4FF1D4E0    ; =============== S U B R O U T I N E ======================================= N88AP_iBoot:4FF1D4E0 N88AP_iBoot:4FF1D4E0    ; Attributes: bp-based frame N88AP_iBoot:4FF1D4E0 N88AP_iBoot:4FF1D4E0    ; int __fastcall n88ap__iBoot__image_load(struct MEMZ_STRUCT *mem_info, char *TAG_TYPE, int unknown1, int unknown2) N88AP_iBoot:4FF1D4E0    n88ap__iBoot__image_load                ; CODE XREF: n88ap__iBoot__diag_function+8A�p N88AP_iBoot:4FF1D4E0                                            ; sub_4FF009CC+22�p N88AP_iBoot:4FF1D4E0                                            ; n88ap__iBoot__go_command+66�p N88AP_iBoot:4FF1D4E0                                            ; n88ap__iBoot__ramdisk_command_function+7E�p N88AP_iBoot:4FF1D4E0                                            ; n88ap__iBoot__devicetree_function+7C�p ... N88AP_iBoot:4FF1D4E0 N88AP_iBoot:4FF1D4E0    var_18          = -0x18 N88AP_iBoot:4FF1D4E0    var_14          = -0x14 N88AP_iBoot:4FF1D4E0    oldR4           = -0x10 N88AP_iBoot:4FF1D4E0    oldR5           = -0xC N88AP_iBoot:4FF1D4E0    oldR7           = -8 N88AP_iBoot:4FF1D4E0    oldLR           = -4 N88AP_iBoot:4FF1D4E0 N88AP_iBoot:4FF1D4E0 000                PUSH    {R4,R5,R7,LR}   ; Push registers N88AP_iBoot:4FF1D4E2 010                ADD     R7, SP, #8      ; Rd = Op1 + Op2 N88AP_iBoot:4FF1D4E4 010                SUB     SP, SP, #8      ; Rd = Op1 - Op2 N88AP_iBoot:4FF1D4E6 018                MOV     R5, R3          ; Rd = Op2 N88AP_iBoot:4FF1D4E8 018                LDR     R3, [R2]        ; Load from Memory N88AP_iBoot:4FF1D4EA 018                MOV     R4, R2          ; Rd = Op2 N88AP_iBoot:4FF1D4EC 018                STR     R3, [SP,#0x18+var_14] ; Store to Memory N88AP_iBoot:4FF1D4EE 018                LDR     R3, [R5]        ; param_R3 N88AP_iBoot:4FF1D4F0 018                STR     R3, [SP,#0x18+var_18] ; Store to Memory N88AP_iBoot:4FF1D4F2 018                CBZ     R0, end_of_error ; Compare and Branch on Zero N88AP_iBoot:4FF1D4F4 018                LDR     R2, [R0,#MEMZ_STRUCT.tag.full_size] ; param_R2 N88AP_iBoot:4FF1D4F6 018                CMP     R3, R2          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1D4F8 018                BCS     loc_4FF1D502    ; Branch N88AP_iBoot:4FF1D4FA 018                LDR     R0, =aImage_loadImageTooLarge_0 ; "image_load: image too large\n" N88AP_iBoot:4FF1D4FC 018                BL      N88AP__iBOOT__console_printf ; Branch with Link N88AP_iBoot:4FF1D500 018                B       end_of_error    ; Branch N88AP_iBoot:4FF1D502    ; --- N88AP_iBoot:4FF1D502 N88AP_iBoot:4FF1D502    loc_4FF1D502                            ; CODE XREF: n88ap__iBoot__image_load+18�j N88AP_iBoot:4FF1D502 018                LDR     R2, [R0,#MEMZ_STRUCT.id_memz] ; Load from Memory N88AP_iBoot:4FF1D504 018                LDR     R3, ='Memz'     ; Load from Memory N88AP_iBoot:4FF1D506 018                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1D508 018                BEQ     MemZ_Operation  ; Branch N88AP_iBoot:4FF1D50A 018                LDR     R3, ='img3'     ; Load from Memory N88AP_iBoot:4FF1D50C 018                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1D50E 018                BNE     end_of_error    ; Branch N88AP_iBoot:4FF1D510 018                B       img3_Operation  ; Branch N88AP_iBoot:4FF1D512    ; --- N88AP_iBoot:4FF1D512 N88AP_iBoot:4FF1D512    MemZ_Operation                          ; CODE XREF: n88ap__iBoot__image_load+28�j N88AP_iBoot:4FF1D512 018                ADD     R2, SP, #0x18+var_14 ; Rd = Op1 + Op2 N88AP_iBoot:4FF1D514 018                MOV     R3, SP          ; Rd = Op2 N88AP_iBoot:4FF1D516 018                BL      n88ap__iBoot__blockdev ; Branch with Link N88AP_iBoot:4FF1D51A 018                CBZ     R0, loc_4FF1D534 ; Compare and Branch on Zero N88AP_iBoot:4FF1D51C 018                CMP     R0, #0x16       ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1D51E 018                BNE     end_of_error    ; Branch N88AP_iBoot:4FF1D520 018                LDR     R3, [R4]        ; Load from Memory N88AP_iBoot:4FF1D522 018                STR     R3, [SP,#0x18+var_14] ; Store to Memory N88AP_iBoot:4FF1D524 018                LDR     R3, [R5]        ; Load from Memory N88AP_iBoot:4FF1D526 018                STR     R3, [SP,#0x18+var_18] ; Store to Memory N88AP_iBoot:4FF1D528 018                B       end_of_error    ; Branch N88AP_iBoot:4FF1D52A    ; --- N88AP_iBoot:4FF1D52A N88AP_iBoot:4FF1D52A    img3_Operation                          ; CODE XREF: n88ap__iBoot__image_load+30�j N88AP_iBoot:4FF1D52A 018                ADD     R2, SP, #0x18+var_14 ; Rd = Op1 + Op2 N88AP_iBoot:4FF1D52C 018                MOV     R3, SP          ; Rd = Op2 N88AP_iBoot:4FF1D52E 018                BL      n88ap__iBoot__blockdev ; Branch with Link N88AP_iBoot:4FF1D532 018                CBNZ    R0, end_of_error ; Compare and Branch on Non-Zero N88AP_iBoot:4FF1D534 N88AP_iBoot:4FF1D534    loc_4FF1D534                            ; CODE XREF: n88ap__iBoot__image_load+3A�j N88AP_iBoot:4FF1D534 018                LDR     R3, [SP,#0x18+var_14] ; Load from Memory N88AP_iBoot:4FF1D536 018                MOVS    R0, #0          ; Rd = Op2 N88AP_iBoot:4FF1D538 018                STR     R3, [R4]        ; Store to Memory N88AP_iBoot:4FF1D53A 018                LDR     R3, [SP,#0x18+var_18] ; Load from Memory N88AP_iBoot:4FF1D53C 018                STR     R3, [R5]        ; Store to Memory N88AP_iBoot:4FF1D53E 018                B       loc_4FF1D54A    ; Branch N88AP_iBoot:4FF1D540    ; --- N88AP_iBoot:4FF1D540 N88AP_iBoot:4FF1D540    end_of_error                            ; CODE XREF: n88ap__iBoot__image_load+12�j N88AP_iBoot:4FF1D540                                            ; n88ap__iBoot__image_load+20�j N88AP_iBoot:4FF1D540                                            ; n88ap__iBoot__image_load+2E�j N88AP_iBoot:4FF1D540                                            ; n88ap__iBoot__image_load+3E�j N88AP_iBoot:4FF1D540                                            ; n88ap__iBoot__image_load+48�j ... N88AP_iBoot:4FF1D540 018                MOV.W   R0, #0xFFFFFFFF ; Rd = Op2 N88AP_iBoot:4FF1D544 018                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF1D546 018                STR     R3, [R4]        ; Store to Memory N88AP_iBoot:4FF1D548 018                STR     R3, [R5]        ; Store to Memory N88AP_iBoot:4FF1D54A N88AP_iBoot:4FF1D54A    loc_4FF1D54A                            ; CODE XREF: n88ap__iBoot__image_load+5E�j N88AP_iBoot:4FF1D54A 018                SUB.W   SP, R7, #8      ; Rd = Op1 - Op2 N88AP_iBoot:4FF1D54E 018                POP     {R4,R5,R7,PC}   ; Pop registers N88AP_iBoot:4FF1D54E    ; End of function n88ap__iBoot__image_load N88AP_iBoot:4FF1D54E N88AP_iBoot:4FF1D54E    ; --- N88AP_iBoot:4FF1D550    ; int off_4FF1D550 N88AP_iBoot:4FF1D550    off_4FF1D550    DCD aImage_loadImageTooLarge_0 N88AP_iBoot:4FF1D550                                            ; DATA XREF: n88ap__iBoot__image_load+1A�r N88AP_iBoot:4FF1D550                                            ; "image_load: image too large\n" N88AP_iBoot:4FF1D554    dword_4FF1D554  DCD 'Memz'              ; DATA XREF: n88ap__iBoot__image_load+24�r N88AP_iBoot:4FF1D558    dword_4FF1D558  DCD 'img3'              ; DATA XREF: n88ap__iBoot__image_load+2A�r N88AP_iBoot:4FF1D55C

Disassembly for blockdev
N88AP_iBoot:4FF15868    ; =============== S U B R O U T I N E ======================================= N88AP_iBoot:4FF15868 N88AP_iBoot:4FF15868    ; Attributes: bp-based frame N88AP_iBoot:4FF15868 N88AP_iBoot:4FF15868    n88ap__iBoot__blockdev                  ; CODE XREF: n88ap__iBoot__image_load+36�p N88AP_iBoot:4FF15868                                            ; n88ap__iBoot__image_load+4E�p N88AP_iBoot:4FF15868 N88AP_iBoot:4FF15868    var_94          = -0x94 N88AP_iBoot:4FF15868    var_90          = -0x90 N88AP_iBoot:4FF15868    var_8C          = -0x8C N88AP_iBoot:4FF15868    var_88          = -0x88 N88AP_iBoot:4FF15868    var_84          = -0x84 N88AP_iBoot:4FF15868    var_80          = -0x80 N88AP_iBoot:4FF15868    var_7C          = -0x7C N88AP_iBoot:4FF15868    var_78          = -0x78 N88AP_iBoot:4FF15868    var_74          = -0x74 N88AP_iBoot:4FF15868    var_70          = -0x70 N88AP_iBoot:4FF15868    var_6C          = -0x6C N88AP_iBoot:4FF15868    var_68          = -0x68 N88AP_iBoot:4FF15868    var_64          = -0x64 N88AP_iBoot:4FF15868    var_60          = -0x60 N88AP_iBoot:4FF15868    argv2           = -0x5C N88AP_iBoot:4FF15868    var_58          = -0x58 N88AP_iBoot:4FF15868    var_54          = -0x54 N88AP_iBoot:4FF15868    var_44          = -0x44 N88AP_iBoot:4FF15868    var_24          = -0x24 N88AP_iBoot:4FF15868    oldR4           = -0x14 N88AP_iBoot:4FF15868    oldR5           = -0x10 N88AP_iBoot:4FF15868    oldR6           = -0xC N88AP_iBoot:4FF15868    oldR7           = -8 N88AP_iBoot:4FF15868    oldLR           = -4 N88AP_iBoot:4FF15868 N88AP_iBoot:4FF15868 000                PUSH    {R4-R7,LR}      ; Push registers N88AP_iBoot:4FF1586A 014                ADD     R7, SP, #0xC    ; Rd = Op1 + Op2 N88AP_iBoot:4FF1586C 014                PUSH.W  {R8,R10,R11}    ; Push registers N88AP_iBoot:4FF15870 020                SUB     SP, SP, #0x74   ; Rd = Op1 - Op2 N88AP_iBoot:4FF15872 094                MOV     R10, R1         ; Rd = Op2 N88AP_iBoot:4FF15874 094                LDR     R1, =dword_4FF2A308 ; param_R1 N88AP_iBoot:4FF15876 094                STR     R3, [SP,#0x94+var_84] ; Store to Memory N88AP_iBoot:4FF15878 094                MOV     R11, R2         ; Rd = Op2 N88AP_iBoot:4FF1587A 094                LDR     R3, [R1]        ; Load from Memory N88AP_iBoot:4FF1587C 094                MOV     R5, R0          ; Rd = Op2 N88AP_iBoot:4FF1587E 094                STR     R3, [SP,#0x94+var_24] ; Store to Memory N88AP_iBoot:4FF15880 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15882 094                STR     R3, [SP,#0x94+var_58] ; Store to Memory N88AP_iBoot:4FF15884 094                LDR     R3, ='Memz'     ; Load from Memory N88AP_iBoot:4FF15886 094                LDR     R6, [R2]        ; Load from Memory N88AP_iBoot:4FF15888 094                LDR     R2, [R0,#MEMZ_STRUCT.id_memz] ; param_R2 N88AP_iBoot:4FF1588A 094                LDR.W   R8, [R0,#MEMZ_STRUCT.tag.full_size] ; Load from Memory N88AP_iBoot:4FF1588E 094                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15890 094                BEQ     loc_4FF158CC    ; Branch N88AP_iBoot:4FF15892 094                LDR     R3, ='img3'     ; param_R3 N88AP_iBoot:4FF15894 094                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15896 094                BNE     loc_4FF158A0    ; Branch N88AP_iBoot:4FF15898 094                CBNZ    R6, loc_4FF158A6 ; Compare and Branch on Non-Zero N88AP_iBoot:4FF1589A 094                LDR     R0, =aLoadAddressNotSpecified_0 ; "load address not specified\n" N88AP_iBoot:4FF1589C 094                BL      N88AP__iBOOT__console_printf ; Branch with Link N88AP_iBoot:4FF158A0 N88AP_iBoot:4FF158A0    loc_4FF158A0                            ; CODE XREF: n88ap__iBoot__blockdev+2E�j N88AP_iBoot:4FF158A0 094                MOV.W   R4, #0xFFFFFFFF ; Rd = Op2 N88AP_iBoot:4FF158A4 094                B       loc_4FF15B60    ; Branch N88AP_iBoot:4FF158A6    ; --- N88AP_iBoot:4FF158A6 N88AP_iBoot:4FF158A6    loc_4FF158A6                            ; CODE XREF: n88ap__iBoot__blockdev+30�j N88AP_iBoot:4FF158A6 094                LDR     R3, [R0,#MEMZ_STRUCT.start_address] ; Load from Memory N88AP_iBoot:4FF158A8 094                MOV     R1, R6          ; Rd = Op2 N88AP_iBoot:4FF158AA 094                LDR     R0, [R3,#8]     ; Load from Memory N88AP_iBoot:4FF158AC 094                LDR     R2, [R3,#0xC]   ; Load from Memory N88AP_iBoot:4FF158AE 094                STR.W   R8, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF158B2 094                MOV     R2, R2          ; Rd = Op2 N88AP_iBoot:4FF158B4 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF158B8 094                LDR     R4, [R0,#0x1C]  ; Load from Memory N88AP_iBoot:4FF158BA 094                BLX     R4              ; Branch with Link and Exchange (register indirect) N88AP_iBoot:4FF158BC 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF158BE 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF158C0 094                BGT     loc_4FF158E8    ; Branch N88AP_iBoot:4FF158C2 094                MOV     R1, R4          ; param_R1 N88AP_iBoot:4FF158C4 094                LDR     R0, =aBlockdevReadFailedWithD_0 ; "blockdev read failed with %d\n" N88AP_iBoot:4FF158C6 094                BL      N88AP__iBOOT__console_printf ; Branch with Link N88AP_iBoot:4FF158CA 094                B       loc_4FF15B60    ; Branch N88AP_iBoot:4FF158CC    ; --- N88AP_iBoot:4FF158CC N88AP_iBoot:4FF158CC    loc_4FF158CC                            ; CODE XREF: n88ap__iBoot__blockdev+28�j N88AP_iBoot:4FF158CC 094                LDR     R1, [R0,#MEMZ_STRUCT.start_address] ; Load from Memory N88AP_iBoot:4FF158CE 094                LDR     R3, ='Img3'     ; Load from Memory N88AP_iBoot:4FF158D0 094                LDR     R2, [R1]        ; Load from Memory N88AP_iBoot:4FF158D2 094                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF158D4 094                BEQ     loc_4FF158DA    ; Branch N88AP_iBoot:4FF158D6 094                MOVS    R4, #0x16       ; Rd = Op2 N88AP_iBoot:4FF158D8 094                B       loc_4FF15B6C    ; Branch N88AP_iBoot:4FF158DA    ; --- N88AP_iBoot:4FF158DA N88AP_iBoot:4FF158DA    loc_4FF158DA                            ; CODE XREF: n88ap__iBoot__blockdev+6C�j N88AP_iBoot:4FF158DA 094                CBZ     R6, loc_4FF158E8 ; Compare and Branch on Zero N88AP_iBoot:4FF158DC 094                CMP     R6, R1          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF158DE 094                BEQ     loc_4FF158E8    ; Branch N88AP_iBoot:4FF158E0 094                MOV     R0, R6          ; Rd = Op2 N88AP_iBoot:4FF158E2 094                MOV     R2, R8          ; Rd = Op2 N88AP_iBoot:4FF158E4 094                BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF158E8 N88AP_iBoot:4FF158E8    loc_4FF158E8                            ; CODE XREF: n88ap__iBoot__blockdev+58�j N88AP_iBoot:4FF158E8                                            ; n88ap__iBoot__blockdev:loc_4FF158DA�j N88AP_iBoot:4FF158E8                                            ; n88ap__iBoot__blockdev+76�j N88AP_iBoot:4FF158E8 094                ADD     R0, SP, #0x94+var_58 ; Rd = Op1 + Op2 N88AP_iBoot:4FF158EA 094                MOV     R1, R6          ; Rd = Op2 N88AP_iBoot:4FF158EC 094                MOV     R2, R8          ; Rd = Op2 N88AP_iBoot:4FF158EE 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF158F0 094                BL      sub_4FF153EC    ; Branch with Link N88AP_iBoot:4FF158F4 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF158F6 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF158F8 094                BNE.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF158FC 094                LDR     R2, [R5,#0xC]   ; Load from Memory N88AP_iBoot:4FF158FE 094                LDR     R3, ='img3'     ; Load from Memory N88AP_iBoot:4FF15900 094                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15902 094                BNE     loc_4FF15908    ; Branch N88AP_iBoot:4FF15904 094                MOVS    R1, #1          ; Rd = Op2 N88AP_iBoot:4FF15906 094                B       loc_4FF15910    ; Branch N88AP_iBoot:4FF15908    ; --- N88AP_iBoot:4FF15908 N88AP_iBoot:4FF15908    loc_4FF15908                            ; CODE XREF: n88ap__iBoot__blockdev+9A�j N88AP_iBoot:4FF15908 094                LDR     R3, [R5,#0x10]  ; Load from Memory N88AP_iBoot:4FF1590A 094                LSRS    R1, R3, #2      ; Logical Shift Right N88AP_iBoot:4FF1590C 094                AND.W   R1, R1, #1      ; Rd = Op1 & Op2 N88AP_iBoot:4FF15910 N88AP_iBoot:4FF15910    loc_4FF15910                            ; CODE XREF: n88ap__iBoot__blockdev+9E�j N88AP_iBoot:4FF15910 094                LDR     R0, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15912 094                BL      sub_4FF1548C    ; Branch with Link N88AP_iBoot:4FF15916 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF15918 094                CBZ     R0, loc_4FF15938 ; Compare and Branch on Zero N88AP_iBoot:4FF1591A 094                CMP     R0, #1          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1591C 094                BNE.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF15920 094                LDR     R0, [R5,#0x10]  ; Load from Memory N88AP_iBoot:4FF15922 094                TST.W   R0, #2          ; Set cond. codes on Op1 & Op2 N88AP_iBoot:4FF15926 094                BNE.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF1592A 094                MOV     R0, R4          ; Rd = Op2 N88AP_iBoot:4FF1592C 094                BL      sub_4FF1A074    ; Branch with Link N88AP_iBoot:4FF15930 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15932 094                BEQ.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF15936 094                B       loc_4FF15A40    ; Branch N88AP_iBoot:4FF15938    ; --- N88AP_iBoot:4FF15938 N88AP_iBoot:4FF15938    loc_4FF15938                            ; CODE XREF: n88ap__iBoot__blockdev+B0�j N88AP_iBoot:4FF15938 094                LDR     R2, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF1593A 094                STR     R2, [SP,#0x94+var_70] ; Store to Memory N88AP_iBoot:4FF1593C 094                BL      sub_4FF1F920    ; Branch with Link N88AP_iBoot:4FF15940 094                MOVS    R1, #1          ; Rd = Op2 N88AP_iBoot:4FF15942 094                STR     R1, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15944 094                STR     R1, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15946 094                SUBS    R1, #1          ; Rd = Op1 - Op2 N88AP_iBoot:4FF15948 094                STR     R1, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF1594A 094                LDR     R1, ='SDOM'     ; Load from Memory N88AP_iBoot:4FF1594C 094                STR     R4, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF1594E 094                MOV     R2, R0          ; Rd = Op2 N88AP_iBoot:4FF15950 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15954 094                LDR     R0, [SP,#0x94+var_70] ; Load from Memory N88AP_iBoot:4FF15956 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF1595A 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF1595C 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF1595E 094                BNE     loc_4FF15A44    ; Branch N88AP_iBoot:4FF15960 094                BL      sub_4FF1F914    ; Branch with Link N88AP_iBoot:4FF15964 094                CBZ     R0, loc_4FF15982 ; Compare and Branch on Zero N88AP_iBoot:4FF15966 094                MOVS    R2, #1          ; Rd = Op2 N88AP_iBoot:4FF15968 094                LDR     R0, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF1596A 094                STR     R2, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF1596C 094                STR     R2, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF1596E 094                LDR     R1, ='PROD'     ; Load from Memory N88AP_iBoot:4FF15970 094                MOVS    R2, #1          ; Rd = Op2 N88AP_iBoot:4FF15972 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15974 094                STR     R4, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15976 094                STR     R4, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF15978 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF1597C 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF1597E 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15980 094                BNE     loc_4FF15A44    ; Branch N88AP_iBoot:4FF15982 N88AP_iBoot:4FF15982    loc_4FF15982                            ; CODE XREF: n88ap__iBoot__blockdev+FC�j N88AP_iBoot:4FF15982 094                LDR     R4, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15984 094                BL      sub_4FF1F8F8    ; Branch with Link N88AP_iBoot:4FF15988 094                MOVS    R1, #0          ; Rd = Op2 N88AP_iBoot:4FF1598A 094                STR     R1, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF1598C 094                ADDS    R1, #1          ; Rd = Op1 + Op2 N88AP_iBoot:4FF1598E 094                STR     R1, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15990 094                STR     R1, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15992 094                SUBS    R1, #1          ; Rd = Op1 - Op2 N88AP_iBoot:4FF15994 094                STR     R1, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF15996 094                LDR     R1, ='CHIP'     ; Load from Memory N88AP_iBoot:4FF15998 094                MOV     R2, R0          ; Rd = Op2 N88AP_iBoot:4FF1599A 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF1599E 094                MOV     R0, R4          ; Rd = Op2 N88AP_iBoot:4FF159A0 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF159A4 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF159A6 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF159A8 094                BNE     loc_4FF15A44    ; Branch N88AP_iBoot:4FF159AA 094                CMP.W   R10, #0         ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF159AE 094                BEQ     loc_4FF159CE    ; Branch N88AP_iBoot:4FF159B0 094                STR     R0, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF159B2 094                MOVS    R1, #1          ; Rd = Op2 N88AP_iBoot:4FF159B4 094                STR     R0, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF159B6 094                STR     R1, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF159B8 094                STR     R0, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF159BA 094                MOV     R2, R10         ; Rd = Op2 N88AP_iBoot:4FF159BC 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF159C0 094                LDR     R0, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF159C2 094                LDR     R1, ='TYPE'     ; Load from Memory N88AP_iBoot:4FF159C4 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF159C8 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF159CA 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF159CC 094                BNE     loc_4FF15A44    ; Branch N88AP_iBoot:4FF159CE N88AP_iBoot:4FF159CE    loc_4FF159CE                            ; CODE XREF: n88ap__iBoot__blockdev+146�j N88AP_iBoot:4FF159CE 094                LDR     R4, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF159D0 094                BL      sub_4FF1E3F8    ; Branch with Link N88AP_iBoot:4FF159D4 094                LDR     R1, [R5,#0x10]  ; Load from Memory N88AP_iBoot:4FF159D6 094                AND.W   R1, R1, #1      ; Rd = Op1 & Op2 N88AP_iBoot:4FF159DA 094                STR     R1, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF159DC 094                MOVS    R1, #0          ; Rd = Op2 N88AP_iBoot:4FF159DE 094                STR     R1, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF159E0 094                STR     R1, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF159E2 094                STR     R1, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF159E4 094                LDR     R1, ='SEPO'     ; Load from Memory N88AP_iBoot:4FF159E6 094                MOV     R2, R0          ; Rd = Op2 N88AP_iBoot:4FF159E8 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF159EC 094                MOV     R0, R4          ; Rd = Op2 N88AP_iBoot:4FF159EE 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF159F2 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF159F4 094                CBNZ    R0, loc_4FF15A44 ; Compare and Branch on Non-Zero N88AP_iBoot:4FF159F6 094                LDR.W   R10, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF159FA 094                BL      sub_4FF184E4    ; Branch with Link N88AP_iBoot:4FF159FE 094                LDR     R1, ='BORD'     ; Load from Memory N88AP_iBoot:4FF15A00 094                STR     R4, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15A02 094                STR     R4, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15A04 094                STR     R4, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15A06 094                STR     R4, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF15A08 094                MOV     R2, R0          ; Rd = Op2 N88AP_iBoot:4FF15A0A 094                MOV.W   R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15A0E 094                MOV     R0, R10         ; Rd = Op2 N88AP_iBoot:4FF15A10 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF15A14 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF15A16 094                CBNZ    R0, loc_4FF15A44 ; Compare and Branch on Non-Zero N88AP_iBoot:4FF15A18 094                LDR.W   R10, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15A1C 094                BL      sub_4FF1F904    ; Branch with Link N88AP_iBoot:4FF15A20 094                STR     R0, [SP,#0x94+var_80] ; Store to Memory N88AP_iBoot:4FF15A22 094                STR     R1, [SP,#0x94+var_7C] ; Store to Memory N88AP_iBoot:4FF15A24 094                BL      sub_4FF1F910    ; Branch with Link N88AP_iBoot:4FF15A28 094                LDR     R1, ='ECID'     ; Load from Memory N88AP_iBoot:4FF15A2A 094                ADD     R2, SP, #0x94+var_80 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15A2C 094                LDMIA   R2, {R2,R3}     ; Load Block from Memory N88AP_iBoot:4FF15A2E 094                STR     R4, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15A30 094                STR     R4, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15A32 094                STR     R4, [SP,#0x94+var_88] ; Store to Memory N88AP_iBoot:4FF15A34 094                STR     R0, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15A36 094                MOV     R0, R10         ; Rd = Op2 N88AP_iBoot:4FF15A38 094                BL      sub_4FF15798    ; Branch with Link N88AP_iBoot:4FF15A3C 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF15A3E 094                CBNZ    R0, loc_4FF15A44 ; Compare and Branch on Non-Zero N88AP_iBoot:4FF15A40 N88AP_iBoot:4FF15A40    loc_4FF15A40                            ; CODE XREF: n88ap__iBoot__blockdev+CE�j N88AP_iBoot:4FF15A40 094                STR     R4, [SP,#0x94+var_78] ; Store to Memory N88AP_iBoot:4FF15A42 094                B       loc_4FF15A64    ; Branch N88AP_iBoot:4FF15A44    ; --- N88AP_iBoot:4FF15A44 N88AP_iBoot:4FF15A44    loc_4FF15A44                            ; CODE XREF: n88ap__iBoot__blockdev+F6�j N88AP_iBoot:4FF15A44                                            ; n88ap__iBoot__blockdev+118�j N88AP_iBoot:4FF15A44                                            ; n88ap__iBoot__blockdev+140�j N88AP_iBoot:4FF15A44                                            ; n88ap__iBoot__blockdev+164�j N88AP_iBoot:4FF15A44                                            ; n88ap__iBoot__blockdev+18C�j ... N88AP_iBoot:4FF15A44 094                LDR     R0, [R5,#0x10]  ; Load from Memory N88AP_iBoot:4FF15A46 094                TST.W   R0, #2          ; Set cond. codes on Op1 & Op2 N88AP_iBoot:4FF15A4A 094                BNE.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF15A4E 094                MOVS    R0, #1          ; Rd = Op2 N88AP_iBoot:4FF15A50 094                BL      sub_4FF1A074    ; Branch with Link N88AP_iBoot:4FF15A54 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15A56 094                BEQ.W   loc_4FF15B60    ; Branch N88AP_iBoot:4FF15A5A 094                LDR     R0, =aImageValidationFailedButUntrustedImagesAreP_0 ; "image validation failed but untrusted i"... N88AP_iBoot:4FF15A5C 094                BL      N88AP__iBOOT__console_printf ; Branch with Link N88AP_iBoot:4FF15A60 094                MOVS    R2, #1          ; Rd = Op2 N88AP_iBoot:4FF15A62 094                STR     R2, [SP,#0x94+var_78] ; Store to Memory N88AP_iBoot:4FF15A64 N88AP_iBoot:4FF15A64    loc_4FF15A64                            ; CODE XREF: n88ap__iBoot__blockdev+1DA�j N88AP_iBoot:4FF15A64 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15A66 094                LDR     R0, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15A68 094                STR     R3, [SP,#0x94+var_60] ; Store to Memory N88AP_iBoot:4FF15A6A 094                STR     R3, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15A6C 094                LDR     R1, ='DATA'     ; Load from Memory N88AP_iBoot:4FF15A6E 094                ADD     R2, SP, #0x94+argv2 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15A70 094                ADD     R3, SP, #0x94+var_60 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15A72 094                BL      sub_4FF1531C    ; Branch with Link N88AP_iBoot:4FF15A76 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF15A78 094                CMP     R0, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15A7A 094                BNE     loc_4FF15B60    ; Branch N88AP_iBoot:4FF15A7C 094                MOV     R10, R0         ; Rd = Op2 N88AP_iBoot:4FF15A7E N88AP_iBoot:4FF15A7E    loc_4FF15A7E                            ; CODE XREF: n88ap__iBoot__blockdev+2E2�j N88AP_iBoot:4FF15A7E 094                MOVS    R3, #0x38 ; '8' ; Rd = Op2 N88AP_iBoot:4FF15A80 094                LDR     R0, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15A82 094                STR     R3, [SP,#0x94+var_6C] ; Store to Memory N88AP_iBoot:4FF15A84 094                LDR     R1, ='KBAG'     ; Load from Memory N88AP_iBoot:4FF15A86 094                ADD     R2, SP, #0x94+var_64 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15A88 094                ADD     R3, SP, #0x94+var_6C ; Rd = Op1 + Op2 N88AP_iBoot:4FF15A8A 094                STR.W   R10, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15A8E 094                BL      sub_4FF1531C    ; Branch with Link N88AP_iBoot:4FF15A92 094                CMP     R0, #2          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15A94 094                BNE     loc_4FF15AA0    ; Branch N88AP_iBoot:4FF15A96 094                CMP.W   R10, #0         ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15A9A 094                BEQ     loc_4FF15B4C    ; Branch N88AP_iBoot:4FF15A9C 094                MOV     R4, R0          ; Rd = Op2 N88AP_iBoot:4FF15A9E 094                B       loc_4FF15B60    ; Branch N88AP_iBoot:4FF15AA0    ; --- N88AP_iBoot:4FF15AA0 N88AP_iBoot:4FF15AA0    loc_4FF15AA0                            ; CODE XREF: n88ap__iBoot__blockdev+22C�j N88AP_iBoot:4FF15AA0 094                LDR     R3, [SP,#0x94+var_78] ; Load from Memory N88AP_iBoot:4FF15AA2 094                CMP     R3, #0          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15AA4 094                BNE     loc_4FF15B5E    ; Branch N88AP_iBoot:4FF15AA6 094                MOVS    R2, #0x30 ; '0' ; Rd = Op2 N88AP_iBoot:4FF15AA8 094                MOV     R1, R3          ; Rd = Op2 N88AP_iBoot:4FF15AAA 094                ADD     R0, SP, #0x94+var_54 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15AAC 094                BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15AB0 094                LDR     R1, [SP,#0x94+var_64] ; Load from Memory N88AP_iBoot:4FF15AB2 094                LDR     R2, [R1,#4]     ; Load from Memory N88AP_iBoot:4FF15AB4 094                CMP     R2, #0xC0 ; '? ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15AB6 094                BEQ     loc_4FF15AC4    ; Branch N88AP_iBoot:4FF15AB8 094                CMP.W   R2, #0x100      ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15ABC 094                BEQ     loc_4FF15ACA    ; Branch N88AP_iBoot:4FF15ABE 094                CMP     R2, #0x80 ; '' ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15AC0 094                BNE     loc_4FF15B5E    ; Branch N88AP_iBoot:4FF15AC2 094                B       loc_4FF15AD0    ; Branch N88AP_iBoot:4FF15AC4    ; --- N88AP_iBoot:4FF15AC4 N88AP_iBoot:4FF15AC4    loc_4FF15AC4                            ; CODE XREF: n88ap__iBoot__blockdev+24E�j N88AP_iBoot:4FF15AC4 094                MOV.W   R3, #0x10000000 ; Rd = Op2 N88AP_iBoot:4FF15AC8 094                B       loc_4FF15AD2    ; Branch N88AP_iBoot:4FF15ACA    ; --- N88AP_iBoot:4FF15ACA N88AP_iBoot:4FF15ACA    loc_4FF15ACA                            ; CODE XREF: n88ap__iBoot__blockdev+254�j N88AP_iBoot:4FF15ACA 094                MOV.W   R3, #0x20000000 ; Rd = Op2 N88AP_iBoot:4FF15ACE 094                B       loc_4FF15AD2    ; Branch N88AP_iBoot:4FF15AD0    ; --- N88AP_iBoot:4FF15AD0 N88AP_iBoot:4FF15AD0    loc_4FF15AD0                            ; CODE XREF: n88ap__iBoot__blockdev+25A�j N88AP_iBoot:4FF15AD0 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15AD2 N88AP_iBoot:4FF15AD2    loc_4FF15AD2                            ; CODE XREF: n88ap__iBoot__blockdev+260�j N88AP_iBoot:4FF15AD2                                            ; n88ap__iBoot__blockdev+266�j N88AP_iBoot:4FF15AD2 094                LSRS    R5, R2, #3      ; Logical Shift Right N88AP_iBoot:4FF15AD4 094                ADDS    R1, #8          ; Rd = Op1 + Op2 N88AP_iBoot:4FF15AD6 094                MOVS    R2, #0x10       ; Rd = Op2 N88AP_iBoot:4FF15AD8 094                ADD     R0, SP, #0x94+var_54 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15ADA 094                STR     R3, [SP,#0x94+var_74] ; Store to Memory N88AP_iBoot:4FF15ADC 094                BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15AE0 094                LDR     R1, [SP,#0x94+var_64] ; Load from Memory N88AP_iBoot:4FF15AE2 094                ADD     R0, SP, #0x94+var_44 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15AE4 094                ADDS    R1, #0x18       ; Rd = Op1 + Op2 N88AP_iBoot:4FF15AE6 094                MOV     R2, R5          ; Rd = Op2 N88AP_iBoot:4FF15AE8 094                BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15AEC 094                LDR     R0, [SP,#0x94+var_64] ; Load from Memory N88AP_iBoot:4FF15AEE 094                LDR     R3, [R0]        ; Load from Memory N88AP_iBoot:4FF15AF0 094                CBZ     R3, loc_4FF15B16 ; Compare and Branch on Zero N88AP_iBoot:4FF15AF2 094                MOVS    R3, #0          ; Rd = Op2 N88AP_iBoot:4FF15AF4 094                ADD     R1, SP, #0x94+var_68 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15AF6 094                STR     R3, [SP,#0x94+var_68] ; Store to Memory N88AP_iBoot:4FF15AF8 094                LDR     R0, [R0]        ; Load from Memory N88AP_iBoot:4FF15AFA 094                BL      sub_4FF18500    ; Branch with Link N88AP_iBoot:4FF15AFE 094                CBNZ    R0, loc_4FF15B46 ; Compare and Branch on Non-Zero N88AP_iBoot:4FF15B00 094                LDR     R2, [SP,#0x94+var_68] ; Load from Memory N88AP_iBoot:4FF15B02 094                STR     R0, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15B04 094                STR     R0, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15B06 094                STR     R2, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15B08 094                ADD.W   R3, R5, #0x10   ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B0C 094                ADDS    R0, #Decrypt    ; argv1 N88AP_iBoot:4FF15B0E 094                ADD     R1, SP, #0x94+var_54 ; argv2 N88AP_iBoot:4FF15B10 094                ADD     R2, SP, #0x94+var_54 ; argv3 N88AP_iBoot:4FF15B12 094                BL      N88AP__iBOOT__aes_crypto_cmd ; Branch with Link N88AP_iBoot:4FF15B16 N88AP_iBoot:4FF15B16    loc_4FF15B16                            ; CODE XREF: n88ap__iBoot__blockdev+288�j N88AP_iBoot:4FF15B16 094                LDR     R1, [SP,#0x94+var_74] ; Load from Memory N88AP_iBoot:4FF15B18 094                LDR     R3, [SP,#0x94+var_60] ; Load from Memory N88AP_iBoot:4FF15B1A 094                ADD     R2, SP, #0x94+var_44 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B1C 094                STR     R1, [SP,#0x94+var_94] ; Store to Memory N88AP_iBoot:4FF15B1E 094                LDR     R1, [SP,#0x94+argv2] ; argv2 N88AP_iBoot:4FF15B20 094                TST.W   R3, #0xF        ; Set cond. codes on Op1 & Op2 N88AP_iBoot:4FF15B24 094                ITT NE                  ; If Then N88AP_iBoot:4FF15B26 094                BICNE.W R3, R3, #0xF    ; Rd = Op1 & ~Op2 N88AP_iBoot:4FF15B2A 094                ADDNE   R3, #0x10       ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B2C 094                STR     R2, [SP,#0x94+var_90] ; Store to Memory N88AP_iBoot:4FF15B2E 094                MOVS    R0, #0x11       ; argv1 N88AP_iBoot:4FF15B30 094                ADD     R2, SP, #0x94+var_54 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B32 094                STR     R2, [SP,#0x94+var_8C] ; Store to Memory N88AP_iBoot:4FF15B34 094                MOV     R2, R1          ; argv3 N88AP_iBoot:4FF15B36 094                BL      N88AP__iBOOT__aes_crypto_cmd ; Branch with Link N88AP_iBoot:4FF15B3A 094                ADD     R0, SP, #0x94+var_54 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B3C 094                MOVS    R1, #0          ; Rd = Op2 N88AP_iBoot:4FF15B3E 094                MOVS    R2, #0x30 ; '0' ; Rd = Op2 N88AP_iBoot:4FF15B40 094                BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15B44 094                B       loc_4FF15B4C    ; Branch N88AP_iBoot:4FF15B46    ; --- N88AP_iBoot:4FF15B46 N88AP_iBoot:4FF15B46    loc_4FF15B46                            ; CODE XREF: n88ap__iBoot__blockdev+296�j N88AP_iBoot:4FF15B46 094                ADD.W   R10, R10, #1    ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B4A 094                B       loc_4FF15A7E    ; Branch N88AP_iBoot:4FF15B4C    ; --- N88AP_iBoot:4FF15B4C N88AP_iBoot:4FF15B4C    loc_4FF15B4C                            ; CODE XREF: n88ap__iBoot__blockdev+232�j N88AP_iBoot:4FF15B4C                                            ; n88ap__iBoot__blockdev+2DC�j N88AP_iBoot:4FF15B4C 094                LDR     R2, [SP,#0x94+var_60] ; Load from Memory N88AP_iBoot:4FF15B4E 094                MOV     R0, R6          ; Rd = Op2 N88AP_iBoot:4FF15B50 094                LDR     R1, [SP,#0x94+argv2] ; Load from Memory N88AP_iBoot:4FF15B52 094                BLX     sub_4FF1EE70    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15B56 094                LDR     R3, [SP,#0x94+var_60] ; Load from Memory N88AP_iBoot:4FF15B58 094                LDR     R2, [SP,#0x94+var_84] ; Load from Memory N88AP_iBoot:4FF15B5A 094                STR     R3, [R2]        ; Store to Memory N88AP_iBoot:4FF15B5C 094                B       loc_4FF15B60    ; Branch N88AP_iBoot:4FF15B5E    ; --- N88AP_iBoot:4FF15B5E N88AP_iBoot:4FF15B5E    loc_4FF15B5E                            ; CODE XREF: n88ap__iBoot__blockdev+23C�j N88AP_iBoot:4FF15B5E                                            ; n88ap__iBoot__blockdev+258�j N88AP_iBoot:4FF15B5E 094                MOVS    R4, #0x16       ; Rd = Op2 N88AP_iBoot:4FF15B60 N88AP_iBoot:4FF15B60    loc_4FF15B60                            ; CODE XREF: n88ap__iBoot__blockdev+3C�j N88AP_iBoot:4FF15B60                                            ; n88ap__iBoot__blockdev+62�j N88AP_iBoot:4FF15B60                                            ; n88ap__iBoot__blockdev+90�j N88AP_iBoot:4FF15B60                                            ; n88ap__iBoot__blockdev+B4�j N88AP_iBoot:4FF15B60                                            ; n88ap__iBoot__blockdev+BE�j ... N88AP_iBoot:4FF15B60 094                LDR     R3, [SP,#0x94+var_58] ; Load from Memory N88AP_iBoot:4FF15B62 094                CBZ     R3, loc_4FF15B6A ; Compare and Branch on Zero N88AP_iBoot:4FF15B64 094                ADD     R0, SP, #0x94+var_58 ; Rd = Op1 + Op2 N88AP_iBoot:4FF15B66 094                BL      sub_4FF15620    ; Branch with Link N88AP_iBoot:4FF15B6A N88AP_iBoot:4FF15B6A    loc_4FF15B6A                            ; CODE XREF: n88ap__iBoot__blockdev+2FA�j N88AP_iBoot:4FF15B6A 094                CBZ     R4, loc_4FF15B7E ; Compare and Branch on Zero N88AP_iBoot:4FF15B6C N88AP_iBoot:4FF15B6C    loc_4FF15B6C                            ; CODE XREF: n88ap__iBoot__blockdev+70�j N88AP_iBoot:4FF15B6C 094                LDR     R3, [SP,#0x94+var_84] ; Load from Memory N88AP_iBoot:4FF15B6E 094                MOVS    R1, #0          ; Rd = Op2 N88AP_iBoot:4FF15B70 094                MOV     R0, R6          ; Rd = Op2 N88AP_iBoot:4FF15B72 094                STR.W   R1, [R11]       ; Store to Memory N88AP_iBoot:4FF15B76 094                MOV     R2, R8          ; Rd = Op2 N88AP_iBoot:4FF15B78 094                STR     R1, [R3]        ; Store to Memory N88AP_iBoot:4FF15B7A 094                BLX     sub_4FF1ED54    ; Branch with Link and Exchange (immediate address) N88AP_iBoot:4FF15B7E N88AP_iBoot:4FF15B7E    loc_4FF15B7E                            ; CODE XREF: n88ap__iBoot__blockdev:loc_4FF15B6A�j N88AP_iBoot:4FF15B7E 094                LDR     R1, =dword_4FF2A308 ; Load from Memory N88AP_iBoot:4FF15B80 094                LDR     R2, [SP,#0x94+var_24] ; Load from Memory N88AP_iBoot:4FF15B82 094                MOV     R0, R4          ; Rd = Op2 N88AP_iBoot:4FF15B84 094                LDR     R3, [R1]        ; Load from Memory N88AP_iBoot:4FF15B86 094                CMP     R2, R3          ; Set cond. codes on Op1 - Op2 N88AP_iBoot:4FF15B88 094                BEQ     loc_4FF15B8E    ; Branch N88AP_iBoot:4FF15B8A 094                BL      N88AP__iBOOT____stack_chk_fail ; Branch with Link N88AP_iBoot:4FF15B8E    ; --- N88AP_iBoot:4FF15B8E N88AP_iBoot:4FF15B8E    loc_4FF15B8E                            ; CODE XREF: n88ap__iBoot__blockdev+320�j N88AP_iBoot:4FF15B8E 094                SUB.W   SP, R7, #0x18   ; Rd = Op1 - Op2 N88AP_iBoot:4FF15B92 094                POP.W   {R8,R10,R11}    ; Pop registers N88AP_iBoot:4FF15B96 088                POP     {R4-R7,PC}      ; Pop registers N88AP_iBoot:4FF15B96    ; End of function n88ap__iBoot__blockdev N88AP_iBoot:4FF15B96 N88AP_iBoot:4FF15B96    ; --- N88AP_iBoot:4FF15B98    ; int off_4FF15B98 N88AP_iBoot:4FF15B98    off_4FF15B98    DCD dword_4FF2A308      ; DATA XREF: n88ap__iBoot__blockdev+C�r N88AP_iBoot:4FF15B98                                            ; n88ap__iBoot__blockdev:loc_4FF15B7E�r N88AP_iBoot:4FF15B9C    dword_4FF15B9C  DCD 'Memz'              ; DATA XREF: n88ap__iBoot__blockdev+1C�r N88AP_iBoot:4FF15BA0    ; int dword_4FF15BA0 N88AP_iBoot:4FF15BA0    dword_4FF15BA0  DCD 'img3'              ; DATA XREF: n88ap__iBoot__blockdev+2A�r N88AP_iBoot:4FF15BA0                                            ; n88ap__iBoot__blockdev+96�r N88AP_iBoot:4FF15BA4    ; int off_4FF15BA4 N88AP_iBoot:4FF15BA4    off_4FF15BA4    DCD aLoadAddressNotSpecified_0 N88AP_iBoot:4FF15BA4                                            ; DATA XREF: n88ap__iBoot__blockdev+32�r N88AP_iBoot:4FF15BA4                                            ; "load address not specified\n" N88AP_iBoot:4FF15BA8    ; int off_4FF15BA8 N88AP_iBoot:4FF15BA8    off_4FF15BA8    DCD aBlockdevReadFailedWithD_0 N88AP_iBoot:4FF15BA8                                            ; DATA XREF: n88ap__iBoot__blockdev+5C�r N88AP_iBoot:4FF15BA8                                            ; "blockdev read failed with %d\n" N88AP_iBoot:4FF15BAC    dword_4FF15BAC  DCD 'Img3'              ; DATA XREF: n88ap__iBoot__blockdev+66�r N88AP_iBoot:4FF15BB0    dword_4FF15BB0  DCD 'SDOM'              ; DATA XREF: n88ap__iBoot__blockdev+E2�r N88AP_iBoot:4FF15BB4    dword_4FF15BB4  DCD 'PROD'              ; DATA XREF: n88ap__iBoot__blockdev+106�r N88AP_iBoot:4FF15BB8    dword_4FF15BB8  DCD 'CHIP'              ; DATA XREF: n88ap__iBoot__blockdev+12E�r N88AP_iBoot:4FF15BBC    dword_4FF15BBC  DCD 'TYPE'              ; DATA XREF: n88ap__iBoot__blockdev+15A�r N88AP_iBoot:4FF15BC0    dword_4FF15BC0  DCD 'SEPO'              ; DATA XREF: n88ap__iBoot__blockdev+17C�r N88AP_iBoot:4FF15BC4    dword_4FF15BC4  DCD 'BORD'              ; DATA XREF: n88ap__iBoot__blockdev+196�r N88AP_iBoot:4FF15BC8    dword_4FF15BC8  DCD 'ECID'              ; DATA XREF: n88ap__iBoot__blockdev+1C0�r N88AP_iBoot:4FF15BCC    ; int off_4FF15BCC N88AP_iBoot:4FF15BCC    off_4FF15BCC    DCD aImageValidationFailedButUntrustedImagesAreP_0 N88AP_iBoot:4FF15BCC                                            ; DATA XREF: n88ap__iBoot__blockdev+1F2�r N88AP_iBoot:4FF15BCC                                            ; "image validation failed but untrusted i"... N88AP_iBoot:4FF15BD0    dword_4FF15BD0  DCD 'DATA'              ; DATA XREF: n88ap__iBoot__blockdev+204�r N88AP_iBoot:4FF15BD4    dword_4FF15BD4  DCD 'KBAG'              ; DATA XREF: n88ap__iBoot__blockdev+21C�r N88AP_iBoot:4FF15BD8