All pastes #732644 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-11 04:08 UTC
rendered paste body
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