__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