Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- text:FFF1BD68 ; =============== S U B R O U T I N E =======================================
- .text:FFF1BD68
- .text:FFF1BD68
- .text:FFF1BD68 ; int __fastcall sub_FFF1BD68(void *rounded_addr, void *rounded_end_addr)
- .text:FFF1BD68 sub_FFF1BD68 ; CODE XREF: sub_FFF1D654+A8p
- .text:FFF1BD68 ; clean_flush_data_cache_k+6Cp
- .text:FFF1BD68 ; sub_FFF25BD8+3Cp
- .text:FFF1BD68 ; clean_invalidate_dcache+3Cp
- .text:FFF1BD68 F0 5F 2D E9 STMFD SP!, {R4-R12,LR}
- .text:FFF1BD6C 01 70 A0 E1 MOV R7, R1
- .text:FFF1BD70 07 00 50 E1 CMP R0, R7
- .text:FFF1BD74 5E 00 00 2A BCS locret_FFF1BEF4
- .text:FFF1BD78 7C 61 9F E5 LDR R6, =0xFFFB8770
- .text:FFF1BD7C 74 A1 9F E5 LDR R10, =off_FFFF9000
- .text:FFF1BD80 00 90 A0 E3 MOV R9, #0
- .text:FFF1BD84 40 B0 46 E2 SUB R11, R6, #0x40 ; 0xFFFB8730
- .text:FFF1BD88
- .text:FFF1BD88 loc_FFF1BD88 ; CODE XREF: sub_FFF1BD68+188j
- .text:FFF1BD88 01 58 80 E2 ADD R5, R0, #0x10000 ; r5 = rounded_addr + 0x10000
- .text:FFF1BD8C 07 00 55 E1 CMP R5, R7
- .text:FFF1BD90 01 00 00 8A BHI loc_FFF1BD9C ; jump if rounded_addr + 0x10000 > rounded_end_addr
- .text:FFF1BD94 00 00 55 E1 CMP R5, R0
- .text:FFF1BD98 00 00 00 2A BCS loc_FFF1BDA0 ; jump if rounded_addr + 0x10000 >= rounded_addr
- .text:FFF1BD9C
- .text:FFF1BD9C loc_FFF1BD9C ; CODE XREF: sub_FFF1BD68+28j
- .text:FFF1BD9C 07 50 A0 E1 MOV R5, R7 ; if rounded_addr + 0x10000 > rounded_end_addr, r5 = rounded_end_addr
- .text:FFF1BDA0
- .text:FFF1BDA0 loc_FFF1BDA0 ; CODE XREF: sub_FFF1BD68+30j
- .text:FFF1BDA0 00 40 A0 E1 MOV R4, R0
- .text:FFF1BDA4 54 01 9F E5 LDR R0, =dword_FFF2E064
- .text:FFF1BDA8 00 10 9A E5 LDR R1, [R10]
- .text:FFF1BDAC 00 80 A0 E1 MOV R8, R0
- .text:FFF1BDB0 9F 2F 90 E1 LDREX R2, [R0]
- .text:FFF1BDB4 00 00 52 E3 CMP R2, #0
- .text:FFF1BDB8 91 3F 80 01 STREXEQ R3, R1, [R0]
- .text:FFF1BDBC 92 3F 80 11 STREXNE R3, R2, [R0]
- .text:FFF1BDC0 00 00 53 03 CMPEQ R3, #0
- .text:FFF1BDC4 09 05 00 1B BLNE interlock_error
- .text:FFF1BDC8 BA 9F 07 EE MCR p15, 0, R9,c7,c10, 5 ; Data Memory Barrier
- .text:FFF1BDCC 01 1C 84 E2 ADD R1, R4, #0x100
- .text:FFF1BDD0 05 00 51 E1 CMP R1, R5
- .text:FFF1BDD4 2B 00 00 2A BCS loc_FFF1BE88
- .text:FFF1BDD8
- .text:FFF1BDD8 loc_FFF1BDD8 ; CODE XREF: sub_FFF1BD68+11Cj
- .text:FFF1BDD8 E0 10 84 E2 ADD R1, R4, #0xE0
- .text:FFF1BDDC 24 06 A0 E1 MOV R0, R4,LSR#12
- .text:FFF1BDE0 21 16 A0 E1 MOV R1, R1,LSR#12
- .text:FFF1BDE4 00 06 A0 E1 MOV R0, R0,LSL#12
- .text:FFF1BDE8 01 16 A0 E1 MOV R1, R1,LSL#12
- .text:FFF1BDEC 01 00 50 E1 CMP R0, R1
- .text:FFF1BDF0 04 1A A0 E1 MOV R1, R4,LSL#20
- .text:FFF1BDF4 21 1A A0 E1 MOV R1, R1,LSR#20
- .text:FFF1BDF8 38 0F 07 EE MCR p15, 0, R0,c7,c8, 1 ; VA to PA translation with privileged write permission check
- .text:FFF1BDFC 14 0F 17 EE MRC p15, 0, R0,c7,c4, 0 ; Read PA register (PA after successful translation)
- .text:FFF1BE00 01 20 00 E2 AND R2, R0, #1
- .text:FFF1BE04 15 00 00 1A BNE loc_FFF1BE60
- .text:FFF1BE08 00 00 52 E3 CMP R2, #0
- .text:FFF1BE0C 20 06 A0 01 MOVEQ R0, R0,LSR#12
- .text:FFF1BE10 00 06 A0 01 MOVEQ R0, R0,LSL#12
- .text:FFF1BE14 01 00 80 01 ORREQ R0, R0, R1
- .text:FFF1BE18 00 00 A0 13 MOVNE R0, #0
- .text:FFF1BE1C 20 20 80 E2 ADD R2, R0, #0x20
- .text:FFF1BE20 40 C0 80 E2 ADD R12, R0, #0x40
- .text:FFF1BE24 00 00 86 E5 STR R0, [R6]
- .text:FFF1BE28 60 10 80 E2 ADD R1, R0, #0x60
- .text:FFF1BE2C 00 20 86 E5 STR R2, [R6]
- .text:FFF1BE30 80 20 80 E2 ADD R2, R0, #0x80
- .text:FFF1BE34 A0 30 80 E2 ADD R3, R0, #0xA0
- .text:FFF1BE38 00 C0 86 E5 STR R12, [R6]
- .text:FFF1BE3C C0 C0 80 E2 ADD R12, R0, #0xC0
- .text:FFF1BE40 E0 00 80 E2 ADD R0, R0, #0xE0
- .text:FFF1BE44 00 10 86 E5 STR R1, [R6]
- .text:FFF1BE48 00 20 86 E5 STR R2, [R6]
- .text:FFF1BE4C 00 30 86 E5 STR R3, [R6]
- .text:FFF1BE50 00 C0 86 E5 STR R12, [R6]
- .text:FFF1BE54 00 00 86 E5 STR R0, [R6]
- .text:FFF1BE58 01 4C 84 E2 ADD R4, R4, #0x100
- .text:FFF1BE5C 06 00 00 EA B loc_FFF1BE7C
- .text:FFF1BE60 ; ---------------------------------------------------------------------------
- .text:FFF1BE60
- .text:FFF1BE60 loc_FFF1BE60 ; CODE XREF: sub_FFF1BD68+9Cj
- .text:FFF1BE60 00 00 52 E3 CMP R2, #0
- .text:FFF1BE64 20 06 A0 01 MOVEQ R0, R0,LSR#12
- .text:FFF1BE68 20 40 84 E2 ADD R4, R4, #0x20
- .text:FFF1BE6C 00 06 A0 01 MOVEQ R0, R0,LSL#12
- .text:FFF1BE70 01 00 80 01 ORREQ R0, R0, R1
- .text:FFF1BE74 00 00 A0 13 MOVNE R0, #0
- .text:FFF1BE78 00 00 86 E5 STR R0, [R6]
- .text:FFF1BE7C
- .text:FFF1BE7C loc_FFF1BE7C ; CODE XREF: sub_FFF1BD68+F4j
- .text:FFF1BE7C 01 1C 84 E2 ADD R1, R4, #0x100
- .text:FFF1BE80 05 00 51 E1 CMP R1, R5
- .text:FFF1BE84 D3 FF FF 3A BCC loc_FFF1BDD8
- .text:FFF1BE88
- .text:FFF1BE88 loc_FFF1BE88 ; CODE XREF: sub_FFF1BD68+6Cj
- .text:FFF1BE88 05 00 54 E1 CMP R4, R5
- .text:FFF1BE8C 0E 00 00 2A BCS loc_FFF1BECC
- .text:FFF1BE90
- .text:FFF1BE90 loc_FFF1BE90 ; CODE XREF: sub_FFF1BD68+160j
- .text:FFF1BE90 24 06 A0 E1 MOV R0, R4,LSR#12
- .text:FFF1BE94 04 1A A0 E1 MOV R1, R4,LSL#20
- .text:FFF1BE98 00 06 A0 E1 MOV R0, R0,LSL#12
- .text:FFF1BE9C 21 1A A0 E1 MOV R1, R1,LSR#20
- .text:FFF1BEA0 38 0F 07 EE MCR p15, 0, R0,c7,c8, 1 ; VA to PA translation with privileged write permission check
- .text:FFF1BEA4 14 0F 17 EE MRC p15, 0, R0,c7,c4, 0 ; Read PA register (PA after successful translation)
- .text:FFF1BEA8 01 00 10 E3 TST R0, #1
- .text:FFF1BEAC 20 06 A0 01 MOVEQ R0, R0,LSR#12
- .text:FFF1BEB0 20 40 84 E2 ADD R4, R4, #0x20
- .text:FFF1BEB4 00 06 A0 01 MOVEQ R0, R0,LSL#12
- .text:FFF1BEB8 01 00 80 01 ORREQ R0, R0, R1
- .text:FFF1BEBC 00 00 A0 13 MOVNE R0, #0
- .text:FFF1BEC0 00 00 86 E5 STR R0, [R6]
- .text:FFF1BEC4 05 00 54 E1 CMP R4, R5
- .text:FFF1BEC8 F0 FF FF 3A BCC loc_FFF1BE90
- .text:FFF1BECC
- .text:FFF1BECC loc_FFF1BECC ; CODE XREF: sub_FFF1BD68+124j
- .text:FFF1BECC 00 90 8B E5 STR R9, [R11]
- .text:FFF1BED0 08 00 A0 E1 MOV R0, R8
- .text:FFF1BED4 BA 9F 07 EE MCR p15, 0, R9,c7,c10, 5 ; Data Memory Barrier
- .text:FFF1BED8 00 90 88 E5 STR R9, [R8]
- .text:FFF1BEDC F4 10 D8 E1 LDRSH R1, [R8,#4]
- .text:FFF1BEE0 00 00 51 E3 CMP R1, #0
- .text:FFF1BEE4 24 05 00 CB BLGT kernel_error
- .text:FFF1BEE8 07 00 55 E1 CMP R5, R7
- .text:FFF1BEEC 05 00 A0 E1 MOV R0, R5
- .text:FFF1BEF0 A4 FF FF 3A BCC loc_FFF1BD88
- .text:FFF1BEF4
- .text:FFF1BEF4 locret_FFF1BEF4 ; CODE XREF: sub_FFF1BD68+Cj
- .text:FFF1BEF4 F0 9F BD E8 LDMFD SP!, {R4-R12,PC}
- .text:FFF1BEF4 ; End of function sub_FFF1BD68
- .text:FFF1BEF4
- .text:FFF1BEF4 ; ---------------------------------------------------------------------------
- .text:FFF1BEF8 00 90 FF FF off_FFF1BEF8 DCD off_FFFF9000 ; DATA XREF: sub_FFF1BD68+14r
- .text:FFF1BEFC 70 87 FB FF dword_FFF1BEFC DCD 0xFFFB8770 ; DATA XREF: sub_FFF1BD68+10r
- .text:FFF1BF00 64 E0 F2 FF off_FFF1BF00 DCD dword_FFF2E064 ; DATA XREF: sub_FFF1BD68+3Cr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement