rendered paste body0000:00010CD0 do_erase_write_flash ; DATA XREF: __inst_meth:000219E4o
0000:00010CD0
0000:00010CD0 var_64 = -0x64
0000:00010CD0 var_60 = -0x60
0000:00010CD0 var_5C = -0x5C
0000:00010CD0 var_58 = -0x58
0000:00010CD0 var_54 = -0x54
0000:00010CD0 var_50 = -0x50
0000:00010CD0 var_4C = -0x4C
0000:00010CD0 var_48 = -0x48
0000:00010CD0 var_44 = -0x44
0000:00010CD0 var_40 = -0x40
0000:00010CD0 var_3C = -0x3C
0000:00010CD0 var_38 = -0x38
0000:00010CD0 var_34 = -0x34
0000:00010CD0 var_30 = -0x30
0000:00010CD0 var_2C = -0x2C
0000:00010CD0 var_28 = -0x28
0000:00010CD0 var_24 = -0x24
0000:00010CD0 var_20 = -0x20
0000:00010CD0 var_1C = -0x1C
0000:00010CD0 var_18 = -0x18
0000:00010CD0 var_14 = -0x14
0000:00010CD0 var_10 = -0x10
0000:00010CD0 var_C = -0xC
0000:00010CD0 arg_0 = 0
0000:00010CD0 arg_4 = 4
0000:00010CD0
0000:00010CD0 STMFD SP!, {R7,LR}
0000:00010CD4 MOV R7, SP
0000:00010CD8 SUB SP, SP, #0x5C
0000:00010CDC STR R0, [SP,#0x64+var_C]
0000:00010CE0 STR R1, [SP,#0x64+var_10]
0000:00010CE4 STR R2, [SP,#0x64+var_14]
0000:00010CE8 STR R3, [SP,#0x64+var_18]
0000:00010CEC LDR R3, [SP,#0x64+arg_0]
0000:00010CF0 STR R3, [SP,#0x64+var_1C]
0000:00010CF4 LDR R3, [SP,#0x64+arg_4]
0000:00010CF8 STR R3, [SP,#0x64+var_20]
0000:00010CFC MOVL R3, 0xFFFFFFFF
0000:00010D00 STR R3, [SP,#0x64+var_34]
0000:00010D04 STR R3, [SP,#0x64+var_38]
0000:00010D08 MOV R3, #0
0000:00010D0C STR R3, [SP,#0x64+var_3C]
0000:00010D10 MOVL R1, loc_1C200 ; speed
0000:00010D18 LDR R0, =aDevTty_baseban ; unk
0000:00010D1C BL init_conn
0000:00010D20 STR R0, [SP,#0x64+var_34]
0000:00010D24 CMN R0, #1
0000:00010D28 BEQ loc_10F44
0000:00010D2C LDR R0, [SP,#0x64+var_34]
0000:00010D30 BL open_baseband_get_flash_info
0000:00010D34 CMP R0, #0
0000:00010D38 BLT loc_10F44
0000:00010D3C LDR R0, [SP,#0x64+var_34]
0000:00010D40 MOV R1, #0xE1000
0000:00010D44 BL bb_set_baudrate
0000:00010D48 CMP R0, #0
0000:00010D4C BLT loc_10F44
0000:00010D50 LDR R1, [SP,#0x64+var_20]
0000:00010D54 LDR R0, [SP,#0x64+var_34]
0000:00010D58 BL bb_write_secpack
0000:00010D5C CMP R0, #0
0000:00010D60 BLT loc_10F44
0000:00010D64 LDR R3, [SP,#0x64+var_14]
0000:00010D68 CMP R3, #0xA0000000
0000:00010D6C BNE loc_10DB8
0000:00010D70 LDR R0, [SP,#0x64+var_34]
0000:00010D74 MOV R1, #0xA0000000
0000:00010D78 LDR R2, =0xA001FFFE
0000:00010D7C BL bb_erase_flash
0000:00010D80 CMP R0, #0
0000:00010D84 BLT loc_10F44
0000:00010D88 MOV R3, #0
0000:00010D8C STR R3, [SP,#0x64+var_54]
0000:00010D90 B loc_10DAC
0000:00010D94 ; ---------------------------------------------------------------------------
0000:00010D94
0000:00010D94 loc_10D94 ; CODE XREF: do_erase_write_flash+E4j
0000:00010D94 LDR R0, [SP,#0x64+var_34]
0000:00010D98 ADD R2, SP, #0x64+var_54
0000:00010D9C ADD R1, SP, #0x64+var_58
0000:00010DA0 BL bb_erase_status
0000:00010DA4 CMP R0, #0
0000:00010DA8 BLT loc_10F44
0000:00010DAC
0000:00010DAC loc_10DAC ; CODE XREF: do_erase_write_flash+C0j
0000:00010DAC LDR R3, [SP,#0x64+var_54]
0000:00010DB0 CMP R3, #0
0000:00010DB4 BEQ loc_10D94
0000:00010DB8
0000:00010DB8 loc_10DB8 ; CODE XREF: do_erase_write_flash+9Cj
0000:00010DB8 LDR R0, [SP,#0x64+var_34]
0000:00010DBC MOVL R1, 0xA0020000
0000:00010DC4 LDR R2, =0xA03BFFFE
0000:00010DC8 BL bb_erase_flash
0000:00010DCC CMP R0, #0
0000:00010DD0 BLT loc_10F44
0000:00010DD4 MOV R3, #0
0000:00010DD8 STR R3, [SP,#0x64+var_40]
0000:00010DDC B loc_10E44
0000:00010DE0 ; ---------------------------------------------------------------------------
0000:00010DE0
0000:00010DE0 loc_10DE0 ; CODE XREF: do_erase_write_flash+17Cj
0000:00010DE0 LDR R0, [SP,#0x64+var_34]
0000:00010DE4 ADD R2, SP, #0x64+var_40
0000:00010DE8 ADD R1, SP, #0x64+var_44
0000:00010DEC BL bb_erase_status
0000:00010DF0 CMP R0, #0
0000:00010DF4 BLT loc_10F44
0000:00010DF8 MOV R3, #0x64
0000:00010DFC LDR R2, [SP,#0x64+var_44]
0000:00010E00 MUL R3, R2, R3
0000:00010E04 ADD R3, R3, #0x80000000
0000:00010E08 LDR R2, =0x5397829D
0000:00010E0C UMULL R2, R3, R3, R2
0000:00010E10 MOV R2, R3,LSR#20
0000:00010E14 STR R2, [SP,#0x64+var_5C]
0000:00010E18 LDR R2, [SP,#0x64+var_3C]
0000:00010E1C CMP R2, R3,LSR#20
0000:00010E20 BEQ loc_10E44
0000:00010E24 LDR R3, [SP,#8]
0000:00010E28 STR R3, [SP,#0x28]
0000:00010E2C LDR R0, [SP,#0x58]
0000:00010E30 STR R0, [SP,#0x3C]
0000:00010E34 LDR R3, =off_21284 ; Get patch data
0000:00010E38 LDR R1, [R3]
0000:00010E3C LDR R2, [SP,#8]
0000:00010E40 BL _objc_msgSend
0000:00010E44
0000:00010E44 loc_10E44 ; CODE XREF: do_erase_write_flash+10Cj
0000:00010E44 ; do_erase_write_flash+150j
0000:00010E44 LDR R3, [SP,#0x64+var_40]
0000:00010E48 CMP R3, #0
0000:00010E4C BEQ loc_10DE0
0000:00010E50 LDR R1, [SP,#0x64+var_14]
0000:00010E54 LDR R0, [SP,#0x64+var_34]
0000:00010E58 BL bb_send_address
0000:00010E5C CMP R0, #0
0000:00010E60 BLT loc_10F44
0000:00010E64 LDR R3, [SP,#0x64+var_18]
0000:00010E68 STR R3, [SP,#0x64+var_48]
0000:00010E6C LDR R3, [SP,#0x64+var_1C]
0000:00010E70 STR R3, [SP,#0x64+var_4C]
0000:00010E74 MOV R3, #0
0000:00010E78 STR R3, [SP,#0x64+var_50]
0000:00010E7C STR R3, [SP,#0x64+var_3C]
0000:00010E80 B loc_10F20
0000:00010E84 ; ---------------------------------------------------------------------------
0000:00010E84
0000:00010E84 loc_10E84 ; CODE XREF: do_erase_write_flash+258j
0000:00010E84 LDR R3, [SP,#0x64+var_4C]
0000:00010E88 CMP R3, #0x800
0000:00010E8C BHI loc_10F70
0000:00010E90 LDR R3, [SP,#0x64+var_4C]
0000:00010E94 STR R3, [SP,#0x64+var_60]
0000:00010E98
0000:00010E98 loc_10E98 ; CODE XREF: do_erase_write_flash+2A8j
0000:00010E98 LDR R2, [SP,#0x64+var_60]
0000:00010E9C LDR R1, [SP,#0x64+var_48]
0000:00010EA0 LDR R0, [SP,#0x64+var_34]
0000:00010EA4 BL bb_write_flash_data
0000:00010EA8 CMP R0, #0
0000:00010EAC BLT loc_10F44
0000:00010EB0 LDR R3, [SP,#0x64+var_60]
0000:00010EB4 LDR R2, [SP,#0x64+var_48]
0000:00010EB8 ADD R3, R2, R3
0000:00010EBC STR R3, [SP,#0x64+var_48]
0000:00010EC0 LDR R3, [SP,#0x64+var_60]
0000:00010EC4 LDR R2, [SP,#0x64+var_4C]
0000:00010EC8 SUB R3, R2, R3
0000:00010ECC STR R3, [SP,#0x64+var_4C]
0000:00010ED0 LDR R3, [SP,#0x64+var_60]
0000:00010ED4 LDR R2, [SP,#0x64+var_50]
0000:00010ED8 ADD R3, R2, R3
0000:00010EDC STR R3, [SP,#0x64+var_50]
0000:00010EE0 MOV R2, #0x64
0000:00010EE4 MUL R0, R3, R2
0000:00010EE8 LDR R1, [SP,#0x64+var_1C]
0000:00010EEC BL ___udivsi3
0000:00010EF0 STR R0, [SP],#0x64+var_64
0000:00010EF4 LDR R3, [SP,#0x64+var_3C]
0000:00010EF8 CMP R3, R0
0000:00010EFC BEQ loc_10F20
0000:00010F00 LDR R3, [SP],#0x64+var_64
0000:00010F04 STR R3, [SP,#0x64+var_3C]
0000:00010F08 LDR R0, [SP,#0x64+var_C]
0000:00010F0C STR R0, [SP,#0x64+var_2C]
0000:00010F10 LDR R3, =off_21284
0000:00010F14 LDR R1, [R3]
0000:00010F18 LDR R2, [SP],#0x64+var_64
0000:00010F1C BL _objc_msgSend
0000:00010F20
0000:00010F20 loc_10F20 ; CODE XREF: do_erase_write_flash+1B0j
0000:00010F20 ; do_erase_write_flash+22Cj
0000:00010F20 LDR R3, [SP,#0x64+var_4C]
0000:00010F24 CMP R3, #0
0000:00010F28 BNE loc_10E84
0000:00010F2C LDR R0, [SP,#0x64+var_34]
0000:00010F30 BL bb_end_secpack
0000:00010F34 CMP R0, #0
0000:00010F38 BLT loc_10F44
0000:00010F3C MOV R3, #0
0000:00010F40 STR R3, [SP,#0x64+var_38]
0000:00010F44
0000:00010F44 loc_10F44 ; CODE XREF: do_erase_write_flash+58j
0000:00010F44 ; do_erase_write_flash+68j ...
0000:00010F44 LDR R3, [SP,#0x64+var_34]
0000:00010F48 CMN R3, #1
0000:00010F4C BEQ loc_10F58
0000:00010F50 LDR R0, [SP,#0x64+var_34]
0000:00010F54 BL _close_0
0000:00010F58
0000:00010F58 loc_10F58 ; CODE XREF: do_erase_write_flash+27Cj
0000:00010F58 LDR R3, [SP,#0x64+var_38]
0000:00010F5C STR R3, [SP,#0x64+var_30]
0000:00010F60 STR R3, [SP,#0x64+var_24]
0000:00010F64 LDR R0, [SP,#0x64+var_24]
0000:00010F68 MOV SP, R7
0000:00010F6C LDMFD SP!, {R7,PC}
0000:00010F70 ; ---------------------------------------------------------------------------
0000:00010F70
0000:00010F70 loc_10F70 ; CODE XREF: do_erase_write_flash+1BCj
0000:00010F70 MOV R3, #0x800
0000:00010F74 STR R3, [SP,#0x64+var_60]
0000:00010F78 B loc_10E98
0000:00010F78 ; End of function do_erase_write_flash