0000: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