Public feed
#723354
__text:00011548 do_get_IMEI ; DATA XREF: __inst_meth:000219A8o
__text:00011548
__text:00011548 var_161 = -0x161
__text:00011548 var_160 = -0x160
__text:00011548 ATCgsn = -0x158
__text:00011548 atcgsn_cmd = -0x154
__text:00011548 IMEI_READ = -0x150
__text:00011548 var_14C = -0x14C
__text:00011548 var_148 = -0x148
__text:00011548 var_142 = -0x142
__text:00011548 RECEIVED_DATA = -0x140
__text:00011548 var_3C = -0x3C
__text:00011548 var_38 = -0x38
__text:00011548 serial_fd = -0x34
__text:00011548 var_30 = -0x30
__text:00011548 var_2C = -0x2C
__text:00011548 var_28 = -0x28
__text:00011548 var_24 = -0x24
__text:00011548 var_20 = -0x20
__text:00011548 var_1C = -0x1C
__text:00011548 var_18 = -0x18
__text:00011548 var_8 = -8
__text:00011548
__text:00011548 STMFD SP!, {R4-R7,LR}
__text:0001154C ADD R7, SP, #0x14+var_8
__text:00011550 SUB SP, SP, #0x24C
__text:00011554 STR R0, [SP,#0x260+var_18]
__text:00011558 STR R1, [SP,#0x260+var_1C]
__text:0001155C MOVL R3, 0xFFFFFFFF
__text:00011560 STR R3, [SP,#0x260+var_30]
__text:00011564 STR R3, [SP,#0x260+serial_fd]
__text:00011568 MOV R3, #0
__text:0001156C STR R3, [SP,#0x260+var_3C]
__text:00011570 BL restart_baseband
__text:00011574 CMP R0, #0
__text:00011578 BLT loc_116D8
__text:0001157C MOVL R1, unk_1C200 ; speed
__text:00011584 LDR R0, =aDevTty_baseban ; unk
__text:00011588 BL init_conn
__text:0001158C STR R0, [SP,#0x260+serial_fd]
__text:00011590 CMN R0, #1
__text:00011594 BEQ loc_116D8
__text:00011598 LDR R3, =aAtCgsn_0
__text:0001159C STR R3, [SP,#0x260+atcgsn_cmd]
__text:000115A0 LDR R3, =aAtCgsn
__text:000115A4 STR R3, [SP,#0x260+ATCgsn]
__text:000115A8 MOV R0, #5
__text:000115AC BL _sleep
__text:000115B0 MOV R2, #0x100
__text:000115B4 MOV R1, #0
__text:000115B8 MOV R0, SP
__text:000115BC BL _memset
__text:000115C0 LDR R0, [SP,#0x260+atcgsn_cmd]
__text:000115C4 BL _strlen
__text:000115C8 MOV R2, R0
__text:000115CC LDR R0, [SP,#0x260+serial_fd]
__text:000115D0 LDR R1, [SP,#0x260+atcgsn_cmd]
__text:000115D4 BL _write_0 ; SEND AT+CGSN\r
__text:000115D8 CMP R0, #0
__text:000115DC BLT loc_116D8
__text:000115E0 LDR R0, [SP,#0x260+serial_fd]
__text:000115E4 MOV R2, #0x100
__text:000115E8 MOV R1, SP
__text:000115EC BL bb_raw_read_bytes
__text:000115F0 CMP R0, #0
__text:000115F4 BLT loc_116D8
__text:000115F8 MOV R3, #0
__text:000115FC STRB R3, [SP,#0x260+var_161]
__text:00011600 ADD R2, SP, #0x260+var_3C
__text:00011604 MOV R3, #0x100
__text:00011608 ADD R1, SP, #0x260+RECEIVED_DATA
__text:0001160C MOV R0, SP
__text:00011610 BL trimp_string
__text:00011614 STR R0, [SP,#0x260+var_38]
__text:00011618 CMP R0, #0
__text:0001161C BEQ loc_116D8
__text:00011620 LDR R0, [SP,#0x260+ATCgsn]
__text:00011624 BL _strlen
__text:00011628 MOV R2, R0
__text:0001162C LDR R1, [SP,#0x260+ATCgsn]
__text:00011630 ADD R0, SP, #0x260+RECEIVED_DATA
__text:00011634 BL _memcmp ; Is the echo there?
__text:00011638 CMP R0, #0
__text:0001163C BNE loc_116D8
__text:00011640 ADD R2, SP, #0x260+var_3C
__text:00011644 MOV R3, #0x100
__text:00011648 ADD R1, SP, #0x260+RECEIVED_DATA ; Skip the echo
__text:0001164C MOV R0, SP
__text:00011650 BL trimp_string
__text:00011654 STR R0, [SP,#0x260+var_38]
__text:00011658 CMP R0, #0
__text:0001165C BEQ loc_116D8
__text:00011660 LDR R3, [SP,#0x260+var_38] ; IMEI LEN
__text:00011664 CMP R3, #0xF
__text:00011668 BHI loc_116D8
__text:0001166C MOV R4, #0
__text:00011670 ADD R0, SP, #0x260+var_160
__text:00011674 STRH R4, [R0,#0x1C]
__text:00011678 STR R4, [SP,#0x260+var_14C]
__text:0001167C STRB R4, [SP,#0x260+var_142]
__text:00011680 STR R4, [SP,#0x260+var_148]
__text:00011684 STR R4, [SP,#0x260+IMEI_READ]
__text:00011688 LDR R2, [SP,#0x260+var_38]
__text:0001168C ADD R5, SP, #0x260+IMEI_READ
__text:00011690 ADD R1, SP, #0x260+RECEIVED_DATA
__text:00011694 MOV R0, R5
__text:00011698 BL _memcpy
__text:0001169C LDR R3, =off_21040
__text:000116A0 LDR R0, [R3]
__text:000116A4 STR R0, [SP,#0x260+var_24]
__text:000116A8 LDR R3, =off_21058
__text:000116AC LDR R1, [R3]
__text:000116B0 BL _objc_msgSend
__text:000116B4 STR R0, [SP,#0x260+var_28]
__text:000116B8 LDR R3, =off_21244
__text:000116BC LDR R1, [R3]
__text:000116C0 MOV R3, #0xF
__text:000116C4 MOV R2, R5
__text:000116C8 BL _objc_msgSend
__text:000116CC LDR R3, [SP,#0x260+var_18]
__text:000116D0 STR R0, [R3,#0x110]
__text:000116D4 STR R4, [SP,#0x260+var_30]
__text:000116D8
__text:000116D8 loc_116D8 ; CODE XREF: do_get_IMEI+30j
__text:000116D8 ; do_get_IMEI+4Cj ...
__text:000116D8 LDR R3, [SP,#0x260+serial_fd]
__text:000116DC CMN R3, #1
__text:000116E0 BEQ loc_116EC
__text:000116E4 LDR R0, [SP,#0x260+serial_fd]
__text:000116E8 BL _close_0 ; Close the serial comunication.
__text:000116EC
__text:000116EC loc_116EC ; CODE XREF: do_get_IMEI+198j
__text:000116EC LDR R3, [SP,#0x260+var_30]
__text:000116F0 STR R3, [SP,#0x260+var_2C]
__text:000116F4 STR R3, [SP,#0x260+var_20]
__text:000116F8 LDR R0, [SP,#0x260+var_20]
__text:000116FC SUB SP, R7, #0xC
__text:00011700 LDMFD SP!, {R4-R7,PC}
__text:00011700 ; End of function do_get_IMEI