.text:10001000 ; .text:10001000 ; +-------------------------------------------------------------------------+ .text:10001000 ; | This file is generated by The Interactive Disassembler (IDA) | .text:10001000 ; | Copyright (c) 2007 by DataRescue sa/nv, | .text:10001000 ; | Evaluation version | .text:10001000 ; +-------------------------------------------------------------------------+ .text:10001000 ; .text:10001000 ; Input MD5 : A89F90248718B54F8739EC78552266E9 .text:10001000 .text:10001000 ; File Name : C:\Scoter Kitchen\Extraction Room\dump\touch.dll\touch.dll .text:10001000 ; Format : Portable executable for ARMI (PE) .text:10001000 ; Imagebase : 10000000 .text:10001000 ; Section 1. (virtual address 00001000) .text:10001000 ; Virtual size : 0000A609 ( 42505.) .text:10001000 ; Section size in file : 0000A800 ( 43008.) .text:10001000 ; Offset to raw data for section: 00000400 .text:10001000 ; Flags 60000020: Text Executable Readable .text:10001000 ; Alignment : default .text:10001000 .text:10001000 ; Processor : ARM .text:10001000 ; Target assembler: Generic assembler for ARM .text:10001000 ; Byte sex : Little endian .text:10001000 .text:10001000 ; =========================================================================== .text:10001000 .text:10001000 ; Segment type: Pure code .text:10001000 AREA .text, CODE, READWRITE, ALIGN=4 .text:10001000 ; ORG 0x10001000 .text:10001000 CODE32 .text:10001000 DCD 0 .text:10001004 DCD 0x1D4886FA, 0 .text:1000100C DCD 2, 0x22, 0x1A8C, 0xE8C .text:1000101C dword_1000101C DCD 0x19 ; DATA XREF: .text:off_10004964o .text:10001020 aUserinputevent unicode 0, ,0 .text:10001020 ; DATA XREF: .text:off_10002598o .text:1000103E DCW 0 .text:10001040 aWmlock_mutex_n unicode 0, ,0 .text:10001040 ; DATA XREF: .text:off_10001AE0o .text:10001064 aTouchLockError unicode 0, .text:10001064 ; DATA XREF: .text:off_10001B24o .text:10001064 DCW 0xD .text:10001064 DCW 0xA .text:10001064 unicode 0, <>,0 .text:1000108A DCW 0 .text:1000108C ALIGN 0x10 .text:10001090 aTchEndCaptrueA unicode 0, .text:10001090 ; DATA XREF: .text:off_100021F0o .text:10001090 DCW 0xD .text:10001090 DCW 0xA .text:10001090 unicode 0, <>,0 .text:100010D4 aPowerspeedEven unicode 0, ,0 .text:100010D4 ; DATA XREF: .text:off_100021F4o .text:10001100 aTouchpanelenab unicode 0, ,0 .text:10001100 ; DATA XREF: .text:off_100023C0o .text:1000114A DCW 0 .text:1000114C ALIGN 0x10 .text:10001150 aTouchpanelen_0 unicode 0, ,0 .text:10001150 ; DATA XREF: .text:off_100023C4o .text:1000119C ALIGN 0x10 .text:100011A0 aTouchpanelen_1 unicode 0, ,0 .text:100011A0 ; DATA XREF: .text:off_100023C8o .text:100011EA DCW 0 .text:100011EC ALIGN 0x10 .text:100011F0 aTouchpanelen_2 unicode 0, ,0 .text:100011F0 ; DATA XREF: .text:off_100023CCo .text:1000123C ALIGN 0x10 .text:10001240 aTouchpanelen_3 unicode 0, ,0 .text:10001240 ; DATA XREF: .text:off_100023D0o .text:1000128C ALIGN 0x10 .text:10001290 aTouchpanelen_4 unicode 0, ,0 .text:10001290 ; DATA XREF: .text:off_100023D8o .text:100012D2 DCW 0 .text:100012D4 aReadBatteryVol unicode 0, ,0 .text:100012D4 ; DATA XREF: .text:off_10002594o .text:1000130A DCW 0 .text:1000130C aMaxcalerror unicode 0, ,0 ; DATA XREF: .text:off_100028BCo .text:10001324 aHardwareDevice unicode 0, ,0 .text:10001324 ; DATA XREF: .text:off_100028C0o .text:10001356 DCW 0 .text:10001358 aTouchstubwnd_c unicode 0, ,0 .text:10001358 ; DATA XREF: .text:off_1000387Co .text:10001358 ; .text:off_10004564o ... .text:1000137E DCW 0 .text:10001380 aCgrtabletevent unicode 0, ,0 .text:10001380 ; DATA XREF: .text:off_10004574o .text:1000139E DCW 0 .text:100013A0 aCgrtabletinner unicode 0, ,0 .text:100013A0 ; DATA XREF: .text:off_10004570o .text:100013C8 aTranscriberq1m unicode 0, ,0 .text:100013C8 ; DATA XREF: .text:off_10004568o .text:100013EE DCW 0 .text:100013F0 aTranscribersha unicode 0, ,0 .text:100013F0 ; DATA XREF: .text:off_1000457Co .text:10001422 DCW 0 .text:10001424 aHighpriority25 unicode 0, ,0 .text:10001424 ; DATA XREF: .text:off_10004A2Co .text:10001444 aPriority256 unicode 0, ,0 ; DATA XREF: .text:off_10004A30o .text:1000145C aDriversBuiltin unicode 0, <\Drivers\BuiltIn\Touch>,0 .text:1000145C ; DATA XREF: .text:off_10004A34o .text:1000148A DCW 0 .text:1000148C aActivityevent unicode 0, ,0 ; DATA XREF: .text:off_1000504Co .text:100014A8 aSystemGwe unicode 0, ,0 ; DATA XREF: .text:off_10005050o .text:100014BE DCW 0 .text:100014C0 dword_100014C0 DCD 0 ; DATA XREF: .text:off_10005128o .text:100014C0 ; .text:off_1000561Co .text:100014C4 aDesktopexplore unicode 0, ,0 .text:100014C4 ; DATA XREF: .text:off_100054E8o .text:100014F0 aWm97readDigiti unicode 0, .text:100014F0 ; DATA XREF: .text:off_10005EF0o .text:100014F0 DCW 0xD .text:100014F0 DCW 0xA .text:100014F0 unicode 0, <>,0 .text:10001536 DCW 0 .text:10001538 aWm97touchpower unicode 0, .text:10001538 ; DATA XREF: .text:off_10005EF4o .text:10001538 DCW 0xD .text:10001538 DCW 0xA .text:10001538 unicode 0, <>,0 .text:1000156A DCW 0 .text:1000156C aWm97auxadcinit unicode 0, .text:1000156C ; DATA XREF: .text:off_10005EF8o .text:1000156C DCW 0xD .text:1000156C DCW 0xA .text:1000156C unicode 0, <>,0 .text:1000159A DCW 0 .text:1000159C aWm97initError unicode 0, ; DATA XREF: .text:off_10005EFCo .text:1000159C DCW 0xD .text:1000159C DCW 0xA .text:1000159C unicode 0, <>,0 .text:100015BE DCW 0 .text:100015C0 aWm97touchstart unicode 0, .text:100015C0 ; DATA XREF: .text:off_100062F8o .text:100015C0 DCW 0xD .text:100015C0 DCW 0xA .text:100015C0 unicode 0, <>,0 .text:100015FC ALIGN 0x10 .text:10001600 aPrivate_switch unicode 0, .text:10001600 ; DATA XREF: .text:off_10006CACo .text:10001600 DCW 0xD .text:10001600 DCW 0xA .text:10001600 unicode 0, <>,0 .text:10001640 dword_10001640 DCD 2, 0x22, 0x143000, 0x40, 4, 0x10000022, 0x143000, 0x40 .text:10001640 ; DATA XREF: .text:off_10008550o .text:10001640 DCD 5, 0x20000022, 0x143000, 0x40, 0x40002, 0x80006, 0xC000A .text:10001640 DCD 0x10000E, 0x140012, 0x180016, 0x1C001A, 0x20001E, 0x240022 .text:10001640 DCD 0x2E002C, 0x360032, 0x440040, 0x4C0046, 0x50004E, 0x560052 .text:10001640 DCD 0x5A0058, 0x620060, 0xFFFF0064, 2, 0 .text:100016C0 DCD 4, 0 .text:100016C8 DCD 5, 0x10008, 0 .text:100016D4 DCD 0x20010, 0xA, 0x30018, 0x12, 0x40020, 0x20, 0x40020 .text:100016D4 DCD 0x11, 0x50028, 0x23, 0x50028, 0x24, 0x60030, 0x10000002 .text:100016D4 DCD 0x40001, 0x12000, 0xFFFFFFFF, 0x80000, 0x13000, 0x60000040 .text:100016D4 DCD 0xFFFF0000, 0xFFFF, 0xFFFFFFFF, 0xFFFF0000, 0xFFFF .text:100016D4 DCD 0x40000010, 0x200000, 0x5000, 0x70000080, 0x100000 .text:100016D4 DCD 0x4000, 0x50000020, 0x400000, 0xFFFF, 0x70000080, 0x400000 .text:100016D4 DCD 0x6000, 0xA, 8, 0x13, 0xC000, 0 .text:1000177C DCD 0xA, 0x11, 0xE000, 0xB, 0xC, 0x11, 0xE000, 2, 0xE .text:1000177C DCD 0x13, 0 .text:100017A8 DCD 4, 0xE, 0x13, 0 .text:100017B8 DCD 5, 0xE, 0x12, 0 .text:100017C8 DCD 9, 0x16, 0x14, 0x8880, 0xD, 0x18, 0x24, 0x8880, 0xC .text:100017C8 DCD 0x1A, 0x24, 0x8880, 0xB, 0xC, 0x21, 0xE000, 0x10, 2 .text:100017C8 DCD 0x41, 0x8080, 0x11, 2, 0x41, 0x8080, 0x12, 4, 0x41 .text:100017C8 DCD 0x8080, 0x13, 8, 0x42, 0x80, 0x14, 6, 0x42, 0x80, 0x15 .text:100017C8 DCD 6, 0x43, 0x8000, 0x16, 0x12, 0x81, 0x8000 .text:10001878 dword_10001878 DCD 0x37394D57, 0x312F3331, 0x34 .text:10001878 ; DATA XREF: .text:off_1000854Co .text:10001884 aAclink_control unicode 0, ,0 .text:10001884 ; DATA XREF: .text:off_10008890o .text:100018A2 DCW 0 .text:100018A4 aUswaitOstregs DCB "usWait OSTRegs",0 ; DATA XREF: .text:off_10008894o .text:100018B3 DCB 0 .text:100018B4 aAllocaclinkXll unicode 0, ,0 .text:100018B4 ; DATA XREF: .text:off_10008898o .text:100018EA DCW 0 .text:100018EC aAclinkAlloc4Cl unicode 0, ,0 .text:100018EC ; DATA XREF: .text:off_1000889Co .text:10001916 DCW 0 .text:10001918 aAc97Driver_glo unicode 0, ,0 .text:10001918 ; DATA XREF: .text:off_100088A4o .text:10001942 DCW 0 .text:10001944 aAc97ContolRegi unicode 0, ,0 .text:10001944 ; DATA XREF: .text:off_100088A8o .text:10001970 aAc97Intc_base_ unicode 0, ,0 .text:10001970 ; DATA XREF: .text:off_100088ACo .text:100019A4 ALIGN 8 .text:100019A8 aXllpac97coldre unicode 0, .text:100019A8 ; DATA XREF: .text:off_10008AACo .text:100019A8 DCW 0xD .text:100019A8 DCW 0xA .text:100019A8 unicode 0, <>,0 .text:10001A08 aXllpac97warmre unicode 0, .text:10001A08 ; DATA XREF: .text:off_10008CF4o .text:10001A08 DCW 0xD .text:10001A08 DCW 0xA .text:10001A08 unicode 0, <>,0 .text:10001A40 aXllpac97cold_0 unicode 0, .text:10001A40 ; DATA XREF: .text:off_10008CF8o .text:10001A40 DCW 0xD .text:10001A40 DCW 0xA .text:10001A40 unicode 0, <>,0 .text:10001A78 aDelayinitOstre DCB "delayInit OSTRegs",0 ; DATA XREF: .text:off_10009234o .text:10001A8A DCW 0 .text:10001A8C DCD 0x53445352, 0x1D4886FA, 0xBF3CBF77, 0x2DC926A1, 0x9DFA2054 .text:10001A8C DCD 1, 0x63756F74, 0x64702E68, 0x62 .text:10001AB0 .text:10001AB0 ; =============== S U B R O U T I N E ======================================= .text:10001AB0 .text:10001AB0 .text:10001AB0 sub_10001AB0 ; CODE XREF: sub_100023E0+158p .text:10001AB0 ; DATA XREF: .pdata:1000D000o .text:10001AB0 STMFD SP!, {R4,LR} .text:10001AB4 LDR R4, =unk_1000C238 .text:10001AB8 LDR R3, [R4] .text:10001ABC CMP R3, #0 .text:10001AC0 BNE loc_10001AD8 .text:10001AC4 LDR R2, =aWmlock_mutex_n .text:10001AC8 MOV R1, #0 .text:10001ACC MOV R0, #0 .text:10001AD0 BL CreateMutexW @ r0 = CreateMutexW(attr=0, InitOwner=0, "WMLOCK_MUTEX_NAME" .text:10001AD4 STR R0, [R4] @ [unk_100C238] = handle WMLOCK_MUTEX_NAME .text:10001AD8 .text:10001AD8 loc_10001AD8 ; CODE XREF: sub_10001AB0+10j .text:10001AD8 LDMFD SP!, {R4,LR} .text:10001ADC BX LR .text:10001ADC ; End of function sub_10001AB0 .text:10001ADC .text:10001ADC ; --------------------------------------------------------------------------- .text:10001AE0 off_10001AE0 DCD aWmlock_mutex_n ; DATA XREF: sub_10001AB0+14r .text:10001AE0 ; "WMLOCK_MUTEX_NAME" .text:10001AE4 off_10001AE4 DCD unk_1000C238 ; DATA XREF: sub_10001AB0+4r .text:10001AE8 .text:10001AE8 ; =============== S U B R O U T I N E ======================================= .text:10001AE8 .text:10001AE8 @ WaitForWM_Mutext .text:10001AE8 sub_10001AE8 ; CODE XREF: sub_10001DA8+48p .text:10001AE8 ; sub_10001EA8+14p ... .text:10001AE8 .text:10001AE8 var_4 = -4 .text:10001AE8 arg_4 = 4 .text:10001AE8 .text:10001AE8 STR LR, [SP,#var_4]! .text:10001AEC LDR R3, =unk_1000C238 .text:10001AF0 MOVL R1, 0xBB8 @ Timeout = 2,99 s .text:10001AF8 LDR R0, [R3] .text:10001AFC BL WaitForSingleObject @ Wait for mutex "WMLOCK_MUTEX_NAME" .text:10001B00 CMP R0, #0 .text:10001B04 MOVEQ R0, #1 @ Mutex acquired .text:10001B08 LDREQ LR, [SP],#arg_4 .text:10001B0C BXEQ LR @ Wait succeded, r0=1 .text:10001B10 LDR R0, =aTouchLockError .text:10001B14 BL NKDbgPrintfW .text:10001B18 MOV R0, #0 .text:10001B1C LDR LR, [SP],#arg_4 .text:10001B20 BX LR @ Wait failed, r0=0 .text:10001B20 ; End of function sub_10001AE8 .text:10001B20 .text:10001B20 ; --------------------------------------------------------------------------- .text:10001B24 off_10001B24 DCD aTouchLockError ; DATA XREF: sub_10001AE8+28r .text:10001B24 ; "Touch lock error\r\n" .text:10001B28 off_10001B28 DCD unk_1000C238 ; DATA XREF: sub_10001AE8+4r .text:10001B2C .text:10001B2C ; =============== S U B R O U T I N E ======================================= .text:10001B2C .text:10001B2C .text:10001B2C sub_10001B2C ; CODE XREF: sub_10001C04+3Cp .text:10001B2C ; DATA XREF: .pdata:1000D010o .text:10001B2C STMFD SP!, {R4-R7,LR} .text:10001B30 LDR R6, [R0,#4] .text:10001B34 LDR R7, [R0,#8] .text:10001B38 LDR R3, =0x66666667 .text:10001B3C LDR R5, [R0] .text:10001B40 SMULL R2, R1, R6, R3 .text:10001B44 SMULL R4, LR, R7, R3 .text:10001B48 CMP R5, #0 .text:10001B4C MOV R3, R1,ASR#2 .text:10001B50 MOV R2, LR,ASR#2 .text:10001B54 ADD R3, R3, R3,LSR#31 .text:10001B58 ADD R2, R2, R2,LSR#31 .text:10001B5C BEQ loc_10001BDC .text:10001B60 CMP R5, #1 .text:10001B64 BEQ loc_10001BD0 .text:10001B68 CMP R5, #2 .text:10001B6C BEQ loc_10001BC4 .text:10001B70 CMP R5, #3 .text:10001B74 BEQ loc_10001BB8 .text:10001B78 CMP R5, #4 .text:10001B7C BEQ loc_10001BAC .text:10001B80 ADD R3, R6, R6,LSR#31 .text:10001B84 ADD R2, R7, R7,LSR#31 .text:10001B88 MOV R3, R3,ASR#1 .text:10001B8C MOV R2, R2,ASR#1 .text:10001B90 STR R3, [R0,#0xC] .text:10001B94 STR R2, [R0,#0x10] .text:10001B98 MOV R0, #0x57 .text:10001B9C BL SetLastError .text:10001BA0 MOV R0, #0 .text:10001BA4 LDMFD SP!, {R4-R7,LR} .text:10001BA8 BX LR .text:10001BAC ; --------------------------------------------------------------------------- .text:10001BAC .text:10001BAC loc_10001BAC ; CODE XREF: sub_10001B2C+50j .text:10001BAC SUB R3, R6, R3,LSL#1 .text:10001BB0 MOV R2, R2,LSL#1 .text:10001BB4 B loc_10001BEC .text:10001BB8 ; --------------------------------------------------------------------------- .text:10001BB8 .text:10001BB8 loc_10001BB8 ; CODE XREF: sub_10001B2C+48j .text:10001BB8 SUB R3, R6, R3,LSL#1 .text:10001BBC SUB R2, R7, R2,LSL#1 .text:10001BC0 B loc_10001BEC .text:10001BC4 ; --------------------------------------------------------------------------- .text:10001BC4 .text:10001BC4 loc_10001BC4 ; CODE XREF: sub_10001B2C+40j .text:10001BC4 MOV R3, R3,LSL#1 .text:10001BC8 SUB R2, R7, R2,LSL#1 .text:10001BCC B loc_10001BEC .text:10001BD0 ; --------------------------------------------------------------------------- .text:10001BD0 .text:10001BD0 loc_10001BD0 ; CODE XREF: sub_10001B2C+38j .text:10001BD0 MOV R3, R3,LSL#1 .text:10001BD4 MOV R2, R2,LSL#1 .text:10001BD8 B loc_10001BEC .text:10001BDC ; --------------------------------------------------------------------------- .text:10001BDC .text:10001BDC loc_10001BDC ; CODE XREF: sub_10001B2C+30j .text:10001BDC ADD R3, R6, R6,LSR#31 .text:10001BE0 ADD R2, R7, R7,LSR#31 .text:10001BE4 MOV R3, R3,ASR#1 .text:10001BE8 MOV R2, R2,ASR#1 .text:10001BEC .text:10001BEC loc_10001BEC ; CODE XREF: sub_10001B2C+88j .text:10001BEC ; sub_10001B2C+94j ... .text:10001BEC STR R3, [R0,#0xC] .text:10001BF0 STR R2, [R0,#0x10] .text:10001BF4 MOV R0, #1 .text:10001BF8 LDMFD SP!, {R4-R7,LR} .text:10001BFC BX LR .text:10001BFC ; End of function sub_10001B2C .text:10001BFC .text:10001BFC ; --------------------------------------------------------------------------- .text:10001C00 dword_10001C00 DCD 0x66666667 ; DATA XREF: sub_10001B2C+Cr .text:10001C04 .text:10001C04 ; =============== S U B R O U T I N E ======================================= .text:10001C04 .text:10001C04 .text:10001C04 sub_10001C04 ; CODE XREF: TouchPanelGetDeviceCaps+28p .text:10001C04 ; DATA XREF: .pdata:1000D018o .text:10001C04 .text:10001C04 var_4 = -4 .text:10001C04 arg_4 = 4 .text:10001C04 .text:10001C04 STR LR, [SP,#var_4]! .text:10001C08 CMP R1, #0 .text:10001C0C BEQ loc_10001C28 .text:10001C10 CMP R0, #0 .text:10001C14 BEQ loc_10001C60 .text:10001C18 CMP R0, #1 .text:10001C1C BEQ loc_10001C4C .text:10001C20 CMP R0, #2 .text:10001C24 BEQ loc_10001C3C .text:10001C28 .text:10001C28 loc_10001C28 ; CODE XREF: sub_10001C04+8j .text:10001C28 MOV R0, #0x57 .text:10001C2C BL SetLastError .text:10001C30 MOV R0, #0 .text:10001C34 LDR LR, [SP],#arg_4 .text:10001C38 BX LR .text:10001C3C ; --------------------------------------------------------------------------- .text:10001C3C .text:10001C3C loc_10001C3C ; CODE XREF: sub_10001C04+20j .text:10001C3C MOV R0, R1 .text:10001C40 BL sub_10001B2C .text:10001C44 LDR LR, [SP],#arg_4 .text:10001C48 BX LR .text:10001C4C ; --------------------------------------------------------------------------- .text:10001C4C .text:10001C4C loc_10001C4C ; CODE XREF: sub_10001C04+18j .text:10001C4C MOV R3, #0 .text:10001C50 MOV R2, #5 .text:10001C54 STR R3, [R1] .text:10001C58 STR R2, [R1,#4] .text:10001C5C B loc_10001C78 .text:10001C60 ; --------------------------------------------------------------------------- .text:10001C60 .text:10001C60 loc_10001C60 ; CODE XREF: sub_10001C04+10j .text:10001C60 LDR R3, =unk_1000C268 .text:10001C64 MOV R2, #0x96 .text:10001C68 STR R2, [R1] .text:10001C6C STR R2, [R1,#4] .text:10001C70 LDR R3, [R3] .text:10001C74 STR R3, [R1,#8] .text:10001C78 .text:10001C78 loc_10001C78 ; CODE XREF: sub_10001C04+58j .text:10001C78 MOV R0, #1 .text:10001C7C LDR LR, [SP],#arg_4 .text:10001C80 BX LR .text:10001C80 ; End of function sub_10001C04 .text:10001C80 .text:10001C80 ; --------------------------------------------------------------------------- .text:10001C84 off_10001C84 DCD unk_1000C268 ; DATA XREF: sub_10001C04:loc_10001C60r .text:10001C88 .text:10001C88 ; =============== S U B R O U T I N E ======================================= .text:10001C88 .text:10001C88 .text:10001C88 sub_10001C88 ; CODE XREF: TouchPanelSetMode+30p .text:10001C88 ; DATA XREF: .pdata:1000D020o .text:10001C88 STMFD SP!, {R4,LR} .text:10001C8C CMP R0, #0 .text:10001C90 MOV R4, #0 .text:10001C94 BMI loc_10001CB0 .text:10001C98 CMP R0, #1 .text:10001C9C BGT loc_10001CB0 .text:10001CA0 MOV R0, #0 .text:10001CA4 BL SetLastError .text:10001CA8 MOV R4, #1 .text:10001CAC B loc_10001CB8 .text:10001CB0 ; --------------------------------------------------------------------------- .text:10001CB0 .text:10001CB0 loc_10001CB0 ; CODE XREF: sub_10001C88+Cj .text:10001CB0 ; sub_10001C88+14j .text:10001CB0 MOV R0, #0x57 .text:10001CB4 BL SetLastError .text:10001CB8 .text:10001CB8 loc_10001CB8 ; CODE XREF: sub_10001C88+24j .text:10001CB8 MOV R0, R4 .text:10001CBC LDMFD SP!, {R4,LR} .text:10001CC0 BX LR .text:10001CC0 ; End of function sub_10001C88 .text:10001CC0 .text:10001CC4 .text:10001CC4 ; =============== S U B R O U T I N E ======================================= .text:10001CC4 .text:10001CC4 .text:10001CC4 sub_10001CC4 ; CODE XREF: start:loc_100045C4p .text:10001CC4 ; DATA XREF: .pdata:1000D028o .text:10001CC4 MOV R0, #1 .text:10001CC8 BX LR .text:10001CC8 ; End of function sub_10001CC4 .text:10001CC8 .text:10001CCC .text:10001CCC ; =============== S U B R O U T I N E ======================================= .text:10001CCC .text:10001CCC .text:10001CCC sub_10001CCC ; CODE XREF: start+50p .text:10001CCC ; start:loc_100045F8p .text:10001CCC ; DATA XREF: ... .text:10001CCC MOV R0, #0 .text:10001CD0 BX LR .text:10001CD0 ; End of function sub_10001CCC .text:10001CD0 .text:10001CD4 .text:10001CD4 ; =============== S U B R O U T I N E ======================================= .text:10001CD4 .text:10001CD4 .text:10001CD4 sub_10001CD4 ; CODE XREF: sub_10001EA8+3Cp .text:10001CD4 ; sub_10002298:loc_100023A4p ... .text:10001CD4 STMFD SP!, {R4,LR} .text:10001CD8 LDR R4, =unk_1000C24C .text:10001CDC LDR R0, [R4] .text:10001CE0 CMP R0, #0 .text:10001CE4 BEQ loc_10001CFC .text:10001CE8 MOV R2, #0x8000 .text:10001CEC MOV R1, #0x1000 .text:10001CF0 BL VirtualFree .text:10001CF4 MOV R3, #0 .text:10001CF8 STR R3, [R4] .text:10001CFC .text:10001CFC loc_10001CFC ; CODE XREF: sub_10001CD4+10j .text:10001CFC LDR R0, [R4,#0x18] .text:10001D00 CMP R0, #0 .text:10001D04 BEQ loc_10001D1C .text:10001D08 MOV R2, #0x8000 .text:10001D0C MOV R1, #0xD0 .text:10001D10 BL VirtualFree .text:10001D14 MOV R3, #0 .text:10001D18 STR R3, [R4,#0x18] .text:10001D1C .text:10001D1C loc_10001D1C ; CODE XREF: sub_10001CD4+30j .text:10001D1C LDR R0, [R4,#0x14] .text:10001D20 CMP R0, #0 .text:10001D24 BEQ loc_10001D3C .text:10001D28 MOV R2, #0x8000 .text:10001D2C MOV R1, #0xE0 .text:10001D30 BL VirtualFree .text:10001D34 MOV R3, #0 .text:10001D38 STR R3, [R4,#0x14] .text:10001D3C .text:10001D3C loc_10001D3C ; CODE XREF: sub_10001CD4+50j .text:10001D3C LDR R0, [R4,#0x10] .text:10001D40 CMP R0, #0 .text:10001D44 BEQ loc_10001D5C .text:10001D48 MOV R2, #0x8000 .text:10001D4C MOV R1, #0x14C .text:10001D50 BL VirtualFree .text:10001D54 MOV R3, #0 .text:10001D58 STR R3, [R4,#0x10] .text:10001D5C .text:10001D5C loc_10001D5C ; CODE XREF: sub_10001CD4+70j .text:10001D5C LDR R0, [R4,#0xC] .text:10001D60 CMP R0, #0 .text:10001D64 BEQ loc_10001D7C .text:10001D68 MOV R2, #0x8000 .text:10001D6C MOV R1, #0x600 .text:10001D70 BL VirtualFree .text:10001D74 MOV R3, #0 .text:10001D78 STR R3, [R4,#0x10] .text:10001D7C .text:10001D7C loc_10001D7C ; CODE XREF: sub_10001CD4+90j .text:10001D7C LDR R0, [R4,#8] .text:10001D80 CMP R0, #0 .text:10001D84 BEQ loc_10001D9C .text:10001D88 MOV R2, #0x8000 .text:10001D8C MOV R1, #0x10 .text:10001D90 BL VirtualFree .text:10001D94 MOV R3, #0 .text:10001D98 STR R3, [R4,#8] .text:10001D9C .text:10001D9C loc_10001D9C ; CODE XREF: sub_10001CD4+B0j .text:10001D9C LDMFD SP!, {R4,LR} .text:10001DA0 BX LR .text:10001DA0 ; End of function sub_10001CD4 .text:10001DA0 .text:10001DA0 ; --------------------------------------------------------------------------- .text:10001DA4 off_10001DA4 DCD unk_1000C24C ; DATA XREF: sub_10001CD4+4r .text:10001DA8 .text:10001DA8 ; =============== S U B R O U T I N E ======================================= @ RJK: WinceThread .text:10001DA8 .text:10001DA8 .text:10001DA8 sub_10001DA8 ; DATA XREF: .text:off_10002590o .text:10001DA8 ; .pdata:1000D040o .text:10001DA8 .text:10001DA8 var_1C = -0x1C .text:10001DA8 .text:10001DA8 STMFD SP!, {R4-R8,LR} .text:10001DAC SUB SP, SP, #4 .text:10001DB0 MOV R8, #0x9C0 .text:10001DB4 MOV R6, #0x1380 .text:10001DB8 LDR R5, =unk_1000C1C0 .text:10001DBC ORR R8, R8, #4 .text:10001DC0 ORR R6, R6, #8 .text:10001DC4 .text:10001DC4 loc_10001DC4 ; CODE XREF: sub_10001DA8+38j .text:10001DC4 ; sub_10001DA8+44j ... .text:10001DC4 LDR R0, [R5] @ Battery Event Wait (c1c0) .text:10001DC8 MOVL R1, 0xBB8 .text:10001DD0 BL WaitForSingleObject .text:10001DD4 LDR R3, [R5,#0x9C] @ r3 = [c25c] = [unk_c24c+0x10] = GPIO base .text:10001DD8 LDR R3, [R3,#8] @ r3 = GPLR2 .text:10001DDC TST R3, #0x80000000 @ test GPIO 95 (WM9713 irq) .text:10001DE0 BNE loc_10001DC4 @ OK, we have an event .text:10001DE4 LDR R3, [R5,#0x7C] @ r3 = [unk_c238+4] .text:10001DE8 CMP R3, #0 .text:10001DEC BNE loc_10001DC4 .text:10001DF0 BL sub_10001AE8 @ RJK: Wait for object (wait for interrupt) .text:10001DF4 LDR R4, [R5,#0x68] @ r4 = [unk_c228 = unk_c1c8+0x60] .text:10001DF8 MOV R3, #0x3E8 .text:10001DFC ADD R2, SP, #0x1C+var_1C @ where mesurement will go .text:10001E00 MOV R1, #7 .text:10001E04 ADD R0, R5, #8 .text:10001E08 MOV LR, PC .text:10001E0C BX R4 @ RJK: .text:10001E10 LDR R0, [R5,#0x78] .text:10001E14 BL ReleaseMutex @ ReleaseMutex(c2c4) -> Critical section .text:10001E18 LDRH R3, [SP,#0x1C+var_1C] .text:10001E1C CMP R3, R8 .text:10001E20 BLS loc_10001DC4 .text:10001E24 CMP R3, R6 .text:10001E28 BCS loc_10001DC4 .text:10001E2C LDR LR, [R5,#0x8C] .text:10001E30 MOV R7, #4 .text:10001E34 ADD R4, LR, #0x10 .text:10001E38 .text:10001E38 loc_10001E38 @ Transfer groups of 4 bytes .text:10001E38 LDRB R0, [R4,#0x314] @ [r4+0x314] -> [r4+0x319] .text:10001E3C LDRB R3, [R4,#0x315] @ ... .text:10001E40 LDRB R2, [R4,#0x316] @ [r4+0x308] -> [r4+0x30c] .text:10001E44 LDRB R1, [R4,#0x317] .text:10001E48 ORR R3, R0, R3,LSL#8 .text:10001E4C ORR R3, R3, R2,LSL#16 .text:10001E50 ORR R0, R3, R1,LSL#24 .text:10001E54 SUB R7, R7, #1 .text:10001E58 MOV R3, R0,LSR#8 .text:10001E5C MOV R2, R0,LSR#16 .text:10001E60 MOV R1, R0,LSR#24 .text:10001E64 STRB R3, [R4,#0x319] .text:10001E68 STRB R2, [R4,#0x31A] .text:10001E6C STRB R1, [R4,#0x31B] .text:10001E70 STRB R0, [R4,#0x318] .text:10001E74 SUB R4, R4, #4 .text:10001E78 CMP R7, #0 .text:10001E7C BGT loc_10001E38 .text:10001E80 LDRH R1, [SP,#0x1C+var_1C] @ Mesurement .text:10001E84 STRB R1, [LR,#0x318] @ +0x318: first value .text:10001E88 MOV R3, R1,LSR#8 .text:10001E8C MOV R2, R1,LSR#16 .text:10001E90 MOV R1, R1,LSR#24 .text:10001E94 STRB R1, [LR,#0x31B] .text:10001E98 STRB R3, [LR,#0x319] .text:10001E9C STRB R2, [LR,#0x31A] .text:10001EA0 B loc_10001DC4 .text:10001EA0 ; End of function sub_10001DA8 .text:10001EA0 .text:10001EA0 ; --------------------------------------------------------------------------- .text:10001EA4 off_10001EA4 DCD unk_1000C1C0 ; DATA XREF: sub_10001DA8+10r .text:10001EA8 .text:10001EA8 ; =============== S U B R O U T I N E ======================================= .text:10001EA8 .text:10001EA8 .text:10001EA8 sub_10001EA8 ; CODE XREF: TouchPanelEnable+5Cp .text:10001EA8 ; TouchPanelEnable+128p ... .text:10001EA8 STMFD SP!, {R4,LR} .text:10001EAC LDR R4, =unk_1000C1C8 .text:10001EB0 LDR R3, [R4,#0xA8] .text:10001EB4 CMP R3, #0 .text:10001EB8 BEQ loc_10001F08 .text:10001EBC BL sub_10001AE8 .text:10001EC0 LDR R3, [R4,#0x6C] .text:10001EC4 MOV R1, #1 .text:10001EC8 MOV R0, R4 .text:10001ECC MOV LR, PC .text:10001ED0 BX R3 .text:10001ED4 LDR R0, [R4,#0x70] .text:10001ED8 BL ReleaseMutex .text:10001EDC MOV R0, R4 .text:10001EE0 BL sub_10005678 .text:10001EE4 BL sub_10001CD4 .text:10001EE8 LDR R0, [R4,#0xA4] .text:10001EEC CMP R0, #0 .text:10001EF0 BEQ loc_10001F00 .text:10001EF4 BL CloseHandle .text:10001EF8 MOV R3, #0 .text:10001EFC STR R3, [R4,#0xA4] .text:10001F00 .text:10001F00 loc_10001F00 ; CODE XREF: sub_10001EA8+48j .text:10001F00 MOV R3, #0 .text:10001F04 STR R3, [R4,#0xA8] .text:10001F08 .text:10001F08 loc_10001F08 ; CODE XREF: sub_10001EA8+10j .text:10001F08 LDMFD SP!, {R4,LR} .text:10001F0C BX LR .text:10001F0C ; End of function sub_10001EA8 .text:10001F0C .text:10001F0C ; --------------------------------------------------------------------------- .text:10001F10 off_10001F10 DCD unk_1000C1C8 ; DATA XREF: sub_10001EA8+4r .text:10001F14 .text:10001F14 ; =============== S U B R O U T I N E ======================================= .text:10001F14 .text:10001F14 .text:10001F14 sub_10001F14 ; CODE XREF: sub_1000460C+90p .text:10001F14 ; DATA XREF: .pdata:1000D050o .text:10001F14 .text:10001F14 var_2C = -0x2C .text:10001F14 var_2A = -0x2A .text:10001F14 var_28 = -0x28 .text:10001F14 .text:10001F14 STMFD SP!, {R4-R11,LR} .text:10001F18 SUB SP, SP, #8 .text:10001F1C MOV R9, R2 .text:10001F20 MOV R10, R1 .text:10001F24 MOV R6, R0 .text:10001F28 LDR R5, =unk_1000C1C8 .text:10001F2C LDR R11, =unk_1000C280 .text:10001F30 LDR R7, =unk_1000C0F8 .text:10001F34 LDR R3, [R5,#0x94] .text:10001F38 LDR R0, [R11] .text:10001F3C MOV R8, #0 .text:10001F40 LDR R3, [R3,#8] @ GPLR3 (GPIO95) .text:10001F44 STR R0, [SP,#0x2C+var_28] .text:10001F48 TST R3, #0x80000000 .text:10001F4C BNE loc_10001F88 @ If charging .text:10001F50 LDR R3, [R7] .text:10001F54 CMP R3, #0 .text:10001F58 BNE loc_10001F88 .text:10001F5C CMP R0, #0 .text:10001F60 BNE loc_10001F88 .text:10001F64 LDR R3, [R5,#0x48] @ r3 = [unk_c210] .text:10001F68 MOV R0, R5 .text:10001F6C MOV LR, PC .text:10001F70 BX R3 .text:10001F74 MOV R3, #0x10 .text:10001F78 MOV R2, #1 .text:10001F7C STR R3, [R6] .text:10001F80 STR R2, [R7] .text:10001F84 B loc_100021E4 .text:10001F88 ; --------------------------------------------------------------------------- .text:10001F88 .text:10001F88 loc_10001F88 ; CODE XREF: sub_10001F14+38j .text:10001F88 ; sub_10001F14+44j ... .text:10001F88 MOV R3, #1 .text:10001F8C STR R3, [R5,#0x74] .text:10001F90 MOV R3, #1 .text:10001F94 MOV R2, #2 .text:10001F98 STR R3, [R7] .text:10001F9C STR R2, [R6] .text:10001FA0 BL sub_10001AE8 .text:10001FA4 LDR R4, [R5,#0x68] .text:10001FA8 MOV R3, #0x3E8 .text:10001FAC ADD R2, SP, #0x2C+var_2A .text:10001FB0 ADD R1, SP, #0x2C+var_2C .text:10001FB4 MOV R0, R5 .text:10001FB8 MOV LR, PC .text:10001FBC BX R4 .text:10001FC0 MOV R4, R0 .text:10001FC4 LDR R0, [R5,#0x70] .text:10001FC8 BL ReleaseMutex .text:10001FCC CMP R4, #0 .text:10001FD0 BNE loc_10002008 .text:10001FD4 LDRH R3, [SP,#0x2C+var_2C] .text:10001FD8 LDRH R2, [SP,#0x2C+var_2A] .text:10001FDC LDR R1, =unk_1000C27C .text:10001FE0 STR R3, [R10] .text:10001FE4 STR R2, [R9] .text:10001FE8 LDR R3, [R6] .text:10001FEC MOV R2, #0 .text:10001FF0 MOV R0, #1 .text:10001FF4 ORR R3, R3, #1 .text:10001FF8 STR R3, [R6] .text:10001FFC STR R2, [R1] .text:10002000 STR R0, [SP,#0x2C+var_28] .text:10002004 B loc_10002160 .text:10002008 ; --------------------------------------------------------------------------- .text:10002008 .text:10002008 loc_10002008 ; CODE XREF: sub_10001F14+BCj .text:10002008 CMP R4, #0x16 .text:1000200C BNE loc_10002128 .text:10002010 LDR R3, [R11] .text:10002014 MOV R2, #0 .text:10002018 STR R2, [SP,#0x2C+var_28] .text:1000201C CMP R3, #0 .text:10002020 BEQ loc_1000211C .text:10002024 MOV R3, #0 .text:10002028 MOV R2, #1 .text:1000202C STR R3, [R7] .text:10002030 STR R2, [R6] .text:10002034 .text:10002034 loc_10002034 ; CODE XREF: sub_10001F14+210j .text:10002034 ; sub_10001F14+248j .text:10002034 LDR R3, [R5,#0x48] .text:10002038 MOV R0, R5 .text:1000203C MOV LR, PC .text:10002040 BX R3 .text:10002044 LDR LR, [R5,#0x94] .text:10002048 LDR R1, [R5,#0x98] .text:1000204C LDR R0, [R5,#0x9C] .text:10002050 MOV R4, #0 .text:10002054 MOV R6, #2 .text:10002058 .text:10002058 loc_10002058 ; CODE XREF: sub_10001F14+18Cj .text:10002058 LDR R3, [LR,#8] .text:1000205C TST R3, #0x80000000 ; RJK: charging ? .text:10002060 BEQ loc_10002090 .text:10002064 LDR R3, [R1,#0x10] .text:10002068 LDR R2, [R1,#0x1C] .text:1000206C MOV R4, #1 .text:10002070 ADD R3, R3, #0x5000 .text:10002074 ORR R2, R2, #2 .text:10002078 STR R3, [R1,#4] .text:1000207C STR R2, [R1,#0x1C] .text:10002080 LDR R3, [R0,#4] .text:10002084 ORR R3, R3, #0x8000000 .text:10002088 STR R3, [R0,#4] .text:1000208C STR R6, [R1,#0x14] .text:10002090 .text:10002090 loc_10002090 ; CODE XREF: sub_10001F14+14Cj .text:10002090 ADD R8, R8, #1 .text:10002094 CMP R8, #0x7D0 .text:10002098 BCS loc_100020A4 .text:1000209C CMP R4, #0 .text:100020A0 BEQ loc_10002058 .text:100020A4 .text:100020A4 loc_100020A4 ; CODE XREF: sub_10001F14+184j .text:100020A4 ; sub_10001F14+29Cj .text:100020A4 LDR R3, [SP,#0x2C+var_28] .text:100020A8 CMP R3, #0 .text:100020AC BEQ loc_100021B4 .text:100020B0 LDR R0, [R5,#0x80] .text:100020B4 CMP R0, #0 .text:100020B8 BNE loc_100020D4 .text:100020BC LDR R3, =aPowerspeedEven .text:100020C0 MOV R2, #0 .text:100020C4 MOV R1, #0 .text:100020C8 MOV R0, #0 .text:100020CC BL CreateEventW .text:100020D0 STR R0, [R5,#0x80] .text:100020D4 .text:100020D4 loc_100020D4 ; CODE XREF: sub_10001F14+1A4j .text:100020D4 LDR R4, [R5,#0x84] .text:100020D8 LDRB LR, [R4,#0x454] .text:100020DC LDRB R3, [R4,#0x455] .text:100020E0 LDRB R2, [R4,#0x456] .text:100020E4 LDRB R1, [R4,#0x457] .text:100020E8 ORR R3, LR, R3,LSL#8 .text:100020EC ORR R3, R3, R2,LSL#16 .text:100020F0 ORR R3, R3, R1,LSL#24 .text:100020F4 CMP R3, #3 .text:100020F8 BGE loc_10002114 .text:100020FC CMP R0, #0 .text:10002100 MOVNE R3, #6 .text:10002104 STRNEB R3, [R4,#0x42C] .text:10002108 LDRNE R0, [R5,#0x80] .text:1000210C MOVNE R1, #3 .text:10002110 BLNE EventModify .text:10002114 .text:10002114 loc_10002114 ; CODE XREF: sub_10001F14+1E4j .text:10002114 MOV R0, #0x13 .text:10002118 B loc_100021B8 .text:1000211C ; --------------------------------------------------------------------------- .text:1000211C .text:1000211C loc_1000211C ; CODE XREF: sub_10001F14+10Cj .text:1000211C MOV R3, #0x10 .text:10002120 STR R3, [R6] .text:10002124 B loc_10002034 .text:10002128 ; --------------------------------------------------------------------------- .text:10002128 .text:10002128 loc_10002128 ; CODE XREF: sub_10001F14+F8j .text:10002128 LDR R3, [R5,#0x4C] .text:1000212C ADD R1, SP, #0x2C+var_28 .text:10002130 MOV R0, R5 .text:10002134 MOV LR, PC .text:10002138 BX R3 .text:1000213C CMP R0, #0 .text:10002140 LDR R3, [R6] .text:10002144 MOVNE R2, #0 .text:10002148 STRNE R2, [SP,#0x2C+var_28] .text:1000214C LDREQ R2, [SP,#0x2C+var_28] .text:10002150 ORR R3, R3, #0x10 .text:10002154 STR R3, [R6] .text:10002158 CMP R2, #0 .text:1000215C BEQ loc_10002034 .text:10002160 .text:10002160 loc_10002160 ; CODE XREF: sub_10001F14+F0j .text:10002160 LDR R3, [R5,#0x44] .text:10002164 MOV R0, R5 .text:10002168 MOV LR, PC .text:1000216C BX R3 .text:10002170 LDR R4, [R5,#0x98] .text:10002174 LDR LR, [R5,#0x9C] .text:10002178 LDR R0, [R5,#0xA4] .text:1000217C LDR R3, [R4,#0x10] .text:10002180 LDR R2, [R4,#0x1C] .text:10002184 MOV R6, #2 .text:10002188 ADD R3, R3, #0x5000 .text:1000218C ORR R2, R2, #2 .text:10002190 STR R3, [R4,#4] .text:10002194 STR R2, [R4,#0x1C] .text:10002198 LDR R3, [LR,#4] .text:1000219C MOV R1, #3 .text:100021A0 ORR R3, R3, #0x8000000 .text:100021A4 STR R3, [LR,#4] .text:100021A8 STR R6, [R4,#0x14] .text:100021AC BL EventModify .text:100021B0 B loc_100020A4 .text:100021B4 ; --------------------------------------------------------------------------- .text:100021B4 .text:100021B4 loc_100021B4 ; CODE XREF: sub_10001F14+198j .text:100021B4 MOV R0, #0x12 .text:100021B8 .text:100021B8 loc_100021B8 ; CODE XREF: sub_10001F14+204j .text:100021B8 BL InterruptDone .text:100021BC LDR R2, [R5,#0x78] .text:100021C0 LDR R3, [SP,#0x2C+var_28] .text:100021C4 CMP R2, #0 .text:100021C8 LDRNE R0, =aTchEndCaptrueA .text:100021CC STR R3, [R11] .text:100021D0 MOVNE R3, #0 .text:100021D4 STRNE R3, [R5,#0x78] .text:100021D8 BLNE NKDbgPrintfW .text:100021DC MOV R3, #0 .text:100021E0 STR R3, [R5,#0x74] .text:100021E4 .text:100021E4 loc_100021E4 ; CODE XREF: sub_10001F14+70j .text:100021E4 ADD SP, SP, #8 .text:100021E8 LDMFD SP!, {R4-R11,LR} .text:100021EC BX LR .text:100021EC ; End of function sub_10001F14 .text:100021EC .text:100021EC ; --------------------------------------------------------------------------- .text:100021F0 off_100021F0 DCD aTchEndCaptrueA ; DATA XREF: sub_10001F14+2B4r .text:100021F0 ; "TCH: End captrue after power up\r\n" .text:100021F4 off_100021F4 DCD aPowerspeedEven ; DATA XREF: sub_10001F14+1A8r .text:100021F4 ; "PowerSpeed Event Name" .text:100021F8 off_100021F8 DCD unk_1000C27C ; DATA XREF: sub_10001F14+C8r .text:100021FC off_100021FC DCD unk_1000C0F8 ; DATA XREF: sub_10001F14+1Cr .text:10002200 off_10002200 DCD unk_1000C280 ; DATA XREF: sub_10001F14+18r .text:10002204 off_10002204 DCD unk_1000C1C8 ; DATA XREF: sub_10001F14+14r .text:10002208 .text:10002208 ; =============== S U B R O U T I N E ======================================= .text:10002208 .text:10002208 .text:10002208 sub_10002208 ; CODE XREF: TouchPanelPowerHandler+4p .text:10002208 ; DATA XREF: .pdata:1000D058o .text:10002208 STMFD SP!, {R4,LR} .text:1000220C CMP R0, #0 .text:10002210 BEQ loc_1000225C .text:10002214 BL sub_10001AE8 @ RJK: WaitForWM_Mutext .text:10002218 LDR R4, =unk_1000C1C8 .text:1000221C MOV R1, #0 .text:10002220 LDR R3, [R4,#0x6C] @ r3 = [...c234] .text:10002224 MOV R0, R4 @ r0 = [...c1c8] .text:10002228 MOV LR, PC .text:1000222C BX R3 @ RJK: Call ??? .text:10002230 LDR R0, [R4,#0x70] .text:10002234 BL ReleaseMutex .text:10002238 MOV R0, R4 .text:1000223C BL sub_10005678 @ RJK: Call .text:10002240 MOV R1, #1 .text:10002244 MOV R0, #1 .text:10002248 BL sub_10008704 .text:1000224C MOV R3, #1 .text:10002250 STR R3, [R4,#0x78] .text:10002254 LDMFD SP!, {R4,LR} .text:10002258 BX LR .text:1000225C ; --------------------------------------------------------------------------- .text:1000225C .text:1000225C loc_1000225C ; CODE XREF: sub_10002208+8j .text:1000225C LDR R4, =unk_1000C1C8 .text:10002260 MOV R0, R4 .text:10002264 BL sub_10005628 .text:10002268 CMP R0, #0 .text:1000226C BNE loc_1000228C .text:10002270 LDR R3, [R4,#0x48] .text:10002274 MOV R0, R4 .text:10002278 MOV LR, PC .text:1000227C BX R3 .text:10002280 CMP R0, #0 .text:10002284 MOVNE R0, R4 .text:10002288 BLNE sub_10005678 .text:1000228C .text:1000228C loc_1000228C ; CODE XREF: sub_10002208+64j .text:1000228C LDMFD SP!, {R4,LR} .text:10002290 BX LR .text:10002290 ; End of function sub_10002208 .text:10002290 .text:10002290 ; --------------------------------------------------------------------------- .text:10002294 off_10002294 DCD unk_1000C1C8 ; DATA XREF: sub_10002208+10r .text:10002294 ; sub_10002208:loc_1000225Cr .text:10002298 .text:10002298 ; =============== S U B R O U T I N E ======================================= .text:10002298 .text:10002298 .text:10002298 sub_10002298 ; CODE XREF: sub_100023E0+38p .text:10002298 ; DATA XREF: .pdata:1000D060o .text:10002298 STMFD SP!, {R4,LR} .text:1000229C LDR R4, =unk_1000C24C .text:100022A0 LDR R3, [R4] .text:100022A4 CMP R3, #0 .text:100022A8 BNE loc_100022C8 .text:100022AC LDR R1, =aTouchpanelen_4 .text:100022B0 LDR R2, =0xA020B000 .text:100022B4 MOV R0, #0x1000 .text:100022B8 BL sub_10008954 .text:100022BC CMP R0, #0 .text:100022C0 STR R0, [R4] .text:100022C4 BEQ loc_100023A4 .text:100022C8 .text:100022C8 loc_100022C8 ; CODE XREF: sub_10002298+10j .text:100022C8 LDR R3, [R4,#0x18] .text:100022CC CMP R3, #0 .text:100022D0 BNE loc_100022F4 .text:100022D4 LDR R1, =aTouchpanelen_3 .text:100022D8 MOVL R2, 0xA7200000 .text:100022E0 MOV R0, #0xD0 .text:100022E4 BL sub_10008954 .text:100022E8 CMP R0, #0 .text:100022EC STR R0, [R4,#0x18] .text:100022F0 BEQ loc_100023A4 .text:100022F4 .text:100022F4 loc_100022F4 ; CODE XREF: sub_10002298+38j .text:100022F4 LDR R3, [R4,#0x10] .text:100022F8 CMP R3, #0 .text:100022FC BNE loc_10002320 .text:10002300 LDR R1, =aTouchpanelen_2 .text:10002304 MOVL R2, 0xA7300000 .text:1000230C MOV R0, #0x14C .text:10002310 BL sub_10008954 .text:10002314 CMP R0, #0 .text:10002318 STR R0, [R4,#0x10] .text:1000231C BEQ loc_100023A4 .text:10002320 .text:10002320 loc_10002320 ; CODE XREF: sub_10002298+64j .text:10002320 LDR R3, [R4,#0x14] .text:10002324 CMP R3, #0 .text:10002328 BNE loc_1000234C .text:1000232C LDR R1, =aTouchpanelen_1 .text:10002330 MOVL R2, 0xA6F00000 .text:10002338 MOV R0, #0xE0 .text:1000233C BL sub_10008954 .text:10002340 CMP R0, #0 .text:10002344 STR R0, [R4,#0x14] .text:10002348 BEQ loc_100023A4 .text:1000234C .text:1000234C loc_1000234C ; CODE XREF: sub_10002298+90j .text:1000234C LDR R3, [R4,#0xC] .text:10002350 CMP R3, #0 .text:10002354 BNE loc_10002378 .text:10002358 LDR R1, =aTouchpanelen_0 .text:1000235C MOVL R2, 0xA6A00000 .text:10002364 MOV R0, #0x600 .text:10002368 BL sub_10008954 .text:1000236C CMP R0, #0 .text:10002370 STR R0, [R4,#0xC] .text:10002374 BEQ loc_100023A4 .text:10002378 .text:10002378 loc_10002378 ; CODE XREF: sub_10002298+BCj .text:10002378 LDR R3, [R4,#8] .text:1000237C CMP R3, #0 .text:10002380 BNE loc_100023B4 .text:10002384 LDR R1, =aTouchpanelenab .text:10002388 MOVL R2, 0xA7800000 .text:10002390 MOV R0, #0x10 .text:10002394 BL sub_10008954 .text:10002398 CMP R0, #0 .text:1000239C STR R0, [R4,#8] .text:100023A0 BNE loc_100023B4 .text:100023A4 .text:100023A4 loc_100023A4 ; CODE XREF: sub_10002298+2Cj .text:100023A4 ; sub_10002298+58j ... .text:100023A4 BL sub_10001CD4 .text:100023A8 MOV R0, #0 .text:100023AC LDMFD SP!, {R4,LR} .text:100023B0 BX LR .text:100023B4 ; --------------------------------------------------------------------------- .text:100023B4 .text:100023B4 loc_100023B4 ; CODE XREF: sub_10002298+E8j .text:100023B4 ; sub_10002298+108j .text:100023B4 MOV R0, #1 .text:100023B8 LDMFD SP!, {R4,LR} .text:100023BC BX LR .text:100023BC ; End of function sub_10002298 .text:100023BC .text:100023BC ; --------------------------------------------------------------------------- .text:100023C0 off_100023C0 DCD aTouchpanelenab ; DATA XREF: sub_10002298+ECr .text:100023C0 ; "TouchPanelEnable: CLK_BASE_U_VIRTUAL" .text:100023C4 off_100023C4 DCD aTouchpanelen_0 ; DATA XREF: sub_10002298+C0r .text:100023C4 ; "TouchPanelEnable: AC97_BASE_U_VIRTUAL" .text:100023C8 off_100023C8 DCD aTouchpanelen_1 ; DATA XREF: sub_10002298+94r .text:100023C8 ; "TouchPanelEnable: OST_BASE_U_VIRTUAL" .text:100023CC off_100023CC DCD aTouchpanelen_2 ; DATA XREF: sub_10002298+68r .text:100023CC ; "TouchPanelEnable: GPIO_BASE_U_VIRTUAL" .text:100023D0 off_100023D0 DCD aTouchpanelen_3 ; DATA XREF: sub_10002298+3Cr .text:100023D0 ; "TouchPanelEnable: INTC_BASE_U_VIRTUAL" .text:100023D4 dword_100023D4 DCD 0xA020B000 ; DATA XREF: sub_10002298+18r .text:100023D8 off_100023D8 DCD aTouchpanelen_4 ; DATA XREF: sub_10002298+14r .text:100023D8 ; "TouchPanelEnable: DRIVER_GLOBALS" .text:100023DC off_100023DC DCD unk_1000C24C ; DATA XREF: sub_10002298+4r .text:100023E0 .text:100023E0 ; =============== S U B R O U T I N E ======================================= .text:100023E0 .text:100023E0 .text:100023E0 sub_100023E0 ; CODE XREF: TouchPanelEnable+100p .text:100023E0 ; DATA XREF: .pdata:1000D068o .text:100023E0 .text:100023E0 var_14 = -0x14 .text:100023E0 var_10 = -0x10 .text:100023E0 .text:100023E0 STMFD SP!, {R4,R5,LR} .text:100023E4 SUB SP, SP, #8 .text:100023E8 LDR R5, =unk_1000C1C0 .text:100023EC LDR R3, [R5,#0xB0] .text:100023F0 CMP R3, #0 .text:100023F4 BNE loc_10002578 .text:100023F8 LDR R3, =aUserinputevent .text:100023FC MOV R2, #0 .text:10002400 MOV R1, #0 .text:10002404 MOV R0, #0 .text:10002408 BL CreateEventW @ CreateEventW(attr=0, auto-reset-after-wait=1, init=not_acquired, "UserInputEvent") .text:1000240C CMP R0, #0 .text:10002410 STR R0, [R5,#0xAC] @ [unk_c1c0 + 0xac] = Event "UserInputEvent" .text:10002414 BEQ loc_10002570 .text:10002418 BL sub_10002298 .text:1000241C CMP R0, #0 .text:10002420 BEQ loc_10002570 .text:10002424 LDR R3, =aReadBatteryVol .text:10002428 MOV R2, #0 .text:1000242C MOV R1, #0 .text:10002430 MOV R0, #0 .text:10002434 BL CreateEventW @ CreateEventW(attr=0, auto-reset-after-wait=1, init=not_acquired, "Read Battery Voltage") .text:10002438 LDR R2, =sub_10001DA8 .text:1000243C MOV R3, R0 .text:10002440 STR R3, [R5] @ [unk_c1c0] = "Read Battery Voltage Event" .text:10002444 MOV LR, #0 .text:10002448 MOV R3, #0 .text:1000244C MOV R0, #0 .text:10002450 MOV R1, #0 .text:10002454 STR LR, [SP,#0x14+var_10] .text:10002458 STR LR, [SP,#0x14+var_14] .text:1000245C BL CreateThread @ CreateThread(attr=0, stk_size=0, start=sub_10001da8, params=0, flags=0, thread_id=0) .text:10002460 CMP R0, #0 .text:10002464 STR R0, [R5,#4] @ [unk_c1c4] = Thread Id. .text:10002468 BLNE CloseHandle .text:1000246C LDR R4, [R5,#0x8C] .text:10002470 MOVL R2, 0xADAD .text:10002478 LDRB R3, [R4,#0x500] .text:1000247C CMP R3, #0 .text:10002480 MOVNE R3, R2 .text:10002484 STRNE R2, [R5,#0x84] .text:10002488 LDREQ R3, [R5,#0x84] .text:1000248C CMP R3, R2 .text:10002490 BEQ loc_100024B0 .text:10002494 MOV R1, #1 .text:10002498 MOV R0, #0 .text:1000249C BL sub_100088B4 .text:100024A0 MOV R3, R0,LSL#16 .text:100024A4 MOVS R3, R3,LSR#16 .text:100024A8 BEQ loc_1000256C .text:100024AC LDR R4, [R5,#0x8C] .text:100024B0 .text:100024B0 loc_100024B0 ; CODE XREF: sub_100023E0+B0j .text:100024B0 MOV R2, #0x70 .text:100024B4 MOV R1, #0 .text:100024B8 ADD R0, R5, #8 .text:100024BC BL memset .text:100024C0 LDR R2, [R5,#0x9C] .text:100024C4 MOV R3, #0x4C00 .text:100024C8 LDR R0, [R5,#0x98] .text:100024CC ORR R3, R3, #0x13 .text:100024D0 LDR R1, [R5,#0xA0] .text:100024D4 LDR LR, [R5,#0xA4] .text:100024D8 STR R3, [R5,#8] .text:100024DC STR R2, [R5,#0x10] .text:100024E0 LDR R2, [R5,#0x94] .text:100024E4 STR R0, [R5,#0x14] .text:100024E8 STR R1, [R5,#0x18] .text:100024EC STR LR, [R5,#0x1C] .text:100024F0 STR R2, [R5,#0x20] .text:100024F4 ADD R3, R4, #0x500 .text:100024F8 MOV R2, #0 .text:100024FC ADD R4, R3, #4 .text:10002500 STR R2, [R5,#0x24] .text:10002504 MOV R3, #0 .text:10002508 MOV R2, #0xFC .text:1000250C MOV R1, #0 .text:10002510 MOV R0, R4 .text:10002514 STR R3, [R5,#0x28] .text:10002518 BL memset .text:1000251C MOV R3, #0xFC .text:10002520 STR R3, [R5,#0x2C] .text:10002524 MOV R3, #0 .text:10002528 STR R4, [R5,#0x30] .text:1000252C STR R3, [R5,#0x34] .text:10002530 MOV R3, #0 .text:10002534 STR R3, [R5,#0x38] .text:10002538 BL sub_10001AB0 .text:1000253C ADD R0, R5, #8 .text:10002540 BL sub_10005628 .text:10002544 CMP R0, #0 .text:10002548 BNE loc_1000256C .text:1000254C LDR R3, [R5,#0x50] .text:10002550 ADD R0, R5, #8 .text:10002554 MOV LR, PC .text:10002558 BX R3 .text:1000255C CMP R0, #0 .text:10002560 BEQ loc_10002578 .text:10002564 ADD R0, R5, #8 .text:10002568 BL sub_10005678 .text:1000256C .text:1000256C loc_1000256C ; CODE XREF: sub_100023E0+C8j .text:1000256C ; sub_100023E0+168j .text:1000256C BL sub_10001CD4 .text:10002570 .text:10002570 loc_10002570 ; CODE XREF: sub_100023E0+34j .text:10002570 ; sub_100023E0+40j .text:10002570 MOV R0, #0 .text:10002574 B loc_10002584 .text:10002578 ; --------------------------------------------------------------------------- .text:10002578 .text:10002578 loc_10002578 ; CODE XREF: sub_100023E0+14j .text:10002578 ; sub_100023E0+180j .text:10002578 MOV R3, #1 .text:1000257C STR R3, [R5,#0xB0] .text:10002580 MOV R0, #1 .text:10002584 .text:10002584 loc_10002584 ; CODE XREF: sub_100023E0+194j .text:10002584 ADD SP, SP, #8 .text:10002588 LDMFD SP!, {R4,R5,LR} .text:1000258C BX LR .text:1000258C ; End of function sub_100023E0 .text:1000258C .text:1000258C ; --------------------------------------------------------------------------- .text:10002590 off_10002590 DCD sub_10001DA8 ; DATA XREF: sub_100023E0+58r .text:10002594 off_10002594 DCD aReadBatteryVol ; DATA XREF: sub_100023E0+44r .text:10002594 ; "Read Battery Voltage Event" .text:10002598 off_10002598 DCD aUserinputevent ; DATA XREF: sub_100023E0+18r .text:10002598 ; "UserInputEvent" .text:1000259C off_1000259C DCD unk_1000C1C0 ; DATA XREF: sub_100023E0+8r .text:100025A0 .text:100025A0 ; =============== S U B R O U T I N E ======================================= .text:100025A0 .text:100025A0 .text:100025A0 sub_100025A0 ; CODE XREF: TouchPanelSetCalibration+2B0p .text:100025A0 ; TouchPanelSetCalibration+2D4p ... .text:100025A0 .text:100025A0 var_20 = -0x20 .text:100025A0 var_10 = -0x10 .text:100025A0 .text:100025A0 STMFD SP!, {R4,R5,LR} .text:100025A4 SUB SP, SP, #0x14 .text:100025A8 MOV R4, R1 .text:100025AC MOV R5, R0 .text:100025B0 LDR R3, =unk_1000C1B8 .text:100025B4 LDR R3, [R3] .text:100025B8 STR R3, [SP,#0x20+var_10] .text:100025BC LDR R1, [R4,#0x10] .text:100025C0 LDR R0, [R4] .text:100025C4 ADD R2, SP, #0x20+var_20 .text:100025C8 BL sub_1000321C .text:100025CC LDR R0, [R4,#0x20] .text:100025D0 MOV R2, R5 .text:100025D4 ADD R1, SP, #0x20+var_20 .text:100025D8 BL sub_1000321C .text:100025DC LDR R1, [R4,#0x1C] .text:100025E0 LDR R0, [R4,#0xC] .text:100025E4 ADD R2, SP, #0x20+var_20 .text:100025E8 BL sub_1000321C .text:100025EC LDR R0, [R4,#8] .text:100025F0 ADD R2, SP, #0x20+var_20 .text:100025F4 ADD R1, SP, #0x20+var_20 .text:100025F8 BL sub_1000321C .text:100025FC MOV R2, R5 .text:10002600 ADD R1, SP, #0x20+var_20 .text:10002604 MOV R0, R5 .text:10002608 BL sub_10003064 .text:1000260C LDR R1, [R4,#0x14] .text:10002610 LDR R0, [R4,#4] .text:10002614 ADD R2, SP, #0x20+var_20 .text:10002618 BL sub_1000321C .text:1000261C LDR R0, [R4,#0x18] .text:10002620 ADD R2, SP, #0x20+var_20 .text:10002624 ADD R1, SP, #0x20+var_20 .text:10002628 BL sub_1000321C .text:1000262C MOV R2, R5 .text:10002630 ADD R1, SP, #0x20+var_20 .text:10002634 MOV R0, R5 .text:10002638 BL sub_10003064 .text:1000263C LDR R1, [R4,#0x10] .text:10002640 LDR R0, [R4,#8] .text:10002644 ADD R2, SP, #0x20+var_20 .text:10002648 BL sub_1000321C .text:1000264C LDR R0, [R4,#0x18] .text:10002650 ADD R2, SP, #0x20+var_20 .text:10002654 ADD R1, SP, #0x20+var_20 .text:10002658 BL sub_1000321C .text:1000265C MOV R2, R5 .text:10002660 ADD R1, SP, #0x20+var_20 .text:10002664 MOV R0, R5 .text:10002668 BL sub_10003110 .text:1000266C LDR R1, [R4,#0xC] .text:10002670 LDR R0, [R4,#4] .text:10002674 ADD R2, SP, #0x20+var_20 .text:10002678 BL sub_1000321C .text:1000267C LDR R0, [R4,#0x20] .text:10002680 ADD R2, SP, #0x20+var_20 .text:10002684 ADD R1, SP, #0x20+var_20 .text:10002688 BL sub_1000321C .text:1000268C MOV R2, R5 .text:10002690 ADD R1, SP, #0x20+var_20 .text:10002694 MOV R0, R5 .text:10002698 BL sub_10003110 .text:1000269C LDR R1, [R4,#0x1C] .text:100026A0 LDR R0, [R4,#0x14] .text:100026A4 ADD R2, SP, #0x20+var_20 .text:100026A8 BL sub_1000321C .text:100026AC LDR R0, [R4] .text:100026B0 ADD R2, SP, #0x20+var_20 .text:100026B4 ADD R1, SP, #0x20+var_20 .text:100026B8 BL sub_1000321C .text:100026BC MOV R2, R5 .text:100026C0 ADD R1, SP, #0x20+var_20 .text:100026C4 MOV R0, R5 .text:100026C8 BL sub_10003110 .text:100026CC LDR R0, [SP,#0x20+var_10] .text:100026D0 BL sub_1000B1BC .text:100026D4 ADD SP, SP, #0x14 .text:100026D8 LDMFD SP!, {R4,R5,LR} .text:100026DC BX LR .text:100026DC ; End of function sub_100025A0 .text:100026DC .text:100026DC ; --------------------------------------------------------------------------- .text:100026E0 off_100026E0 DCD unk_1000C1B8 ; DATA XREF: sub_100025A0+10r .text:100026E4 ; Exported entry 6. TouchPanelCalibrateAPoint .text:100026E4 .text:100026E4 ; =============== S U B R O U T I N E ======================================= .text:100026E4 .text:100026E4 .text:100026E4 EXPORT TouchPanelCalibrateAPoint .text:100026E4 TouchPanelCalibrateAPoint ; CODE XREF: sub_100027A0+A4p .text:100026E4 ; sub_1000460C+284p .text:100026E4 ; DATA XREF: ... .text:100026E4 STMFD SP!, {R4-R8,LR} .text:100026E8 MOV R4, R3 .text:100026EC MOV R5, R2 .text:100026F0 MOV R7, R1 .text:100026F4 MOV R6, R0 .text:100026F8 LDR R8, =unk_1000C284 .text:100026FC LDR LR, [R8,#0x1C] .text:10002700 CMP LR, #0 .text:10002704 STREQ R6, [R5] .text:10002708 STREQ R7, [R4] .text:1000270C LDMEQFD SP!, {R4-R8,LR} .text:10002710 BXEQ LR .text:10002714 LDR R2, [R8] .text:10002718 LDR R1, [R8,#4] .text:1000271C LDR LR, [R8,#8] .text:10002720 MUL R3, R2, R6 .text:10002724 LDR R2, =__rt_sdiv .text:10002728 MLA R3, R1, R7, R3 .text:1000272C LDR R2, [R2] .text:10002730 LDR R0, [R8,#0x18] .text:10002734 ADD R1, R3, LR .text:10002738 MOV R1, R1,LSL#2 .text:1000273C MOV LR, PC .text:10002740 BX R2 .text:10002744 LDR R2, [R8,#0xC] .text:10002748 LDR R1, [R8,#0x10] .text:1000274C LDR LR, [R8,#0x14] .text:10002750 MUL R3, R2, R6 .text:10002754 LDR R2, =__rt_sdiv .text:10002758 MOV R6, R0 .text:1000275C MLA R3, R1, R7, R3 .text:10002760 LDR R2, [R2] .text:10002764 LDR R0, [R8,#0x18] .text:10002768 ADD R1, R3, LR .text:1000276C MOV R1, R1,LSL#2 .text:10002770 MOV LR, PC .text:10002774 BX R2 .text:10002778 CMP R6, #0 .text:1000277C MOVMI R6, #0 .text:10002780 CMP R0, #0 .text:10002784 MOVMI R0, #0 .text:10002788 STR R6, [R5] .text:1000278C STR R0, [R4] .text:10002790 LDMFD SP!, {R4-R8,LR} .text:10002794 BX LR .text:10002794 ; End of function TouchPanelCalibrateAPoint .text:10002794 .text:10002794 ; --------------------------------------------------------------------------- .text:10002798 off_10002798 DCD __rt_sdiv ; DATA XREF: TouchPanelCalibrateAPoint+40r .text:10002798 ; TouchPanelCalibrateAPoint+70r .text:1000279C off_1000279C DCD unk_1000C284 ; DATA XREF: TouchPanelCalibrateAPoint+14r .text:100027A0 .text:100027A0 ; =============== S U B R O U T I N E ======================================= .text:100027A0 .text:100027A0 .text:100027A0 sub_100027A0 ; CODE XREF: TouchPanelSetCalibration+598p .text:100027A0 ; DATA XREF: .pdata:1000D080o .text:100027A0 .text:100027A0 var_34 = -0x34 .text:100027A0 var_30 = -0x30 .text:100027A0 var_2C = -0x2C .text:100027A0 var_28 = -0x28 .text:100027A0 var_24 = -0x24 .text:100027A0 var_20 = -0x20 .text:100027A0 arg_0 = 0 .text:100027A0 .text:100027A0 STMFD SP!, {R4-R9,LR} .text:100027A4 SUB SP, SP, #0x18 .text:100027A8 MOV R5, R3 .text:100027AC MOV R7, R2 .text:100027B0 MOV R8, R1 .text:100027B4 MOV R6, R0 .text:100027B8 LDR R1, =aHardwareDevice .text:100027BC MOV R4, #5 .text:100027C0 ADD LR, SP, #0x34+var_2C .text:100027C4 MOV R3, #0 .text:100027C8 MOV R2, #0 .text:100027CC MOV R0, #0x80000002 .text:100027D0 STR R4, [SP,#0x34+var_24] .text:100027D4 STR LR, [SP,#0x34+var_34] .text:100027D8 BL RegOpenKeyExW .text:100027DC CMP R0, #0 .text:100027E0 BNE loc_10002818 .text:100027E4 LDR R1, =aMaxcalerror .text:100027E8 LDR R0, [SP,#0x34+var_2C] .text:100027EC MOV R9, #4 .text:100027F0 ADD LR, SP, #0x34+var_28 .text:100027F4 ADD R4, SP, #0x34+var_24 .text:100027F8 ADD R3, SP, #0x34+var_20 .text:100027FC MOV R2, #0 .text:10002800 STR R9, [SP,#0x34+var_28] .text:10002804 STR LR, [SP,#0x34+var_30] .text:10002808 STR R4, [SP,#0x34+var_34] .text:1000280C BL RegQueryValueExW .text:10002810 LDR R0, [SP,#0x34+var_2C] .text:10002814 BL RegCloseKey .text:10002818 .text:10002818 loc_10002818 ; CODE XREF: sub_100027A0+40j .text:10002818 MOV R4, #0 .text:1000281C CMP R6, #0 .text:10002820 BLE loc_1000289C .text:10002824 LDR R3, [SP,#0x34+arg_0] .text:10002828 SUB R8, R8, R5 .text:1000282C SUB R7, R7, R5 .text:10002830 SUB R9, R3, R5 .text:10002834 .text:10002834 loc_10002834 ; CODE XREF: sub_100027A0+F8j .text:10002834 LDR R1, [R9,R5] .text:10002838 LDR R0, [R5] .text:1000283C ADD R3, SP, #0x34+var_2C .text:10002840 ADD R2, SP, #0x34+var_28 .text:10002844 BL TouchPanelCalibrateAPoint .text:10002848 LDR R2, [SP,#0x34+var_2C] .text:1000284C LDR LR, [SP,#0x34+var_28] .text:10002850 LDR R0, [R8,R5] .text:10002854 MOV R3, R2,ASR#1 .text:10002858 ADD R3, R2, R3,LSR#30 .text:1000285C LDR R2, [R7,R5] .text:10002860 MOV R3, R3,ASR#2 .text:10002864 MOV R1, LR,ASR#1 .text:10002868 SUB R2, R3, R2 .text:1000286C STR R3, [SP,#0x34+var_2C] .text:10002870 ADD R3, LR, R1,LSR#30 .text:10002874 MOV R3, R3,ASR#2 .text:10002878 MUL R1, R2, R2 .text:1000287C STR R3, [SP,#0x34+var_28] .text:10002880 SUB R3, R3, R0 .text:10002884 MLA R2, R3, R3, R1 .text:10002888 ADD R5, R5, #4 .text:1000288C CMP R2, R4 .text:10002890 MOVHI R4, R2 .text:10002894 SUBS R6, R6, #1 .text:10002898 BNE loc_10002834 .text:1000289C .text:1000289C loc_1000289C ; CODE XREF: sub_100027A0+80j .text:1000289C LDR R2, [SP,#0x34+var_24] .text:100028A0 MUL R3, R2, R2 .text:100028A4 CMP R4, R3 .text:100028A8 MOVCC R0, #1 .text:100028AC MOVCS R0, #0 .text:100028B0 ADD SP, SP, #0x18 .text:100028B4 LDMFD SP!, {R4-R9,LR} .text:100028B8 BX LR .text:100028B8 ; End of function sub_100027A0 .text:100028B8 .text:100028B8 ; --------------------------------------------------------------------------- .text:100028BC off_100028BC DCD aMaxcalerror ; DATA XREF: sub_100027A0+44r .text:100028BC ; "MaxCalError" .text:100028C0 off_100028C0 DCD aHardwareDevice ; DATA XREF: sub_100027A0+18r .text:100028C0 ; "HARDWARE\\DEVICEMAP\\TOUCH" .text:100028C4 ; Exported entry 13. TouchPanelSetCalibration .text:100028C4 .text:100028C4 ; =============== S U B R O U T I N E ======================================= .text:100028C4 .text:100028C4 .text:100028C4 EXPORT TouchPanelSetCalibration .text:100028C4 TouchPanelSetCalibration ; CODE XREF: TouchPanelEnable+9Cp .text:100028C4 ; DATA XREF: .pdata:1000D088o .text:100028C4 .text:100028C4 var_1EC = -0x1EC .text:100028C4 var_1E8 = -0x1E8 .text:100028C4 var_1E4 = -0x1E4 .text:100028C4 var_1E0 = -0x1E0 .text:100028C4 var_1DC = -0x1DC .text:100028C4 var_1D8 = -0x1D8 .text:100028C4 var_1D4 = -0x1D4 .text:100028C4 var_1D0 = -0x1D0 .text:100028C4 var_1CC = -0x1CC .text:100028C4 var_1C8 = -0x1C8 .text:100028C4 var_1C4 = -0x1C4 .text:100028C4 var_1C0 = -0x1C0 .text:100028C4 var_1B8 = -0x1B8 .text:100028C4 var_1A8 = -0x1A8 .text:100028C4 var_198 = -0x198 .text:100028C4 var_188 = -0x188 .text:100028C4 var_178 = -0x178 .text:100028C4 var_168 = -0x168 .text:100028C4 var_164 = -0x164 .text:100028C4 var_158 = -0x158 .text:100028C4 var_148 = -0x148 .text:100028C4 var_138 = -0x138 .text:100028C4 var_128 = -0x128 .text:100028C4 var_118 = -0x118 .text:100028C4 var_108 = -0x108 .text:100028C4 var_F8 = -0xF8 .text:100028C4 var_F4 = -0xF4 .text:100028C4 var_E8 = -0xE8 .text:100028C4 var_D8 = -0xD8 .text:100028C4 var_D4 = -0xD4 .text:100028C4 var_C8 = -0xC8 .text:100028C4 var_B8 = -0xB8 .text:100028C4 var_A8 = -0xA8 .text:100028C4 var_98 = -0x98 .text:100028C4 var_94 = -0x94 .text:100028C4 var_88 = -0x88 .text:100028C4 var_78 = -0x78 .text:100028C4 var_74 = -0x74 .text:100028C4 var_68 = -0x68 .text:100028C4 var_64 = -0x64 .text:100028C4 var_58 = -0x58 .text:100028C4 var_48 = -0x48 .text:100028C4 var_44 = -0x44 .text:100028C4 var_38 = -0x38 .text:100028C4 var_28 = -0x28 .text:100028C4 arg_0 = 0 .text:100028C4 .text:100028C4 STMFD SP!, {R4-R11,LR} .text:100028C8 SUB SP, SP, #0x1C8 .text:100028CC MOV R4, R1 .text:100028D0 STR R4, [SP,#0x1EC+var_1C4] .text:100028D4 MOV R10, R3 .text:100028D8 MOV R11, R2 .text:100028DC MOVS R8, R0 .text:100028E0 LDR LR, =unk_1000C1B8 .text:100028E4 LDR LR, [LR] .text:100028E8 STR LR, [SP,#0x1EC+var_28] .text:100028EC BNE loc_1000290C .text:100028F0 LDR R3, =unk_1000C284 .text:100028F4 MOV R2, #0 .text:100028F8 STR R2, [R3,#0x1C] .text:100028FC LDR R0, [SP,#0x1EC+var_28] .text:10002900 BL sub_1000B1BC .text:10002904 MOV R4, #1 .text:10002908 B loc_10002E6C .text:1000290C ; --------------------------------------------------------------------------- .text:1000290C .text:1000290C loc_1000290C ; CODE XREF: TouchPanelSetCalibration+28j .text:1000290C MOV R1, #0 .text:10002910 ADD R0, SP, #0x1EC+var_E8 .text:10002914 BL sub_10002E84 .text:10002918 MOV R1, #0 .text:1000291C ADD R0, SP, #0x1EC+var_1A8 .text:10002920 BL sub_10002E84 .text:10002924 MOV R1, #0 .text:10002928 ADD R0, SP, #0x1EC+var_198 .text:1000292C BL sub_10002E84 .text:10002930 MOV R1, #0 .text:10002934 ADD R0, SP, #0x1EC+var_148 .text:10002938 BL sub_10002E84 .text:1000293C MOV R1, #0 .text:10002940 ADD R0, SP, #0x1EC+var_188 .text:10002944 BL sub_10002E84 .text:10002948 MOV R1, R8 .text:1000294C ADD R0, SP, #0x1EC+var_38 .text:10002950 BL sub_10002E84 .text:10002954 MOV R1, #0 .text:10002958 ADD R0, SP, #0x1EC+var_108 .text:1000295C BL sub_10002E84 .text:10002960 MOV R1, #0 .text:10002964 ADD R0, SP, #0x1EC+var_128 .text:10002968 BL sub_10002E84 .text:1000296C MOV R1, #0 .text:10002970 ADD R0, SP, #0x1EC+var_B8 .text:10002974 BL sub_10002E84 .text:10002978 MOV R1, #0 .text:1000297C ADD R0, SP, #0x1EC+var_C8 .text:10002980 BL sub_10002E84 .text:10002984 MOV R1, #0 .text:10002988 ADD R0, SP, #0x1EC+var_138 .text:1000298C BL sub_10002E84 .text:10002990 MOV R1, #0 .text:10002994 ADD R0, SP, #0x1EC+var_118 .text:10002998 BL sub_10002E84 .text:1000299C LDR R9, [SP,#0x1EC+arg_0] .text:100029A0 CMP R8, #0 .text:100029A4 BLE loc_10002B24 .text:100029A8 SUB R3, R11, R9 .text:100029AC MOV R5, R9 .text:100029B0 SUB R6, R10, R9 .text:100029B4 SUB R7, R4, R9 .text:100029B8 STR R3, [SP,#0x1EC+var_1C0] .text:100029BC MOV R9, R3 .text:100029C0 MOV R4, R8 .text:100029C4 .text:100029C4 loc_100029C4 ; CODE XREF: TouchPanelSetCalibration+258j .text:100029C4 LDR R1, [R6,R5] .text:100029C8 ADD R0, SP, #0x1EC+var_158 .text:100029CC BL sub_10002E84 .text:100029D0 LDR R1, [R5] .text:100029D4 ADD R0, SP, #0x1EC+var_178 .text:100029D8 BL sub_10002E84 .text:100029DC LDR R1, [R7,R5] .text:100029E0 ADD R0, SP, #0x1EC+var_A8 .text:100029E4 BL sub_10002E84 .text:100029E8 LDR R1, [R9,R5] .text:100029EC ADD R0, SP, #0x1EC+var_58 .text:100029F0 BL sub_10002E84 .text:100029F4 ADD R2, SP, #0x1EC+var_1B8 .text:100029F8 ADD R1, SP, #0x1EC+var_158 .text:100029FC ADD R0, SP, #0x1EC+var_158 .text:10002A00 BL sub_1000321C .text:10002A04 ADD R2, SP, #0x1EC+var_E8 .text:10002A08 ADD R1, SP, #0x1EC+var_1B8 .text:10002A0C ADD R0, SP, #0x1EC+var_E8 .text:10002A10 BL sub_10003064 .text:10002A14 ADD R2, SP, #0x1EC+var_1B8 .text:10002A18 ADD R1, SP, #0x1EC+var_178 .text:10002A1C ADD R0, SP, #0x1EC+var_158 .text:10002A20 BL sub_1000321C .text:10002A24 ADD R2, SP, #0x1EC+var_1A8 .text:10002A28 ADD R1, SP, #0x1EC+var_1B8 .text:10002A2C ADD R0, SP, #0x1EC+var_1A8 .text:10002A30 BL sub_10003064 .text:10002A34 ADD R2, SP, #0x1EC+var_198 .text:10002A38 ADD R1, SP, #0x1EC+var_158 .text:10002A3C ADD R0, SP, #0x1EC+var_198 .text:10002A40 BL sub_10003064 .text:10002A44 ADD R2, SP, #0x1EC+var_1B8 .text:10002A48 ADD R1, SP, #0x1EC+var_178 .text:10002A4C ADD R0, SP, #0x1EC+var_178 .text:10002A50 BL sub_1000321C .text:10002A54 ADD R2, SP, #0x1EC+var_148 .text:10002A58 ADD R1, SP, #0x1EC+var_1B8 .text:10002A5C ADD R0, SP, #0x1EC+var_148 .text:10002A60 BL sub_10003064 .text:10002A64 ADD R2, SP, #0x1EC+var_188 .text:10002A68 ADD R1, SP, #0x1EC+var_178 .text:10002A6C ADD R0, SP, #0x1EC+var_188 .text:10002A70 BL sub_10003064 .text:10002A74 ADD R2, SP, #0x1EC+var_1B8 .text:10002A78 ADD R1, SP, #0x1EC+var_A8 .text:10002A7C ADD R0, SP, #0x1EC+var_158 .text:10002A80 BL sub_1000321C .text:10002A84 ADD R2, SP, #0x1EC+var_108 .text:10002A88 ADD R1, SP, #0x1EC+var_1B8 .text:10002A8C ADD R0, SP, #0x1EC+var_108 .text:10002A90 BL sub_10003064 .text:10002A94 ADD R2, SP, #0x1EC+var_1B8 .text:10002A98 ADD R1, SP, #0x1EC+var_A8 .text:10002A9C ADD R0, SP, #0x1EC+var_178 .text:10002AA0 BL sub_1000321C .text:10002AA4 ADD R2, SP, #0x1EC+var_128 .text:10002AA8 ADD R1, SP, #0x1EC+var_1B8 .text:10002AAC ADD R0, SP, #0x1EC+var_128 .text:10002AB0 BL sub_10003064 .text:10002AB4 ADD R2, SP, #0x1EC+var_B8 .text:10002AB8 ADD R1, SP, #0x1EC+var_A8 .text:10002ABC ADD R0, SP, #0x1EC+var_B8 .text:10002AC0 BL sub_10003064 .text:10002AC4 ADD R2, SP, #0x1EC+var_1B8 .text:10002AC8 ADD R1, SP, #0x1EC+var_58 .text:10002ACC ADD R0, SP, #0x1EC+var_158 .text:10002AD0 BL sub_1000321C .text:10002AD4 ADD R2, SP, #0x1EC+var_C8 .text:10002AD8 ADD R1, SP, #0x1EC+var_1B8 .text:10002ADC ADD R0, SP, #0x1EC+var_C8 .text:10002AE0 BL sub_10003064 .text:10002AE4 ADD R2, SP, #0x1EC+var_1B8 .text:10002AE8 ADD R1, SP, #0x1EC+var_58 .text:10002AEC ADD R0, SP, #0x1EC+var_178 .text:10002AF0 BL sub_1000321C .text:10002AF4 ADD R2, SP, #0x1EC+var_138 .text:10002AF8 ADD R1, SP, #0x1EC+var_1B8 .text:10002AFC ADD R0, SP, #0x1EC+var_138 .text:10002B00 BL sub_10003064 .text:10002B04 ADD R2, SP, #0x1EC+var_118 .text:10002B08 ADD R1, SP, #0x1EC+var_58 .text:10002B0C ADD R0, SP, #0x1EC+var_118 .text:10002B10 BL sub_10003064 .text:10002B14 ADD R5, R5, #4 .text:10002B18 SUBS R4, R4, #1 .text:10002B1C BNE loc_100029C4 .text:10002B20 LDR R9, [SP,#0x1EC+arg_0] .text:10002B24 .text:10002B24 loc_10002B24 ; CODE XREF: TouchPanelSetCalibration+E0j .text:10002B24 ADD R1, SP, #0x1EC+var_198 .text:10002B28 ADD R0, SP, #0x1EC+var_1A8 .text:10002B2C STR R1, [SP,#0x1EC+var_1D0] .text:10002B30 STR R0, [SP,#0x1EC+var_1E4] .text:10002B34 ADD R3, SP, #0x1EC+var_E8 .text:10002B38 ADD R2, SP, #0x1EC+var_1A8 .text:10002B3C ADD LR, SP, #0x1EC+var_148 .text:10002B40 ADD R4, SP, #0x1EC+var_188 .text:10002B44 ADD R5, SP, #0x1EC+var_198 .text:10002B48 ADD R6, SP, #0x1EC+var_188 .text:10002B4C ADD R7, SP, #0x1EC+var_38 .text:10002B50 ADD R1, SP, #0x1EC+var_1E8 .text:10002B54 ADD R0, SP, #0x1EC+var_168 .text:10002B58 STR R3, [SP,#0x1EC+var_1E8] .text:10002B5C STR R2, [SP,#0x1EC+var_1DC] .text:10002B60 STR LR, [SP,#0x1EC+var_1D8] .text:10002B64 STR R4, [SP,#0x1EC+var_1CC] .text:10002B68 STR R5, [SP,#0x1EC+var_1E0] .text:10002B6C STR R6, [SP,#0x1EC+var_1D4] .text:10002B70 STR R7, [SP,#0x1EC+var_1C8] .text:10002B74 BL sub_100025A0 .text:10002B78 ADD R1, SP, #0x1EC+var_B8 .text:10002B7C STR R1, [SP,#0x1EC+var_1D0] .text:10002B80 ADD R3, SP, #0x1EC+var_108 .text:10002B84 ADD R2, SP, #0x1EC+var_128 .text:10002B88 ADD R1, SP, #0x1EC+var_1E8 .text:10002B8C ADD R0, SP, #0x1EC+var_48 .text:10002B90 STR R3, [SP,#0x1EC+var_1E8] .text:10002B94 STR R2, [SP,#0x1EC+var_1DC] .text:10002B98 BL sub_100025A0 .text:10002B9C ADD R1, SP, #0x1EC+var_198 .text:10002BA0 ADD R0, SP, #0x1EC+var_108 .text:10002BA4 STR R1, [SP,#0x1EC+var_1D0] .text:10002BA8 STR R0, [SP,#0x1EC+var_1E4] .text:10002BAC ADD R3, SP, #0x1EC+var_E8 .text:10002BB0 ADD R2, SP, #0x1EC+var_1A8 .text:10002BB4 ADD LR, SP, #0x1EC+var_128 .text:10002BB8 ADD R4, SP, #0x1EC+var_B8 .text:10002BBC ADD R1, SP, #0x1EC+var_1E8 .text:10002BC0 ADD R0, SP, #0x1EC+var_68 .text:10002BC4 STR R3, [SP,#0x1EC+var_1E8] .text:10002BC8 STR R2, [SP,#0x1EC+var_1DC] .text:10002BCC STR LR, [SP,#0x1EC+var_1D8] .text:10002BD0 STR R4, [SP,#0x1EC+var_1CC] .text:10002BD4 BL sub_100025A0 .text:10002BD8 ADD R1, SP, #0x1EC+var_188 .text:10002BDC ADD R0, SP, #0x1EC+var_108 .text:10002BE0 STR R1, [SP,#0x1EC+var_1CC] .text:10002BE4 STR R0, [SP,#0x1EC+var_1E0] .text:10002BE8 ADD R3, SP, #0x1EC+var_1A8 .text:10002BEC ADD R2, SP, #0x1EC+var_148 .text:10002BF0 ADD LR, SP, #0x1EC+var_128 .text:10002BF4 ADD R4, SP, #0x1EC+var_B8 .text:10002BF8 ADD R1, SP, #0x1EC+var_1E8 .text:10002BFC ADD R0, SP, #0x1EC+var_F8 .text:10002C00 STR R3, [SP,#0x1EC+var_1E4] .text:10002C04 STR R2, [SP,#0x1EC+var_1D8] .text:10002C08 STR LR, [SP,#0x1EC+var_1D4] .text:10002C0C STR R4, [SP,#0x1EC+var_1C8] .text:10002C10 BL sub_100025A0 .text:10002C14 ADD R1, SP, #0x1EC+var_38 .text:10002C18 ADD R0, SP, #0x1EC+var_C8 .text:10002C1C STR R1, [SP,#0x1EC+var_1C8] .text:10002C20 STR R0, [SP,#0x1EC+var_1E8] .text:10002C24 ADD R3, SP, #0x1EC+var_198 .text:10002C28 ADD R2, SP, #0x1EC+var_188 .text:10002C2C ADD LR, SP, #0x1EC+var_138 .text:10002C30 ADD R4, SP, #0x1EC+var_118 .text:10002C34 ADD R1, SP, #0x1EC+var_1E8 .text:10002C38 ADD R0, SP, #0x1EC+var_98 .text:10002C3C STR R3, [SP,#0x1EC+var_1E0] .text:10002C40 STR R2, [SP,#0x1EC+var_1D4] .text:10002C44 STR LR, [SP,#0x1EC+var_1DC] .text:10002C48 STR R4, [SP,#0x1EC+var_1D0] .text:10002C4C BL sub_100025A0 .text:10002C50 ADD R3, SP, #0x1EC+var_E8 .text:10002C54 ADD R2, SP, #0x1EC+var_1A8 .text:10002C58 ADD R1, SP, #0x1EC+var_198 .text:10002C5C STR R3, [SP,#0x1EC+var_1E8] .text:10002C60 STR R2, [SP,#0x1EC+var_1DC] .text:10002C64 STR R1, [SP,#0x1EC+var_1D0] .text:10002C68 ADD R1, SP, #0x1EC+var_118 .text:10002C6C STR R1, [SP,#0x1EC+var_1CC] .text:10002C70 ADD R3, SP, #0x1EC+var_C8 .text:10002C74 ADD R2, SP, #0x1EC+var_138 .text:10002C78 ADD R1, SP, #0x1EC+var_1E8 .text:10002C7C ADD R0, SP, #0x1EC+var_78 .text:10002C80 STR R3, [SP,#0x1EC+var_1E4] .text:10002C84 STR R2, [SP,#0x1EC+var_1D8] .text:10002C88 BL sub_100025A0 .text:10002C8C ADD R1, SP, #0x1EC+var_188 .text:10002C90 ADD R0, SP, #0x1EC+var_C8 .text:10002C94 STR R1, [SP,#0x1EC+var_1CC] .text:10002C98 STR R0, [SP,#0x1EC+var_1E0] .text:10002C9C ADD R3, SP, #0x1EC+var_1A8 .text:10002CA0 ADD R2, SP, #0x1EC+var_148 .text:10002CA4 ADD LR, SP, #0x1EC+var_138 .text:10002CA8 ADD R4, SP, #0x1EC+var_118 .text:10002CAC ADD R1, SP, #0x1EC+var_1E8 .text:10002CB0 ADD R0, SP, #0x1EC+var_D8 .text:10002CB4 STR R3, [SP,#0x1EC+var_1E4] .text:10002CB8 STR R2, [SP,#0x1EC+var_1D8] .text:10002CBC STR LR, [SP,#0x1EC+var_1D4] .text:10002CC0 STR R4, [SP,#0x1EC+var_1C8] .text:10002CC4 BL sub_100025A0 .text:10002CC8 ADD R0, SP, #0x1EC+var_168 .text:10002CCC BL sub_10002EF4 .text:10002CD0 CMP R0, #0 .text:10002CD4 MOVLNE R1, 0xFFFFFFFE .text:10002CD8 MOVEQ R1, #2 .text:10002CDC ADD R2, SP, #0x1EC+var_88 .text:10002CE0 ADD R0, SP, #0x1EC+var_168 .text:10002CE4 BL sub_100034B0 .text:10002CE8 ADD R2, SP, #0x1EC+var_F8 .text:10002CEC ADD R1, SP, #0x1EC+var_88 .text:10002CF0 ADD R0, SP, #0x1EC+var_F8 .text:10002CF4 BL sub_10003064 .text:10002CF8 ADD R2, SP, #0x1EC+var_D8 .text:10002CFC ADD R1, SP, #0x1EC+var_88 .text:10002D00 ADD R0, SP, #0x1EC+var_D8 .text:10002D04 BL sub_10003064 .text:10002D08 ADD R0, SP, #0x1EC+var_48 .text:10002D0C MOV R4, #0 .text:10002D10 BL sub_100035D8 .text:10002D14 SUB R3, R0, #0xF .text:10002D18 CMP R3, #0 .text:10002D1C ADD R0, SP, #0x1EC+var_68 .text:10002D20 MOVGT R4, R3 .text:10002D24 BL sub_100035D8 .text:10002D28 SUB R3, R0, #0xF .text:10002D2C CMP R3, R4 .text:10002D30 ADD R0, SP, #0x1EC+var_98 .text:10002D34 MOVGT R4, R3 .text:10002D38 BL sub_100035D8 .text:10002D3C SUB R3, R0, #0xF .text:10002D40 CMP R3, R4 .text:10002D44 ADD R0, SP, #0x1EC+var_78 .text:10002D48 MOVGT R4, R3 .text:10002D4C BL sub_100035D8 .text:10002D50 SUB R3, R0, #0xF .text:10002D54 CMP R3, R4 .text:10002D58 ADD R0, SP, #0x1EC+var_F8 .text:10002D5C MOVGT R4, R3 .text:10002D60 BL sub_100035D8 .text:10002D64 SUB R3, R0, #0x1B .text:10002D68 CMP R3, R4 .text:10002D6C ADD R0, SP, #0x1EC+var_D8 .text:10002D70 MOVGT R4, R3 .text:10002D74 BL sub_100035D8 .text:10002D78 SUB R3, R0, #0x1B .text:10002D7C CMP R3, R4 .text:10002D80 ADD R0, SP, #0x1EC+var_168 .text:10002D84 MOVGT R4, R3 .text:10002D88 BL sub_100035D8 .text:10002D8C SUB R3, R0, #0x1F .text:10002D90 CMP R3, R4 .text:10002D94 MOVGT R4, R3 .text:10002D98 CMP R4, #0 .text:10002D9C BEQ loc_10002DF4 .text:10002DA0 MOV R1, R4 .text:10002DA4 ADD R0, SP, #0x1EC+var_48 .text:10002DA8 BL sub_100033BC .text:10002DAC MOV R1, R4 .text:10002DB0 ADD R0, SP, #0x1EC+var_98 .text:10002DB4 BL sub_100033BC .text:10002DB8 MOV R1, R4 .text:10002DBC ADD R0, SP, #0x1EC+var_68 .text:10002DC0 BL sub_100033BC .text:10002DC4 MOV R1, R4 .text:10002DC8 ADD R0, SP, #0x1EC+var_78 .text:10002DCC BL sub_100033BC .text:10002DD0 MOV R1, R4 .text:10002DD4 ADD R0, SP, #0x1EC+var_F8 .text:10002DD8 BL sub_100033BC .text:10002DDC MOV R1, R4 .text:10002DE0 ADD R0, SP, #0x1EC+var_D8 .text:10002DE4 BL sub_100033BC .text:10002DE8 MOV R1, R4 .text:10002DEC ADD R0, SP, #0x1EC+var_168 .text:10002DF0 BL sub_100033BC .text:10002DF4 .text:10002DF4 loc_10002DF4 ; CODE XREF: TouchPanelSetCalibration+4D8j .text:10002DF4 LDR R4, =unk_1000C284 .text:10002DF8 LDR R3, [SP,#0x1EC+var_44] .text:10002DFC LDR R2, [SP,#0x1EC+var_64] .text:10002E00 LDR R0, [SP,#0x1EC+var_F4] .text:10002E04 LDR LR, [SP,#0x1EC+var_94] .text:10002E08 LDR R1, [SP,#0x1EC+var_74] .text:10002E0C STR R3, [R4] .text:10002E10 LDR R3, [SP,#0x1EC+var_D4] .text:10002E14 STR R2, [R4,#4] .text:10002E18 STR R0, [R4,#8] .text:10002E1C STR LR, [R4,#0xC] .text:10002E20 STR R1, [R4,#0x10] .text:10002E24 STR R3, [R4,#0x14] .text:10002E28 LDR R3, [SP,#0x1EC+var_164] .text:10002E2C LDR R1, [SP,#0x1EC+var_1C4] .text:10002E30 MOV R0, R8 .text:10002E34 CMP R3, #0 .text:10002E38 MOVEQ R2, #0 .text:10002E3C STR R3, [R4,#0x18] .text:10002E40 MOV R3, #1 .text:10002E44 STREQ R2, [R4,#0x1C] .text:10002E48 STRNE R3, [R4,#0x1C] .text:10002E4C STREQ R3, [R4,#0x18] .text:10002E50 MOV R3, R10 .text:10002E54 MOV R2, R11 .text:10002E58 STR R9, [SP,#0x1EC+var_1EC] .text:10002E5C BL sub_100027A0 .text:10002E60 MOV R4, R0 .text:10002E64 LDR R0, [SP,#0x1EC+var_28] .text:10002E68 BL sub_1000B1BC .text:10002E6C .text:10002E6C loc_10002E6C ; CODE XREF: TouchPanelSetCalibration+44j .text:10002E6C MOV R0, R4 .text:10002E70 ADD SP, SP, #0x1C8 .text:10002E74 LDMFD SP!, {R4-R11,LR} .text:10002E78 BX LR .text:10002E78 ; End of function TouchPanelSetCalibration .text:10002E78 .text:10002E78 ; --------------------------------------------------------------------------- .text:10002E7C off_10002E7C DCD unk_1000C284 ; DATA XREF: TouchPanelSetCalibration+2Cr .text:10002E7C ; TouchPanelSetCalibration:loc_10002DF4r .text:10002E80 off_10002E80 DCD unk_1000C1B8 ; DATA XREF: TouchPanelSetCalibration+1Cr .text:10002E84 .text:10002E84 ; =============== S U B R O U T I N E ======================================= .text:10002E84 .text:10002E84 .text:10002E84 sub_10002E84 ; CODE XREF: TouchPanelSetCalibration+50p .text:10002E84 ; TouchPanelSetCalibration+5Cp ... .text:10002E84 CMP R1, #0 .text:10002E88 RSBMI R3, R1, #0 .text:10002E8C STRMI R3, [R0,#4] .text:10002E90 MOVMI R2, #1 .text:10002E94 MOVPL R3, #0 .text:10002E98 STRMI R2, [R0] .text:10002E9C STRPL R3, [R0] .text:10002EA0 ADD R3, R0, #4 .text:10002EA4 ADD R3, R3, #4 .text:10002EA8 STRPL R1, [R0,#4] .text:10002EAC ADD R2, R3, #8 .text:10002EB0 MOV R1, #0 .text:10002EB4 .text:10002EB4 loc_10002EB4 ; CODE XREF: sub_10002E84+38j .text:10002EB4 STR R1, [R3],#4 .text:10002EB8 CMP R3, R2 .text:10002EBC BNE loc_10002EB4 .text:10002EC0 BX LR .text:10002EC0 ; End of function sub_10002E84 .text:10002EC0 .text:10002EC4 .text:10002EC4 ; =============== S U B R O U T I N E ======================================= .text:10002EC4 .text:10002EC4 .text:10002EC4 sub_10002EC4 ; CODE XREF: sub_10003064+8Cp .text:10002EC4 ; sub_10003110+8Cp ... .text:10002EC4 MOV R2, #0 .text:10002EC8 .text:10002EC8 loc_10002EC8 ; CODE XREF: sub_10002EC4+1Cj .text:10002EC8 LDR R3, [R0,#4] .text:10002ECC CMP R3, #0 .text:10002ED0 BNE loc_10002EEC .text:10002ED4 ADD R2, R2, #1 .text:10002ED8 CMP R2, #3 .text:10002EDC ADD R0, R0, #4 .text:10002EE0 BLT loc_10002EC8 .text:10002EE4 MOV R0, #0 .text:10002EE8 BX LR .text:10002EEC ; --------------------------------------------------------------------------- .text:10002EEC .text:10002EEC loc_10002EEC ; CODE XREF: sub_10002EC4+Cj .text:10002EEC MOV R0, #1 .text:10002EF0 BX LR .text:10002EF0 ; End of function sub_10002EC4 .text:10002EF0 .text:10002EF4 .text:10002EF4 ; =============== S U B R O U T I N E ======================================= .text:10002EF4 .text:10002EF4 .text:10002EF4 sub_10002EF4 ; CODE XREF: TouchPanelSetCalibration+408p .text:10002EF4 ; DATA XREF: .pdata:1000D0A0o .text:10002EF4 LDR R3, [R0] .text:10002EF8 CMP R3, #0 .text:10002EFC MOVNE R0, #1 .text:10002F00 MOVEQ R0, #0 .text:10002F04 BX LR .text:10002F04 ; End of function sub_10002EF4 .text:10002F04 .text:10002F08 .text:10002F08 ; =============== S U B R O U T I N E ======================================= .text:10002F08 .text:10002F08 .text:10002F08 sub_10002F08 ; CODE XREF: sub_10003064+40p .text:10002F08 ; sub_10003110+40p .text:10002F08 ; DATA XREF: ... .text:10002F08 .text:10002F08 var_4 = -4 .text:10002F08 arg_4 = 4 .text:10002F08 .text:10002F08 STR LR, [SP,#var_4]! .text:10002F0C MOV LR, #2 .text:10002F10 ADD R2, R1, #8 .text:10002F14 SUB R0, R0, R1 .text:10002F18 .text:10002F18 loc_10002F18 ; CODE XREF: sub_10002F08+30j .text:10002F18 ADD R3, R0, R2 .text:10002F1C LDR R3, [R3,#4] .text:10002F20 LDR R1, [R2,#4] .text:10002F24 CMP R3, R1 .text:10002F28 BHI loc_10002F48 .text:10002F2C BCC loc_10002F3C .text:10002F30 SUBS LR, LR, #1 .text:10002F34 SUB R2, R2, #4 .text:10002F38 BPL loc_10002F18 .text:10002F3C .text:10002F3C loc_10002F3C ; CODE XREF: sub_10002F08+24j .text:10002F3C MOV R0, #0 .text:10002F40 LDR LR, [SP],#arg_4 .text:10002F44 BX LR .text:10002F48 ; --------------------------------------------------------------------------- .text:10002F48 .text:10002F48 loc_10002F48 ; CODE XREF: sub_10002F08+20j .text:10002F48 MOV R0, #1 .text:10002F4C LDR LR, [SP],#arg_4 .text:10002F50 BX LR .text:10002F50 ; End of function sub_10002F08 .text:10002F50 .text:10002F54 .text:10002F54 ; =============== S U B R O U T I N E ======================================= .text:10002F54 .text:10002F54 .text:10002F54 sub_10002F54 ; CODE XREF: sub_100034B0+DCp .text:10002F54 ; DATA XREF: .pdata:1000D0B0o .text:10002F54 .text:10002F54 var_4 = -4 .text:10002F54 arg_4 = 4 .text:10002F54 .text:10002F54 STR LR, [SP,#var_4]! .text:10002F58 MOV LR, #1 .text:10002F5C MOV R2, R0 .text:10002F60 MOV R1, #3 .text:10002F64 .text:10002F64 loc_10002F64 ; CODE XREF: sub_10002F54+28j .text:10002F64 LDR R3, [R2,#4] .text:10002F68 ADDS R3, R3, LR .text:10002F6C STR R3, [R2,#4] .text:10002F70 MOVNE LR, #0 .text:10002F74 ADD R2, R2, #4 .text:10002F78 SUBS R1, R1, #1 .text:10002F7C BNE loc_10002F64 .text:10002F80 LDR LR, [SP],#arg_4 .text:10002F84 BX LR .text:10002F84 ; End of function sub_10002F54 .text:10002F84 .text:10002F88 .text:10002F88 ; =============== S U B R O U T I N E ======================================= .text:10002F88 .text:10002F88 .text:10002F88 sub_10002F88 ; CODE XREF: sub_10003064+84p .text:10002F88 ; sub_10003110+84p ... .text:10002F88 STMFD SP!, {R4-R8,LR} .text:10002F8C MOV R4, #0 .text:10002F90 SUB R7, R0, R1 .text:10002F94 SUB R8, R2, R1 .text:10002F98 MOV R6, #3 .text:10002F9C .text:10002F9C loc_10002F9C ; CODE XREF: sub_10002F88+4Cj .text:10002F9C ADD R3, R7, R1 .text:10002FA0 LDR R5, [R3,#4] .text:10002FA4 LDR R0, [R1,#4] .text:10002FA8 ADD LR, R8, R1 .text:10002FAC ADD R3, R5, R4 .text:10002FB0 ADD R3, R3, R0 .text:10002FB4 STR R3, [LR,#4] .text:10002FB8 CMP R4, #0 .text:10002FBC BEQ loc_10002FE4 .text:10002FC0 CMP R3, R5 .text:10002FC4 BLS loc_10002FEC .text:10002FC8 .text:10002FC8 loc_10002FC8 ; CODE XREF: sub_10002F88+60j .text:10002FC8 MOV R4, #0 .text:10002FCC .text:10002FCC loc_10002FCC ; CODE XREF: sub_10002F88+68j .text:10002FCC ADD R1, R1, #4 .text:10002FD0 SUBS R6, R6, #1 .text:10002FD4 BNE loc_10002F9C .text:10002FD8 MOV R0, R2 .text:10002FDC LDMFD SP!, {R4-R8,LR} .text:10002FE0 BX LR .text:10002FE4 ; --------------------------------------------------------------------------- .text:10002FE4 .text:10002FE4 loc_10002FE4 ; CODE XREF: sub_10002F88+34j .text:10002FE4 CMP R3, R5 .text:10002FE8 BCS loc_10002FC8 .text:10002FEC .text:10002FEC loc_10002FEC ; CODE XREF: sub_10002F88+3Cj .text:10002FEC MOV R4, #1 .text:10002FF0 B loc_10002FCC .text:10002FF0 ; End of function sub_10002F88 .text:10002FF0 .text:10002FF4 .text:10002FF4 ; =============== S U B R O U T I N E ======================================= .text:10002FF4 .text:10002FF4 .text:10002FF4 sub_10002FF4 ; CODE XREF: sub_10003064+58p .text:10002FF4 ; sub_10003064+68p ... .text:10002FF4 STMFD SP!, {R4-R7,LR} .text:10002FF8 MOV LR, #1 .text:10002FFC SUB R6, R0, R1 .text:10003000 SUB R7, R2, R1 .text:10003004 MOV R5, #3 .text:10003008 .text:10003008 loc_10003008 ; CODE XREF: sub_10002FF4+50j .text:10003008 LDR R0, [R1,#4] .text:1000300C ADD R3, R6, R1 .text:10003010 LDR R4, [R3,#4] .text:10003014 MVN R3, R0 .text:10003018 ADD R0, R7, R1 .text:1000301C ADD R3, R3, R4 .text:10003020 ADD R3, R3, LR .text:10003024 STR R3, [R0,#4] .text:10003028 CMP LR, #0 .text:1000302C BEQ loc_10003054 .text:10003030 CMP R3, R4 .text:10003034 BLS loc_1000305C .text:10003038 .text:10003038 loc_10003038 ; CODE XREF: sub_10002FF4+64j .text:10003038 MOV LR, #0 .text:1000303C .text:1000303C loc_1000303C ; CODE XREF: sub_10002FF4+6Cj .text:1000303C ADD R1, R1, #4 .text:10003040 SUBS R5, R5, #1 .text:10003044 BNE loc_10003008 .text:10003048 MOV R0, R2 .text:1000304C LDMFD SP!, {R4-R7,LR} .text:10003050 BX LR .text:10003054 ; --------------------------------------------------------------------------- .text:10003054 .text:10003054 loc_10003054 ; CODE XREF: sub_10002FF4+38j .text:10003054 CMP R3, R4 .text:10003058 BCS loc_10003038 .text:1000305C .text:1000305C loc_1000305C ; CODE XREF: sub_10002FF4+40j .text:1000305C MOV LR, #1 .text:10003060 B loc_1000303C .text:10003060 ; End of function sub_10002FF4 .text:10003060 .text:10003064 .text:10003064 ; =============== S U B R O U T I N E ======================================= .text:10003064 .text:10003064 .text:10003064 sub_10003064 ; CODE XREF: sub_100025A0+68p .text:10003064 ; sub_100025A0+98p ... .text:10003064 STMFD SP!, {R4-R7,LR} .text:10003068 MOV R5, R2 .text:1000306C MOV R6, R1 .text:10003070 MOV R7, R0 .text:10003074 LDR R3, [R7] .text:10003078 MOV R1, R6 .text:1000307C MOV R0, R7 .text:10003080 CMP R3, #0 .text:10003084 LDR R3, [R6] .text:10003088 MOVNE R4, #1 .text:1000308C MOVEQ R4, #0 .text:10003090 CMP R3, #0 .text:10003094 MOVNE R3, #1 .text:10003098 MOVEQ R3, #0 .text:1000309C CMP R4, R3 .text:100030A0 BEQ loc_100030E4 .text:100030A4 BL sub_10002F08 .text:100030A8 CMP R0, #0 .text:100030AC MOV R2, R5 .text:100030B0 BEQ loc_100030C4 .text:100030B4 MOV R1, R6 .text:100030B8 MOV R0, R7 .text:100030BC BL sub_10002FF4 .text:100030C0 B loc_100030EC .text:100030C4 ; --------------------------------------------------------------------------- .text:100030C4 .text:100030C4 loc_100030C4 ; CODE XREF: sub_10003064+4Cj .text:100030C4 MOV R1, R7 .text:100030C8 MOV R0, R6 .text:100030CC BL sub_10002FF4 .text:100030D0 CMP R4, #0 .text:100030D4 MOVEQ R4, #1 .text:100030D8 BEQ loc_100030EC .text:100030DC MOV R4, #0 .text:100030E0 B loc_100030EC .text:100030E4 ; --------------------------------------------------------------------------- .text:100030E4 .text:100030E4 loc_100030E4 ; CODE XREF: sub_10003064+3Cj .text:100030E4 MOV R2, R5 .text:100030E8 BL sub_10002F88 .text:100030EC .text:100030EC loc_100030EC ; CODE XREF: sub_10003064+5Cj .text:100030EC ; sub_10003064+74j ... .text:100030EC MOV R0, R5 .text:100030F0 BL sub_10002EC4 .text:100030F4 CMP R0, #0 .text:100030F8 MOVEQ R3, #0 .text:100030FC STREQ R3, [R5] .text:10003100 STRNE R4, [R5] .text:10003104 MOV R0, R5 .text:10003108 LDMFD SP!, {R4-R7,LR} .text:1000310C BX LR .text:1000310C ; End of function sub_10003064 .text:1000310C .text:10003110 .text:10003110 ; =============== S U B R O U T I N E ======================================= .text:10003110 .text:10003110 .text:10003110 sub_10003110 ; CODE XREF: sub_100025A0+C8p .text:10003110 ; sub_100025A0+F8p ... .text:10003110 STMFD SP!, {R4-R7,LR} .text:10003114 MOV R5, R2 .text:10003118 MOV R6, R1 .text:1000311C MOV R7, R0 .text:10003120 LDR R3, [R7] .text:10003124 MOV R1, R6 .text:10003128 MOV R0, R7 .text:1000312C CMP R3, #0 .text:10003130 LDR R3, [R6] .text:10003134 MOVNE R4, #1 .text:10003138 MOVEQ R4, #0 .text:1000313C CMP R3, #0 .text:10003140 MOVNE R3, #1 .text:10003144 MOVEQ R3, #0 .text:10003148 CMP R4, R3 .text:1000314C BNE loc_10003190 .text:10003150 BL sub_10002F08 .text:10003154 CMP R0, #0 .text:10003158 MOV R2, R5 .text:1000315C BEQ loc_10003170 .text:10003160 MOV R1, R6 .text:10003164 MOV R0, R7 .text:10003168 BL sub_10002FF4 .text:1000316C B loc_10003198 .text:10003170 ; --------------------------------------------------------------------------- .text:10003170 .text:10003170 loc_10003170 ; CODE XREF: sub_10003110+4Cj .text:10003170 MOV R1, R7 .text:10003174 MOV R0, R6 .text:10003178 BL sub_10002FF4 .text:1000317C CMP R4, #0 .text:10003180 MOVEQ R4, #1 .text:10003184 BEQ loc_10003198 .text:10003188 MOV R4, #0 .text:1000318C B loc_10003198 .text:10003190 ; --------------------------------------------------------------------------- .text:10003190 .text:10003190 loc_10003190 ; CODE XREF: sub_10003110+3Cj .text:10003190 MOV R2, R5 .text:10003194 BL sub_10002F88 .text:10003198 .text:10003198 loc_10003198 ; CODE XREF: sub_10003110+5Cj .text:10003198 ; sub_10003110+74j ... .text:10003198 MOV R0, R5 .text:1000319C BL sub_10002EC4 .text:100031A0 CMP R0, #0 .text:100031A4 MOVEQ R3, #0 .text:100031A8 STREQ R3, [R5] .text:100031AC STRNE R4, [R5] .text:100031B0 MOV R0, R5 .text:100031B4 LDMFD SP!, {R4-R7,LR} .text:100031B8 BX LR .text:100031B8 ; End of function sub_10003110 .text:100031B8 .text:100031BC .text:100031BC ; =============== S U B R O U T I N E ======================================= .text:100031BC .text:100031BC .text:100031BC sub_100031BC ; CODE XREF: sub_1000321C+ACp .text:100031BC ; DATA XREF: .pdata:1000D0D8o .text:100031BC STMFD SP!, {R4,R5,LR} .text:100031C0 MOVL R3, 0xFFFF .text:100031C8 AND R4, R0, R3 .text:100031CC MOV R5, R1,LSR#16 .text:100031D0 MUL LR, R5, R4 .text:100031D4 MOV R0, R0,LSR#16 .text:100031D8 AND R3, R1, R3 .text:100031DC MLA LR, R3, R0, LR .text:100031E0 MUL R1, R3, R4 .text:100031E4 ADD R3, R1, LR,LSL#16 .text:100031E8 CMP R3, R1 .text:100031EC STR R3, [R2,#4] .text:100031F0 MOVCC R3, #1 .text:100031F4 MOVCS R3, #0 .text:100031F8 ADD R3, R3, LR,LSR#16 .text:100031FC MLA R3, R5, R0, R3 .text:10003200 MOV R0, R2 .text:10003204 STR R3, [R2,#8] .text:10003208 MOV R3, #0 .text:1000320C STR R3, [R2,#0xC] .text:10003210 STR R3, [R2] .text:10003214 LDMFD SP!, {R4,R5,LR} .text:10003218 BX LR .text:10003218 ; End of function sub_100031BC .text:10003218 .text:1000321C .text:1000321C ; =============== S U B R O U T I N E ======================================= .text:1000321C .text:1000321C .text:1000321C sub_1000321C ; CODE XREF: sub_100025A0+28p .text:1000321C ; sub_100025A0+38p ... .text:1000321C .text:1000321C var_68 = -0x68 .text:1000321C var_64 = -0x64 .text:1000321C var_60 = -0x60 .text:1000321C var_58 = -0x58 .text:1000321C var_54 = -0x54 .text:1000321C var_50 = -0x50 .text:1000321C var_48 = -0x48 .text:1000321C var_44 = -0x44 .text:1000321C var_40 = -0x40 .text:1000321C var_38 = -0x38 .text:1000321C var_28 = -0x28 .text:1000321C .text:1000321C STMFD SP!, {R4-R11,LR} .text:10003220 SUB SP, SP, #0x44 .text:10003224 MOV R4, R2 .text:10003228 MOV R7, R1 .text:1000322C STR R4, [SP,#0x68+var_64] .text:10003230 STR R7, [SP,#0x68+var_68] .text:10003234 MOV R11, R0 .text:10003238 LDR R3, =unk_1000C1B8 .text:1000323C LDR R3, [R3] .text:10003240 STR R3, [SP,#0x68+var_28] .text:10003244 MOV R2, #0 .text:10003248 MOV R1, #0 .text:1000324C ADD R3, SP, #0x68+var_40 .text:10003250 STR R2, [SP,#0x68+var_44] .text:10003254 STR R1, [SP,#0x68+var_48] .text:10003258 ADD R2, R3, #8 .text:1000325C MOV R1, #0 .text:10003260 .text:10003260 loc_10003260 ; CODE XREF: sub_1000321C+4Cj .text:10003260 STR R1, [R3],#4 .text:10003264 CMP R3, R2 .text:10003268 BNE loc_10003260 .text:1000326C SUB R3, R7, R4 .text:10003270 MOV R10, R4 .text:10003274 STR R3, [SP,#0x68+var_60] .text:10003278 MOV R7, R3 .text:1000327C MOV R5, #0 .text:10003280 MOV R4, #0 .text:10003284 MOV R1, #0 .text:10003288 MOV R0, #0 .text:1000328C .text:1000328C loc_1000328C ; CODE XREF: sub_1000321C+110j .text:1000328C ADD R3, SP, #0x68+var_50 .text:10003290 ADD R2, R3, #8 .text:10003294 STR R4, [SP,#0x68+var_54] .text:10003298 STR R1, [SP,#0x68+var_58] .text:1000329C .text:1000329C loc_1000329C ; CODE XREF: sub_1000321C+88j .text:1000329C STR R0, [R3],#4 .text:100032A0 CMP R3, R2 .text:100032A4 BNE loc_1000329C .text:100032A8 CMP R5, #0 .text:100032AC BMI loc_100032E8 .text:100032B0 MOV R8, R11 .text:100032B4 ADD R6, R7, R10 .text:100032B8 ADD R9, R5, #1 .text:100032BC .text:100032BC loc_100032BC ; CODE XREF: sub_1000321C+C8j .text:100032BC LDR R0, [R8,#4]! .text:100032C0 LDR R1, [R6,#4] .text:100032C4 ADD R2, SP, #0x68+var_38 .text:100032C8 BL sub_100031BC .text:100032CC ADD R2, SP, #0x68+var_58 .text:100032D0 ADD R1, SP, #0x68+var_58 .text:100032D4 ADD R0, SP, #0x68+var_38 .text:100032D8 BL sub_10002F88 .text:100032DC SUB R6, R6, #4 .text:100032E0 SUBS R9, R9, #1 .text:100032E4 BNE loc_100032BC .text:100032E8 .text:100032E8 loc_100032E8 ; CODE XREF: sub_1000321C+90j .text:100032E8 ADD R2, SP, #0x68+var_58 .text:100032EC ADD R1, SP, #0x68+var_58 .text:100032F0 ADD R0, SP, #0x68+var_48 .text:100032F4 BL sub_10002F88 .text:100032F8 ADD R2, SP, #0x68+var_44 .text:100032FC ADD R0, R2, #8 .text:10003300 ADD R1, SP, #0x68+var_50 .text:10003304 .text:10003304 loc_10003304 ; CODE XREF: sub_1000321C+F4j .text:10003304 LDR R3, [R1],#4 .text:10003308 STR R3, [R2],#4 .text:1000330C CMP R2, R0 .text:10003310 BNE loc_10003304 .text:10003314 LDR R3, [SP,#0x68+var_54] .text:10003318 ADD R5, R5, #1 .text:1000331C CMP R5, #3 .text:10003320 STR R3, [R10,#4]! .text:10003324 MOV R1, #0 .text:10003328 MOV R0, #0 .text:1000332C BLT loc_1000328C .text:10003330 LDR R4, [SP,#0x68+var_64] .text:10003334 MOV R0, R4 .text:10003338 BL sub_10002EC4 .text:1000333C LDR R7, [SP,#0x68+var_68] .text:10003340 CMP R0, #0 .text:10003344 LDRNE R2, [R11] .text:10003348 LDRNE R3, [R7] .text:1000334C CMPNE R2, R3 .text:10003350 MOVNE R3, #1 .text:10003354 MOVEQ R3, #0 .text:10003358 STR R3, [R4] .text:1000335C LDR R0, [SP,#0x68+var_28] .text:10003360 BL sub_1000B1BC .text:10003364 MOV R0, R4 .text:10003368 ADD SP, SP, #0x44 .text:1000336C LDMFD SP!, {R4-R11,LR} .text:10003370 BX LR .text:10003370 ; End of function sub_1000321C .text:10003370 .text:10003370 ; --------------------------------------------------------------------------- .text:10003374 off_10003374 DCD unk_1000C1B8 ; DATA XREF: sub_1000321C+1Cr .text:10003378 .text:10003378 ; =============== S U B R O U T I N E ======================================= .text:10003378 .text:10003378 .text:10003378 sub_10003378 ; CODE XREF: sub_100033BC+Cp .text:10003378 ; DATA XREF: .pdata:1000D0E8o .text:10003378 LDR R3, [R0] .text:1000337C CMP R3, #0 .text:10003380 BEQ loc_100033B4 .text:10003384 MOV R1, #1 .text:10003388 MOV R2, #3 .text:1000338C .text:1000338C loc_1000338C ; CODE XREF: sub_10003378+30j .text:1000338C LDR R3, [R0,#4] .text:10003390 MVN R3, R3 .text:10003394 ADDS R3, R3, R1 .text:10003398 STR R3, [R0,#4] .text:1000339C MOVNE R1, #0 .text:100033A0 ADD R0, R0, #4 .text:100033A4 SUBS R2, R2, #1 .text:100033A8 BNE loc_1000338C .text:100033AC MOVL R0, 0xFFFFFFFF .text:100033B0 BX LR .text:100033B4 ; --------------------------------------------------------------------------- .text:100033B4 .text:100033B4 loc_100033B4 ; CODE XREF: sub_10003378+8j .text:100033B4 MOV R0, #0 .text:100033B8 BX LR .text:100033B8 ; End of function sub_10003378 .text:100033B8 .text:100033BC .text:100033BC ; =============== S U B R O U T I N E ======================================= .text:100033BC .text:100033BC .text:100033BC sub_100033BC ; CODE XREF: TouchPanelSetCalibration+4E4p .text:100033BC ; TouchPanelSetCalibration+4F0p ... .text:100033BC STMFD SP!, {R4-R9,LR} .text:100033C0 MOV R4, R1 .text:100033C4 MOV R5, R0 .text:100033C8 BL sub_10003378 .text:100033CC MOV R3, R4,ASR#4 .text:100033D0 ADD R3, R4, R3,LSR#27 .text:100033D4 MOV R2, R3,ASR#5 .text:100033D8 CMP R2, #2 .text:100033DC SUB R9, R4, R2,LSL#5 .text:100033E0 MOV R6, R0 .text:100033E4 BLE loc_10003404 .text:100033E8 ADD R3, R5, #4 .text:100033EC ADD R2, R3, #0xC .text:100033F0 .text:100033F0 loc_100033F0 ; CODE XREF: sub_100033BC+3Cj .text:100033F0 STR R6, [R3],#4 .text:100033F4 CMP R3, R2 .text:100033F8 BNE loc_100033F0 .text:100033FC LDMFD SP!, {R4-R9,LR} .text:10003400 BX LR .text:10003404 ; --------------------------------------------------------------------------- .text:10003404 .text:10003404 loc_10003404 ; CODE XREF: sub_100033BC+28j .text:10003404 ADD R0, R5, R2,LSL#2 .text:10003408 LDR R3, [R0,#4] .text:1000340C RSB R1, R9, #0x20 .text:10003410 MOV LR, #0 .text:10003414 MOV R3, R3,LSR R9 .text:10003418 CMP R2, #2 .text:1000341C STR R3, [R5,#4] .text:10003420 BGE loc_10003468 .text:10003424 RSB R8, R2, #2 .text:10003428 MOV LR, R8 .text:1000342C MOV R7, R5 .text:10003430 MOV R4, R5 .text:10003434 .text:10003434 loc_10003434 ; CODE XREF: sub_100033BC+A8j .text:10003434 ADD R0, R0, #4 .text:10003438 CMP R1, #0x20 .text:1000343C LDRLT R2, [R0,#4] .text:10003440 LDRLT R3, [R7,#4] .text:10003444 ADD R4, R4, #4 .text:10003448 ORRLT R3, R3, R2,LSL R1 .text:1000344C STRLT R3, [R7,#4] .text:10003450 LDR R3, [R0,#4] .text:10003454 MOV R7, R4 .text:10003458 SUBS R8, R8, #1 .text:1000345C MOV R3, R3,LSR R9 .text:10003460 STR R3, [R4,#4] .text:10003464 BNE loc_10003434 .text:10003468 .text:10003468 loc_10003468 ; CODE XREF: sub_100033BC+64j .text:10003468 CMP R1, #0x20 .text:1000346C ADDLT R2, R5, LR,LSL#2 .text:10003470 LDRLT R3, [R2,#4] .text:10003474 ORRLT R3, R3, R6,LSL R1 .text:10003478 STRLT R3, [R2,#4] .text:1000347C ADD R2, LR, #1 .text:10003480 CMP R2, #3 .text:10003484 BGE loc_100034A8 .text:10003488 ADD R3, R5, R2,LSL#2 .text:1000348C ADD R3, R3, #4 .text:10003490 RSBS R2, R2, #3 .text:10003494 BEQ loc_100034A8 .text:10003498 ADD R2, R3, R2,LSL#2 .text:1000349C .text:1000349C loc_1000349C ; CODE XREF: sub_100033BC+E8j .text:1000349C STR R6, [R3],#4 .text:100034A0 CMP R3, R2 .text:100034A4 BNE loc_1000349C .text:100034A8 .text:100034A8 loc_100034A8 ; CODE XREF: sub_100033BC+C8j .text:100034A8 ; sub_100033BC+D8j .text:100034A8 LDMFD SP!, {R4-R9,LR} .text:100034AC BX LR .text:100034AC ; End of function sub_100033BC .text:100034AC .text:100034B0 .text:100034B0 ; =============== S U B R O U T I N E ======================================= .text:100034B0 .text:100034B0 .text:100034B0 sub_100034B0 ; CODE XREF: TouchPanelSetCalibration+420p .text:100034B0 ; DATA XREF: .pdata:1000D0F8o .text:100034B0 .text:100034B0 var_3C = -0x3C .text:100034B0 var_28 = -0x28 .text:100034B0 .text:100034B0 STMFD SP!, {R4-R11,LR} .text:100034B4 SUB SP, SP, #0x18 .text:100034B8 MOV R5, R2 .text:100034BC MOV R6, R1 .text:100034C0 MOV R8, R0 .text:100034C4 ADD R1, SP, #0x3C+var_3C .text:100034C8 MOV R2, R8 .text:100034CC MOV LR, #6 .text:100034D0 .text:100034D0 loc_100034D0 ; CODE XREF: sub_100034B0+30j .text:100034D0 LDRH R3, [R2,#4] .text:100034D4 ADD R2, R2, #2 .text:100034D8 SUBS LR, LR, #1 .text:100034DC STR R3, [R1],#4 .text:100034E0 BNE loc_100034D0 .text:100034E4 CMP R6, #0 .text:100034E8 RSBMI R6, R6, #0 .text:100034EC MOVMI R7, #1 .text:100034F0 BMI loc_1000351C .text:100034F4 BNE loc_10003518 .text:100034F8 ADD R3, R5, #4 .text:100034FC ADD R2, R3, #0xC .text:10003500 MVN R1, #0 .text:10003504 .text:10003504 loc_10003504 ; CODE XREF: sub_100034B0+5Cj .text:10003504 STR R1, [R3],#4 .text:10003508 CMP R3, R2 .text:1000350C BNE loc_10003504 .text:10003510 MOVL R4, 0xFFFFFFFF .text:10003514 B loc_100035A4 .text:10003518 ; --------------------------------------------------------------------------- .text:10003518 .text:10003518 loc_10003518 ; CODE XREF: sub_100034B0+44j .text:10003518 MOV R7, #0 .text:1000351C .text:1000351C loc_1000351C ; CODE XREF: sub_100034B0+40j .text:1000351C LDR R11, =__imp___rt_udiv .text:10003520 MOV R4, #0 .text:10003524 MOV R10, #5 .text:10003528 ADD R9, SP, #0x3C+var_28 .text:1000352C .text:1000352C loc_1000352C ; CODE XREF: sub_100034B0+A8j .text:1000352C LDR R3, [R9] .text:10003530 LDR R2, [R11] .text:10003534 MOV R0, R6 .text:10003538 ADD R4, R3, R4,LSL#16 .text:1000353C MOV R1, R4 .text:10003540 MOV LR, PC .text:10003544 BX R2 .text:10003548 MUL R3, R0, R6 .text:1000354C STR R0, [R9],#-4 .text:10003550 SUBS R10, R10, #1 .text:10003554 SUB R4, R4, R3 .text:10003558 BPL loc_1000352C .text:1000355C MOV R2, R5 .text:10003560 ADD R1, SP, #0x3C+var_3C .text:10003564 MOV R0, #6 .text:10003568 .text:10003568 loc_10003568 ; CODE XREF: sub_100034B0+C8j .text:10003568 LDR R3, [R1],#4 .text:1000356C SUBS R0, R0, #1 .text:10003570 STRH R3, [R2,#4] .text:10003574 ADD R2, R2, #2 .text:10003578 BNE loc_10003568 .text:1000357C LDR R3, [R8] .text:10003580 CMP R3, #0 .text:10003584 BEQ loc_100035B4 .text:10003588 MOV R0, R5 .text:1000358C BL sub_10002F54 .text:10003590 SUB R4, R6, R4 .text:10003594 CMP R7, #0 .text:10003598 BEQ loc_100035BC .text:1000359C .text:1000359C loc_1000359C ; CODE XREF: sub_100034B0+108j .text:1000359C ; sub_100034B0+118j .text:1000359C MOV R3, #0 .text:100035A0 .text:100035A0 loc_100035A0 ; CODE XREF: sub_100034B0+120j .text:100035A0 STR R3, [R5] .text:100035A4 .text:100035A4 loc_100035A4 ; CODE XREF: sub_100034B0+64j .text:100035A4 MOV R0, R4 .text:100035A8 ADD SP, SP, #0x18 .text:100035AC LDMFD SP!, {R4-R11,LR} .text:100035B0 BX LR .text:100035B4 ; --------------------------------------------------------------------------- .text:100035B4 .text:100035B4 loc_100035B4 ; CODE XREF: sub_100034B0+D4j .text:100035B4 CMP R7, #0 .text:100035B8 BEQ loc_1000359C .text:100035BC .text:100035BC loc_100035BC ; CODE XREF: sub_100034B0+E8j .text:100035BC MOV R0, R5 .text:100035C0 BL sub_10002EC4 .text:100035C4 CMP R0, #0 .text:100035C8 BEQ loc_1000359C .text:100035CC MOV R3, #1 .text:100035D0 B loc_100035A0 .text:100035D0 ; End of function sub_100034B0 .text:100035D0 .text:100035D0 ; --------------------------------------------------------------------------- .text:100035D4 off_100035D4 DCD __imp___rt_udiv ; DATA XREF: sub_100034B0:loc_1000351Cr .text:100035D8 .text:100035D8 ; =============== S U B R O U T I N E ======================================= .text:100035D8 .text:100035D8 .text:100035D8 sub_100035D8 ; CODE XREF: TouchPanelSetCalibration+44Cp .text:100035D8 ; TouchPanelSetCalibration+460p ... .text:100035D8 STMFD SP!, {R4,R5,LR} .text:100035DC LDR R4, =unk_1000C100 .text:100035E0 MOV R2, #2 .text:100035E4 ADD R1, R0, #8 .text:100035E8 .text:100035E8 loc_100035E8 ; CODE XREF: sub_100035D8+44j .text:100035E8 LDR R3, [R1,#4] .text:100035EC MOVS R5, R3 .text:100035F0 BEQ loc_10003614 .text:100035F4 MOV R0, #0x1F .text:100035F8 ADD LR, R4, #0x7C .text:100035FC .text:100035FC loc_100035FC ; CODE XREF: sub_100035D8+38j .text:100035FC LDR R3, [LR] .text:10003600 TST R3, R5 .text:10003604 BNE loc_1000362C .text:10003608 SUBS R0, R0, #1 .text:1000360C SUB LR, LR, #4 .text:10003610 BPL loc_100035FC .text:10003614 .text:10003614 loc_10003614 ; CODE XREF: sub_100035D8+18j .text:10003614 SUBS R2, R2, #1 .text:10003618 SUB R1, R1, #4 .text:1000361C BPL loc_100035E8 .text:10003620 MOV R0, #0 .text:10003624 LDMFD SP!, {R4,R5,LR} .text:10003628 BX LR .text:1000362C ; --------------------------------------------------------------------------- .text:1000362C .text:1000362C loc_1000362C ; CODE XREF: sub_100035D8+2Cj .text:1000362C ADD R3, R0, R2,LSL#5 .text:10003630 ADD R0, R3, #1 .text:10003634 LDMFD SP!, {R4,R5,LR} .text:10003638 BX LR .text:10003638 ; End of function sub_100035D8 .text:10003638 .text:10003638 ; --------------------------------------------------------------------------- .text:1000363C off_1000363C DCD unk_1000C100 ; DATA XREF: sub_100035D8+4r .text:10003640 .text:10003640 ; =============== S U B R O U T I N E ======================================= .text:10003640 .text:10003640 .text:10003640 sub_10003640 ; CODE XREF: sub_10004258+38p .text:10003640 ; DATA XREF: .pdata:1000D108o .text:10003640 .text:10003640 var_4 = -4 .text:10003640 arg_4 = 4 .text:10003640 .text:10003640 STR LR, [SP,#var_4]! .text:10003644 MOV R1, #2 .text:10003648 BL EventModify .text:1000364C LDR LR, [SP],#arg_4 .text:10003650 BX LR .text:10003650 ; End of function sub_10003640 .text:10003650 .text:10003654 .text:10003654 ; =============== S U B R O U T I N E ======================================= .text:10003654 .text:10003654 .text:10003654 sub_10003654 ; CODE XREF: sub_10003C38+1E0p .text:10003654 ; sub_10003C38+5E8p .text:10003654 ; DATA XREF: ... .text:10003654 STMFD SP!, {R4-R9,LR} .text:10003658 MOV R8, R2 .text:1000365C MOV R9, R1 .text:10003660 MOV R6, R0 .text:10003664 LDR R4, =unk_1000C2C4 .text:10003668 LDR R3, [R4,#0x1C] .text:1000366C CMP R3, #0 .text:10003670 BEQ loc_1000367C .text:10003674 TST R6, #8 .text:10003678 BNE loc_10003708 .text:1000367C .text:1000367C loc_1000367C ; CODE XREF: sub_10003654+1Cj .text:1000367C LDR R0, [R4] .text:10003680 MOVL R1, 0xFFFFFFFF .text:10003684 BL WaitForSingleObject .text:10003688 LDR R7, =unk_1000E00C .text:1000368C TST R6, #2 .text:10003690 LDR R0, [R7,#0x64] .text:10003694 LDR R5, [R0] .text:10003698 LDR LR, [R0,#4] .text:1000369C SUBNE R3, R5, #3 .text:100036A0 SUBEQ R3, R5, #2 .text:100036A4 CMP LR, R3 .text:100036A8 BLT loc_100036CC .text:100036AC CMP LR, R5 .text:100036B0 BLT loc_100036C0 .text:100036B4 ADD R3, R3, #0x1F4 .text:100036B8 CMP LR, R3 .text:100036BC BLT loc_100036CC .text:100036C0 .text:100036C0 loc_100036C0 ; CODE XREF: sub_10003654+5Cj .text:100036C0 MOV R3, #1 .text:100036C4 STR R3, [R4,#0x1C] .text:100036C8 B loc_10003700 .text:100036CC ; --------------------------------------------------------------------------- .text:100036CC .text:100036CC loc_100036CC ; CODE XREF: sub_10003654+54j .text:100036CC ; sub_10003654+68j .text:100036CC MOV R3, #0 .text:100036D0 ADD R1, LR, #1 .text:100036D4 STR R3, [R4,#0x1C] .text:100036D8 CMP R1, #0x1F4 .text:100036DC ORR R3, R8, R9,LSL#16 .text:100036E0 ADD R2, R0, LR,LSL#3 .text:100036E4 MOVGE R1, #0 .text:100036E8 STR R3, [R2,#0xC] .text:100036EC STR R6, [R2,#8] .text:100036F0 STR R1, [R0,#4] .text:100036F4 LDR R0, [R7] .text:100036F8 MOV R1, #3 .text:100036FC BL EventModify .text:10003700 .text:10003700 loc_10003700 ; CODE XREF: sub_10003654+74j .text:10003700 LDR R0, [R4] .text:10003704 BL ReleaseMutex .text:10003708 .text:10003708 loc_10003708 ; CODE XREF: sub_10003654+24j .text:10003708 LDMFD SP!, {R4-R9,LR} .text:1000370C BX LR .text:1000370C ; End of function sub_10003654 .text:1000370C .text:1000370C ; --------------------------------------------------------------------------- .text:10003710 off_10003710 DCD unk_1000E00C ; DATA XREF: sub_10003654+34r .text:10003714 off_10003714 DCD unk_1000C2C4 ; DATA XREF: sub_10003654+10r .text:10003718 .text:10003718 ; =============== S U B R O U T I N E ======================================= .text:10003718 .text:10003718 .text:10003718 sub_10003718 ; CODE XREF: sub_10003B94+70p .text:10003718 ; DATA XREF: .pdata:1000D118o .text:10003718 STMFD SP!, {R4-R9,LR} .text:1000371C MOV R8, R2 .text:10003720 MOV R9, R1 .text:10003724 MOV R7, R0 .text:10003728 LDR R5, =unk_1000C2C8 .text:1000372C LDR R3, [R5,#0x14] .text:10003730 CMP R3, #0 .text:10003734 BEQ loc_10003740 .text:10003738 TST R7, #8 .text:1000373C BNE loc_1000380C .text:10003740 .text:10003740 loc_10003740 ; CODE XREF: sub_10003718+1Cj .text:10003740 MOV R0, R5 .text:10003744 BL EnterCriticalSection .text:10003748 LDR R4, =unk_1000E008 .text:1000374C TST R7, #2 .text:10003750 LDR R3, [R4,#0xA8] .text:10003754 LDR LR, [R4,#0xAC] .text:10003758 SUBNE R6, R3, #3 .text:1000375C SUBEQ R6, R3, #2 .text:10003760 CMP LR, R6 .text:10003764 BLT loc_10003788 .text:10003768 CMP LR, R3 .text:1000376C BLT loc_1000377C .text:10003770 ADD R3, R6, #0x1F4 .text:10003774 CMP LR, R3 .text:10003778 BLT loc_10003788 .text:1000377C .text:1000377C loc_1000377C ; CODE XREF: sub_10003718+54j .text:1000377C MOV R3, #1 .text:10003780 STR R3, [R5,#0x14] .text:10003784 B loc_10003804 .text:10003788 ; --------------------------------------------------------------------------- .text:10003788 .text:10003788 loc_10003788 ; CODE XREF: sub_10003718+4Cj .text:10003788 ; sub_10003718+60j .text:10003788 ADD R3, R4, #0xA8 .text:1000378C ADD R2, R4, #0xA8 .text:10003790 ADD R1, R3, LR,LSL#3 .text:10003794 ADD R0, LR, #1 .text:10003798 ORR R3, R8, R9,LSL#16 .text:1000379C ADD R2, R2, LR,LSL#3 .text:100037A0 CMP R0, #0x1F4 .text:100037A4 STR R3, [R2,#0xC] .text:100037A8 AND R3, R7, #0xA .text:100037AC MOV R6, #0 .text:100037B0 MOVGE R0, #0 .text:100037B4 STR R7, [R1,#8] .text:100037B8 CMP R3, #0xA .text:100037BC STR R6, [R5,#0x14] .text:100037C0 STR R0, [R4,#0xAC] .text:100037C4 BNE loc_100037F0 .text:100037C8 LDR R3, [R4,#0x18] .text:100037CC CMP R3, R9,ASR#3 .text:100037D0 BNE loc_100037F0 .text:100037D4 LDR R3, [R4,#0x14] .text:100037D8 CMP R3, R8,ASR#3 .text:100037DC BNE loc_100037F0 .text:100037E0 LDR R3, [R4,#0x10] .text:100037E4 CMP R3, #0xA .text:100037E8 ADDLE R3, R3, #1 .text:100037EC BLE loc_10003800 .text:100037F0 .text:100037F0 loc_100037F0 ; CODE XREF: sub_10003718+ACj .text:100037F0 ; sub_10003718+B8j ... .text:100037F0 LDR R0, [R4] .text:100037F4 MOV R1, #3 .text:100037F8 BL EventModify .text:100037FC MOV R3, #0 .text:10003800 .text:10003800 loc_10003800 ; CODE XREF: sub_10003718+D4j .text:10003800 STR R3, [R4,#0x10] .text:10003804 .text:10003804 loc_10003804 ; CODE XREF: sub_10003718+6Cj .text:10003804 MOV R0, R5 .text:10003808 BL LeaveCriticalSection .text:1000380C .text:1000380C loc_1000380C ; CODE XREF: sub_10003718+24j .text:1000380C LDMFD SP!, {R4-R9,LR} .text:10003810 BX LR .text:10003810 ; End of function sub_10003718 .text:10003810 .text:10003810 ; --------------------------------------------------------------------------- .text:10003814 off_10003814 DCD unk_1000E008 ; DATA XREF: sub_10003718+30r .text:10003818 off_10003818 DCD unk_1000C2C8 ; DATA XREF: sub_10003718+10r .text:1000381C ; Exported entry 4. TouchGetQueuePtr .text:1000381C .text:1000381C ; =============== S U B R O U T I N E ======================================= .text:1000381C .text:1000381C .text:1000381C EXPORT TouchGetQueuePtr .text:1000381C TouchGetQueuePtr ; DATA XREF: .pdata:1000D120o .text:1000381C LDR R3, =unk_1000E070 .text:10003820 LDR R0, [R3] .text:10003824 BX LR .text:10003824 ; End of function TouchGetQueuePtr .text:10003824 .text:10003824 ; --------------------------------------------------------------------------- .text:10003828 off_10003828 DCD unk_1000E070 ; DATA XREF: TouchGetQueuePtrr .text:1000382C .text:1000382C ; =============== S U B R O U T I N E ======================================= .text:1000382C .text:1000382C .text:1000382C sub_1000382C ; CODE XREF: TouchGetFocusWnd+4p .text:1000382C ; TouchGetLastTouchFocusWnd+4p ... .text:1000382C STMFD SP!, {R4,LR} .text:10003830 LDR R4, =unk_1000E060 .text:10003834 LDR R3, [R4] .text:10003838 LDR R3, [R3] .text:1000383C CMP R3, #0 .text:10003840 BNE loc_10003870 .text:10003844 LDR R0, =aTouchstubwnd_c .text:10003848 MOV R1, #0 .text:1000384C BL FindWindowsW .text:10003850 LDR R3, [R4] .text:10003854 STR R0, [R3] .text:10003858 LDR R3, [R4] .text:1000385C LDR R3, [R3] .text:10003860 CMP R3, #0 .text:10003864 MOVEQ R0, #0 .text:10003868 LDMEQFD SP!, {R4,LR} .text:1000386C BXEQ LR .text:10003870 .text:10003870 loc_10003870 ; CODE XREF: sub_1000382C+14j .text:10003870 MOV R0, #1 .text:10003874 LDMFD SP!, {R4,LR} .text:10003878 BX LR .text:10003878 ; End of function sub_1000382C .text:10003878 .text:10003878 ; --------------------------------------------------------------------------- .text:1000387C off_1000387C DCD aTouchstubwnd_c ; DATA XREF: sub_1000382C+18r .text:1000387C ; "TOUCHSTUBWND_CLASS" .text:10003880 off_10003880 DCD unk_1000E060 ; DATA XREF: sub_1000382C+4r .text:10003884 ; Exported entry 2. TouchGetFocusWnd .text:10003884 .text:10003884 ; =============== S U B R O U T I N E ======================================= .text:10003884 .text:10003884 .text:10003884 EXPORT TouchGetFocusWnd .text:10003884 TouchGetFocusWnd ; DATA XREF: .pdata:1000D130o .text:10003884 .text:10003884 var_4 = -4 .text:10003884 arg_4 = 4 .text:10003884 .text:10003884 STR LR, [SP,#var_4]! .text:10003888 BL sub_1000382C .text:1000388C CMP R0, #0 .text:10003890 BEQ loc_100038BC .text:10003894 LDR R2, =unk_1000E060 .text:10003898 MOVL R1, 0x407 .text:100038A0 LDR R0, [R2] .text:100038A4 MOV R3, #0 .text:100038A8 MOV R2, #0 .text:100038AC LDR R0, [R0] .text:100038B0 BL SendMessageW .text:100038B4 LDR LR, [SP],#arg_4 .text:100038B8 BX LR .text:100038BC ; --------------------------------------------------------------------------- .text:100038BC .text:100038BC loc_100038BC ; CODE XREF: TouchGetFocusWnd+Cj .text:100038BC MOV R0, #0 .text:100038C0 LDR LR, [SP],#arg_4 .text:100038C4 BX LR .text:100038C4 ; End of function TouchGetFocusWnd .text:100038C4 .text:100038C4 ; --------------------------------------------------------------------------- .text:100038C8 off_100038C8 DCD unk_1000E060 ; DATA XREF: TouchGetFocusWnd+10r .text:100038CC ; Exported entry 3. TouchGetLastTouchFocusWnd .text:100038CC .text:100038CC ; =============== S U B R O U T I N E ======================================= .text:100038CC .text:100038CC .text:100038CC EXPORT TouchGetLastTouchFocusWnd .text:100038CC TouchGetLastTouchFocusWnd ; DATA XREF: .pdata:1000D138o .text:100038CC .text:100038CC var_4 = -4 .text:100038CC arg_4 = 4 .text:100038CC .text:100038CC STR LR, [SP,#var_4]! .text:100038D0 BL sub_1000382C .text:100038D4 CMP R0, #0 .text:100038D8 BEQ loc_10003904 .text:100038DC LDR R2, =unk_1000E060 .text:100038E0 MOVL R1, 0x409 .text:100038E8 LDR R0, [R2] .text:100038EC MOV R3, #0 .text:100038F0 MOV R2, #0 .text:100038F4 LDR R0, [R0] .text:100038F8 BL SendMessageW .text:100038FC LDR LR, [SP],#arg_4 .text:10003900 BX LR .text:10003904 ; --------------------------------------------------------------------------- .text:10003904 .text:10003904 loc_10003904 ; CODE XREF: TouchGetLastTouchFocusWnd+Cj .text:10003904 MOV R0, #0 .text:10003908 LDR LR, [SP],#arg_4 .text:1000390C BX LR .text:1000390C ; End of function TouchGetLastTouchFocusWnd .text:1000390C .text:1000390C ; --------------------------------------------------------------------------- .text:10003910 off_10003910 DCD unk_1000E060 ; DATA XREF: TouchGetLastTouchFocusWnd+10r .text:10003914 ; Exported entry 16. TouchReset .text:10003914 .text:10003914 ; =============== S U B R O U T I N E ======================================= .text:10003914 .text:10003914 .text:10003914 EXPORT TouchReset .text:10003914 TouchReset ; DATA XREF: .pdata:1000D140o .text:10003914 STMFD SP!, {R4,LR} .text:10003918 MOV R4, R0 .text:1000391C BL sub_1000382C .text:10003920 CMP R0, #0 .text:10003924 LDRNE R2, =unk_1000E060 .text:10003928 MOVLNE R1, 0x405 .text:10003930 LDRNE LR, [R2] .text:10003934 MOVNE R3, #0 .text:10003938 MOVNE R2, R4 .text:1000393C LDRNE R0, [LR] .text:10003940 BLNE SendMessageW .text:10003944 LDMFD SP!, {R4,LR} .text:10003948 BX LR .text:10003948 ; End of function TouchReset .text:10003948 .text:10003948 ; --------------------------------------------------------------------------- .text:1000394C off_1000394C DCD unk_1000E060 ; DATA XREF: TouchReset+10r .text:10003950 ; Exported entry 1. TouchCreateEvent .text:10003950 .text:10003950 ; =============== S U B R O U T I N E ======================================= .text:10003950 .text:10003950 .text:10003950 EXPORT TouchCreateEvent .text:10003950 TouchCreateEvent ; DATA XREF: .pdata:1000D148o .text:10003950 STMFD SP!, {R4,R5,LR} .text:10003954 MOV R4, R1 .text:10003958 MOV R5, R0 .text:1000395C BL sub_1000382C .text:10003960 CMP R0, #0 .text:10003964 LDRNE R2, =unk_1000E060 .text:10003968 MOVLNE R1, 0x406 .text:10003970 LDRNE LR, [R2] .text:10003974 MOVNE R3, R4 .text:10003978 MOVNE R2, R5 .text:1000397C LDRNE R0, [LR] .text:10003980 BLNE SendMessageW .text:10003984 LDMFD SP!, {R4,R5,LR} .text:10003988 BX LR .text:10003988 ; End of function TouchCreateEvent .text:10003988 .text:10003988 ; --------------------------------------------------------------------------- .text:1000398C off_1000398C DCD unk_1000E060 ; DATA XREF: TouchCreateEvent+14r .text:10003990 .text:10003990 ; =============== S U B R O U T I N E ======================================= .text:10003990 .text:10003990 .text:10003990 sub_10003990 ; CODE XREF: sub_10005130+394p .text:10003990 ; DATA XREF: .pdata:1000D150o .text:10003990 STMFD SP!, {R4-R6,LR} .text:10003994 MOV R5, R1 .text:10003998 MOV R6, R0 .text:1000399C LDR R4, =unk_1000E084 .text:100039A0 LDR R3, [R4] .text:100039A4 CMP R3, #0 .text:100039A8 BEQ loc_10003A38 .text:100039AC ADD R2, R5, #1 .text:100039B0 ADD R1, R6, #1 .text:100039B4 MOV R0, #7 .text:100039B8 MOV LR, PC .text:100039BC BX R3 .text:100039C0 LDR R3, [R4] .text:100039C4 MOV R2, R5 .text:100039C8 MOV R1, R6 .text:100039CC MOV R0, #0xF .text:100039D0 MOV LR, PC .text:100039D4 BX R3 .text:100039D8 LDR R3, [R4] .text:100039DC MOV R2, R5 .text:100039E0 MOV R1, R6 .text:100039E4 MOV R0, #0xF .text:100039E8 MOV LR, PC .text:100039EC BX R3 .text:100039F0 LDR R3, [R4] .text:100039F4 MOV R2, R5 .text:100039F8 MOV R1, R6 .text:100039FC MOV R0, #0xF .text:10003A00 MOV LR, PC .text:10003A04 BX R3 .text:10003A08 LDR R3, [R4] .text:10003A0C MOV R2, R5 .text:10003A10 MOV R1, R6 .text:10003A14 MOV R0, #0xD .text:10003A18 MOV LR, PC .text:10003A1C BX R3 .text:10003A20 LDR R3, [R4] .text:10003A24 MOV R2, R5 .text:10003A28 MOV R1, R6 .text:10003A2C MOV R0, #5 .text:10003A30 MOV LR, PC .text:10003A34 BX R3 .text:10003A38 .text:10003A38 loc_10003A38 ; CODE XREF: sub_10003990+18j .text:10003A38 LDMFD SP!, {R4-R6,LR} .text:10003A3C BX LR .text:10003A3C ; End of function sub_10003990 .text:10003A3C .text:10003A3C ; --------------------------------------------------------------------------- .text:10003A40 off_10003A40 DCD unk_1000E084 ; DATA XREF: sub_10003990+Cr .text:10003A44 ; Exported entry 15. TouchRegisterWindow .text:10003A44 .text:10003A44 ; =============== S U B R O U T I N E ======================================= .text:10003A44 .text:10003A44 .text:10003A44 EXPORT TouchRegisterWindow .text:10003A44 TouchRegisterWindow ; DATA XREF: .pdata:1000D158o .text:10003A44 STMFD SP!, {R4,R5,LR} .text:10003A48 MOV R5, R0 .text:10003A4C LDR R4, =unk_1000E060 .text:10003A50 MOV R1, #0 .text:10003A54 MOV LR, #0 .text:10003A58 LDR R0, [R4,#0x10] .text:10003A5C MOV R2, #0xFA0 .text:10003A60 MOV R3, #0 .text:10003A64 STR R1, [R0] .text:10003A68 STR R1, [R0,#4] .text:10003A6C STR LR, [R4,#0x50] .text:10003A70 MOV R1, #0 .text:10003A74 ORR R2, R2, #8 .text:10003A78 STR R3, [R4,#0x54] .text:10003A7C BL memset .text:10003A80 BL sub_1000382C .text:10003A84 CMP R0, #0 .text:10003A88 BEQ loc_10003AB8 .text:10003A8C LDR R2, [R4] .text:10003A90 MOVL R1, 0x401 .text:10003A98 LDR R0, [R2] .text:10003A9C MOV R3, #0 .text:10003AA0 MOV R2, R5 .text:10003AA4 BL SendMessageW .text:10003AA8 CMP R0, #0 .text:10003AAC MOVNE R0, #1 .text:10003AB0 LDMNEFD SP!, {R4,R5,LR} .text:10003AB4 BXNE LR .text:10003AB8 .text:10003AB8 loc_10003AB8 ; CODE XREF: TouchRegisterWindow+44j .text:10003AB8 MOV R0, #0 .text:10003ABC LDMFD SP!, {R4,R5,LR} .text:10003AC0 BX LR .text:10003AC0 ; End of function TouchRegisterWindow .text:10003AC0 .text:10003AC0 ; --------------------------------------------------------------------------- .text:10003AC4 off_10003AC4 DCD unk_1000E060 ; DATA XREF: TouchRegisterWindow+8r .text:10003AC8 ; Exported entry 18. TouchUnregisterWindow .text:10003AC8 .text:10003AC8 ; =============== S U B R O U T I N E ======================================= .text:10003AC8 .text:10003AC8 .text:10003AC8 EXPORT TouchUnregisterWindow .text:10003AC8 TouchUnregisterWindow ; DATA XREF: .pdata:1000D160o .text:10003AC8 STMFD SP!, {R4,LR} .text:10003ACC MOV R4, R0 .text:10003AD0 BL sub_1000382C .text:10003AD4 CMP R0, #0 .text:10003AD8 LDRNE R2, =unk_1000E060 .text:10003ADC MOVLNE R1, 0x402 .text:10003AE4 LDRNE LR, [R2] .text:10003AE8 MOVNE R3, #0 .text:10003AEC MOVNE R2, R4 .text:10003AF0 LDRNE R0, [LR] .text:10003AF4 BLNE SendMessageW .text:10003AF8 LDMFD SP!, {R4,LR} .text:10003AFC BX LR .text:10003AFC ; End of function TouchUnregisterWindow .text:10003AFC .text:10003AFC ; --------------------------------------------------------------------------- .text:10003B00 off_10003B00 DCD unk_1000E060 ; DATA XREF: TouchUnregisterWindow+10r .text:10003B04 ; Exported entry 17. TouchSetValue .text:10003B04 .text:10003B04 ; =============== S U B R O U T I N E ======================================= .text:10003B04 .text:10003B04 .text:10003B04 EXPORT TouchSetValue .text:10003B04 TouchSetValue ; DATA XREF: .pdata:1000D168o .text:10003B04 STMFD SP!, {R4,R5,LR} .text:10003B08 MOV R4, R1 .text:10003B0C MOV R5, R0 .text:10003B10 BL sub_1000382C .text:10003B14 CMP R0, #0 .text:10003B18 LDRNE R2, =unk_1000E060 .text:10003B1C MOVLNE R1, 0x403 .text:10003B24 LDRNE LR, [R2] .text:10003B28 MOVNE R3, R4 .text:10003B2C MOVNE R2, R5 .text:10003B30 LDRNE R0, [LR] .text:10003B34 BLNE SendMessageW .text:10003B38 LDMFD SP!, {R4,R5,LR} .text:10003B3C BX LR .text:10003B3C ; End of function TouchSetValue .text:10003B3C .text:10003B3C ; --------------------------------------------------------------------------- .text:10003B40 off_10003B40 DCD unk_1000E060 ; DATA XREF: TouchSetValue+14r .text:10003B44 ; Exported entry 5. TouchGetValue .text:10003B44 .text:10003B44 ; =============== S U B R O U T I N E ======================================= .text:10003B44 .text:10003B44 .text:10003B44 EXPORT TouchGetValue .text:10003B44 TouchGetValue ; DATA XREF: .pdata:1000D170o .text:10003B44 STMFD SP!, {R4,R5,LR} .text:10003B48 MOV R4, R1 .text:10003B4C MOV R5, R0 .text:10003B50 BL sub_1000382C .text:10003B54 CMP R0, #0 .text:10003B58 BEQ loc_10003B84 .text:10003B5C LDR R2, =unk_1000E060 .text:10003B60 MOVL R1, 0x404 .text:10003B68 LDR LR, [R2] .text:10003B6C MOV R3, R4 .text:10003B70 MOV R2, R5 .text:10003B74 LDR R0, [LR] .text:10003B78 BL SendMessageW .text:10003B7C LDMFD SP!, {R4,R5,LR} .text:10003B80 BX LR .text:10003B84 ; --------------------------------------------------------------------------- .text:10003B84 .text:10003B84 loc_10003B84 ; CODE XREF: TouchGetValue+14j .text:10003B84 MOV R0, #0 .text:10003B88 LDMFD SP!, {R4,R5,LR} .text:10003B8C BX LR .text:10003B8C ; End of function TouchGetValue .text:10003B8C .text:10003B8C ; --------------------------------------------------------------------------- .text:10003B90 off_10003B90 DCD unk_1000E060 ; DATA XREF: TouchGetValue+18r .text:10003B94 .text:10003B94 ; =============== S U B R O U T I N E ======================================= .text:10003B94 .text:10003B94 .text:10003B94 sub_10003B94 ; DATA XREF: .data:off_1000C180o .text:10003B94 ; .pdata:1000D178o .text:10003B94 STMFD SP!, {R4-R7,LR} .text:10003B98 MOV R6, R2 .text:10003B9C MOV R7, R1 .text:10003BA0 MOV R4, R0 .text:10003BA4 LDR R5, =unk_1000E060 .text:10003BA8 LDR R3, [R5] .text:10003BAC LDR R3, [R3] .text:10003BB0 CMP R3, #0 .text:10003BB4 BLEQ sub_1000382C .text:10003BB8 BL GetTickCount .text:10003BBC LDR R3, [R5,#0x20] .text:10003BC0 CMP R3, #0 .text:10003BC4 BEQ loc_10003C0C .text:10003BC8 LDR R3, =unk_1000C314 .text:10003BCC LDR R3, [R3] .text:10003BD0 CMP R3, #0 .text:10003BD4 BNE loc_10003C0C .text:10003BD8 LDR R3, [R5] .text:10003BDC LDR R3, [R3] .text:10003BE0 CMP R3, #0 .text:10003BE4 BEQ loc_10003C0C .text:10003BE8 TST R4, #1 .text:10003BEC BEQ loc_10003C0C .text:10003BF0 TST R4, #0x10 .text:10003BF4 BNE loc_10003C0C .text:10003BF8 MOV R2, R6 .text:10003BFC MOV R1, R7 .text:10003C00 MOV R0, R4 .text:10003C04 BL sub_10003718 .text:10003C08 B loc_10003C24 .text:10003C0C ; --------------------------------------------------------------------------- .text:10003C0C .text:10003C0C loc_10003C0C ; CODE XREF: sub_10003B94+30j .text:10003C0C ; sub_10003B94+40j ... .text:10003C0C LDR R3, [R5,#0x24] .text:10003C10 MOV R2, R6 .text:10003C14 MOV R1, R7 .text:10003C18 MOV R0, R4 .text:10003C1C MOV LR, PC .text:10003C20 BX R3 .text:10003C24 .text:10003C24 loc_10003C24 ; CODE XREF: sub_10003B94+74j .text:10003C24 MOV R0, #0 .text:10003C28 LDMFD SP!, {R4-R7,LR} .text:10003C2C BX LR .text:10003C2C ; End of function sub_10003B94 .text:10003C2C .text:10003C2C ; --------------------------------------------------------------------------- .text:10003C30 off_10003C30 DCD unk_1000C314 ; DATA XREF: sub_10003B94+34r .text:10003C34 off_10003C34 DCD unk_1000E060 ; DATA XREF: sub_10003B94+10r .text:10003C38 .text:10003C38 ; =============== S U B R O U T I N E ======================================= .text:10003C38 .text:10003C38 .text:10003C38 sub_10003C38 ; CODE XREF: sub_10004258+128p .text:10003C38 ; sub_10005130+2D0p .text:10003C38 ; DATA XREF: ... .text:10003C38 .text:10003C38 var_2C = -0x2C .text:10003C38 var_28 = -0x28 .text:10003C38 .text:10003C38 STMFD SP!, {R4-R11,LR} .text:10003C3C SUB SP, SP, #8 .text:10003C40 MOV R6, R3 .text:10003C44 MOV R7, R2 .text:10003C48 MOV R8, R1 .text:10003C4C MOV R9, R0 .text:10003C50 LDR R5, =unk_1000E000 .text:10003C54 MOV R10, R8 .text:10003C58 STR R10, [SP,#0x2C+var_2C] .text:10003C5C LDR R0, [R5,#0x80] .text:10003C60 CMP R0, #0 .text:10003C64 BEQ loc_10004228 .text:10003C68 LDR LR, =unk_1000C314 .text:10003C6C LDR LR, [LR] .text:10003C70 CMP LR, #0 .text:10003C74 BNE loc_10004228 .text:10003C78 TST R8, #1 .text:10003C7C BEQ loc_10004228 .text:10003C80 TST R8, #0x10 .text:10003C84 BNE loc_10004228 .text:10003C88 CMP R8, #7 .text:10003C8C BNE loc_10003D90 .text:10003C90 BL IsWindow .text:10003C94 CMP R0, #0 .text:10003C98 BNE loc_10003CC0 .text:10003C9C MOV R4, #0 .text:10003CA0 LDR R3, [R5,#0x84] .text:10003CA4 STR R4, [R5,#0x80] .text:10003CA8 MOV R2, R6 .text:10003CAC MOV R1, R7 .text:10003CB0 MOV R0, #7 .text:10003CB4 MOV LR, PC .text:10003CB8 BX R3 .text:10003CBC B loc_10004240 .text:10003CC0 ; --------------------------------------------------------------------------- .text:10003CC0 .text:10003CC0 loc_10003CC0 ; CODE XREF: sub_10003C38+60j .text:10003CC0 LDR R0, [R5,#0x80] .text:10003CC4 MOV R1, #0 .text:10003CC8 BL GetWindowLongW .text:10003CCC MOV R1, R0,LSL#16 .text:10003CD0 MOV R1, R1,ASR#16 .text:10003CD4 MOV R3, R1,LSL#16 .text:10003CD8 MOV R3, R3,LSR#16 .text:10003CDC TST R3, #0x200 .text:10003CE0 STRH R1, [R5] .text:10003CE4 BEQ loc_10003D18 .text:10003CE8 MOV R3, R7,LSL#16 .text:10003CEC LDR R0, [R5,#0x80] .text:10003CF0 MOV R3, R3,LSR#16 .text:10003CF4 MOV R1, #0x410 .text:10003CF8 ORR R3, R3, R6,LSL#16 .text:10003CFC ORR R1, R1, #7 .text:10003D00 MOV R2, #0 .text:10003D04 BL SendMessageW .text:10003D08 CMP R0, #0 .text:10003D0C MOVEQ R1, #2 .text:10003D10 STREQH R1, [R5] .text:10003D14 LDRNESH R1, [R5] .text:10003D18 .text:10003D18 loc_10003D18 ; CODE XREF: sub_10003C38+ACj .text:10003D18 MOV R3, R1,LSL#16 .text:10003D1C MOV R3, R3,LSR#16 .text:10003D20 TST R3, #0x1C .text:10003D24 BICNE R3, R1, #2 .text:10003D28 MOVNE R1, R3,LSL#16 .text:10003D2C MOVNE R1, R1,ASR#16 .text:10003D30 MOV R3, R1,LSL#16 .text:10003D34 MOV R3, R3,LSR#16 .text:10003D38 STRNEH R1, [R5] .text:10003D3C TST R3, #0x100 .text:10003D40 BEQ loc_10003D50 .text:10003D44 BL GetForegroundWindow .text:10003D48 LDRSH R1, [R5] .text:10003D4C STR R0, [R5,#0x7C] .text:10003D50 .text:10003D50 loc_10003D50 ; CODE XREF: sub_10003C38+108j .text:10003D50 MOV R3, #0 .text:10003D54 MOV R2, #0 .text:10003D58 MOV R0, #1 .text:10003D5C STR R3, [R5,#0x58] .text:10003D60 STR R2, [R5,#0x54] .text:10003D64 MOV R2, R7 .text:10003D68 MOV R3, R6 .text:10003D6C STR R0, [R5,#0x44] .text:10003D70 STR R9, [R5,#0x38] .text:10003D74 MOV LR, R9 .text:10003D78 STR R9, [R5,#0x48] .text:10003D7C STR R7, [R5,#0x40] .text:10003D80 STR R7, [R5,#0x50] .text:10003D84 STR R6, [R5,#0x3C] .text:10003D88 STR R6, [R5,#0x4C] .text:10003D8C B loc_10003DA4 .text:10003D90 ; --------------------------------------------------------------------------- .text:10003D90 .text:10003D90 loc_10003D90 ; CODE XREF: sub_10003C38+54j .text:10003D90 LDRSH R1, [R5] .text:10003D94 LDR LR, [R5,#0x48] .text:10003D98 LDR R2, [R5,#0x50] .text:10003D9C LDR R3, [R5,#0x4C] .text:10003DA0 LDR R0, [R5,#0x44] .text:10003DA4 .text:10003DA4 loc_10003DA4 ; CODE XREF: sub_10003C38+154j .text:10003DA4 MOV R4, R1,LSL#16 .text:10003DA8 MOV R4, R4,LSR#16 .text:10003DAC TST R4, #0x1C .text:10003DB0 STR R3, [SP,#0x2C+var_28] .text:10003DB4 BEQ loc_100041B8 .text:10003DB8 LDR R10, =unk_1000C184 .text:10003DBC CMP R0, #0 .text:10003DC0 BEQ loc_1000407C .text:10003DC4 CMP R8, #0xF .text:10003DC8 BNE loc_10003E40 .text:10003DCC LDR R3, [R10,#0x10] .text:10003DD0 SUB R2, R2, R7 .text:10003DD4 CMP R2, R3 .text:10003DD8 BGE loc_10003E00 .text:10003DDC RSB R11, R3, #0 .text:10003DE0 CMP R2, R11 .text:10003DE4 BLE loc_10003E00 .text:10003DE8 LDR R2, [SP,#0x2C+var_28] .text:10003DEC SUB R2, R2, R6 .text:10003DF0 CMP R2, R3 .text:10003DF4 BGE loc_10003E00 .text:10003DF8 CMP R2, R11 .text:10003DFC BGT loc_10003E40 .text:10003E00 .text:10003E00 loc_10003E00 ; CODE XREF: sub_10003C38+1A0j .text:10003E00 ; sub_10003C38+1ACj ... .text:10003E00 TST R4, #0x20 .text:10003E04 MOV R3, #0 .text:10003E08 MOVNE R2, R6 .text:10003E0C MOVNE R1, R7 .text:10003E10 MOVNE R0, #0x1A .text:10003E14 STR R3, [R5,#0x44] .text:10003E18 BLNE sub_10003654 .text:10003E1C MOV R1, #1 .text:10003E20 MOV R0, #0x41 .text:10003E24 STR R7, [R5,#0x40] .text:10003E28 STR R6, [R5,#0x3C] .text:10003E2C STR R9, [R5,#0x38] .text:10003E30 BL SetThreadPriority .text:10003E34 LDR LR, [R5,#0x48] .text:10003E38 LDRSH R1, [R5] .text:10003E3C LDR R0, [R5,#0x44] .text:10003E40 .text:10003E40 loc_10003E40 ; CODE XREF: sub_10003C38+190j .text:10003E40 ; sub_10003C38+1C4j .text:10003E40 CMP R0, #0 .text:10003E44 BEQ loc_1000407C .text:10003E48 CMP R8, #0xD .text:10003E4C BNE loc_10003F78 .text:10003E50 MOV R3, R1,LSL#16 .text:10003E54 MOV R3, R3,LSR#16 .text:10003E58 TST R3, #4 .text:10003E5C BEQ loc_10003F78 .text:10003E60 LDR R2, [R10,#8] .text:10003E64 SUB R3, R9, LR .text:10003E68 CMP R3, R2 .text:10003E6C BCS loc_10003F78 .text:10003E70 LDR R3, [R5,#0x78] .text:10003E74 LDR R2, [R10,#0x14] .text:10003E78 SUB R3, LR, R3 .text:10003E7C CMP R3, R2 .text:10003E80 BLS loc_10003F78 .text:10003E84 BL GetForegroundWindow .text:10003E88 LDRH R3, [R5] .text:10003E8C MOV R2, #1 .text:10003E90 STR R2, [R5,#0x58] .text:10003E94 LDR R2, [R5,#0x4C] .text:10003E98 TST R3, #0xC0 .text:10003E9C LDRH R3, [R5,#0x50] .text:10003EA0 MOV R1, #0 .text:10003EA4 STR R1, [R5,#0x78] .text:10003EA8 MOV LR, R0 .text:10003EAC LDR R0, [R5,#0x80] .text:10003EB0 MOV R1, #0x400 .text:10003EB4 ORR R3, R3, R2,LSL#16 .text:10003EB8 MOV R2, LR .text:10003EBC MOV R4, #1 .text:10003EC0 ORR R1, R1, #5 .text:10003EC4 BEQ loc_10003ED4 .text:10003EC8 BL SendMessageW .text:10003ECC MOV R4, R0 .text:10003ED0 B loc_10003ED8 .text:10003ED4 ; --------------------------------------------------------------------------- .text:10003ED4 .text:10003ED4 loc_10003ED4 ; CODE XREF: sub_10003C38+28Cj .text:10003ED4 BL PostMessageW .text:10003ED8 .text:10003ED8 loc_10003ED8 ; CODE XREF: sub_10003C38+298j .text:10003ED8 LDRH R3, [R5] .text:10003EDC TST R3, #0x80 .text:10003EE0 BEQ loc_10003EEC .text:10003EE4 CMP R4, #0 .text:10003EE8 BEQ loc_10004240 .text:10003EEC .text:10003EEC loc_10003EEC ; CODE XREF: sub_10003C38+2A8j .text:10003EEC LDR R2, [R5,#0x4C] .text:10003EF0 LDR R3, [R5,#0x50] .text:10003EF4 LDR R4, [R5,#0x84] .text:10003EF8 ADD R2, R2, #1 .text:10003EFC ADD R1, R3, #1 .text:10003F00 MOV R0, #7 .text:10003F04 MOV LR, PC .text:10003F08 BX R4 .text:10003F0C LDR R3, [R5,#0x84] .text:10003F10 LDR R2, [R5,#0x4C] .text:10003F14 LDR R1, [R5,#0x50] .text:10003F18 MOV R0, #0xF .text:10003F1C MOV LR, PC .text:10003F20 BX R3 .text:10003F24 LDR R3, [R5,#0x84] .text:10003F28 LDR R2, [R5,#0x4C] .text:10003F2C LDR R1, [R5,#0x50] .text:10003F30 MOV R0, #0xF .text:10003F34 MOV LR, PC .text:10003F38 BX R3 .text:10003F3C LDR R3, [R5,#0x84] .text:10003F40 LDR R2, [R5,#0x4C] .text:10003F44 LDR R1, [R5,#0x50] .text:10003F48 MOV R0, #0xF .text:10003F4C MOV LR, PC .text:10003F50 BX R3 .text:10003F54 LDR R3, [R5,#0x84] .text:10003F58 LDR R2, [R5,#0x4C] .text:10003F5C LDR R1, [R5,#0x50] .text:10003F60 MOV R0, #0xD .text:10003F64 MOV LR, PC .text:10003F68 BX R3 .text:10003F6C LDR LR, [R5,#0x48] .text:10003F70 LDRSH R1, [R5] .text:10003F74 LDR R0, [R5,#0x44] .text:10003F78 .text:10003F78 loc_10003F78 ; CODE XREF: sub_10003C38+214j .text:10003F78 ; sub_10003C38+224j ... .text:10003F78 CMP R0, #0 .text:10003F7C BEQ loc_1000407C .text:10003F80 CMP R8, #0xF .text:10003F84 BNE loc_10004074 .text:10003F88 MOV R4, R1,LSL#16 .text:10003F8C MOV R4, R4,LSR#16 .text:10003F90 TST R4, #8 .text:10003F94 BEQ loc_10004074 .text:10003F98 SUB R2, R9, LR .text:10003F9C CMP R2, #0x4B0 .text:10003FA0 BHI loc_10003FC4 .text:10003FA4 LDR R3, [R10,#4] .text:10003FA8 CMP R2, R3 .text:10003FAC BLS loc_10004074 .text:10003FB0 LDR R3, [R5,#0x78] .text:10003FB4 LDR R2, [R10,#0x14] .text:10003FB8 SUB R3, LR, R3 .text:10003FBC CMP R3, R2 .text:10003FC0 BLS loc_10004074 .text:10003FC4 .text:10003FC4 loc_10003FC4 ; CODE XREF: sub_10003C38+368j .text:10003FC4 MOV R11, #1 .text:10003FC8 TST R4, #0xC0 .text:10003FCC BEQ loc_10003FFC .text:10003FD0 BL GetForegroundWindow .text:10003FD4 LDR LR, [R5,#0x4C] .text:10003FD8 LDRH R3, [R5,#0x50] .text:10003FDC MOV R2, R0 .text:10003FE0 LDR R0, [R5,#0x80] .text:10003FE4 MOV R1, #0x400 .text:10003FE8 ORR R3, R3, LR,LSL#16 .text:10003FEC ORR R1, R1, #6 .text:10003FF0 BL SendMessageW .text:10003FF4 MOV R11, R0 .text:10003FF8 B loc_10004020 .text:10003FFC ; --------------------------------------------------------------------------- .text:10003FFC .text:10003FFC loc_10003FFC ; CODE XREF: sub_10003C38+394j .text:10003FFC BL GetForegroundWindow .text:10004000 LDR LR, [R5,#0x4C] .text:10004004 LDRH R3, [R5,#0x50] .text:10004008 MOV R2, R0 .text:1000400C LDR R0, [R5,#0x80] .text:10004010 MOV R1, #0x400 .text:10004014 ORR R3, R3, LR,LSL#16 .text:10004018 ORR R1, R1, #6 .text:1000401C BL PostMessageW .text:10004020 .text:10004020 loc_10004020 ; CODE XREF: sub_10003C38+3C0j .text:10004020 LDRSH R2, [R5] .text:10004024 MOV R3, R2,LSL#16 .text:10004028 MOV R3, R3,LSR#16 .text:1000402C TST R3, #0x80 .text:10004030 BEQ loc_10004044 .text:10004034 CMP R11, #0 .text:10004038 BICEQ R3, R2, #8 .text:1000403C MOVEQ R1, R3,LSL#16 .text:10004040 BEQ loc_10004060 .text:10004044 .text:10004044 loc_10004044 ; CODE XREF: sub_10003C38+3F8j .text:10004044 BIC R3, R2, #0x1C .text:10004048 ORR R3, R3, #2 .text:1000404C MOV R1, R3,LSL#16 .text:10004050 MOV R3, #7 .text:10004054 MOV R2, #1 .text:10004058 STR R3, [SP,#0x2C+var_2C] .text:1000405C STR R2, [R5,#0x54] .text:10004060 .text:10004060 loc_10004060 ; CODE XREF: sub_10003C38+408j .text:10004060 MOV R1, R1,ASR#16 .text:10004064 MOV R3, #0 .text:10004068 LDR R0, [R5,#0x44] .text:1000406C STRH R1, [R5] .text:10004070 STR R3, [R5,#0x78] .text:10004074 .text:10004074 loc_10004074 ; CODE XREF: sub_10003C38+34Cj .text:10004074 ; sub_10003C38+35Cj ... .text:10004074 CMP R0, #0 .text:10004078 BNE loc_100041B4 .text:1000407C .text:1000407C loc_1000407C ; CODE XREF: sub_10003C38+188j .text:1000407C ; sub_10003C38+20Cj ... .text:1000407C CMP R8, #0xF .text:10004080 BNE loc_100041B4 .text:10004084 MOV R0, R1,LSL#16 .text:10004088 MOV R0, R0,LSR#16 .text:1000408C TST R0, #0x10 .text:10004090 BEQ loc_100041B4 .text:10004094 LDR R3, [R5,#0x40] .text:10004098 LDR R2, [R10,#0xC] .text:1000409C SUB R3, R3, R7 .text:100040A0 CMP R3, R2 .text:100040A4 BGE loc_100041A8 .text:100040A8 LDR R3, [R5,#0x40] .text:100040AC SUB R3, R7, R3 .text:100040B0 CMP R3, R2 .text:100040B4 BGE loc_100041A8 .text:100040B8 LDR R3, [R5,#0x3C] .text:100040BC SUB R3, R3, R6 .text:100040C0 CMP R3, R2 .text:100040C4 BGE loc_100041A8 .text:100040C8 LDR R3, [R5,#0x3C] .text:100040CC SUB R3, R6, R3 .text:100040D0 CMP R3, R2 .text:100040D4 BGE loc_100041A8 .text:100040D8 LDR R3, [R5,#0x38] .text:100040DC LDR R2, [R10] .text:100040E0 SUB R3, R9, R3 .text:100040E4 CMP R3, R2 .text:100040E8 BLS loc_100041B4 .text:100040EC MOV R4, #1 .text:100040F0 TST R0, #0xC0 .text:100040F4 BEQ loc_10004124 .text:100040F8 BL GetForegroundWindow .text:100040FC LDR LR, [R5,#0x4C] .text:10004100 LDRH R3, [R5,#0x50] .text:10004104 MOV R2, R0 .text:10004108 LDR R0, [R5,#0x80] .text:1000410C MOV R1, #0x400 .text:10004110 ORR R3, R3, LR,LSL#16 .text:10004114 ORR R1, R1, #7 .text:10004118 BL SendMessageW .text:1000411C MOV R4, R0 .text:10004120 B loc_10004148 .text:10004124 ; --------------------------------------------------------------------------- .text:10004124 .text:10004124 loc_10004124 ; CODE XREF: sub_10003C38+4BCj .text:10004124 BL GetForegroundWindow .text:10004128 LDR LR, [R5,#0x4C] .text:1000412C LDRH R3, [R5,#0x50] .text:10004130 MOV R2, R0 .text:10004134 LDR R0, [R5,#0x80] .text:10004138 MOV R1, #0x400 .text:1000413C ORR R3, R3, LR,LSL#16 .text:10004140 ORR R1, R1, #7 .text:10004144 BL PostMessageW .text:10004148 .text:10004148 loc_10004148 ; CODE XREF: sub_10003C38+4E8j .text:10004148 LDRSH R2, [R5] .text:1000414C MOV R3, R2,LSL#16 .text:10004150 MOV R3, R3,LSR#16 .text:10004154 TST R3, #0x80 .text:10004158 BEQ loc_10004174 .text:1000415C CMP R4, #0 .text:10004160 BICEQ R3, R2, #0x10 .text:10004164 MOVEQ R1, R3,LSL#16 .text:10004168 MOVEQ R1, R1,ASR#16 .text:1000416C STREQH R1, [R5] .text:10004170 BEQ loc_100041B4 .text:10004174 .text:10004174 loc_10004174 ; CODE XREF: sub_10003C38+520j .text:10004174 BIC R3, R2, #0x1C .text:10004178 ORR R3, R3, #2 .text:1000417C MOV R1, R3,LSL#16 .text:10004180 MOV R1, R1,ASR#16 .text:10004184 MOV R3, #0 .text:10004188 MOV R2, #1 .text:1000418C LDR R7, [R5,#0x50] .text:10004190 LDR R6, [R5,#0x4C] .text:10004194 STRH R1, [R5] .text:10004198 MOV R10, #7 .text:1000419C STR R3, [R5,#0x78] .text:100041A0 STR R2, [R5,#0x54] .text:100041A4 B loc_100041B8 .text:100041A8 ; --------------------------------------------------------------------------- .text:100041A8 .text:100041A8 loc_100041A8 ; CODE XREF: sub_10003C38+46Cj .text:100041A8 ; sub_10003C38+47Cj ... .text:100041A8 STR R7, [R5,#0x40] .text:100041AC STR R6, [R5,#0x3C] .text:100041B0 STR R9, [R5,#0x38] .text:100041B4 .text:100041B4 loc_100041B4 ; CODE XREF: sub_10003C38+440j .text:100041B4 ; sub_10003C38+448j ... .text:100041B4 LDR R10, [SP,#0x2C+var_2C] .text:100041B8 .text:100041B8 loc_100041B8 ; CODE XREF: sub_10003C38+17Cj .text:100041B8 ; sub_10003C38+56Cj .text:100041B8 MOV R3, R1,LSL#16 .text:100041BC MOV R3, R3,LSR#16 .text:100041C0 TST R3, #2 .text:100041C4 BEQ loc_100041E4 .text:100041C8 LDR R3, [R5,#0x84] .text:100041CC MOV R2, R6 .text:100041D0 MOV R1, R7 .text:100041D4 MOV R0, R10 .text:100041D8 MOV LR, PC .text:100041DC BX R3 .text:100041E0 LDRSH R1, [R5] .text:100041E4 .text:100041E4 loc_100041E4 ; CODE XREF: sub_10003C38+58Cj .text:100041E4 MOV R3, R1,LSL#16 .text:100041E8 MOV R3, R3,LSR#16 .text:100041EC TST R3, #1 .text:100041F0 BEQ loc_10004240 .text:100041F4 CMP R8, #0xD .text:100041F8 BNE loc_10004210 .text:100041FC LDR R3, [R5,#0x58] .text:10004200 CMP R3, #0 .text:10004204 LDREQ R3, [R5,#0x54] .text:10004208 CMPEQ R3, #0 .text:1000420C STREQ R9, [R5,#0x78] .text:10004210 .text:10004210 loc_10004210 ; CODE XREF: sub_10003C38+5C0j .text:10004210 MOV R2, R6 .text:10004214 MOV R1, R7 .text:10004218 MOV R0, R8 .text:1000421C STR R9, [R5,#0x74] .text:10004220 BL sub_10003654 .text:10004224 B loc_10004240 .text:10004228 ; --------------------------------------------------------------------------- .text:10004228 .text:10004228 loc_10004228 ; CODE XREF: sub_10003C38+2Cj .text:10004228 ; sub_10003C38+3Cj ... .text:10004228 LDR R3, [R5,#0x84] .text:1000422C MOV R2, R6 .text:10004230 MOV R1, R7 .text:10004234 MOV R0, R8 .text:10004238 MOV LR, PC .text:1000423C BX R3 .text:10004240 .text:10004240 loc_10004240 ; CODE XREF: sub_10003C38+84j .text:10004240 ; sub_10003C38+2B0j ... .text:10004240 ADD SP, SP, #8 .text:10004244 LDMFD SP!, {R4-R11,LR} .text:10004248 BX LR .text:10004248 ; End of function sub_10003C38 .text:10004248 .text:10004248 ; --------------------------------------------------------------------------- .text:1000424C off_1000424C DCD unk_1000C184 ; DATA XREF: sub_10003C38+180r .text:10004250 off_10004250 DCD unk_1000C314 ; DATA XREF: sub_10003C38+30r .text:10004254 off_10004254 DCD unk_1000E000 ; DATA XREF: sub_10003C38+18r .text:10004258 .text:10004258 ; =============== S U B R O U T I N E ======================================= .text:10004258 .text:10004258 .text:10004258 sub_10004258 ; DATA XREF: .text:off_1000455Co .text:10004258 ; .pdata:1000D188o .text:10004258 .text:10004258 var_28 = -0x28 .text:10004258 var_24 = -0x24 .text:10004258 var_20 = -0x20 .text:10004258 var_1C = -0x1C .text:10004258 var_1A = -0x1A .text:10004258 var_18 = -0x18 .text:10004258 var_14 = -0x14 .text:10004258 var_C = -0xC .text:10004258 .text:10004258 MOV R12, SP .text:1000425C STMFD SP!, {R0} .text:10004260 STMFD SP!, {R12,LR} .text:10004264 SUB SP, SP, #0x20 .text:10004268 LDR R3, =unk_1000E0B0 .text:1000426C STR R3, [SP,#0x28+var_24] .text:10004270 .text:10004270 loc_10004270 ; CODE XREF: sub_10004258+16Cj .text:10004270 MOV R3, #0 .text:10004274 STR R3, [SP,#0x28+var_20] .text:10004278 MOVL R1, 0xFFFFFFFF .text:1000427C LDR R3, =unk_1000E008 .text:10004280 LDR R0, [R3] .text:10004284 BL WaitForSingleObject .text:10004288 LDR R3, =unk_1000E008 .text:1000428C LDR R0, [R3] .text:10004290 BL sub_10003640 .text:10004294 LDR R0, =unk_1000C2C8 .text:10004298 BL EnterCriticalSection .text:1000429C .text:1000429C loc_1000429C ; CODE XREF: sub_10004258:loc_100043B8j .text:1000429C LDR R3, [SP,#0x28+var_20] .text:100042A0 CMP R3, #0 .text:100042A4 BNE loc_100043BC .text:100042A8 LDR R3, [SP,#0x28+var_24] .text:100042AC LDR R3, [R3] .text:100042B0 STR R3, [SP,#0x28+var_28] .text:100042B4 LDR R3, [SP,#0x28+var_24] .text:100042B8 ADD R3, R3, #4 .text:100042BC LDR R2, [SP,#0x28+var_28] .text:100042C0 LDR R3, [R3] .text:100042C4 CMP R2, R3 .text:100042C8 BNE loc_100042D8 .text:100042CC MOV R3, #1 .text:100042D0 STR R3, [SP,#0x28+var_20] .text:100042D4 B loc_100043B8 .text:100042D8 ; --------------------------------------------------------------------------- .text:100042D8 .text:100042D8 loc_100042D8 ; CODE XREF: sub_10004258+70j .text:100042D8 LDR R3, [SP,#0x28+var_24] .text:100042DC ADD R1, R3, #8 .text:100042E0 LDR R2, [SP,#0x28+var_28] .text:100042E4 MOV R3, #8 .text:100042E8 MUL R3, R2, R3 .text:100042EC ADD R3, R1, R3 .text:100042F0 LDR R3, [R3] .text:100042F4 STR R3, [SP,#0x28+var_18] .text:100042F8 LDR R3, [SP,#0x28+var_24] .text:100042FC ADD R1, R3, #8 .text:10004300 LDR R2, [SP,#0x28+var_28] .text:10004304 MOV R3, #8 .text:10004308 MUL R3, R2, R3 .text:1000430C ADD R3, R1, R3 .text:10004310 ADD R3, R3, #4 .text:10004314 LDR R3, [R3] .text:10004318 MOV R3, R3,ASR#16 .text:1000431C MOV R3, R3,LSL#16 .text:10004320 MOV R3, R3,ASR#16 .text:10004324 STRH R3, [SP,#0x28+var_1A] .text:10004328 LDR R3, [SP,#0x28+var_24] .text:1000432C ADD R1, R3, #8 .text:10004330 LDR R2, [SP,#0x28+var_28] .text:10004334 MOV R3, #8 .text:10004338 MUL R3, R2, R3 .text:1000433C ADD R3, R1, R3 .text:10004340 ADD R3, R3, #4 .text:10004344 LDR R2, [R3] .text:10004348 MOVL R3, 0xFFFF .text:10004350 AND R3, R2, R3 .text:10004354 MOV R3, R3,LSL#16 .text:10004358 MOV R3, R3,ASR#16 .text:1000435C STRH R3, [SP,#0x28+var_1C] .text:10004360 LDR R0, =unk_1000C2C8 .text:10004364 BL LeaveCriticalSection .text:10004368 BL GetTickCount .text:1000436C STR R0, [SP,#0x28+var_C] .text:10004370 LDRSH R3, [SP,#0x28+var_1C] .text:10004374 LDRSH R2, [SP,#0x28+var_1A] .text:10004378 LDR R1, [SP,#0x28+var_18] .text:1000437C LDR R0, [SP,#0x28+var_C] .text:10004380 BL sub_10003C38 .text:10004384 LDR R3, [SP,#0x28+var_28] .text:10004388 ADD R3, R3, #1 .text:1000438C STR R3, [SP,#0x28+var_14] .text:10004390 LDR R3, [SP,#0x28+var_14] .text:10004394 CMP R3, #0x1F4 .text:10004398 BLT loc_100043A4 .text:1000439C MOV R3, #0 .text:100043A0 STR R3, [SP,#0x28+var_14] .text:100043A4 .text:100043A4 loc_100043A4 ; CODE XREF: sub_10004258+140j .text:100043A4 LDR R0, =unk_1000C2C8 .text:100043A8 BL EnterCriticalSection .text:100043AC LDR R2, [SP,#0x28+var_14] .text:100043B0 LDR R3, [SP,#0x28+var_24] .text:100043B4 STR R2, [R3] .text:100043B8 .text:100043B8 loc_100043B8 ; CODE XREF: sub_10004258+7Cj .text:100043B8 B loc_1000429C .text:100043BC ; --------------------------------------------------------------------------- .text:100043BC .text:100043BC loc_100043BC ; CODE XREF: sub_10004258+4Cj .text:100043BC LDR R0, =unk_1000C2C8 .text:100043C0 BL LeaveCriticalSection .text:100043C4 B loc_10004270 .text:100043C4 ; End of function sub_10004258 .text:100043C4 .text:100043C4 ; --------------------------------------------------------------------------- .text:100043C8 off_100043C8 DCD unk_1000C2C8 ; DATA XREF: sub_10004258+3Cr .text:100043C8 ; sub_10004258+108r ... .text:100043CC off_100043CC DCD unk_1000E008 ; DATA XREF: sub_10004258+24r .text:100043CC ; sub_10004258+30r .text:100043D0 off_100043D0 DCD unk_1000E0B0 ; DATA XREF: sub_10004258+10r .text:100043D4 .text:100043D4 ; =============== S U B R O U T I N E ======================================= .text:100043D4 .text:100043D4 .text:100043D4 sub_100043D4 ; CODE XREF: start+24p .text:100043D4 ; DATA XREF: .pdata:1000D190o .text:100043D4 .text:100043D4 var_24 = -0x24 .text:100043D4 var_20 = -0x20 .text:100043D4 var_1C = -0x1C .text:100043D4 .text:100043D4 STMFD SP!, {R4-R8,LR} .text:100043D8 SUB SP, SP, #0xC .text:100043DC MOV R6, R0 .text:100043E0 LDR R2, =aTranscribersha .text:100043E4 MOV LR, #0xFB0 .text:100043E8 MOV R3, #0 .text:100043EC STR R2, [SP,#0x24+var_20] .text:100043F0 MOV R2, #4 .text:100043F4 MOV R1, #0 .text:100043F8 MOVL R0, 0xFFFFFFFF .text:100043FC STR LR, [SP,#0x24+var_24] .text:10004400 BL CreateFileMappingW .text:10004404 LDR R5, =unk_1000E000 .text:10004408 STR R0, [R5,#0x68] .text:1000440C BL GetLastError .text:10004410 LDR LR, [R5,#0x68] .text:10004414 MOV R7, R0 .text:10004418 CMP LR, #0 .text:1000441C BEQ loc_10004550 .text:10004420 MOV R8, #0 .text:10004424 MOV R3, #0 .text:10004428 MOV R2, #0 .text:1000442C MOV R1, #2 .text:10004430 MOV R0, LR .text:10004434 STR R8, [SP,#0x24+var_24] .text:10004438 BL MapViewOfFile .text:1000443C CMP R0, #0 .text:10004440 STR R0, [R5,#0x64] .text:10004444 BEQ loc_10004550 .text:10004448 LDR R3, =aCgrtabletevent .text:1000444C MOV LR, #0 .text:10004450 MOV R4, #2 .text:10004454 MOV R2, #1 .text:10004458 MOV R1, #1 .text:1000445C MOV R0, #0 .text:10004460 STR LR, [R5,#0x80] .text:10004464 STRH R4, [R5] .text:10004468 BL CreateEventW .text:1000446C LDR R3, =aCgrtabletinner .text:10004470 MOV R2, R0 .text:10004474 STR R2, [R5,#0xC] .text:10004478 MOV R2, #1 .text:1000447C MOV R0, #0 .text:10004480 MOV R1, #1 .text:10004484 BL CreateEventW .text:10004488 LDR R4, =unk_1000C2C4 .text:1000448C STR R0, [R5,#8] .text:10004490 ADD R0, R4, #4 .text:10004494 BL InitializeCriticalSection .text:10004498 LDR R2, =aTranscriberq1m .text:1000449C MOV R1, #0 .text:100044A0 MOV R0, #0 .text:100044A4 BL CreateMutexW .text:100044A8 LDR R3, [R5,#0x64] .text:100044AC STR R0, [R4] .text:100044B0 CMP R7, #0xB7 .text:100044B4 ADD R1, R3, #8 .text:100044B8 ADD R2, R3, #4 .text:100044BC STR R1, [R5,#0x70] .text:100044C0 STR R2, [R5,#0x5C] .text:100044C4 STR R3, [R5,#0x60] .text:100044C8 BEQ loc_100044F0 .text:100044CC STR R8, [R1] .text:100044D0 STR R8, [R1,#4] .text:100044D4 LDR R3, [R5,#0x5C] .text:100044D8 MOV R2, #0 .text:100044DC MOV R1, #0 .text:100044E0 STR R2, [R5,#0xB0] .text:100044E4 STR R1, [R5,#0xB4] .text:100044E8 STR R8, [R3] .text:100044EC LDR R2, [R5,#0x5C] .text:100044F0 .text:100044F0 loc_100044F0 ; CODE XREF: sub_100043D4+F4j .text:100044F0 LDR R3, [R2] .text:100044F4 LDR R0, =aTouchstubwnd_c .text:100044F8 MOV R1, #0 .text:100044FC CMP R3, #0 .text:10004500 STREQ R6, [R2] .text:10004504 BL FindWindowW .text:10004508 CMP R0, #0 .text:1000450C BNE loc_10004550 .text:10004510 LDR R2, =sub_10005514 .text:10004514 ADD LR, SP, #0x24+var_1C .text:10004518 MOV R3, R6 .text:1000451C MOV R1, #0 .text:10004520 MOV R0, #0 .text:10004524 STR LR, [SP,#0x24+var_20] .text:10004528 STR R8, [SP,#0x24+var_24] .text:1000452C BL CreateThread .text:10004530 LDR R2, =sub_10004258 .text:10004534 ADD LR, SP, #0x24+var_1C .text:10004538 MOV R3, R6 .text:1000453C MOV R1, #0 .text:10004540 MOV R0, #0 .text:10004544 STR LR, [SP,#0x24+var_20] .text:10004548 STR R8, [SP,#0x24+var_24] .text:1000454C BL CreateThread .text:10004550 .text:10004550 loc_10004550 ; CODE XREF: sub_100043D4+48j .text:10004550 ; sub_100043D4+70j ... .text:10004550 ADD SP, SP, #0xC .text:10004554 LDMFD SP!, {R4-R8,LR} .text:10004558 BX LR .text:10004558 ; End of function sub_100043D4 .text:10004558 .text:10004558 ; --------------------------------------------------------------------------- .text:1000455C off_1000455C DCD sub_10004258 ; DATA XREF: sub_100043D4+15Cr .text:10004560 off_10004560 DCD sub_10005514 ; DATA XREF: sub_100043D4+13Cr .text:10004564 off_10004564 DCD aTouchstubwnd_c ; DATA XREF: sub_100043D4+120r .text:10004564 ; "TOUCHSTUBWND_CLASS" .text:10004568 off_10004568 DCD aTranscriberq1m ; DATA XREF: sub_100043D4+C4r .text:10004568 ; "TranscriberQ1Mutex" .text:1000456C off_1000456C DCD unk_1000C2C4 ; DATA XREF: sub_100043D4+B4r .text:10004570 off_10004570 DCD aCgrtabletinner ; DATA XREF: sub_100043D4+98r .text:10004570 ; "CgrTabletInnerEvent" .text:10004574 off_10004574 DCD aCgrtabletevent ; DATA XREF: sub_100043D4+74r .text:10004574 ; "CgrTabletEvent" .text:10004578 off_10004578 DCD unk_1000E000 ; DATA XREF: sub_100043D4+30r .text:1000457C off_1000457C DCD aTranscribersha ; DATA XREF: sub_100043D4+Cr .text:1000457C ; "TranscriberSharedGlobals" .text:10004580 .text:10004580 ; =============== S U B R O U T I N E ======================================= .text:10004580 .text:10004580 .text:10004580 EXPORT start .text:10004580 start ; DATA XREF: .pdata:1000D198o .text:10004580 STMFD SP!, {R4,R5,LR} .text:10004584 CMP R1, #0 .text:10004588 MOV R5, R0 .text:1000458C MOV R4, #1 .text:10004590 BEQ loc_100045DC .text:10004594 CMP R1, #1 .text:10004598 BNE loc_100045FC .text:1000459C BL DisableThreadLibraryCalls .text:100045A0 MOV R0, R5 .text:100045A4 BL sub_100043D4 .text:100045A8 LDR R3, =unk_1000E05C .text:100045AC LDR R3, [R3] .text:100045B0 CMP R3, #0 .text:100045B4 BEQ loc_100045C4 .text:100045B8 LDR R3, [R3] .text:100045BC CMP R3, R5 .text:100045C0 BNE loc_100045FC .text:100045C4 .text:100045C4 loc_100045C4 ; CODE XREF: start+34j .text:100045C4 BL sub_10001CC4 .text:100045C8 CMP R0, #1 .text:100045CC BLE loc_100045FC .text:100045D0 BL sub_10001CCC .text:100045D4 MOV R4, #0 .text:100045D8 B loc_100045FC .text:100045DC ; --------------------------------------------------------------------------- .text:100045DC .text:100045DC loc_100045DC ; CODE XREF: start+10j .text:100045DC LDR R3, =unk_1000E05C .text:100045E0 LDR R3, [R3] .text:100045E4 CMP R3, #0 .text:100045E8 BEQ loc_100045F8 .text:100045EC LDR R3, [R3] .text:100045F0 CMP R3, R5 .text:100045F4 BNE loc_100045FC .text:100045F8 .text:100045F8 loc_100045F8 ; CODE XREF: start+68j .text:100045F8 BL sub_10001CCC .text:100045FC .text:100045FC loc_100045FC ; CODE XREF: start+18j .text:100045FC ; start+40j ... .text:100045FC MOV R0, R4 .text:10004600 LDMFD SP!, {R4,R5,LR} .text:10004604 BX LR .text:10004604 ; End of function start .text:10004604 .text:10004604 ; --------------------------------------------------------------------------- .text:10004608 off_10004608 DCD unk_1000E05C ; DATA XREF: start+28r .text:10004608 ; start:loc_100045DCr .text:1000460C .text:1000460C ; =============== S U B R O U T I N E ======================================= .text:1000460C .text:1000460C .text:1000460C sub_1000460C ; DATA XREF: .text:off_10004D3Co .text:1000460C ; .pdata:1000D1A0o .text:1000460C .text:1000460C var_38 = -0x38 .text:1000460C var_34 = -0x34 .text:1000460C var_30 = -0x30 .text:1000460C var_2C = -0x2C .text:1000460C var_28 = -0x28 .text:1000460C .text:1000460C STMFD SP!, {R4-R11,LR} .text:10004610 SUB SP, SP, #0x14 .text:10004614 LDR R3, =unk_1000C45C .text:10004618 LDR R2, =unk_1000C438 .text:1000461C MOV LR, #0 .text:10004620 LDR R1, [R3] .text:10004624 LDR R3, [R2] .text:10004628 MOV R0, #1 .text:1000462C MOV R9, R1,LSL#2 .text:10004630 MOV R10, R3,LSL#2 .text:10004634 STR LR, [SP,#0x38+var_38] .text:10004638 MOV R8, #0 .text:1000463C BL SetKMode .text:10004640 LDR R4, =unk_1000C2E4 .text:10004644 LDR R3, [R4,#0x28] .text:10004648 CMP R3, #0 .text:1000464C BNE loc_10004928 .text:10004650 LDR R5, =unk_1000C428 .text:10004654 LDR R11, =dword_1000101C .text:10004658 LDR R6, =unk_1000C430 .text:1000465C LDR R7, =unk_1000C42C .text:10004660 LDR R3, =unk_1000C454 .text:10004664 LDR R2, =unk_1000C1A8 .text:10004668 .text:10004668 loc_10004668 ; CODE XREF: sub_1000460C+318j .text:10004668 LDR R1, [R2] .text:1000466C LDR R0, [R3] .text:10004670 BL WaitForSingleObject .text:10004674 LDR R0, =unk_1000C440 .text:10004678 BL EnterCriticalSection .text:1000467C LDR R3, [SP,#0x38+var_38] .text:10004680 CMP R8, #0 .text:10004684 ADD R2, SP, #0x38+var_2C .text:10004688 ORRNE R3, R3, #8 .text:1000468C BICEQ R3, R3, #8 .text:10004690 ADD R1, SP, #0x38+var_28 .text:10004694 ADD R0, SP, #0x38+var_38 .text:10004698 STR R3, [SP,#0x38+var_38] .text:1000469C BL sub_10001F14 .text:100046A0 LDR R2, [SP,#0x38+var_38] .text:100046A4 TST R2, #0x10 .text:100046A8 BNE loc_100046DC .text:100046AC TST R2, #1 .text:100046B0 BEQ loc_100046C8 .text:100046B4 CMP R8, #0 .text:100046B8 ORRNE R2, R2, #8 .text:100046BC BICEQ R2, R2, #8 .text:100046C0 STR R2, [SP,#0x38+var_38] .text:100046C4 AND R8, R2, #2 .text:100046C8 .text:100046C8 loc_100046C8 ; CODE XREF: sub_1000460C+A4j .text:100046C8 LDR R1, [R7] .text:100046CC CMP R1, #0 .text:100046D0 BEQ loc_1000485C .text:100046D4 TST R2, #1 .text:100046D8 BNE loc_100046E8 .text:100046DC .text:100046DC loc_100046DC ; CODE XREF: sub_1000460C+9Cj .text:100046DC LDR R0, =unk_1000C440 .text:100046E0 BL LeaveCriticalSection .text:100046E4 B loc_10004914 .text:100046E8 ; --------------------------------------------------------------------------- .text:100046E8 .text:100046E8 loc_100046E8 ; CODE XREF: sub_1000460C+CCj .text:100046E8 LDR R0, [R6] .text:100046EC CMP R0, #0 .text:100046F0 BEQ loc_10004704 .text:100046F4 MOV R1, #3 .text:100046F8 BL EventModify .text:100046FC LDR R2, [SP,#0x38+var_38] .text:10004700 LDR R1, [R7] .text:10004704 .text:10004704 loc_10004704 ; CODE XREF: sub_1000460C+E4j .text:10004704 AND R3, R2, #0xA .text:10004708 CMP R3, #2 .text:1000470C BNE loc_10004734 .text:10004710 MOV R1, #2 .text:10004714 MOV LR, #1 .text:10004718 MOV R0, #0 .text:1000471C MOV R3, #0 .text:10004720 STR R1, [R7] .text:10004724 STR LR, [R4,#0xC] .text:10004728 STR R0, [R4,#8] .text:1000472C STR R3, [R4,#4] .text:10004730 B loc_1000473C .text:10004734 ; --------------------------------------------------------------------------- .text:10004734 .text:10004734 loc_10004734 ; CODE XREF: sub_1000460C+100j .text:10004734 LDR LR, [R4,#0xC] .text:10004738 LDR R0, [R4,#8] .text:1000473C .text:1000473C loc_1000473C ; CODE XREF: sub_1000460C+124j .text:1000473C CMP R1, #2 .text:10004740 BNE loc_1000484C .text:10004744 LDR R3, [R4,#4] .text:10004748 CMP R3, #0 .text:1000474C BNE loc_1000484C .text:10004750 TST R2, #2 .text:10004754 BEQ loc_100047F8 .text:10004758 LDR R1, [SP,#0x38+var_28] .text:1000475C ADD R3, R0, #1 .text:10004760 LDR R0, [SP,#0x38+var_2C] .text:10004764 STR R3, [R4,#8] .text:10004768 STR R1, [R4,#0x14] .text:1000476C STR R0, [R4,#0x18] .text:10004770 CMP LR, #0 .text:10004774 BEQ loc_10004798 .text:10004778 STR R1, [R4,#0x10] .text:1000477C STR R0, [R4] .text:10004780 BL GetTickCount .text:10004784 MOV R3, #0 .text:10004788 LDR R1, [R4,#0x14] .text:1000478C STR R0, [R4,#0x24] .text:10004790 LDR R0, [R4,#0x18] .text:10004794 STR R3, [R4,#0xC] .text:10004798 .text:10004798 loc_10004798 ; CODE XREF: sub_1000460C+168j .text:10004798 LDR R2, [R4,#0x10] .text:1000479C LDR R3, [R4] .text:100047A0 SUB R5, R1, R2 .text:100047A4 SUB R6, R0, R3 .text:100047A8 BL GetTickCount .text:100047AC LDR R3, [R4,#0x24] .text:100047B0 MOVL R2, 0x5DC .text:100047B8 SUB R3, R0, R3 .text:100047BC CMP R3, R2 .text:100047C0 MOVHI R3, #1 .text:100047C4 STRHI R3, [R4,#4] .text:100047C8 BHI loc_1000481C .text:100047CC CMP R5, #0 .text:100047D0 RSBMI R5, R5, #0 .text:100047D4 CMP R5, #0x14 .text:100047D8 BGT loc_100047EC .text:100047DC CMP R6, #0 .text:100047E0 RSBMI R6, R6, #0 .text:100047E4 CMP R6, #0x14 .text:100047E8 BLE loc_10004810 .text:100047EC .text:100047EC loc_100047EC ; CODE XREF: sub_1000460C+1CCj .text:100047EC MOV R3, #1 .text:100047F0 STR R3, [R4,#0xC] .text:100047F4 B loc_10004810 .text:100047F8 ; --------------------------------------------------------------------------- .text:100047F8 .text:100047F8 loc_100047F8 ; CODE XREF: sub_1000460C+148j .text:100047F8 LDR R3, [R11] .text:100047FC CMP R0, R3 .text:10004800 MOV R3, #1 .text:10004804 STRGE R3, [R4,#4] .text:10004808 BGE loc_1000481C .text:1000480C STR R3, [R7] .text:10004810 .text:10004810 loc_10004810 ; CODE XREF: sub_1000460C+1DCj .text:10004810 ; sub_1000460C+1E8j .text:10004810 LDR R3, [R4,#4] .text:10004814 CMP R3, #0 .text:10004818 BEQ loc_1000484C .text:1000481C .text:1000481C loc_1000481C ; CODE XREF: sub_1000460C+1BCj .text:1000481C ; sub_1000460C+1FCj .text:1000481C LDR R1, =unk_1000C458 .text:10004820 LDR R3, [R4,#0x14] .text:10004824 LDR R2, [R4,#0x18] .text:10004828 LDR R0, [R1] .text:1000482C LDR R1, =unk_1000C464 .text:10004830 STR R3, [R1] .text:10004834 LDR R3, =unk_1000C460 .text:10004838 MOV R1, #3 .text:1000483C STR R2, [R3] .text:10004840 MOV R3, #3 .text:10004844 STR R3, [R7] .text:10004848 BL EventModify .text:1000484C .text:1000484C loc_1000484C ; CODE XREF: sub_1000460C+134j .text:1000484C ; sub_1000460C+140j ... .text:1000484C LDR R0, =unk_1000C440 .text:10004850 BL LeaveCriticalSection .text:10004854 LDR R6, =unk_1000C430 .text:10004858 B loc_10004910 .text:1000485C ; --------------------------------------------------------------------------- .text:1000485C .text:1000485C loc_1000485C ; CODE XREF: sub_1000460C+C4j .text:1000485C LDR R3, [R5] .text:10004860 MOVS R5, R3 .text:10004864 BEQ loc_10004908 .text:10004868 TST R2, #4 .text:1000486C LDRNE R3, [SP,#0x38+var_28] .text:10004870 LDRNE R2, [SP,#0x38+var_2C] .text:10004874 STRNE R3, [SP,#0x38+var_34] .text:10004878 STRNE R2, [SP,#0x38+var_30] .text:1000487C BNE loc_100048A0 .text:10004880 LDR R1, [SP,#0x38+var_2C] .text:10004884 LDR R0, [SP,#0x38+var_28] .text:10004888 ADD R3, SP, #0x38+var_30 .text:1000488C ADD R2, SP, #0x38+var_34 .text:10004890 BL TouchPanelCalibrateAPoint .text:10004894 LDR R3, [SP,#0x38+var_38] .text:10004898 ORR R3, R3, #4 .text:1000489C STR R3, [SP,#0x38+var_38] .text:100048A0 .text:100048A0 loc_100048A0 ; CODE XREF: sub_1000460C+270j .text:100048A0 LDR R0, =unk_1000C440 .text:100048A4 BL LeaveCriticalSection .text:100048A8 LDR R1, [SP,#0x38+var_34] .text:100048AC CMP R1, #0 .text:100048B0 MOVMI R1, #0 .text:100048B4 BMI loc_100048CC .text:100048B8 CMP R9, #0 .text:100048BC BEQ loc_100048D0 .text:100048C0 CMP R1, R9 .text:100048C4 BCC loc_100048D0 .text:100048C8 SUB R1, R9, #4 .text:100048CC .text:100048CC loc_100048CC ; CODE XREF: sub_1000460C+2A8j .text:100048CC STR R1, [SP,#0x38+var_34] .text:100048D0 .text:100048D0 loc_100048D0 ; CODE XREF: sub_1000460C+2B0j .text:100048D0 ; sub_1000460C+2B8j .text:100048D0 LDR R2, [SP,#0x38+var_30] .text:100048D4 CMP R2, #0 .text:100048D8 MOVMI R2, #0 .text:100048DC BMI loc_100048F4 .text:100048E0 CMP R10, #0 .text:100048E4 BEQ loc_100048F8 .text:100048E8 CMP R2, R10 .text:100048EC BCC loc_100048F8 .text:100048F0 SUB R2, R10, #4 .text:100048F4 .text:100048F4 loc_100048F4 ; CODE XREF: sub_1000460C+2D0j .text:100048F4 STR R2, [SP,#0x38+var_30] .text:100048F8 .text:100048F8 loc_100048F8 ; CODE XREF: sub_1000460C+2D8j .text:100048F8 ; sub_1000460C+2E0j .text:100048F8 LDR R0, [SP,#0x38+var_38] .text:100048FC MOV LR, PC .text:10004900 BX R5 .text:10004904 B loc_10004910 .text:10004908 ; --------------------------------------------------------------------------- .text:10004908 .text:10004908 loc_10004908 ; CODE XREF: sub_1000460C+258j .text:10004908 LDR R0, =unk_1000C440 .text:1000490C BL LeaveCriticalSection .text:10004910 .text:10004910 loc_10004910 ; CODE XREF: sub_1000460C+24Cj .text:10004910 ; sub_1000460C+2F8j .text:10004910 LDR R5, =unk_1000C428 .text:10004914 .text:10004914 loc_10004914 ; CODE XREF: sub_1000460C+D8j .text:10004914 LDR R3, [R4,#0x28] .text:10004918 LDR R2, =unk_1000C1A8 .text:1000491C CMP R3, #0 .text:10004920 LDR R3, =unk_1000C454 .text:10004924 BEQ loc_10004668 .text:10004928 .text:10004928 loc_10004928 ; CODE XREF: sub_1000460C+40j .text:10004928 MOV R0, #1 .text:1000492C BL ExitThread .text:10004930 MOV R0, #1 .text:10004934 ADD SP, SP, #0x14 .text:10004938 LDMFD SP!, {R4-R11,LR} .text:1000493C BX LR .text:1000493C ; End of function sub_1000460C .text:1000493C .text:1000493C ; --------------------------------------------------------------------------- .text:10004940 off_10004940 DCD unk_1000C454 ; DATA XREF: sub_1000460C+54r .text:10004940 ; sub_1000460C+314r .text:10004944 off_10004944 DCD unk_1000C1A8 ; DATA XREF: sub_1000460C+58r .text:10004944 ; sub_1000460C+30Cr .text:10004948 off_10004948 DCD unk_1000C428 ; DATA XREF: sub_1000460C+44r .text:10004948 ; sub_1000460C:loc_10004910r .text:1000494C off_1000494C DCD unk_1000C440 ; DATA XREF: sub_1000460C+68r .text:1000494C ; sub_1000460C:loc_100046DCr ... .text:10004950 off_10004950 DCD unk_1000C430 ; DATA XREF: sub_1000460C+4Cr .text:10004950 ; sub_1000460C+248r .text:10004954 off_10004954 DCD unk_1000C460 ; DATA XREF: sub_1000460C+228r .text:10004958 off_10004958 DCD unk_1000C464 ; DATA XREF: sub_1000460C+220r .text:1000495C off_1000495C DCD unk_1000C458 ; DATA XREF: sub_1000460C:loc_1000481Cr .text:10004960 off_10004960 DCD unk_1000C42C ; DATA XREF: sub_1000460C+50r .text:10004964 off_10004964 DCD dword_1000101C ; DATA XREF: sub_1000460C+48r .text:10004968 off_10004968 DCD unk_1000C2E4 ; DATA XREF: sub_1000460C+34r .text:1000496C off_1000496C DCD unk_1000C438 ; DATA XREF: sub_1000460C+Cr .text:10004970 off_10004970 DCD unk_1000C45C ; DATA XREF: sub_1000460C+8r .text:10004974 .text:10004974 ; =============== S U B R O U T I N E ======================================= .text:10004974 .text:10004974 .text:10004974 sub_10004974 ; CODE XREF: TouchPanelEnable+1D0p .text:10004974 ; DATA XREF: .pdata:1000D1A8o .text:10004974 .text:10004974 var_24 = -0x24 .text:10004974 var_20 = -0x20 .text:10004974 var_1C = -0x1C .text:10004974 var_18 = -0x18 .text:10004974 var_14 = -0x14 .text:10004974 .text:10004974 STMFD SP!, {R4-R6,LR} .text:10004978 SUB SP, SP, #0x14 .text:1000497C MOV R5, R1 .text:10004980 MOV R6, R0 .text:10004984 LDR R1, =aDriversBuiltin .text:10004988 ADD LR, SP, #0x24+var_18 .text:1000498C MOV R3, #0 .text:10004990 MOV R2, #0 .text:10004994 MOV R0, #0x80000002 .text:10004998 STR LR, [SP,#0x24+var_24] .text:1000499C BL RegOpenKeyExW .text:100049A0 CMP R0, #0 .text:100049A4 MOVNE R4, #0x6D .text:100049A8 STRNE R4, [R6] .text:100049AC STRNE R4, [R5] .text:100049B0 BNE loc_10004A20 .text:100049B4 LDR R1, =aPriority256 .text:100049B8 LDR R0, [SP,#0x24+var_18] .text:100049BC MOV R4, #4 .text:100049C0 ADD LR, SP, #0x24+var_1C .text:100049C4 ADD R3, SP, #0x24+var_14 .text:100049C8 MOV R2, #0 .text:100049CC STR R4, [SP,#0x24+var_1C] .text:100049D0 STR LR, [SP,#0x24+var_20] .text:100049D4 STR R6, [SP,#0x24+var_24] .text:100049D8 BL RegQueryValueExW .text:100049DC CMP R0, #0 .text:100049E0 MOV R4, #0x6D .text:100049E4 LDR R1, =aHighpriority25 .text:100049E8 LDR R0, [SP,#0x24+var_18] .text:100049EC STRNE R4, [R6] .text:100049F0 MOV R6, #4 .text:100049F4 ADD LR, SP, #0x24+var_1C .text:100049F8 ADD R3, SP, #0x24+var_14 .text:100049FC MOV R2, #0 .text:10004A00 STR R6, [SP,#0x24+var_1C] .text:10004A04 STR LR, [SP,#0x24+var_20] .text:10004A08 STR R5, [SP,#0x24+var_24] .text:10004A0C BL RegQueryValueExW .text:10004A10 CMP R0, #0 .text:10004A14 LDR R0, [SP,#0x24+var_18] .text:10004A18 STRNE R4, [R5] .text:10004A1C BL RegCloseKey .text:10004A20 .text:10004A20 loc_10004A20 ; CODE XREF: sub_10004974+3Cj .text:10004A20 ADD SP, SP, #0x14 .text:10004A24 LDMFD SP!, {R4-R6,LR} .text:10004A28 BX LR .text:10004A28 ; End of function sub_10004974 .text:10004A28 .text:10004A28 ; --------------------------------------------------------------------------- .text:10004A2C off_10004A2C DCD aHighpriority25 ; DATA XREF: sub_10004974+70r .text:10004A2C ; "HighPriority256" .text:10004A30 off_10004A30 DCD aPriority256 ; DATA XREF: sub_10004974+40r .text:10004A30 ; "Priority256" .text:10004A34 off_10004A34 DCD aDriversBuiltin ; DATA XREF: sub_10004974+10r .text:10004A34 ; "\\Drivers\\BuiltIn\\Touch" .text:10004A38 ; Exported entry 9. TouchPanelGetDeviceCaps .text:10004A38 .text:10004A38 ; =============== S U B R O U T I N E ======================================= .text:10004A38 .text:10004A38 .text:10004A38 EXPORT TouchPanelGetDeviceCaps .text:10004A38 TouchPanelGetDeviceCaps ; DATA XREF: .pdata:1000D1B0o .text:10004A38 STMFD SP!, {R4-R6,LR} .text:10004A3C MOV R4, R1 .text:10004A40 MOV R6, R0 .text:10004A44 LDR R0, =unk_1000C440 .text:10004A48 MOV R5, #0 .text:10004A4C BL EnterCriticalSection .text:10004A50 CMP R4, #0 .text:10004A54 BEQ loc_10004A84 .text:10004A58 MOV R1, R4 .text:10004A5C MOV R0, R6 .text:10004A60 BL sub_10001C04 .text:10004A64 CMP R6, #2 .text:10004A68 LDREQ R2, =unk_1000C45C .text:10004A6C LDREQ R3, [R4,#4] .text:10004A70 LDREQ LR, =unk_1000C438 .text:10004A74 MOV R5, R0 .text:10004A78 STREQ R3, [R2] .text:10004A7C LDREQ R3, [R4,#8] .text:10004A80 STREQ R3, [LR] .text:10004A84 .text:10004A84 loc_10004A84 ; CODE XREF: TouchPanelGetDeviceCaps+1Cj .text:10004A84 LDR R0, =unk_1000C440 .text:10004A88 BL LeaveCriticalSection .text:10004A8C MOV R0, R5 .text:10004A90 LDMFD SP!, {R4-R6,LR} .text:10004A94 BX LR .text:10004A94 ; End of function TouchPanelGetDeviceCaps .text:10004A94 .text:10004A94 ; --------------------------------------------------------------------------- .text:10004A98 off_10004A98 DCD unk_1000C440 ; DATA XREF: TouchPanelGetDeviceCaps+Cr .text:10004A98 ; TouchPanelGetDeviceCaps:loc_10004A84r .text:10004A9C off_10004A9C DCD unk_1000C438 ; DATA XREF: TouchPanelGetDeviceCaps+38r .text:10004AA0 off_10004AA0 DCD unk_1000C45C ; DATA XREF: TouchPanelGetDeviceCaps+30r .text:10004AA4 ; Exported entry 14. TouchPanelSetMode .text:10004AA4 .text:10004AA4 ; =============== S U B R O U T I N E ======================================= .text:10004AA4 .text:10004AA4 .text:10004AA4 EXPORT TouchPanelSetMode .text:10004AA4 TouchPanelSetMode ; DATA XREF: .pdata:1000D1B8o .text:10004AA4 STMFD SP!, {R4-R6,LR} .text:10004AA8 MOV R6, R1 .text:10004AAC MOV R4, R0 .text:10004AB0 LDR R0, =unk_1000C440 .text:10004AB4 MOV R5, #1 .text:10004AB8 BL EnterCriticalSection .text:10004ABC CMP R4, #2 .text:10004AC0 BEQ loc_10004AFC .text:10004AC4 CMP R4, #4 .text:10004AC8 BEQ loc_10004AE0 .text:10004ACC MOV R1, R6 .text:10004AD0 MOV R0, R4 .text:10004AD4 BL sub_10001C88 .text:10004AD8 MOV R5, R0 .text:10004ADC B loc_10004B14 .text:10004AE0 ; --------------------------------------------------------------------------- .text:10004AE0 .text:10004AE0 loc_10004AE0 ; CODE XREF: TouchPanelSetMode+24j .text:10004AE0 LDR R4, =unk_1000C300 .text:10004AE4 LDR R1, [R4] .text:10004AE8 LDR R0, [R4,#0x10] .text:10004AEC BL CeSetThreadPriority .text:10004AF0 MOV R3, #0 .text:10004AF4 STR R3, [R4,#0x14] .text:10004AF8 B loc_10004B14 .text:10004AFC ; --------------------------------------------------------------------------- .text:10004AFC .text:10004AFC loc_10004AFC ; CODE XREF: TouchPanelSetMode+1Cj .text:10004AFC LDR R3, =unk_1000C300 .text:10004B00 MOV R2, #1 .text:10004B04 LDR R1, [R3,#4] .text:10004B08 LDR R0, [R3,#0x10] .text:10004B0C STR R2, [R3,#0x14] .text:10004B10 BL CeSetThreadPriority .text:10004B14 .text:10004B14 loc_10004B14 ; CODE XREF: TouchPanelSetMode+38j .text:10004B14 ; TouchPanelSetMode+54j .text:10004B14 LDR R0, =unk_1000C440 .text:10004B18 BL LeaveCriticalSection .text:10004B1C MOV R0, R5 .text:10004B20 LDMFD SP!, {R4-R6,LR} .text:10004B24 BX LR .text:10004B24 ; End of function TouchPanelSetMode .text:10004B24 .text:10004B24 ; --------------------------------------------------------------------------- .text:10004B28 off_10004B28 DCD unk_1000C440 ; DATA XREF: TouchPanelSetMode+Cr .text:10004B28 ; TouchPanelSetMode:loc_10004B14r .text:10004B2C off_10004B2C DCD unk_1000C300 ; DATA XREF: TouchPanelSetMode:loc_10004AE0r .text:10004B2C ; TouchPanelSetMode:loc_10004AFCr .text:10004B30 ; Exported entry 10. TouchPanelPowerHandler .text:10004B30 .text:10004B30 ; =============== S U B R O U T I N E ======================================= .text:10004B30 .text:10004B30 .text:10004B30 EXPORT TouchPanelPowerHandler .text:10004B30 TouchPanelPowerHandler ; DATA XREF: .pdata:1000D1C0o .text:10004B30 .text:10004B30 var_4 = -4 .text:10004B30 arg_4 = 4 .text:10004B30 .text:10004B30 STR LR, [SP,#var_4]! .text:10004B34 BL sub_10002208 .text:10004B38 LDR LR, [SP],#arg_4 .text:10004B3C BX LR .text:10004B3C ; End of function TouchPanelPowerHandler .text:10004B3C .text:10004B40 ; Exported entry 8. TouchPanelEnable .text:10004B40 .text:10004B40 ; =============== S U B R O U T I N E ======================================= .text:10004B40 .text:10004B40 .text:10004B40 EXPORT TouchPanelEnable .text:10004B40 TouchPanelEnable ; DATA XREF: .pdata:1000D1C8o .text:10004B40 .text:10004B40 var_24 = -0x24 .text:10004B40 var_20 = -0x20 .text:10004B40 .text:10004B40 STMFD SP!, {R4-R9,LR} .text:10004B44 SUB SP, SP, #8 .text:10004B48 MOV R5, R0 .text:10004B4C MOV R3, #0 .text:10004B50 MOV R2, #0 .text:10004B54 MOV R1, #0 .text:10004B58 MOV R0, #0 .text:10004B5C BL CreateEventW .text:10004B60 LDR R8, =unk_1000C454 .text:10004B64 LDR R4, =unk_1000C428 .text:10004B68 CMP R0, #0 .text:10004B6C STR R0, [R8] .text:10004B70 MOV R9, #0 .text:10004B74 BEQ loc_10004BE0 .text:10004B78 MOV R3, #0 .text:10004B7C MOV R2, #0 .text:10004B80 MOV R1, #0 .text:10004B84 MOV R0, #0 .text:10004B88 BL CreateEventW .text:10004B8C LDR R3, =unk_1000C458 .text:10004B90 CMP R0, #0 .text:10004B94 STR R0, [R3] .text:10004B98 BEQ loc_10004BE0 .text:10004B9C BL sub_10001EA8 .text:10004BA0 LDR R0, =unk_1000C440 .text:10004BA4 BL InitializeCriticalSection .text:10004BA8 LDR R3, =unk_1000C42C .text:10004BAC LDR R2, =unk_1000C434 .text:10004BB0 MOV R0, #0 .text:10004BB4 MOV R1, #0 .text:10004BB8 STR R0, [R3] .text:10004BBC STR R1, [R2] .text:10004BC0 MOV LR, #0 .text:10004BC4 MOV R3, #0 .text:10004BC8 MOV R2, #0 .text:10004BCC MOV R1, #0 .text:10004BD0 MOV R0, #0 .text:10004BD4 STR LR, [R4] .text:10004BD8 STR R9, [SP,#0x24+var_24] .text:10004BDC BL TouchPanelSetCalibration .text:10004BE0 .text:10004BE0 loc_10004BE0 ; CODE XREF: TouchPanelEnable+34j .text:10004BE0 ; TouchPanelEnable+58j .text:10004BE0 LDR R0, =unk_1000C440 .text:10004BE4 BL EnterCriticalSection .text:10004BE8 LDR R7, =unk_1000C0F4 .text:10004BEC LDR R0, [R7] .text:10004BF0 BL InterruptDone .text:10004BF4 LDR R0, [R7] .text:10004BF8 BL InterruptDisable .text:10004BFC LDR R6, =unk_1000C0F0 .text:10004C00 LDR R0, [R6] .text:10004C04 CMP R0, #0 .text:10004C08 BEQ loc_10004C18 .text:10004C0C BL InterruptDone .text:10004C10 LDR R0, [R6] .text:10004C14 BL InterruptDisable .text:10004C18 .text:10004C18 loc_10004C18 ; CODE XREF: TouchPanelEnable+C8j .text:10004C18 LDR R3, =off_1000C180 .text:10004C1C LDR R2, =unk_1000E084 .text:10004C20 LDR R3, [R3] .text:10004C24 STR R5, [R2] .text:10004C28 MOV R2, #0 .text:10004C2C CMP R3, #0 .text:10004C30 STRNE R3, [R4] .text:10004C34 LDR R3, =unk_1000C430 .text:10004C38 STREQ R5, [R4] .text:10004C3C STR R2, [R3] .text:10004C40 BL sub_100023E0 .text:10004C44 MOVS R4, R0 .text:10004C48 BEQ loc_10004C70 .text:10004C4C LDR R1, [R8] .text:10004C50 LDR R0, [R7] .text:10004C54 MOV R3, #0 .text:10004C58 MOV R2, #0 .text:10004C5C BL InterruptInitialize .text:10004C60 CMP R0, #0 .text:10004C64 BNE loc_10004C70 .text:10004C68 BL sub_10001EA8 .text:10004C6C MOV R4, #0 .text:10004C70 .text:10004C70 loc_10004C70 ; CODE XREF: TouchPanelEnable+108j .text:10004C70 ; TouchPanelEnable+124j .text:10004C70 LDR R0, [R6] .text:10004C74 CMP R0, #0 .text:10004C78 BEQ loc_10004CAC .text:10004C7C CMP R4, #0 .text:10004C80 BEQ loc_10004D20 .text:10004C84 LDR R1, [R8] .text:10004C88 MOV R3, #0 .text:10004C8C MOV R2, #0 .text:10004C90 BL InterruptInitialize .text:10004C94 CMP R0, #0 .text:10004C98 BNE loc_10004CAC .text:10004C9C LDR R0, [R7] .text:10004CA0 BL InterruptDisable .text:10004CA4 BL sub_10001EA8 .text:10004CA8 MOV R4, #0 .text:10004CAC .text:10004CAC loc_10004CAC ; CODE XREF: TouchPanelEnable+138j .text:10004CAC ; TouchPanelEnable+158j .text:10004CAC CMP R4, #0 .text:10004CB0 BEQ loc_10004D20 .text:10004CB4 LDR R5, =unk_1000C300 .text:10004CB8 LDR R2, =sub_1000460C .text:10004CBC MOV R3, #0 .text:10004CC0 STR R3, [R5,#0xC] .text:10004CC4 MOV R3, #0 .text:10004CC8 MOV R1, #0 .text:10004CCC MOV R0, #0 .text:10004CD0 STR R9, [SP,#0x24+var_20] .text:10004CD4 STR R9, [SP,#0x24+var_24] .text:10004CD8 BL CreateThread .text:10004CDC CMP R0, #0 .text:10004CE0 STR R0, [R5,#0x10] .text:10004CE4 BNE loc_10004D08 .text:10004CE8 LDR R0, [R7] .text:10004CEC BL InterruptDisable .text:10004CF0 LDR R0, [R6] .text:10004CF4 CMP R0, #0 .text:10004CF8 BLNE InterruptDisable .text:10004CFC BL sub_10001EA8 .text:10004D00 MOV R4, #0 .text:10004D04 B loc_10004D20 .text:10004D08 ; --------------------------------------------------------------------------- .text:10004D08 .text:10004D08 loc_10004D08 ; CODE XREF: TouchPanelEnable+1A4j .text:10004D08 ADD R1, R5, #4 .text:10004D0C MOV R0, R5 .text:10004D10 BL sub_10004974 .text:10004D14 LDR R1, [R5] .text:10004D18 LDR R0, [R5,#0x10] .text:10004D1C BL CeSetThreadPriority .text:10004D20 .text:10004D20 loc_10004D20 ; CODE XREF: TouchPanelEnable+140j .text:10004D20 ; TouchPanelEnable+170j ... .text:10004D20 LDR R0, =unk_1000C440 .text:10004D24 BL LeaveCriticalSection .text:10004D28 MOV R0, R4 .text:10004D2C ADD SP, SP, #8 .text:10004D30 LDMFD SP!, {R4-R9,LR} .text:10004D34 BX LR .text:10004D34 ; End of function TouchPanelEnable .text:10004D34 .text:10004D34 ; --------------------------------------------------------------------------- .text:10004D38 off_10004D38 DCD unk_1000C440 ; DATA XREF: TouchPanelEnable+60r .text:10004D38 ; TouchPanelEnable:loc_10004BE0r ... .text:10004D3C off_10004D3C DCD sub_1000460C ; DATA XREF: TouchPanelEnable+178r .text:10004D40 off_10004D40 DCD unk_1000C300 ; DATA XREF: TouchPanelEnable+174r .text:10004D44 off_10004D44 DCD unk_1000C430 ; DATA XREF: TouchPanelEnable+F4r .text:10004D48 off_10004D48 DCD unk_1000E084 ; DATA XREF: TouchPanelEnable+DCr .text:10004D4C off_10004D4C DCD off_1000C180 ; DATA XREF: TouchPanelEnable:loc_10004C18r .text:10004D50 off_10004D50 DCD unk_1000C0F0 ; DATA XREF: TouchPanelEnable+BCr .text:10004D54 off_10004D54 DCD unk_1000C0F4 ; DATA XREF: TouchPanelEnable+A8r .text:10004D58 off_10004D58 DCD unk_1000C434 ; DATA XREF: TouchPanelEnable+6Cr .text:10004D5C off_10004D5C DCD unk_1000C42C ; DATA XREF: TouchPanelEnable+68r .text:10004D60 off_10004D60 DCD unk_1000C458 ; DATA XREF: TouchPanelEnable+4Cr .text:10004D64 off_10004D64 DCD unk_1000C428 ; DATA XREF: TouchPanelEnable+24r .text:10004D68 off_10004D68 DCD unk_1000C454 ; DATA XREF: TouchPanelEnable+20r .text:10004D6C ; Exported entry 7. TouchPanelDisable .text:10004D6C .text:10004D6C ; =============== S U B R O U T I N E ======================================= .text:10004D6C .text:10004D6C .text:10004D6C EXPORT TouchPanelDisable .text:10004D6C TouchPanelDisable ; DATA XREF: .pdata:1000D1D0o .text:10004D6C STMFD SP!, {R4-R6,LR} .text:10004D70 LDR R5, =unk_1000C30C .text:10004D74 LDR R6, =unk_1000C454 .text:10004D78 LDR R3, [R5,#4] .text:10004D7C CMP R3, #0 .text:10004D80 BEQ loc_10004DD8 .text:10004D84 MOV R3, #1 .text:10004D88 STR R3, [R5] .text:10004D8C MOV R4, #0 .text:10004D90 .text:10004D90 loc_10004D90 ; CODE XREF: TouchPanelDisable+4Cj .text:10004D90 LDR R0, [R6] .text:10004D94 MOV R1, #3 .text:10004D98 BL EventModify .text:10004D9C LDR R0, [R5,#4] .text:10004DA0 MOV R1, #0x64 .text:10004DA4 BL WaitForSingleObject .text:10004DA8 CMP R0, #0 .text:10004DAC BEQ loc_10004DC8 .text:10004DB0 ADD R4, R4, #1 .text:10004DB4 CMP R4, #4 .text:10004DB8 BLT loc_10004D90 .text:10004DBC LDR R0, [R5,#4] .text:10004DC0 MOVL R1, 0xFFFFFFFF .text:10004DC4 BL TerminateThread .text:10004DC8 .text:10004DC8 loc_10004DC8 ; CODE XREF: TouchPanelDisable+40j .text:10004DC8 LDR R0, [R5,#4] .text:10004DCC BL CloseHandle .text:10004DD0 MOV R3, #0 .text:10004DD4 STR R3, [R5,#4] .text:10004DD8 .text:10004DD8 loc_10004DD8 ; CODE XREF: TouchPanelDisable+14j .text:10004DD8 LDR R0, =unk_1000C440 .text:10004DDC BL EnterCriticalSection .text:10004DE0 BL sub_10001EA8 .text:10004DE4 LDR R4, =unk_1000C0F4 .text:10004DE8 LDR R0, [R4] .text:10004DEC BL InterruptDone .text:10004DF0 LDR R0, [R4] .text:10004DF4 BL InterruptDisable .text:10004DF8 LDR R4, =unk_1000C0F0 .text:10004DFC LDR R0, [R4] .text:10004E00 CMP R0, #0 .text:10004E04 BEQ loc_10004E14 .text:10004E08 BL InterruptDone .text:10004E0C LDR R0, [R4] .text:10004E10 BL InterruptDisable .text:10004E14 .text:10004E14 loc_10004E14 ; CODE XREF: TouchPanelDisable+98j .text:10004E14 LDR R3, =unk_1000C430 .text:10004E18 LDR R0, [R6] .text:10004E1C MOV R1, #0 .text:10004E20 MOV R2, #0 .text:10004E24 STR R2, [R3] .text:10004E28 CMP R0, #0 .text:10004E2C STR R1, [R5,#4] .text:10004E30 BEQ loc_10004E40 .text:10004E34 BL CloseHandle .text:10004E38 MOV R3, #0 .text:10004E3C STR R3, [R6] .text:10004E40 .text:10004E40 loc_10004E40 ; CODE XREF: TouchPanelDisable+C4j .text:10004E40 LDR R4, =unk_1000C458 .text:10004E44 LDR R0, [R4] .text:10004E48 CMP R0, #0 .text:10004E4C BEQ loc_10004E5C .text:10004E50 BL CloseHandle .text:10004E54 MOV R3, #0 .text:10004E58 STR R3, [R4] .text:10004E5C .text:10004E5C loc_10004E5C ; CODE XREF: TouchPanelDisable+E0j .text:10004E5C LDR R0, =unk_1000C440 .text:10004E60 BL LeaveCriticalSection .text:10004E64 LDR R0, =unk_1000C440 .text:10004E68 BL DeleteCriticalSection .text:10004E6C LDMFD SP!, {R4-R6,LR} .text:10004E70 BX LR .text:10004E70 ; End of function TouchPanelDisable .text:10004E70 .text:10004E70 ; --------------------------------------------------------------------------- .text:10004E74 off_10004E74 DCD unk_1000C440 ; DATA XREF: TouchPanelDisable:loc_10004DD8r .text:10004E74 ; TouchPanelDisable:loc_10004E5Cr ... .text:10004E78 off_10004E78 DCD unk_1000C458 ; DATA XREF: TouchPanelDisable:loc_10004E40r .text:10004E7C off_10004E7C DCD unk_1000C430 ; DATA XREF: TouchPanelDisable:loc_10004E14r .text:10004E80 off_10004E80 DCD unk_1000C0F0 ; DATA XREF: TouchPanelDisable+8Cr .text:10004E84 off_10004E84 DCD unk_1000C0F4 ; DATA XREF: TouchPanelDisable+78r .text:10004E88 off_10004E88 DCD unk_1000C454 ; DATA XREF: TouchPanelDisable+8r .text:10004E8C off_10004E8C DCD unk_1000C30C ; DATA XREF: TouchPanelDisable+4r .text:10004E90 ; Exported entry 12. TouchPanelReadCalibrationPoint .text:10004E90 .text:10004E90 ; =============== S U B R O U T I N E ======================================= .text:10004E90 .text:10004E90 .text:10004E90 EXPORT TouchPanelReadCalibrationPoint .text:10004E90 TouchPanelReadCalibrationPoint ; DATA XREF: .pdata:1000D1D8o .text:10004E90 .text:10004E90 var_240 = -0x240 .text:10004E90 var_23C = -0x23C .text:10004E90 var_238 = -0x238 .text:10004E90 var_234 = -0x234 .text:10004E90 var_230 = -0x230 .text:10004E90 var_228 = -0x228 .text:10004E90 var_40 = -0x40 .text:10004E90 var_20 = -0x20 .text:10004E90 .text:10004E90 STMFD SP!, {R4-R9,LR} .text:10004E94 SUB SP, SP, #0x224 .text:10004E98 MOV R7, R1 .text:10004E9C MOVS R9, R0 .text:10004EA0 LDR R3, =unk_1000C1B8 .text:10004EA4 LDR R3, [R3] .text:10004EA8 STR R3, [SP,#0x240+var_20] .text:10004EAC MOV R5, #0 .text:10004EB0 BEQ loc_10005010 .text:10004EB4 CMP R7, #0 .text:10004EB8 BEQ loc_10005010 .text:10004EBC LDR R1, =aSystemGwe .text:10004EC0 ADD LR, SP, #0x240+var_238 .text:10004EC4 MOV R3, #0 .text:10004EC8 MOV R2, #0 .text:10004ECC MOV R0, #0x80000002 .text:10004ED0 STR LR, [SP,#0x240+var_240] .text:10004ED4 BL RegOpenKeyExW .text:10004ED8 CMP R0, #0 .text:10004EDC BNE loc_10004F4C .text:10004EE0 LDR R1, =aActivityevent .text:10004EE4 LDR R0, [SP,#0x240+var_238] .text:10004EE8 MOV R6, #0x208 .text:10004EEC ADD LR, SP, #0x240+var_234 .text:10004EF0 ADD R4, SP, #0x240+var_228 .text:10004EF4 ADD R3, SP, #0x240+var_230 .text:10004EF8 MOV R2, #0 .text:10004EFC STR R6, [SP,#0x240+var_234] .text:10004F00 STR LR, [SP,#0x240+var_23C] .text:10004F04 STR R4, [SP,#0x240+var_240] .text:10004F08 BL RegQueryValueExW .text:10004F0C MOV R3, #0 .text:10004F10 ADD R12, SP, #0x240+var_40 .text:10004F14 STRH R3, [R12,#0x1E] .text:10004F18 CMP R0, #0 .text:10004F1C BNE loc_10004F44 .text:10004F20 LDR R3, [SP,#0x240+var_230] .text:10004F24 CMP R3, #1 .text:10004F28 BNE loc_10004F44 .text:10004F2C MOVL R0, 0x1F0003 .text:10004F34 ADD R2, SP, #0x240+var_228 .text:10004F38 MOV R1, #0 .text:10004F3C BL OpenEventW .text:10004F40 MOV R5, R0 .text:10004F44 .text:10004F44 loc_10004F44 ; CODE XREF: TouchPanelReadCalibrationPoint+8Cj .text:10004F44 ; TouchPanelReadCalibrationPoint+98j .text:10004F44 LDR R0, [SP,#0x240+var_238] .text:10004F48 BL RegCloseKey .text:10004F4C .text:10004F4C loc_10004F4C ; CODE XREF: TouchPanelReadCalibrationPoint+4Cj .text:10004F4C LDR R0, =unk_1000C440 .text:10004F50 BL EnterCriticalSection .text:10004F54 LDR R6, =unk_1000C42C .text:10004F58 LDR R3, [R6] .text:10004F5C CMP R3, #0 .text:10004F60 BEQ loc_10004F8C .text:10004F64 MOVL R0, 0x46B .text:10004F6C BL SetLastError .text:10004F70 LDR R0, =unk_1000C440 .text:10004F74 BL LeaveCriticalSection .text:10004F78 CMP R5, #0 .text:10004F7C BEQ loc_10005018 .text:10004F80 MOV R0, R5 .text:10004F84 BL CloseHandle .text:10004F88 B loc_10005018 .text:10004F8C ; --------------------------------------------------------------------------- .text:10004F8C .text:10004F8C loc_10004F8C ; CODE XREF: TouchPanelReadCalibrationPoint+D0j .text:10004F8C LDR R8, =unk_1000C430 .text:10004F90 LDR R0, =unk_1000C440 .text:10004F94 MOV R3, #1 .text:10004F98 STR R5, [R8] .text:10004F9C STR R3, [R6] .text:10004FA0 BL LeaveCriticalSection .text:10004FA4 LDR R3, =unk_1000C458 .text:10004FA8 MOVL R1, 0xFFFFFFFF .text:10004FAC LDR R0, [R3] .text:10004FB0 BL WaitForSingleObject .text:10004FB4 LDR R0, =unk_1000C440 .text:10004FB8 BL EnterCriticalSection .text:10004FBC LDR R3, =unk_1000C464 .text:10004FC0 LDR R2, =unk_1000C460 .text:10004FC4 LDR R0, =unk_1000C440 .text:10004FC8 LDR R3, [R3] .text:10004FCC STR R3, [R9] .text:10004FD0 LDR R3, [R2] .text:10004FD4 MOV R2, #0 .text:10004FD8 STR R3, [R7] .text:10004FDC LDR R3, [R6] .text:10004FE0 STR R2, [R8] .text:10004FE4 CMP R3, #3 .text:10004FE8 MOV R3, #0 .text:10004FEC MOVEQ R4, #1 .text:10004FF0 MOVNE R4, #0 .text:10004FF4 STR R3, [R6] .text:10004FF8 BL LeaveCriticalSection .text:10004FFC MOV R0, R5 .text:10005000 BL CloseHandle .text:10005004 LDR R0, [SP,#0x240+var_20] .text:10005008 BL sub_1000B1BC .text:1000500C B loc_10005024 .text:10005010 ; --------------------------------------------------------------------------- .text:10005010 .text:10005010 loc_10005010 ; CODE XREF: TouchPanelReadCalibrationPoint+20j .text:10005010 ; TouchPanelReadCalibrationPoint+28j .text:10005010 MOV R0, #0x57 .text:10005014 BL SetLastError .text:10005018 .text:10005018 loc_10005018 ; CODE XREF: TouchPanelReadCalibrationPoint+ECj .text:10005018 ; TouchPanelReadCalibrationPoint+F8j .text:10005018 LDR R0, [SP,#0x240+var_20] .text:1000501C BL sub_1000B1BC .text:10005020 MOV R4, #0 .text:10005024 .text:10005024 loc_10005024 ; CODE XREF: TouchPanelReadCalibrationPoint+17Cj .text:10005024 MOV R0, R4 .text:10005028 ADD SP, SP, #0x224 .text:1000502C LDMFD SP!, {R4-R9,LR} .text:10005030 BX LR .text:10005030 ; End of function TouchPanelReadCalibrationPoint .text:10005030 .text:10005030 ; --------------------------------------------------------------------------- .text:10005034 off_10005034 DCD unk_1000C440 ; DATA XREF: TouchPanelReadCalibrationPoint:loc_10004F4Cr .text:10005034 ; TouchPanelReadCalibrationPoint+E0r ... .text:10005038 off_10005038 DCD unk_1000C460 ; DATA XREF: TouchPanelReadCalibrationPoint+130r .text:1000503C off_1000503C DCD unk_1000C464 ; DATA XREF: TouchPanelReadCalibrationPoint+12Cr .text:10005040 off_10005040 DCD unk_1000C458 ; DATA XREF: TouchPanelReadCalibrationPoint+114r .text:10005044 off_10005044 DCD unk_1000C430 ; DATA XREF: TouchPanelReadCalibrationPoint:loc_10004F8Cr .text:10005048 off_10005048 DCD unk_1000C42C ; DATA XREF: TouchPanelReadCalibrationPoint+C4r .text:1000504C off_1000504C DCD aActivityevent ; DATA XREF: TouchPanelReadCalibrationPoint+50r .text:1000504C ; "ActivityEvent" .text:10005050 off_10005050 DCD aSystemGwe ; DATA XREF: TouchPanelReadCalibrationPoint+2Cr .text:10005050 ; "System\\GWE" .text:10005054 off_10005054 DCD unk_1000C1B8 ; DATA XREF: TouchPanelReadCalibrationPoint+10r .text:10005058 ; Exported entry 11. TouchPanelReadCalibrationAbort .text:10005058 .text:10005058 ; =============== S U B R O U T I N E ======================================= .text:10005058 .text:10005058 .text:10005058 EXPORT TouchPanelReadCalibrationAbort .text:10005058 TouchPanelReadCalibrationAbort ; DATA XREF: .pdata:1000D1E0o .text:10005058 .text:10005058 var_4 = -4 .text:10005058 arg_4 = 4 .text:10005058 .text:10005058 STR LR, [SP,#var_4]! .text:1000505C LDR R0, =unk_1000C440 .text:10005060 BL EnterCriticalSection .text:10005064 LDR R2, =unk_1000C42C .text:10005068 LDR R3, [R2] .text:1000506C CMP R3, #3 .text:10005070 CMPNE R3, #0 .text:10005074 LDRNE R3, =unk_1000C458 .text:10005078 MOVNE LR, #4 .text:1000507C MOVNE R1, #3 .text:10005080 LDRNE R0, [R3] .text:10005084 STRNE LR, [R2] .text:10005088 BLNE EventModify .text:1000508C LDR R0, =unk_1000C440 .text:10005090 BL LeaveCriticalSection .text:10005094 LDR LR, [SP],#arg_4 .text:10005098 BX LR .text:10005098 ; End of function TouchPanelReadCalibrationAbort .text:10005098 .text:10005098 ; --------------------------------------------------------------------------- .text:1000509C off_1000509C DCD unk_1000C440 ; DATA XREF: TouchPanelReadCalibrationAbort+4r .text:1000509C ; TouchPanelReadCalibrationAbort+34r .text:100050A0 off_100050A0 DCD unk_1000C458 ; DATA XREF: TouchPanelReadCalibrationAbort+1Cr .text:100050A4 off_100050A4 DCD unk_1000C42C ; DATA XREF: TouchPanelReadCalibrationAbort+Cr .text:100050A8 .text:100050A8 ; =============== S U B R O U T I N E ======================================= .text:100050A8 .text:100050A8 .text:100050A8 sub_100050A8 ; CODE XREF: sub_10005130+36Cp .text:100050A8 ; DATA XREF: .pdata:1000D1E8o .text:100050A8 .text:100050A8 var_30 = -0x30 .text:100050A8 var_2C = -0x2C .text:100050A8 var_28 = -0x28 .text:100050A8 var_24 = -0x24 .text:100050A8 var_20 = -0x20 .text:100050A8 var_1C = -0x1C .text:100050A8 var_18 = -0x18 .text:100050A8 var_14 = -0x14 .text:100050A8 .text:100050A8 STMFD SP!, {R4-R6,LR} .text:100050AC SUB SP, SP, #0x20 .text:100050B0 MOV R4, R0 .text:100050B4 LDR R3, =unk_1000E05C .text:100050B8 LDR R2, =dword_100014C0 .text:100050BC LDR R1, =aTouchstubwnd_c .text:100050C0 LDR R3, [R3] .text:100050C4 MOV R6, #0 .text:100050C8 MOV R5, #1 .text:100050CC LDR LR, [R3] .text:100050D0 MOV R3, #0 .text:100050D4 MOV R0, #0 .text:100050D8 STR LR, [SP,#0x30+var_18] .text:100050DC STR R6, [SP,#0x30+var_14] .text:100050E0 STR R6, [SP,#0x30+var_1C] .text:100050E4 STR R4, [SP,#0x30+var_20] .text:100050E8 STR R5, [SP,#0x30+var_24] .text:100050EC STR R5, [SP,#0x30+var_28] .text:100050F0 STR R6, [SP,#0x30+var_2C] .text:100050F4 STR R6, [SP,#0x30+var_30] .text:100050F8 BL CreateWindowExW .text:100050FC MOVS R5, R0 .text:10005100 BEQ loc_10005114 .text:10005104 BL GetFocus .text:10005108 MOV R4, R0 .text:1000510C MOV R0, R5 .text:10005110 BL DestroyWindow .text:10005114 .text:10005114 loc_10005114 ; CODE XREF: sub_100050A8+58j .text:10005114 MOV R0, R4 .text:10005118 ADD SP, SP, #0x20 .text:1000511C LDMFD SP!, {R4-R6,LR} .text:10005120 BX LR .text:10005120 ; End of function sub_100050A8 .text:10005120 .text:10005120 ; --------------------------------------------------------------------------- .text:10005124 off_10005124 DCD aTouchstubwnd_c ; DATA XREF: sub_100050A8+14r .text:10005124 ; "TOUCHSTUBWND_CLASS" .text:10005128 off_10005128 DCD dword_100014C0 ; DATA XREF: sub_100050A8+10r .text:1000512C off_1000512C DCD unk_1000E05C ; DATA XREF: sub_100050A8+Cr .text:10005130 .text:10005130 ; =============== S U B R O U T I N E ======================================= .text:10005130 .text:10005130 .text:10005130 sub_10005130 ; DATA XREF: .text:off_10005624o .text:10005130 ; .pdata:1000D1F0o .text:10005130 .text:10005130 var_128 = -0x128 .text:10005130 var_28 = -0x28 .text:10005130 .text:10005130 STMFD SP!, {R4-R11,LR} .text:10005134 SUB SP, SP, #0x104 .text:10005138 MOV R8, R3 .text:1000513C MOV R6, R2 .text:10005140 MOV R7, R1 .text:10005144 MOV R9, R0 .text:10005148 LDR LR, =unk_1000C1B8 .text:1000514C LDR LR, [LR] .text:10005150 STR LR, [SP,#0x128+var_28] .text:10005154 MOVL R3, 0x405 .text:1000515C CMP R7, R3 .text:10005160 BHI loc_1000539C .text:10005164 BEQ loc_10005338 .text:10005168 CMP R7, #0x10 .text:1000516C BEQ loc_10005274 ; default .text:10005170 MOVL LR, 0x401 .text:10005178 CMP R7, LR .text:1000517C BEQ loc_1000532C .text:10005180 MOVL LR, 0x402 .text:10005188 CMP R7, LR .text:1000518C BEQ loc_10005310 .text:10005190 MOVL R3, 0x403 .text:10005198 CMP R7, R3 .text:1000519C BEQ loc_10005284 .text:100051A0 MOVL R3, 0x404 .text:100051A8 CMP R7, R3 .text:100051AC BNE loc_10005404 .text:100051B0 SUB R2, R6, #1 .text:100051B4 CMP R2, #7 ; switch 8 cases .text:100051B8 BHI loc_10005274 ; default .text:100051BC ADR R3, off_100051C8 .text:100051C0 LDRB R3, [R3,R2] .text:100051C4 ADD PC, PC, R3 ; switch jump .text:100051C4 ; --------------------------------------------------------------------------- .text:100051C8 off_100051C8 DCB loc_100051D0 - off_100051CC ; DATA XREF: sub_10005130+8Co .text:100051C8 ; jump table for switch statement .text:100051C9 DCB loc_100051E4 - off_100051CC ; jumptable 100051C4 case 1 .text:100051CA DCB loc_100051FC - off_100051CC ; jumptable 100051C4 case 2 .text:100051CB DCB loc_10005210 - off_100051CC ; jumptable 100051C4 case 3 .text:100051CC off_100051CC DCB loc_10005224 - off_100051CC .text:100051CC ; DATA XREF: sub_10005130:off_100051C8o .text:100051CC ; sub_10005130+99o ... .text:100051CC ; jumptable 100051C4 case 4 .text:100051CD DCB loc_10005238 - off_100051CC ; jumptable 100051C4 case 5 .text:100051CE DCB loc_1000524C - off_100051CC ; jumptable 100051C4 case 6 .text:100051CF DCB loc_10005260 - off_100051CC ; jumptable 100051C4 case 7 .text:100051D0 ; --------------------------------------------------------------------------- .text:100051D0 .text:100051D0 loc_100051D0 ; CODE XREF: sub_10005130+94j .text:100051D0 ; DATA XREF: sub_10005130:off_100051C8o .text:100051D0 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 0 .text:100051D4 BL sub_1000B1BC .text:100051D8 LDR R3, =unk_1000E080 .text:100051DC LDR R4, [R3] .text:100051E0 B loc_100054D4 .text:100051E4 ; --------------------------------------------------------------------------- .text:100051E4 .text:100051E4 loc_100051E4 ; CODE XREF: sub_10005130+94j .text:100051E4 ; DATA XREF: sub_10005130+99o .text:100051E4 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 1 .text:100051E8 BL sub_1000B1BC .text:100051EC LDR R3, =unk_1000E060 .text:100051F0 LDR R3, [R3] .text:100051F4 LDR R4, [R3] .text:100051F8 B loc_100054D4 .text:100051FC ; --------------------------------------------------------------------------- .text:100051FC .text:100051FC loc_100051FC ; CODE XREF: sub_10005130+94j .text:100051FC ; DATA XREF: sub_10005130+9Ao .text:100051FC LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 2 .text:10005200 BL sub_1000B1BC .text:10005204 LDR R3, =unk_1000C198 .text:10005208 LDR R4, [R3] .text:1000520C B loc_100054D4 .text:10005210 ; --------------------------------------------------------------------------- .text:10005210 .text:10005210 loc_10005210 ; CODE XREF: sub_10005130+94j .text:10005210 ; DATA XREF: sub_10005130+9Bo .text:10005210 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 3 .text:10005214 BL sub_1000B1BC .text:10005218 LDR R3, =unk_1000C194 .text:1000521C LDR R4, [R3] .text:10005220 B loc_100054D4 .text:10005224 ; --------------------------------------------------------------------------- .text:10005224 .text:10005224 loc_10005224 ; CODE XREF: sub_10005130+94j .text:10005224 ; DATA XREF: sub_10005130:off_100051CCo .text:10005224 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 4 .text:10005228 BL sub_1000B1BC .text:1000522C LDR R3, =unk_1000C18C .text:10005230 LDR R4, [R3] .text:10005234 B loc_100054D4 .text:10005238 ; --------------------------------------------------------------------------- .text:10005238 .text:10005238 loc_10005238 ; CODE XREF: sub_10005130+94j .text:10005238 ; DATA XREF: sub_10005130+9Do .text:10005238 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 5 .text:1000523C BL sub_1000B1BC .text:10005240 LDR R3, =unk_1000C190 .text:10005244 LDR R4, [R3] .text:10005248 B loc_100054D4 .text:1000524C ; --------------------------------------------------------------------------- .text:1000524C .text:1000524C loc_1000524C ; CODE XREF: sub_10005130+94j .text:1000524C ; DATA XREF: sub_10005130+9Eo .text:1000524C LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 6 .text:10005250 BL sub_1000B1BC .text:10005254 LDR R3, =unk_1000C188 .text:10005258 LDR R4, [R3] .text:1000525C B loc_100054D4 .text:10005260 ; --------------------------------------------------------------------------- .text:10005260 .text:10005260 loc_10005260 ; CODE XREF: sub_10005130+94j .text:10005260 ; DATA XREF: sub_10005130+9Fo .text:10005260 LDR R0, [SP,#0x128+var_28] ; jumptable 100051C4 case 7 .text:10005264 BL sub_1000B1BC .text:10005268 LDR R3, =unk_1000C184 .text:1000526C LDR R4, [R3] .text:10005270 B loc_100054D4 .text:10005274 ; --------------------------------------------------------------------------- .text:10005274 .text:10005274 loc_10005274 ; CODE XREF: sub_10005130+3Cj .text:10005274 ; sub_10005130+88j ... .text:10005274 LDR R0, [SP,#0x128+var_28] ; default .text:10005278 BL sub_1000B1BC .text:1000527C MOV R4, #0 .text:10005280 B loc_100054D4 .text:10005284 ; --------------------------------------------------------------------------- .text:10005284 .text:10005284 loc_10005284 ; CODE XREF: sub_10005130+6Cj .text:10005284 CMP R6, #3 .text:10005288 BEQ loc_10005304 .text:1000528C CMP R6, #4 .text:10005290 BEQ loc_100052F8 .text:10005294 CMP R6, #5 .text:10005298 BEQ loc_100052EC .text:1000529C CMP R6, #6 .text:100052A0 BEQ loc_100052E0 .text:100052A4 CMP R6, #7 .text:100052A8 BEQ loc_100052D4 .text:100052AC CMP R6, #8 .text:100052B0 BEQ loc_100052C8 .text:100052B4 CMP R6, #0xB .text:100052B8 BNE loc_10005404 .text:100052BC LDR R3, =unk_1000E078 .text:100052C0 STR R8, [R3] .text:100052C4 B loc_10005404 .text:100052C8 ; --------------------------------------------------------------------------- .text:100052C8 .text:100052C8 loc_100052C8 ; CODE XREF: sub_10005130+180j .text:100052C8 LDR R3, =unk_1000C184 .text:100052CC STR R8, [R3] .text:100052D0 B loc_10005404 .text:100052D4 ; --------------------------------------------------------------------------- .text:100052D4 .text:100052D4 loc_100052D4 ; CODE XREF: sub_10005130+178j .text:100052D4 LDR R3, =unk_1000C188 .text:100052D8 STR R8, [R3] .text:100052DC B loc_10005404 .text:100052E0 ; --------------------------------------------------------------------------- .text:100052E0 .text:100052E0 loc_100052E0 ; CODE XREF: sub_10005130+170j .text:100052E0 LDR R3, =unk_1000C190 .text:100052E4 STR R8, [R3] .text:100052E8 B loc_10005404 .text:100052EC ; --------------------------------------------------------------------------- .text:100052EC .text:100052EC loc_100052EC ; CODE XREF: sub_10005130+168j .text:100052EC LDR R3, =unk_1000C18C .text:100052F0 STR R8, [R3] .text:100052F4 B loc_10005404 .text:100052F8 ; --------------------------------------------------------------------------- .text:100052F8 .text:100052F8 loc_100052F8 ; CODE XREF: sub_10005130+160j .text:100052F8 LDR R3, =unk_1000C194 .text:100052FC STR R8, [R3] .text:10005300 B loc_10005404 .text:10005304 ; --------------------------------------------------------------------------- .text:10005304 .text:10005304 loc_10005304 ; CODE XREF: sub_10005130+158j .text:10005304 LDR R3, =unk_1000C198 .text:10005308 STR R8, [R3] .text:1000530C B loc_10005404 .text:10005310 ; --------------------------------------------------------------------------- .text:10005310 .text:10005310 loc_10005310 ; CODE XREF: sub_10005130+5Cj .text:10005310 LDR R2, =unk_1000E080 .text:10005314 LDR R3, [R2] .text:10005318 CMP R3, R6 .text:1000531C BNE loc_10005404 .text:10005320 MOV R3, #0 .text:10005324 STR R3, [R2] .text:10005328 B loc_10005404 .text:1000532C ; --------------------------------------------------------------------------- .text:1000532C .text:1000532C loc_1000532C ; CODE XREF: sub_10005130+4Cj .text:1000532C LDR R3, =unk_1000E080 .text:10005330 STR R6, [R3] .text:10005334 B loc_100054C8 .text:10005338 ; --------------------------------------------------------------------------- .text:10005338 .text:10005338 loc_10005338 ; CODE XREF: sub_10005130+34j .text:10005338 CMP R6, #0 .text:1000533C BEQ loc_1000538C .text:10005340 LDR R2, =unk_1000C198 .text:10005344 MOV R3, #0x5D0 .text:10005348 LDR LR, =unk_1000C18C .text:1000534C ORR R3, R3, #0xC .text:10005350 STR R3, [R2] .text:10005354 LDR R4, =unk_1000C188 .text:10005358 MOV R3, #0x1E0 .text:1000535C STR R3, [LR] .text:10005360 LDR R1, =unk_1000C194 .text:10005364 LDR R0, =unk_1000C190 .text:10005368 LDR R5, =unk_1000C184 .text:1000536C MOV R3, #0x1E0 .text:10005370 STR R3, [R4] .text:10005374 MOV R3, #0x320 .text:10005378 MOV R10, #0x17 .text:1000537C MOV R11, #0x12 .text:10005380 STR R3, [R5] .text:10005384 STR R10, [R1] .text:10005388 STR R11, [R0] .text:1000538C .text:1000538C loc_1000538C ; CODE XREF: sub_10005130+20Cj .text:1000538C LDR R3, =unk_1000E078 .text:10005390 MOV R2, #0 .text:10005394 STR R2, [R3] .text:10005398 B loc_10005404 .text:1000539C ; --------------------------------------------------------------------------- .text:1000539C .text:1000539C loc_1000539C ; CODE XREF: sub_10005130+30j .text:1000539C MOVL R3, 0x406 .text:100053A4 CMP R7, R3 .text:100053A8 BEQ loc_100054BC .text:100053AC MOVL R3, 0x407 .text:100053B4 CMP R7, R3 .text:100053B8 BEQ loc_10005450 .text:100053BC MOVL R3, 0x409 .text:100053C4 CMP R7, R3 .text:100053C8 BEQ loc_1000543C .text:100053CC MOVL R3, 0x40A .text:100053D4 CMP R7, R3 .text:100053D8 BEQ loc_10005428 .text:100053DC MOVL R3, 0x40B .text:100053E4 CMP R7, R3 .text:100053E8 MOVLEQ R2, 0x1FFF .text:100053F0 ANDEQ R3, R8, R2 .text:100053F4 ANDEQ R2, R2, R8,ASR#13 .text:100053F8 MOVEQ R1, R8,ASR#26 .text:100053FC MOVEQ R0, R6 .text:10005400 BLEQ sub_10003C38 .text:10005404 .text:10005404 loc_10005404 ; CODE XREF: sub_10005130+7Cj .text:10005404 ; sub_10005130+188j ... .text:10005404 MOV R3, R8 .text:10005408 MOV R2, R6 .text:1000540C MOV R1, R7 .text:10005410 MOV R0, R9 .text:10005414 BL DefWindowProcW .text:10005418 MOV R4, R0 .text:1000541C .text:1000541C loc_1000541C ; CODE XREF: sub_10005130+378j .text:1000541C LDR R0, [SP,#0x128+var_28] .text:10005420 BL sub_1000B1BC .text:10005424 B loc_100054D4 .text:10005428 ; --------------------------------------------------------------------------- .text:10005428 .text:10005428 loc_10005428 ; CODE XREF: sub_10005130+2A8j .text:10005428 LDR R0, [SP,#0x128+var_28] .text:1000542C BL sub_1000B1BC .text:10005430 MOVL R4, 0xC3B9 .text:10005438 B loc_100054D4 .text:1000543C ; --------------------------------------------------------------------------- .text:1000543C .text:1000543C loc_1000543C ; CODE XREF: sub_10005130+298j .text:1000543C LDR R0, [SP,#0x128+var_28] .text:10005440 BL sub_1000B1BC .text:10005444 LDR R3, =unk_1000E07C .text:10005448 LDR R4, [R3] .text:1000544C B loc_100054D4 .text:10005450 ; --------------------------------------------------------------------------- .text:10005450 .text:10005450 loc_10005450 ; CODE XREF: sub_10005130+288j .text:10005450 BL GetForegroundWindow .text:10005454 MOVS R4, R0 .text:10005458 BEQ loc_100054AC .text:1000545C MOV R0, R4 .text:10005460 BL IsWindow .text:10005464 CMP R0, #0 .text:10005468 BEQ loc_100054AC .text:1000546C LDR R5, =unk_1000E07C .text:10005470 MOV R2, #0x7F .text:10005474 ADD R1, SP, #0x128+var_128 .text:10005478 MOV R0, R9 .text:1000547C STR R4, [R5] .text:10005480 BL GetClassNameW .text:10005484 LDR R1, =aDesktopexplore .text:10005488 ADD R0, SP, #0x128+var_128 .text:1000548C BL wcscmp .text:10005490 CMP R0, #0 .text:10005494 BEQ loc_10005274 ; default .text:10005498 MOV R0, R4 .text:1000549C BL sub_100050A8 .text:100054A0 MOV R4, R0 .text:100054A4 STR R4, [R5] .text:100054A8 B loc_1000541C .text:100054AC ; --------------------------------------------------------------------------- .text:100054AC .text:100054AC loc_100054AC ; CODE XREF: sub_10005130+328j .text:100054AC ; sub_10005130+338j .text:100054AC LDR R3, =unk_1000E07C .text:100054B0 MOV R2, #0 .text:100054B4 STR R2, [R3] .text:100054B8 B loc_10005274 ; default .text:100054BC ; --------------------------------------------------------------------------- .text:100054BC .text:100054BC loc_100054BC ; CODE XREF: sub_10005130+278j .text:100054BC MOV R1, R8 .text:100054C0 MOV R0, R6 .text:100054C4 BL sub_10003990 .text:100054C8 .text:100054C8 loc_100054C8 ; CODE XREF: sub_10005130+204j .text:100054C8 LDR R0, [SP,#0x128+var_28] .text:100054CC BL sub_1000B1BC .text:100054D0 MOV R4, #1 .text:100054D4 .text:100054D4 loc_100054D4 ; CODE XREF: sub_10005130+B0j .text:100054D4 ; sub_10005130+C8j ... .text:100054D4 MOV R0, R4 .text:100054D8 ADD SP, SP, #0x104 .text:100054DC LDMFD SP!, {R4-R11,LR} .text:100054E0 BX LR .text:100054E0 ; End of function sub_10005130 .text:100054E0 .text:100054E0 ; --------------------------------------------------------------------------- .text:100054E4 off_100054E4 DCD unk_1000E07C ; DATA XREF: sub_10005130+314r .text:100054E4 ; sub_10005130+33Cr ... .text:100054E8 off_100054E8 DCD aDesktopexplore ; DATA XREF: sub_10005130+354r .text:100054E8 ; "DesktopExplorerWindow" .text:100054EC off_100054EC DCD unk_1000E078 ; DATA XREF: sub_10005130+18Cr .text:100054EC ; sub_10005130:loc_1000538Cr .text:100054F0 off_100054F0 DCD unk_1000C184 ; DATA XREF: sub_10005130+138r .text:100054F0 ; sub_10005130:loc_100052C8r ... .text:100054F4 off_100054F4 DCD unk_1000C190 ; DATA XREF: sub_10005130+110r .text:100054F4 ; sub_10005130:loc_100052E0r ... .text:100054F8 off_100054F8 DCD unk_1000C194 ; DATA XREF: sub_10005130+E8r .text:100054F8 ; sub_10005130:loc_100052F8r ... .text:100054FC off_100054FC DCD unk_1000C188 ; DATA XREF: sub_10005130+124r .text:100054FC ; sub_10005130:loc_100052D4r ... .text:10005500 off_10005500 DCD unk_1000C18C ; DATA XREF: sub_10005130+FCr .text:10005500 ; sub_10005130:loc_100052ECr ... .text:10005504 off_10005504 DCD unk_1000C198 ; DATA XREF: sub_10005130+D4r .text:10005504 ; sub_10005130:loc_10005304r ... .text:10005508 off_10005508 DCD unk_1000E080 ; DATA XREF: sub_10005130+A8r .text:10005508 ; sub_10005130:loc_10005310r ... .text:1000550C off_1000550C DCD unk_1000E060 ; DATA XREF: sub_10005130+BCr .text:10005510 off_10005510 DCD unk_1000C1B8 ; DATA XREF: sub_10005130+18r .text:10005514 .text:10005514 ; =============== S U B R O U T I N E ======================================= .text:10005514 .text:10005514 .text:10005514 sub_10005514 ; DATA XREF: .text:off_10004560o .text:10005514 ; .pdata:1000D1F8o .text:10005514 .text:10005514 var_78 = -0x78 .text:10005514 var_74 = -0x74 .text:10005514 var_70 = -0x70 .text:10005514 var_6C = -0x6C .text:10005514 var_68 = -0x68 .text:10005514 var_64 = -0x64 .text:10005514 var_60 = -0x60 .text:10005514 var_5C = -0x5C .text:10005514 var_58 = -0x58 .text:10005514 var_38 = -0x38 .text:10005514 var_34 = -0x34 .text:10005514 var_30 = -0x30 .text:10005514 var_2C = -0x2C .text:10005514 var_28 = -0x28 .text:10005514 var_24 = -0x24 .text:10005514 var_20 = -0x20 .text:10005514 var_1C = -0x1C .text:10005514 var_18 = -0x18 .text:10005514 var_14 = -0x14 .text:10005514 .text:10005514 STMFD SP!, {R4-R6,LR} .text:10005518 SUB SP, SP, #0x68 .text:1000551C MOV R4, R0 .text:10005520 LDR R3, =sub_10005130 .text:10005524 MOV R2, #0 .text:10005528 MOV R1, #0 .text:1000552C MOV LR, #0 .text:10005530 MOV R5, #0 .text:10005534 MOV R6, #0 .text:10005538 MOV R0, #0 .text:1000553C STR R3, [SP,#0x78+var_34] .text:10005540 STR R2, [SP,#0x78+var_38] .text:10005544 STR R1, [SP,#0x78+var_30] .text:10005548 STR LR, [SP,#0x78+var_2C] .text:1000554C STR R4, [SP,#0x78+var_28] .text:10005550 STR R5, [SP,#0x78+var_24] .text:10005554 STR R6, [SP,#0x78+var_20] .text:10005558 BL GetStockObject .text:1000555C LDR R5, =aTouchstubwnd_c .text:10005560 MOV R3, R0 .text:10005564 MOV R2, #0 .text:10005568 MOV R0, #0xFA0 .text:1000556C STR R5, [SP,#0x78+var_14] .text:10005570 STR R3, [SP,#0x78+var_1C] .text:10005574 STR R2, [SP,#0x78+var_18] .text:10005578 BL Sleep .text:1000557C ADD R0, SP, #0x78+var_38 .text:10005580 BL RegisterClassW .text:10005584 MOV R3, R0,LSL#16 .text:10005588 MOVS R3, R3,LSR#16 .text:1000558C MOV R0, #0 .text:10005590 BEQ loc_10005610 .text:10005594 LDR R2, =dword_100014C0 .text:10005598 MOV R6, #0 .text:1000559C MOV LR, #1 .text:100055A0 MOV R3, #0 .text:100055A4 MOV R1, R5 .text:100055A8 STR R6, [SP,#0x78+var_5C] .text:100055AC STR R4, [SP,#0x78+var_60] .text:100055B0 STR R6, [SP,#0x78+var_64] .text:100055B4 STR R6, [SP,#0x78+var_68] .text:100055B8 STR LR, [SP,#0x78+var_6C] .text:100055BC STR LR, [SP,#0x78+var_70] .text:100055C0 STR R6, [SP,#0x78+var_74] .text:100055C4 STR R6, [SP,#0x78+var_78] .text:100055C8 BL CreateWindowExW .text:100055CC CMP R0, #0 .text:100055D0 BEQ loc_1000560C .text:100055D4 MOV R1, #0 .text:100055D8 BL ShowWindow .text:100055DC B loc_100055F0 .text:100055E0 ; --------------------------------------------------------------------------- .text:100055E0 .text:100055E0 loc_100055E0 ; CODE XREF: sub_10005514+F4j .text:100055E0 ADD R0, SP, #0x78+var_58 .text:100055E4 BL TranslateMessage .text:100055E8 ADD R0, SP, #0x78+var_58 .text:100055EC BL DispatchMessageW .text:100055F0 .text:100055F0 loc_100055F0 ; CODE XREF: sub_10005514+C8j .text:100055F0 MOV R3, #0 .text:100055F4 MOV R2, #0 .text:100055F8 MOV R1, #0 .text:100055FC ADD R0, SP, #0x78+var_58 .text:10005600 BL GetMessageW .text:10005604 CMP R0, #0 .text:10005608 BNE loc_100055E0 .text:1000560C .text:1000560C loc_1000560C ; CODE XREF: sub_10005514+BCj .text:1000560C MOV R0, #0 .text:10005610 .text:10005610 loc_10005610 ; CODE XREF: sub_10005514+7Cj .text:10005610 ADD SP, SP, #0x68 .text:10005614 LDMFD SP!, {R4-R6,LR} .text:10005618 BX LR .text:10005618 ; End of function sub_10005514 .text:10005618 .text:10005618 ; --------------------------------------------------------------------------- .text:1000561C off_1000561C DCD dword_100014C0 ; DATA XREF: sub_10005514+80r .text:10005620 off_10005620 DCD aTouchstubwnd_c ; DATA XREF: sub_10005514+48r .text:10005620 ; "TOUCHSTUBWND_CLASS" .text:10005624 off_10005624 DCD sub_10005130 ; DATA XREF: sub_10005514+Cr .text:10005628 .text:10005628 ; =============== S U B R O U T I N E ======================================= .text:10005628 .text:10005628 .text:10005628 sub_10005628 ; CODE XREF: sub_10002208+5Cp .text:10005628 ; sub_100023E0+160p .text:10005628 ; DATA XREF: ... .text:10005628 .text:10005628 var_4 = -4 .text:10005628 arg_4 = 4 .text:10005628 .text:10005628 STR LR, [SP,#var_4]! .text:1000562C LDR R2, [R0] .text:10005630 MOVL R3, 0x4C05 .text:10005638 CMP R2, R3 .text:1000563C BEQ loc_1000566C .text:10005640 MOVL R3, 0x4C11 .text:10005648 CMP R2, R3 .text:1000564C BLS loc_10005660 .text:10005650 MOVL R3, 0x4C13 .text:10005658 CMP R2, R3 .text:1000565C BLS loc_1000566C .text:10005660 .text:10005660 loc_10005660 ; CODE XREF: sub_10005628+24j .text:10005660 MOV R0, #2 .text:10005664 LDR LR, [SP],#arg_4 .text:10005668 BX LR .text:1000566C ; --------------------------------------------------------------------------- .text:1000566C .text:1000566C loc_1000566C ; CODE XREF: sub_10005628+14j .text:1000566C ; sub_10005628+34j .text:1000566C BL sub_10005A88 .text:10005670 LDR LR, [SP],#arg_4 .text:10005674 BX LR .text:10005674 ; End of function sub_10005628 .text:10005674 .text:10005678 .text:10005678 ; =============== S U B R O U T I N E ======================================= .text:10005678 .text:10005678 .text:10005678 sub_10005678 ; CODE XREF: sub_10001EA8+38p .text:10005678 ; sub_10002208+34p ... .text:10005678 .text:10005678 var_4 = -4 .text:10005678 arg_4 = 4 .text:10005678 .text:10005678 STR LR, [SP,#var_4]! .text:1000567C LDR R2, [R0] @ RJK = [unk_c1c8] .text:10005680 MOVL R3, 0x4C05 .text:10005688 CMP R2, R3 .text:1000568C BEQ loc_100056BC .text:10005690 MOVL R3, 0x4C11 .text:10005698 CMP R2, R3 .text:1000569C BLS loc_100056B0 .text:100056A0 MOVL R3, 0x4C13 .text:100056A8 CMP R2, R3 .text:100056AC BLS loc_100056BC .text:100056B0 .text:100056B0 loc_100056B0 ; CODE XREF: sub_10005678+24j .text:100056B0 MOV R0, #2 .text:100056B4 LDR LR, [SP],#arg_4 .text:100056B8 BX LR .text:100056BC ; --------------------------------------------------------------------------- .text:100056BC .text:100056BC loc_100056BC ; CODE XREF: sub_10005678+14j .text:100056BC ; sub_10005678+34j .text:100056BC BL sub_100056C8 .text:100056C0 LDR LR, [SP],#arg_4 .text:100056C4 BX LR .text:100056C4 ; End of function sub_10005678 .text:100056C4 .text:100056C8 .text:100056C8 ; =============== S U B R O U T I N E ======================================= .text:100056C8 .text:100056C8 .text:100056C8 sub_100056C8 ; CODE XREF: sub_10005678:loc_100056BCp .text:100056C8 ; DATA XREF: .pdata:1000D210o .text:100056C8 .text:100056C8 var_48 = -0x48 .text:100056C8 var_4 = -4 .text:100056C8 arg_4 = 4 .text:100056C8 .text:100056C8 STR LR, [SP,#var_4]! .text:100056CC SUB SP, SP, #0x48 .text:100056D0 ADD R1, SP, #0x48+var_48 .text:100056D4 BL sub_10006618 @ RJK: Call to .text:100056D8 CMP R0, #0 .text:100056DC BNE loc_100056F4 .text:100056E0 ADD R0, SP, #0x48+var_48 .text:100056E4 BL sub_100065C8 .text:100056E8 ADD R0, SP, #0x48+var_48 .text:100056EC BL sub_10005BA0 .text:100056F0 MOV R0, #0 .text:100056F4 .text:100056F4 loc_100056F4 ; CODE XREF: sub_100056C8+14j .text:100056F4 ADD SP, SP, #0x48 .text:100056F8 LDR LR, [SP],#arg_4 .text:100056FC BX LR .text:100056FC ; End of function sub_100056C8 .text:100056FC .text:10005700 .text:10005700 ; =============== S U B R O U T I N E ======================================= .text:10005700 .text:10005700 .text:10005700 sub_10005700 ; DATA XREF: .text:off_10005B9Co .text:10005700 ; .pdata:1000D218o .text:10005700 .text:10005700 var_48 = -0x48 .text:10005700 var_4 = -4 .text:10005700 arg_4 = 4 .text:10005700 .text:10005700 STR LR, [SP,#var_4]! .text:10005704 SUB SP, SP, #0x48 .text:10005708 ADD R1, SP, #0x48+var_48 .text:1000570C BL sub_10006618 .text:10005710 CMP R0, #0 .text:10005714 BNE loc_10005724 .text:10005718 ADD R0, SP, #0x48+var_48 .text:1000571C BL sub_100065C8 .text:10005720 MOV R0, #0 .text:10005724 .text:10005724 loc_10005724 ; CODE XREF: sub_10005700+14j .text:10005724 ADD SP, SP, #0x48 .text:10005728 LDR LR, [SP],#arg_4 .text:1000572C BX LR .text:1000572C ; End of function sub_10005700 .text:1000572C .text:10005730 .text:10005730 ; =============== S U B R O U T I N E ======================================= .text:10005730 .text:10005730 .text:10005730 sub_10005730 ; DATA XREF: .text:off_10005B98o .text:10005730 ; .pdata:1000D220o .text:10005730 .text:10005730 var_48 = -0x48 .text:10005730 var_4 = -4 .text:10005730 arg_4 = 4 .text:10005730 .text:10005730 STR LR, [SP,#var_4]! .text:10005734 SUB SP, SP, #0x48 .text:10005738 ADD R1, SP, #0x48+var_48 .text:1000573C BL sub_10006618 .text:10005740 CMP R0, #0 .text:10005744 BNE loc_10005754 .text:10005748 ADD R0, SP, #0x48+var_48 .text:1000574C BL sub_10006584 .text:10005750 MOV R0, #0 .text:10005754 .text:10005754 loc_10005754 ; CODE XREF: sub_10005730+14j .text:10005754 ADD SP, SP, #0x48 .text:10005758 LDR LR, [SP],#arg_4 .text:1000575C BX LR .text:1000575C ; End of function sub_10005730 .text:1000575C .text:10005760 .text:10005760 ; =============== S U B R O U T I N E ======================================= .text:10005760 .text:10005760 .text:10005760 sub_10005760 ; DATA XREF: .text:off_10005B8Co .text:10005760 ; .pdata:1000D228o .text:10005760 .text:10005760 var_50 = -0x50 .text:10005760 .text:10005760 STMFD SP!, {R4,LR} .text:10005764 SUB SP, SP, #0x48 .text:10005768 MOV R4, R1 .text:1000576C ADD R1, SP, #0x50+var_50 .text:10005770 BL sub_10006618 .text:10005774 CMP R0, #0 .text:10005778 BNE loc_10005798 .text:1000577C ADD R0, SP, #0x50+var_50 .text:10005780 BL sub_100065FC .text:10005784 CMP R0, #0 .text:10005788 MOVNE R3, #1 .text:1000578C MOVEQ R3, #0 .text:10005790 STR R3, [R4] .text:10005794 MOV R0, #0 .text:10005798 .text:10005798 loc_10005798 ; CODE XREF: sub_10005760+18j .text:10005798 ADD SP, SP, #0x48 .text:1000579C LDMFD SP!, {R4,LR} .text:100057A0 BX LR .text:100057A0 ; End of function sub_10005760 .text:100057A0 .text:100057A4 .text:100057A4 ; =============== S U B R O U T I N E ======================================= .text:100057A4 .text:100057A4 .text:100057A4 sub_100057A4 ; DATA XREF: .text:off_10005B94o .text:100057A4 ; .pdata:1000D230o .text:100057A4 .text:100057A4 var_48 = -0x48 .text:100057A4 var_4 = -4 .text:100057A4 arg_4 = 4 .text:100057A4 .text:100057A4 STR LR, [SP,#var_4]! .text:100057A8 SUB SP, SP, #0x48 .text:100057AC ADD R1, SP, #0x48+var_48 .text:100057B0 BL sub_10006618 .text:100057B4 CMP R0, #0 .text:100057B8 BNE loc_100057C8 .text:100057BC ADD R0, SP, #0x48+var_48 .text:100057C0 BL sub_10006604 .text:100057C4 MOV R0, #0 .text:100057C8 .text:100057C8 loc_100057C8 ; CODE XREF: sub_100057A4+14j .text:100057C8 ADD SP, SP, #0x48 .text:100057CC LDR LR, [SP],#arg_4 .text:100057D0 BX LR .text:100057D0 ; End of function sub_100057A4 .text:100057D0 .text:100057D4 .text:100057D4 ; =============== S U B R O U T I N E ======================================= .text:100057D4 .text:100057D4 .text:100057D4 sub_100057D4 ; DATA XREF: .text:off_10005B90o .text:100057D4 ; .pdata:1000D238o .text:100057D4 .text:100057D4 var_50 = -0x50 .text:100057D4 .text:100057D4 STMFD SP!, {R4,LR} .text:100057D8 SUB SP, SP, #0x48 .text:100057DC MOV R4, R1 .text:100057E0 ADD R1, SP, #0x50+var_50 .text:100057E4 BL sub_10006618 .text:100057E8 CMP R0, #0 .text:100057EC BNE loc_1000580C .text:100057F0 ADD R0, SP, #0x50+var_50 .text:100057F4 BL sub_10005F04 .text:100057F8 CMP R0, #0 .text:100057FC MOVNE R3, #0 .text:10005800 MOVEQ R3, #1 .text:10005804 STR R3, [R4] .text:10005808 MOV R0, #0 .text:1000580C .text:1000580C loc_1000580C ; CODE XREF: sub_100057D4+18j .text:1000580C ADD SP, SP, #0x48 .text:10005810 LDMFD SP!, {R4,LR} .text:10005814 BX LR .text:10005814 ; End of function sub_100057D4 .text:10005814 .text:10005818 .text:10005818 ; =============== S U B R O U T I N E ======================================= .text:10005818 .text:10005818 .text:10005818 sub_10005818 ; DATA XREF: .text:off_10005B7Co .text:10005818 ; .pdata:1000D240o .text:10005818 .text:10005818 var_54 = -0x54 .text:10005818 .text:10005818 STMFD SP!, {R4,R5,LR} .text:1000581C SUB SP, SP, #0x48 .text:10005820 MOV R4, R2 .text:10005824 MOV R5, R1 .text:10005828 ADD R1, SP, #0x54+var_54 .text:1000582C BL sub_10006618 .text:10005830 CMP R0, #0 .text:10005834 BNE loc_1000585C .text:10005838 MOV R2, R4 .text:1000583C MOV R1, R5 .text:10005840 ADD R0, SP, #0x54+var_54 .text:10005844 BL sub_10006070 .text:10005848 CMP R0, #0 .text:1000584C BEQ loc_10005858 .text:10005850 BL sub_10006724 .text:10005854 B loc_1000585C .text:10005858 ; --------------------------------------------------------------------------- .text:10005858 .text:10005858 loc_10005858 ; CODE XREF: sub_10005818+34j .text:10005858 MOV R0, #0 .text:1000585C .text:1000585C loc_1000585C ; CODE XREF: sub_10005818+1Cj .text:1000585C ; sub_10005818+3Cj .text:1000585C ADD SP, SP, #0x48 .text:10005860 LDMFD SP!, {R4,R5,LR} .text:10005864 BX LR .text:10005864 ; End of function sub_10005818 .text:10005864 .text:10005868 .text:10005868 ; =============== S U B R O U T I N E ======================================= .text:10005868 .text:10005868 .text:10005868 sub_10005868 ; DATA XREF: .text:off_10005B78o .text:10005868 ; .pdata:1000D248o .text:10005868 .text:10005868 var_54 = -0x54 .text:10005868 .text:10005868 STMFD SP!, {R4,R5,LR} .text:1000586C SUB SP, SP, #0x48 .text:10005870 MOV R4, R2 .text:10005874 MOV R5, R1 .text:10005878 ADD R1, SP, #0x54+var_54 .text:1000587C BL sub_10006618 .text:10005880 CMP R0, #0 .text:10005884 BNE loc_100058AC .text:10005888 MOV R2, R4 .text:1000588C MOV R1, R5 .text:10005890 ADD R0, SP, #0x54+var_54 .text:10005894 BL sub_1000645C .text:10005898 CMP R0, #0 .text:1000589C BEQ loc_100058A8 .text:100058A0 BL sub_10006724 .text:100058A4 B loc_100058AC .text:100058A8 ; --------------------------------------------------------------------------- .text:100058A8 .text:100058A8 loc_100058A8 ; CODE XREF: sub_10005868+34j .text:100058A8 MOV R0, #0 .text:100058AC .text:100058AC loc_100058AC ; CODE XREF: sub_10005868+1Cj .text:100058AC ; sub_10005868+3Cj .text:100058AC ADD SP, SP, #0x48 .text:100058B0 LDMFD SP!, {R4,R5,LR} .text:100058B4 BX LR .text:100058B4 ; End of function sub_10005868 .text:100058B4 .text:100058B8 .text:100058B8 ; =============== S U B R O U T I N E ======================================= .text:100058B8 .text:100058B8 .text:100058B8 sub_100058B8 ; DATA XREF: .text:off_10005B74o .text:100058B8 ; .pdata:1000D250o .text:100058B8 .text:100058B8 var_54 = -0x54 .text:100058B8 .text:100058B8 STMFD SP!, {R4,R5,LR} .text:100058BC SUB SP, SP, #0x48 .text:100058C0 MOV R5, R1 .text:100058C4 ADD R1, SP, #0x54+var_54 .text:100058C8 BL sub_10006618 .text:100058CC MOVS R4, R0 .text:100058D0 MOVEQ R1, R5 .text:100058D4 ADDEQ R0, SP, #0x54+var_54 .text:100058D8 BLEQ sub_10005C04 .text:100058DC MOV R0, R4 .text:100058E0 ADD SP, SP, #0x48 .text:100058E4 LDMFD SP!, {R4,R5,LR} .text:100058E8 BX LR .text:100058E8 ; End of function sub_100058B8 .text:100058E8 .text:100058EC .text:100058EC ; =============== S U B R O U T I N E ======================================= .text:100058EC .text:100058EC .text:100058EC sub_100058EC ; CODE XREF: sub_1000596C+20p .text:100058EC ; sub_100059C8+20p ... .text:100058EC CMP R0, #0xA ; switch 11 cases .text:100058F0 BHI loc_10005964 ; default .text:100058F4 ADR R3, off_10005900 .text:100058F8 LDRB R3, [R3,R0] .text:100058FC ADD PC, PC, R3 ; switch jump .text:100058FC ; --------------------------------------------------------------------------- .text:10005900 off_10005900 DCB loc_1000590C - off_10005904 ; DATA XREF: sub_100058EC+8o .text:10005900 ; jump table for switch statement .text:10005901 DCB loc_10005914 - off_10005904 ; jumptable 100058FC case 1 .text:10005902 DCB loc_1000591C - off_10005904 ; jumptable 100058FC case 2 .text:10005903 DCB loc_10005924 - off_10005904 ; jumptable 100058FC case 3 .text:10005904 off_10005904 DCB loc_1000592C - off_10005904 .text:10005904 ; DATA XREF: sub_100058EC:off_10005900o .text:10005904 ; sub_100058EC+15o ... .text:10005904 ; jumptable 100058FC case 4 .text:10005905 DCB loc_10005934 - off_10005904 ; jumptable 100058FC case 5 .text:10005906 DCB loc_1000593C - off_10005904 ; jumptable 100058FC case 6 .text:10005907 DCB loc_10005944 - off_10005904 ; jumptable 100058FC case 7 .text:10005908 DCB loc_1000594C - off_10005904 ; jumptable 100058FC case 8 .text:10005909 DCB loc_10005954 - off_10005904 ; jumptable 100058FC case 9 .text:1000590A DCB loc_1000595C - off_10005904 ; jumptable 100058FC case 10 .text:1000590B DCB 0x58 .text:1000590C ; --------------------------------------------------------------------------- .text:1000590C .text:1000590C loc_1000590C ; CODE XREF: sub_100058EC+10j .text:1000590C ; DATA XREF: sub_100058EC:off_10005900o .text:1000590C MOV R0, #1 ; jumptable 100058FC case 0 .text:10005910 BX LR .text:10005914 ; --------------------------------------------------------------------------- .text:10005914 .text:10005914 loc_10005914 ; CODE XREF: sub_100058EC+10j .text:10005914 ; DATA XREF: sub_100058EC+15o .text:10005914 MOV R0, #2 ; jumptable 100058FC case 1 .text:10005918 BX LR .text:1000591C ; --------------------------------------------------------------------------- .text:1000591C .text:1000591C loc_1000591C ; CODE XREF: sub_100058EC+10j .text:1000591C ; DATA XREF: sub_100058EC+16o .text:1000591C MOV R0, #5 ; jumptable 100058FC case 2 .text:10005920 BX LR .text:10005924 ; --------------------------------------------------------------------------- .text:10005924 .text:10005924 loc_10005924 ; CODE XREF: sub_100058EC+10j .text:10005924 ; DATA XREF: sub_100058EC+17o .text:10005924 MOV R0, #4 ; jumptable 100058FC case 3 .text:10005928 BX LR .text:1000592C ; --------------------------------------------------------------------------- .text:1000592C .text:1000592C loc_1000592C ; CODE XREF: sub_100058EC+10j .text:1000592C ; DATA XREF: sub_100058EC:off_10005904o .text:1000592C MOV R0, #9 ; jumptable 100058FC case 4 .text:10005930 BX LR .text:10005934 ; --------------------------------------------------------------------------- .text:10005934 .text:10005934 loc_10005934 ; CODE XREF: sub_100058EC+10j .text:10005934 ; DATA XREF: sub_100058EC+19o .text:10005934 MOV R0, #0xA ; jumptable 100058FC case 5 .text:10005938 BX LR .text:1000593C ; --------------------------------------------------------------------------- .text:1000593C .text:1000593C loc_1000593C ; CODE XREF: sub_100058EC+10j .text:1000593C ; DATA XREF: sub_100058EC+1Ao .text:1000593C MOV R0, #0xB ; jumptable 100058FC case 6 .text:10005940 BX LR .text:10005944 ; --------------------------------------------------------------------------- .text:10005944 .text:10005944 loc_10005944 ; CODE XREF: sub_100058EC+10j .text:10005944 ; DATA XREF: sub_100058EC+1Bo .text:10005944 MOV R0, #0xC ; jumptable 100058FC case 7 .text:10005948 BX LR .text:1000594C ; --------------------------------------------------------------------------- .text:1000594C .text:1000594C loc_1000594C ; CODE XREF: sub_100058EC+10j .text:1000594C ; DATA XREF: sub_100058EC+1Co .text:1000594C MOV R0, #0xD ; jumptable 100058FC case 8 .text:10005950 BX LR .text:10005954 ; --------------------------------------------------------------------------- .text:10005954 .text:10005954 loc_10005954 ; CODE XREF: sub_100058EC+10j .text:10005954 ; DATA XREF: sub_100058EC+1Do .text:10005954 MOV R0, #0xE ; jumptable 100058FC case 9 .text:10005958 BX LR .text:1000595C ; --------------------------------------------------------------------------- .text:1000595C .text:1000595C loc_1000595C ; CODE XREF: sub_100058EC+10j .text:1000595C ; DATA XREF: sub_100058EC+1Eo .text:1000595C MOV R0, #0xF ; jumptable 100058FC case 10 .text:10005960 BX LR .text:10005964 ; --------------------------------------------------------------------------- .text:10005964 .text:10005964 loc_10005964 ; CODE XREF: sub_100058EC+4j .text:10005964 MOV R0, #0 ; default .text:10005968 BX LR .text:10005968 ; End of function sub_100058EC .text:10005968 .text:1000596C .text:1000596C ; =============== S U B R O U T I N E ======================================= .text:1000596C .text:1000596C .text:1000596C sub_1000596C ; DATA XREF: .text:off_10005B88o .text:1000596C ; .pdata:1000D260o .text:1000596C .text:1000596C var_50 = -0x50 .text:1000596C .text:1000596C STMFD SP!, {R4,LR} .text:10005970 SUB SP, SP, #0x48 .text:10005974 MOV R4, R1 .text:10005978 ADD R1, SP, #0x50+var_50 .text:1000597C BL sub_10006618 .text:10005980 CMP R0, #0 .text:10005984 BNE loc_100059BC .text:10005988 MOV R0, R4 .text:1000598C BL sub_100058EC .text:10005990 CMP R0, #0 .text:10005994 MOVEQ R0, #2 .text:10005998 BEQ loc_100059BC .text:1000599C MOV R1, R0 .text:100059A0 ADD R0, SP, #0x50+var_50 .text:100059A4 BL sub_10006EB8 .text:100059A8 CMP R0, #0 .text:100059AC BEQ loc_100059B8 .text:100059B0 BL sub_10006724 .text:100059B4 B loc_100059BC .text:100059B8 ; --------------------------------------------------------------------------- .text:100059B8 .text:100059B8 loc_100059B8 ; CODE XREF: sub_1000596C+40j .text:100059B8 MOV R0, #0 .text:100059BC .text:100059BC loc_100059BC ; CODE XREF: sub_1000596C+18j .text:100059BC ; sub_1000596C+2Cj ... .text:100059BC ADD SP, SP, #0x48 .text:100059C0 LDMFD SP!, {R4,LR} .text:100059C4 BX LR .text:100059C4 ; End of function sub_1000596C .text:100059C4 .text:100059C8 .text:100059C8 ; =============== S U B R O U T I N E ======================================= .text:100059C8 .text:100059C8 .text:100059C8 sub_100059C8 ; DATA XREF: .text:off_10005B84o .text:100059C8 ; .pdata:1000D268o .text:100059C8 .text:100059C8 var_50 = -0x50 .text:100059C8 .text:100059C8 STMFD SP!, {R4,LR} .text:100059CC SUB SP, SP, #0x48 .text:100059D0 MOV R4, R1 .text:100059D4 ADD R1, SP, #0x50+var_50 .text:100059D8 BL sub_10006618 .text:100059DC CMP R0, #0 .text:100059E0 BNE loc_10005A18 .text:100059E4 MOV R0, R4 .text:100059E8 BL sub_100058EC .text:100059EC CMP R0, #0 .text:100059F0 MOVEQ R0, #2 .text:100059F4 BEQ loc_10005A18 .text:100059F8 MOV R1, R0 .text:100059FC ADD R0, SP, #0x50+var_50 .text:10005A00 BL sub_10007030 .text:10005A04 CMP R0, #0 .text:10005A08 BEQ loc_10005A14 .text:10005A0C BL sub_10006724 .text:10005A10 B loc_10005A18 .text:10005A14 ; --------------------------------------------------------------------------- .text:10005A14 .text:10005A14 loc_10005A14 ; CODE XREF: sub_100059C8+40j .text:10005A14 MOV R0, #0 .text:10005A18 .text:10005A18 loc_10005A18 ; CODE XREF: sub_100059C8+18j .text:10005A18 ; sub_100059C8+2Cj ... .text:10005A18 ADD SP, SP, #0x48 .text:10005A1C LDMFD SP!, {R4,LR} .text:10005A20 BX LR .text:10005A20 ; End of function sub_100059C8 .text:10005A20 .text:10005A24 .text:10005A24 ; =============== S U B R O U T I N E ======================================= .text:10005A24 .text:10005A24 .text:10005A24 sub_10005A24 ; DATA XREF: .text:off_10005B80o .text:10005A24 ; .pdata:1000D270o .text:10005A24 .text:10005A24 var_54 = -0x54 .text:10005A24 .text:10005A24 STMFD SP!, {R4,R5,LR} .text:10005A28 SUB SP, SP, #0x48 .text:10005A2C MOV R5, R2 .text:10005A30 MOV R4, R1 .text:10005A34 ADD R1, SP, #0x54+var_54 .text:10005A38 BL sub_10006618 .text:10005A3C CMP R0, #0 .text:10005A40 BNE loc_10005A7C .text:10005A44 MOV R0, R4 .text:10005A48 BL sub_100058EC .text:10005A4C CMP R0, #0 .text:10005A50 MOVEQ R0, #2 .text:10005A54 BEQ loc_10005A7C .text:10005A58 MOV R1, R0 .text:10005A5C ADD R0, SP, #0x54+var_54 .text:10005A60 MOV R2, R5 .text:10005A64 BL sub_10007174 .text:10005A68 CMP R0, #0 .text:10005A6C BEQ loc_10005A78 .text:10005A70 BL sub_10006724 .text:10005A74 B loc_10005A7C .text:10005A78 ; --------------------------------------------------------------------------- .text:10005A78 .text:10005A78 loc_10005A78 ; CODE XREF: sub_10005A24+48j .text:10005A78 MOV R0, #0 .text:10005A7C .text:10005A7C loc_10005A7C ; CODE XREF: sub_10005A24+1Cj .text:10005A7C ; sub_10005A24+30j ... .text:10005A7C ADD SP, SP, #0x48 .text:10005A80 LDMFD SP!, {R4,R5,LR} .text:10005A84 BX LR .text:10005A84 ; End of function sub_10005A24 .text:10005A84 .text:10005A88 .text:10005A88 ; =============== S U B R O U T I N E ======================================= .text:10005A88 .text:10005A88 .text:10005A88 sub_10005A88 ; CODE XREF: sub_10005628:loc_1000566Cp .text:10005A88 ; DATA XREF: .pdata:1000D278o .text:10005A88 .text:10005A88 var_68 = -0x68 .text:10005A88 var_4C = -0x4C .text:10005A88 var_44 = -0x44 .text:10005A88 .text:10005A88 STMFD SP!, {R4-R10,LR} .text:10005A8C SUB SP, SP, #0x48 .text:10005A90 MOV R10, R0 .text:10005A94 ADD R1, SP, #0x68+var_68 .text:10005A98 BL sub_10006618 .text:10005A9C CMP R0, #0 .text:10005AA0 BNE loc_10005B68 .text:10005AA4 LDR R3, [SP,#0x68+var_4C] .text:10005AA8 ADD R0, SP, #0x68+var_68 .text:10005AAC ORR R3, R3, #8 .text:10005AB0 STR R3, [SP,#0x68+var_4C] .text:10005AB4 BL sub_10005D58 .text:10005AB8 CMP R0, #0 .text:10005ABC BEQ loc_10005AC8 .text:10005AC0 BL sub_10006724 .text:10005AC4 B loc_10005B68 .text:10005AC8 ; --------------------------------------------------------------------------- .text:10005AC8 .text:10005AC8 loc_10005AC8 ; CODE XREF: sub_10005A88+34j .text:10005AC8 LDRH R3, [SP,#0x68+var_44] .text:10005ACC MOVL R2, 0x4C05 .text:10005AD4 CMP R3, R2 .text:10005AD8 BEQ loc_10005AFC .text:10005ADC MOVL R2, 0x4C12 .text:10005AE4 CMP R3, R2 .text:10005AE8 BEQ loc_10005AFC .text:10005AEC MOVL R2, 0x4C13 .text:10005AF4 CMP R3, R2 .text:10005AF8 BNE loc_10005B00 .text:10005AFC .text:10005AFC loc_10005AFC ; CODE XREF: sub_10005A88+50j .text:10005AFC ; sub_10005A88+60j .text:10005AFC STR R2, [R10] .text:10005B00 .text:10005B00 loc_10005B00 ; CODE XREF: sub_10005A88+70j .text:10005B00 LDR R3, =sub_10005700 .text:10005B04 LDR R2, =sub_10005730 .text:10005B08 LDR R0, =sub_100057A4 .text:10005B0C LDR LR, =sub_100057D4 .text:10005B10 LDR R1, =sub_10005760 .text:10005B14 LDR R4, =sub_1000596C .text:10005B18 LDR R5, =sub_100059C8 .text:10005B1C LDR R6, =sub_10005A24 .text:10005B20 LDR R7, =sub_10005818 .text:10005B24 LDR R8, =sub_10005868 .text:10005B28 LDR R9, =sub_100058B8 .text:10005B2C STR R3, [R10,#0x44] .text:10005B30 MOV R3, #0xFF0 .text:10005B34 STR R2, [R10,#0x48] .text:10005B38 ORR R3, R3, #0xF .text:10005B3C MOV R2, #0x100 .text:10005B40 ADD R12, R10, #0x50 .text:10005B44 STMIA R12, {R0,LR} .text:10005B48 MOV R0, #0 .text:10005B4C STR R3, [R10,#0x34] .text:10005B50 STR R3, [R10,#0x38] .text:10005B54 STR R1, [R10,#0x4C] .text:10005B58 ADD R12, R10, #0x58 .text:10005B5C STMIA R12, {R4-R9} .text:10005B60 STR R2, [R10,#0x3C] .text:10005B64 STR R2, [R10,#0x40] .text:10005B68 .text:10005B68 loc_10005B68 ; CODE XREF: sub_10005A88+18j .text:10005B68 ; sub_10005A88+3Cj .text:10005B68 ADD SP, SP, #0x48 .text:10005B6C LDMFD SP!, {R4-R10,LR} .text:10005B70 BX LR .text:10005B70 ; End of function sub_10005A88 .text:10005B70 .text:10005B70 ; --------------------------------------------------------------------------- .text:10005B74 off_10005B74 DCD sub_100058B8 ; DATA XREF: sub_10005A88+A0r .text:10005B78 off_10005B78 DCD sub_10005868 ; DATA XREF: sub_10005A88+9Cr .text:10005B7C off_10005B7C DCD sub_10005818 ; DATA XREF: sub_10005A88+98r .text:10005B80 off_10005B80 DCD sub_10005A24 ; DATA XREF: sub_10005A88+94r .text:10005B84 off_10005B84 DCD sub_100059C8 ; DATA XREF: sub_10005A88+90r .text:10005B88 off_10005B88 DCD sub_1000596C ; DATA XREF: sub_10005A88+8Cr .text:10005B8C off_10005B8C DCD sub_10005760 ; DATA XREF: sub_10005A88+88r .text:10005B90 off_10005B90 DCD sub_100057D4 ; DATA XREF: sub_10005A88+84r .text:10005B94 off_10005B94 DCD sub_100057A4 ; DATA XREF: sub_10005A88+80r .text:10005B98 off_10005B98 DCD sub_10005730 ; DATA XREF: sub_10005A88+7Cr .text:10005B9C off_10005B9C DCD sub_10005700 ; DATA XREF: sub_10005A88:loc_10005B00r .text:10005BA0 .text:10005BA0 ; =============== S U B R O U T I N E ======================================= .text:10005BA0 .text:10005BA0 .text:10005BA0 sub_10005BA0 ; CODE XREF: sub_100056C8+24p .text:10005BA0 ; DATA XREF: .pdata:1000D280o .text:10005BA0 STMFD SP!, {R4,LR} .text:10005BA4 MOV R4, R0 .text:10005BA8 MOV R2, #0x7000 .text:10005BAC MOV R1, #0 .text:10005BB0 BL sub_10007B0C .text:10005BB4 MOV R0, R4 .text:10005BB8 BL sub_10006998 .text:10005BBC MOV R1, #0 .text:10005BC0 MOV R0, R4 .text:10005BC4 BL sub_10007274 .text:10005BC8 LDMFD SP!, {R4,LR} .text:10005BCC BX LR .text:10005BCC ; End of function sub_10005BA0 .text:10005BCC .text:10005BD0 .text:10005BD0 ; =============== S U B R O U T I N E ======================================= .text:10005BD0 .text:10005BD0 .text:10005BD0 sub_10005BD0 ; CODE XREF: sub_10005D58+84p .text:10005BD0 ; sub_10005F74+3Cp .text:10005BD0 ; DATA XREF: ... .text:10005BD0 STMFD SP!, {R4,LR} .text:10005BD4 MOV R2, R1 .text:10005BD8 MOV R4, R0 .text:10005BDC MOV R1, #0 .text:10005BE0 BL sub_10007740 .text:10005BE4 CMP R0, #0 .text:10005BE8 BNE loc_10005BFC .text:10005BEC MOV R0, R4 .text:10005BF0 BL sub_10008268 .text:10005BF4 CMP R0, #0 .text:10005BF8 MOVEQ R0, #0 .text:10005BFC .text:10005BFC loc_10005BFC ; CODE XREF: sub_10005BD0+18j .text:10005BFC LDMFD SP!, {R4,LR} .text:10005C00 BX LR .text:10005C00 ; End of function sub_10005BD0 .text:10005C00 .text:10005C04 .text:10005C04 ; =============== S U B R O U T I N E ======================================= .text:10005C04 .text:10005C04 .text:10005C04 sub_10005C04 ; CODE XREF: sub_100058B8+20p .text:10005C04 ; DATA XREF: .pdata:1000D290o .text:10005C04 STMFD SP!, {R4,R5,LR} .text:10005C08 MOV R4, R1 .text:10005C0C MOV R5, R0 .text:10005C10 MOV R1, #3 .text:10005C14 BL sub_10007030 .text:10005C18 MOV R2, #0x4000 .text:10005C1C MOV R1, #0 .text:10005C20 MOV R0, R5 .text:10005C24 BL sub_10007B0C .text:10005C28 CMP R4, #0 .text:10005C2C BEQ loc_10005C64 .text:10005C30 MOVL R2, 0x4009 .text:10005C38 MOV R1, #0x78 .text:10005C3C MOV R0, R5 .text:10005C40 BL sub_1000741C .text:10005C44 MOV R2, #6 .text:10005C48 MOV R1, #0x76 .text:10005C4C MOV R0, R5 .text:10005C50 BL sub_1000741C .text:10005C54 MOV R2, #0 .text:10005C58 MOV R1, #0x74 .text:10005C5C MOV R0, R5 .text:10005C60 BL sub_1000741C .text:10005C64 .text:10005C64 loc_10005C64 ; CODE XREF: sub_10005C04+28j .text:10005C64 MOV R0, #0 .text:10005C68 LDMFD SP!, {R4,R5,LR} .text:10005C6C BX LR .text:10005C6C ; End of function sub_10005C04 .text:10005C6C .text:10005C70 .text:10005C70 ; =============== S U B R O U T I N E ======================================= .text:10005C70 .text:10005C70 .text:10005C70 sub_10005C70 ; CODE XREF: sub_1000645C+B4p .text:10005C70 ; DATA XREF: .pdata:1000D298o .text:10005C70 STMFD SP!, {R4-R8,LR} .text:10005C74 MOV R7, R2 .text:10005C78 MOV R8, R1 .text:10005C7C LDR R3, [R0,#4] .text:10005C80 MOV R5, #0 .text:10005C84 MOV R6, #0 .text:10005C88 ADD R0, R3, #0x24 .text:10005C8C LDRB R3, [R0,#0x4A] .text:10005C90 MOV R4, #0 .text:10005C94 CMP R3, #0 .text:10005C98 LDREQ R0, =0xEEEE0024 .text:10005C9C LDMEQFD SP!, {R4-R8,LR} .text:10005CA0 BXEQ LR .text:10005CA4 LDRB R3, [R0,#0x4A] .text:10005CA8 MOV LR, #0 .text:10005CAC CMP R3, #0 .text:10005CB0 BEQ loc_10005CF8 .text:10005CB4 ADD R1, R0, #4 .text:10005CB8 .text:10005CB8 loc_10005CB8 ; CODE XREF: sub_10005C70+7Cj .text:10005CB8 LDR R3, [R1] .text:10005CBC ADD LR, LR, #1 .text:10005CC0 CMP R3, #0 .text:10005CC4 SUBNE R3, R1, #4 .text:10005CC8 LDRNEH R2, [R3] .text:10005CCC SUBNE R3, R1, #2 .text:10005CD0 LDRNEH R3, [R3] .text:10005CD4 ADDNE R4, R4, #1 .text:10005CD8 ADDNE R5, R5, R2 .text:10005CDC ADDNE R6, R6, R3 .text:10005CE0 LDRB R3, [R0,#0x4A] .text:10005CE4 ADD R1, R1, #0xC .text:10005CE8 CMP LR, R3 .text:10005CEC BLT loc_10005CB8 .text:10005CF0 CMP R4, #0 .text:10005CF4 BNE loc_10005D20 .text:10005CF8 .text:10005CF8 loc_10005CF8 ; CODE XREF: sub_10005C70+40j .text:10005CF8 LDRB R3, [R0,#0x49] .text:10005CFC ADD R3, R3, R3,LSL#1 .text:10005D00 ADD R3, R0, R3,LSL#2 .text:10005D04 LDRH R3, [R3] .text:10005D08 STRH R3, [R8] .text:10005D0C LDRB R3, [R0,#0x49] .text:10005D10 ADD R3, R3, R3,LSL#1 .text:10005D14 ADD R3, R0, R3,LSL#2 .text:10005D18 LDRH R3, [R3,#2] .text:10005D1C B loc_10005D44 .text:10005D20 ; --------------------------------------------------------------------------- .text:10005D20 .text:10005D20 loc_10005D20 ; CODE XREF: sub_10005C70+84j .text:10005D20 MOV R0, R4 .text:10005D24 MOV R1, R5 .text:10005D28 BL __rt_udiv .text:10005D2C MOV R3, R0 .text:10005D30 MOV R0, R4 .text:10005D34 MOV R1, R6 .text:10005D38 STRH R3, [R8] .text:10005D3C BL __rt_udiv .text:10005D40 MOV R3, R0 .text:10005D44 .text:10005D44 loc_10005D44 ; CODE XREF: sub_10005C70+ACj .text:10005D44 STRH R3, [R7] .text:10005D48 MOV R0, #0 .text:10005D4C LDMFD SP!, {R4-R8,LR} .text:10005D50 BX LR .text:10005D50 ; End of function sub_10005C70 .text:10005D50 .text:10005D50 ; --------------------------------------------------------------------------- .text:10005D54 dword_10005D54 DCD 0xEEEE0024 ; DATA XREF: sub_10005C70+28r .text:10005D58 .text:10005D58 ; =============== S U B R O U T I N E ======================================= .text:10005D58 .text:10005D58 .text:10005D58 sub_10005D58 ; CODE XREF: sub_10005A88+2Cp .text:10005D58 ; DATA XREF: .pdata:1000D2A0o .text:10005D58 .text:10005D58 var_10 = -0x10 .text:10005D58 .text:10005D58 STMFD SP!, {R4,R5,LR} .text:10005D5C SUB SP, SP, #4 .text:10005D60 MOV R4, R0 .text:10005D64 LDR R3, [R4,#0x14] .text:10005D68 MOV R2, #0 .text:10005D6C STRH R2, [SP,#0x10+var_10] .text:10005D70 MOVS R2, R3 .text:10005D74 BEQ loc_10005D98 .text:10005D78 LDR R3, [R4,#0x1C] .text:10005D7C TST R3, #2 .text:10005D80 BEQ loc_10005D98 .text:10005D84 MOV LR, PC .text:10005D88 BX R2 .text:10005D8C CMP R0, #0 .text:10005D90 LDREQ R5, =0xEEEE0003 .text:10005D94 BEQ loc_10005EE0 .text:10005D98 .text:10005D98 loc_10005D98 ; CODE XREF: sub_10005D58+1Cj .text:10005D98 ; sub_10005D58+28j .text:10005D98 MOV R1, #0 .text:10005D9C MOV R0, R4 .text:10005DA0 BL sub_10007FF4 .text:10005DA4 MOVS R5, R0 .text:10005DA8 BEQ loc_10005DB8 .text:10005DAC LDR R0, =aWm97initError .text:10005DB0 BL NKDbgPrintfW .text:10005DB4 B loc_10005EB4 .text:10005DB8 ; --------------------------------------------------------------------------- .text:10005DB8 .text:10005DB8 loc_10005DB8 ; CODE XREF: sub_10005D58+50j .text:10005DB8 MOV R0, R4 .text:10005DBC BL sub_10006884 .text:10005DC0 MOVS R5, R0 .text:10005DC4 BEQ loc_10005DD4 .text:10005DC8 LDR R0, =aWm97auxadcinit .text:10005DCC BL NKDbgPrintfW .text:10005DD0 B loc_10005EA8 .text:10005DD4 ; --------------------------------------------------------------------------- .text:10005DD4 .text:10005DD4 loc_10005DD4 ; CODE XREF: sub_10005D58+6Cj .text:10005DD4 MOV R1, #0x2000 .text:10005DD8 MOV R0, R4 .text:10005DDC BL sub_10005BD0 .text:10005DE0 MOVS R5, R0 .text:10005DE4 BEQ loc_10005DF4 .text:10005DE8 LDR R0, =aWm97touchpower .text:10005DEC BL NKDbgPrintfW .text:10005DF0 B loc_10005EA0 .text:10005DF4 ; --------------------------------------------------------------------------- .text:10005DF4 .text:10005DF4 loc_10005DF4 ; CODE XREF: sub_10005D58+8Cj .text:10005DF4 ADD R2, SP, #0x10+var_10 .text:10005DF8 MOV R1, #0x78 .text:10005DFC MOV R0, R4 .text:10005E00 BL sub_1000730C .text:10005E04 MOVS R5, R0 .text:10005E08 BEQ loc_10005E18 .text:10005E0C LDR R0, =aWm97readDigiti .text:10005E10 BL NKDbgPrintfW .text:10005E14 B loc_10005E90 .text:10005E18 ; --------------------------------------------------------------------------- .text:10005E18 .text:10005E18 loc_10005E18 ; CODE XREF: sub_10005D58+B0j .text:10005E18 LDRH R1, [SP,#0x10+var_10] .text:10005E1C MOVL R3, 0xEFFE .text:10005E24 AND R3, R1, R3 .text:10005E28 ORR R3, R3, #1 .text:10005E2C MOV R2, #0x100 .text:10005E30 MOV R1, #0x5A .text:10005E34 MOV R0, R4 .text:10005E38 STRH R3, [SP,#0x10+var_10] .text:10005E3C BL sub_1000741C .text:10005E40 MOV R2, #0x80 .text:10005E44 MOV R1, #0x4C .text:10005E48 MOV R0, R4 .text:10005E4C BL sub_1000757C .text:10005E50 MOVS R5, R0 .text:10005E54 BNE loc_10005E90 .text:10005E58 MOV R2, #0x80 .text:10005E5C MOV R1, #0x56 .text:10005E60 MOV R0, R4 .text:10005E64 BL sub_1000757C .text:10005E68 MOVS R5, R0 .text:10005E6C BNE loc_10005E90 .text:10005E70 LDRH R3, [SP,#0x10+var_10] .text:10005E74 MOV R1, #0x78 .text:10005E78 MOV R0, R4 .text:10005E7C ORR R2, R3, #8 .text:10005E80 STRH R2, [SP,#0x10+var_10] .text:10005E84 BL sub_1000741C .text:10005E88 MOVS R5, R0 .text:10005E8C BEQ loc_10005EDC .text:10005E90 .text:10005E90 loc_10005E90 ; CODE XREF: sub_10005D58+BCj .text:10005E90 ; sub_10005D58+FCj ... .text:10005E90 MOV R2, #0x7000 .text:10005E94 MOV R1, #0 .text:10005E98 MOV R0, R4 .text:10005E9C BL sub_10007B0C .text:10005EA0 .text:10005EA0 loc_10005EA0 ; CODE XREF: sub_10005D58+98j .text:10005EA0 MOV R0, R4 .text:10005EA4 BL sub_10006998 .text:10005EA8 .text:10005EA8 loc_10005EA8 ; CODE XREF: sub_10005D58+78j .text:10005EA8 MOV R1, #0 .text:10005EAC MOV R0, R4 .text:10005EB0 BL sub_10007274 .text:10005EB4 .text:10005EB4 loc_10005EB4 ; CODE XREF: sub_10005D58+5Cj .text:10005EB4 LDR R3, [R4,#0x18] .text:10005EB8 MOVS R2, R3 .text:10005EBC BEQ loc_10005EE0 .text:10005EC0 LDR R3, [R4,#0x1C] .text:10005EC4 TST R3, #2 .text:10005EC8 BEQ loc_10005EE0 .text:10005ECC MOV R0, R4 .text:10005ED0 MOV LR, PC .text:10005ED4 BX R2 .text:10005ED8 B loc_10005EE0 .text:10005EDC ; --------------------------------------------------------------------------- .text:10005EDC .text:10005EDC loc_10005EDC ; CODE XREF: sub_10005D58+134j .text:10005EDC MOV R5, #0 .text:10005EE0 .text:10005EE0 loc_10005EE0 ; CODE XREF: sub_10005D58+3Cj .text:10005EE0 ; sub_10005D58+164j ... .text:10005EE0 MOV R0, R5 .text:10005EE4 ADD SP, SP, #4 .text:10005EE8 LDMFD SP!, {R4,R5,LR} .text:10005EEC BX LR .text:10005EEC ; End of function sub_10005D58 .text:10005EEC .text:10005EEC ; --------------------------------------------------------------------------- .text:10005EF0 off_10005EF0 DCD aWm97readDigiti ; DATA XREF: sub_10005D58+B4r .text:10005EF0 ; "WM97Read---DIGITISER_SETUP error\r\n" .text:10005EF4 off_10005EF4 DCD aWm97touchpower ; DATA XREF: sub_10005D58+90r .text:10005EF4 ; "WM97TouchPowerUp error\r\n" .text:10005EF8 off_10005EF8 DCD aWm97auxadcinit ; DATA XREF: sub_10005D58+70r .text:10005EF8 ; "WM97AuxADCInit error\r\n" .text:10005EFC off_10005EFC DCD aWm97initError ; DATA XREF: sub_10005D58+54r .text:10005EFC ; "WM97Init error\r\n" .text:10005F00 dword_10005F00 DCD 0xEEEE0003 ; DATA XREF: sub_10005D58+38r .text:10005F04 .text:10005F04 ; =============== S U B R O U T I N E ======================================= .text:10005F04 .text:10005F04 .text:10005F04 sub_10005F04 ; CODE XREF: sub_100057D4+20p .text:10005F04 ; sub_10006070+1F0p .text:10005F04 ; DATA XREF: ... .text:10005F04 STMFD SP!, {R4,R5,LR} .text:10005F08 MOV R4, R0 .text:10005F0C BL sub_10008270 @ Call is charging .text:10005F10 MOVS R5, R0 .text:10005F14 BNE loc_10005F68 .text:10005F18 LDR R3, [R4,#4] .text:10005F1C LDRH R3, [R3,#2] .text:10005F20 TST R3, #0x10 .text:10005F24 BNE loc_10005F64 .text:10005F28 LDR R2, [R4,#4] .text:10005F2C MOV R5, #0 .text:10005F30 LDRH R3, [R2,#2] .text:10005F34 ADD R2, R2, #0x24 .text:10005F38 TST R3, #0x20 .text:10005F3C BEQ loc_10005F68 .text:10005F40 LDRB R3, [R2,#0x49] .text:10005F44 MOV R0, R4 .text:10005F48 ADD R3, R3, R3,LSL#1 .text:10005F4C ADD R3, R2, R3,LSL#2 .text:10005F50 LDR R4, [R3,#8] .text:10005F54 BL sub_100083DC .text:10005F58 SUB R3, R0, R4 .text:10005F5C CMP R3, #0x15 .text:10005F60 BCS loc_10005F68 .text:10005F64 .text:10005F64 loc_10005F64 ; CODE XREF: sub_10005F04+20j .text:10005F64 MOV R5, #1 .text:10005F68 .text:10005F68 loc_10005F68 ; CODE XREF: sub_10005F04+10j .text:10005F68 ; sub_10005F04+38j ... .text:10005F68 MOV R0, R5 .text:10005F6C LDMFD SP!, {R4,R5,LR} .text:10005F70 BX LR .text:10005F70 ; End of function sub_10005F04 .text:10005F70 .text:10005F74 .text:10005F74 ; =============== S U B R O U T I N E ======================================= .text:10005F74 .text:10005F74 .text:10005F74 sub_10005F74 ; CODE XREF: sub_10006070+84p .text:10005F74 ; DATA XREF: .pdata:1000D2B0o .text:10005F74 STMFD SP!, {R4-R6,LR} .text:10005F78 MOV R4, R0 .text:10005F7C LDR R3, [R4,#0x14] .text:10005F80 MOVS R2, R3 .text:10005F84 BEQ loc_10005FA8 .text:10005F88 LDR R3, [R4,#0x1C] .text:10005F8C TST R3, #2 .text:10005F90 BEQ loc_10005FA8 .text:10005F94 MOV LR, PC .text:10005F98 BX R2 .text:10005F9C CMP R0, #0 .text:10005FA0 LDREQ R5, =0xEEEE0003 .text:10005FA4 BEQ loc_10006060 .text:10005FA8 .text:10005FA8 loc_10005FA8 ; CODE XREF: sub_10005F74+10j .text:10005FA8 ; sub_10005F74+1Cj .text:10005FA8 MOV R1, #0x4000 .text:10005FAC MOV R0, R4 .text:10005FB0 BL sub_10005BD0 .text:10005FB4 MOVS R5, R0 .text:10005FB8 BEQ loc_10005FE4 .text:10005FBC LDR R3, [R4,#0x18] .text:10005FC0 MOVS R2, R3 .text:10005FC4 BEQ loc_10006060 .text:10005FC8 LDR R3, [R4,#0x1C] .text:10005FCC TST R3, #2 .text:10005FD0 BEQ loc_10006060 .text:10005FD4 MOV R0, R4 .text:10005FD8 MOV LR, PC .text:10005FDC BX R2 .text:10005FE0 B loc_10006060 .text:10005FE4 ; --------------------------------------------------------------------------- .text:10005FE4 .text:10005FE4 loc_10005FE4 ; CODE XREF: sub_10005F74+44j .text:10005FE4 MOV R1, #3 .text:10005FE8 MOV R0, R4 .text:10005FEC BL sub_10006EB8 .text:10005FF0 LDR R3, [R4,#4] .text:10005FF4 MOV R5, R0 .text:10005FF8 MOV R0, R4 .text:10005FFC ADD R6, R3, #0x24 .text:10006000 BL sub_100083DC .text:10006004 MOV LR, #0 .text:10006008 ADD R2, R6, #8 .text:1000600C MOV R1, #6 .text:10006010 .text:10006010 loc_10006010 ; CODE XREF: sub_10005F74+BCj .text:10006010 STR R0, [R2] .text:10006014 SUB R3, R2, #6 .text:10006018 STRH LR, [R2,#-8] .text:1000601C STRH LR, [R3] .text:10006020 SUB R3, R2, #4 .text:10006024 STR LR, [R3] .text:10006028 ADD R2, R2, #0xC .text:1000602C SUBS R1, R1, #1 .text:10006030 BNE loc_10006010 .text:10006034 STRB LR, [R6,#0x48] .text:10006038 STRB LR, [R6,#0x49] .text:1000603C STRB LR, [R6,#0x4A] .text:10006040 STRB LR, [R6,#0x4B] .text:10006044 LDR R3, [R4,#0x18] .text:10006048 MOVS R2, R3 .text:1000604C LDRNE R3, [R4,#0x1C] .text:10006050 TSTNE R3, #2 .text:10006054 MOVNE R0, R4 .text:10006058 MOVNE LR, PC .text:1000605C BXNE R2 .text:10006060 .text:10006060 loc_10006060 ; CODE XREF: sub_10005F74+30j .text:10006060 ; sub_10005F74+50j ... .text:10006060 MOV R0, R5 .text:10006064 LDMFD SP!, {R4-R6,LR} .text:10006068 BX LR .text:10006068 ; End of function sub_10005F74 .text:10006068 .text:10006068 ; --------------------------------------------------------------------------- .text:1000606C dword_1000606C DCD 0xEEEE0003 ; DATA XREF: sub_10005F74+2Cr .text:10006070 .text:10006070 ; =============== S U B R O U T I N E ======================================= .text:10006070 .text:10006070 .text:10006070 sub_10006070 ; CODE XREF: sub_10005818+2Cp .text:10006070 ; sub_10006300+34p .text:10006070 ; DATA XREF: ... .text:10006070 .text:10006070 var_38 = -0x38 .text:10006070 var_36 = -0x36 .text:10006070 var_34 = -0x34 .text:10006070 var_30 = -0x30 .text:10006070 var_2C = -0x2C .text:10006070 var_28 = -0x28 .text:10006070 .text:10006070 STMFD SP!, {R4-R11,LR} .text:10006074 SUB SP, SP, #0x14 .text:10006078 MOV R7, R1 .text:1000607C STR R7, [SP,#0x38+var_28] .text:10006080 MOV R11, R2 .text:10006084 MOV R5, R0 .text:10006088 LDR R3, [R5,#0x14] .text:1000608C MOVL R6, 0xFFFF .text:10006094 MOVS R4, R3 .text:10006098 MOV R3, #0 .text:1000609C STR R3, [SP,#0x38+var_30] .text:100060A0 MOV R3, #0 .text:100060A4 STR R3, [SP,#0x38+var_34] .text:100060A8 MOV R9, R6 .text:100060AC MOV R10, R6 .text:100060B0 STRH R6, [SP,#0x38+var_38] .text:100060B4 STRH R6, [SP,#0x38+var_36] .text:100060B8 BEQ loc_100060DC .text:100060BC LDR R3, [R5,#0x1C] .text:100060C0 TST R3, #2 .text:100060C4 BEQ loc_100060DC .text:100060C8 MOV LR, PC .text:100060CC BX R4 .text:100060D0 CMP R0, #0 .text:100060D4 LDREQ R4, =0xEEEE0003 .text:100060D8 BEQ loc_10006124 .text:100060DC .text:100060DC loc_100060DC ; CODE XREF: sub_10006070+48j .text:100060DC ; sub_10006070+54j .text:100060DC LDR R3, [R5,#4] .text:100060E0 LDRH R3, [R3,#2] .text:100060E4 ANDS R3, R3, #0x30 .text:100060E8 STR R3, [SP,#0x38+var_2C] .text:100060EC BNE loc_10006144 .text:100060F0 MOV R0, R5 .text:100060F4 BL sub_10005F74 .text:100060F8 MOVS R4, R0 .text:100060FC BEQ loc_10006130 .text:10006100 LDR R0, =aWm97touchstart .text:10006104 BL NKDbgPrintfW .text:10006108 LDR R3, [R5,#0x18] .text:1000610C MOVS R2, R3 .text:10006110 LDRNE R3, [R5,#0x1C] .text:10006114 TSTNE R3, #2 .text:10006118 MOVNE R0, R5 .text:1000611C MOVNE LR, PC .text:10006120 BXNE R2 .text:10006124 .text:10006124 loc_10006124 ; CODE XREF: sub_10006070+68j .text:10006124 STRH R6, [R7] .text:10006128 STRH R6, [R11] .text:1000612C B loc_1000623C .text:10006130 ; --------------------------------------------------------------------------- .text:10006130 .text:10006130 loc_10006130 ; CODE XREF: sub_10006070+8Cj .text:10006130 LDR R2, [R5,#4] .text:10006134 LDRH R3, [R2,#2] .text:10006138 ORR R3, R3, #0x10 .text:1000613C STRH R3, [R2,#2] .text:10006140 B loc_10006148 .text:10006144 ; --------------------------------------------------------------------------- .text:10006144 .text:10006144 loc_10006144 ; CODE XREF: sub_10006070+7Cj .text:10006144 LDR R4, [SP,#0x38+var_28] .text:10006148 .text:10006148 loc_10006148 ; CODE XREF: sub_10006070+D0j .text:10006148 LDR R8, [SP,#0x38+var_28] .text:1000614C LDR R7, =0xEEEE0021 .text:10006150 MOV R6, #0 .text:10006154 MOV R2, #0 .text:10006158 .text:10006158 loc_10006158 ; CODE XREF: sub_10006070+184j .text:10006158 CMP R6, #0 .text:1000615C BNE loc_1000618C .text:10006160 ADD R2, SP, #0x38+var_38 .text:10006164 MOV R1, #1 .text:10006168 MOV R0, R5 .text:1000616C BL sub_10007174 .text:10006170 MOVS R4, R0 .text:10006174 BEQ loc_10006180 .text:10006178 CMP R4, R7 .text:1000617C BNE loc_10006188 .text:10006180 .text:10006180 loc_10006180 ; CODE XREF: sub_10006070+104j .text:10006180 LDRH R9, [SP,#0x38+var_38] .text:10006184 MOV R6, #1 .text:10006188 .text:10006188 loc_10006188 ; CODE XREF: sub_10006070+10Cj .text:10006188 LDR R2, [SP,#0x38+var_34] .text:1000618C .text:1000618C loc_1000618C ; CODE XREF: sub_10006070+ECj .text:1000618C CMP R2, #0 .text:10006190 BNE loc_100061C8 .text:10006194 ADD R2, SP, #0x38+var_36 .text:10006198 MOV R1, #2 .text:1000619C MOV R0, R5 .text:100061A0 BL sub_10007174 .text:100061A4 MOVS R8, R0 .text:100061A8 BEQ loc_100061B4 .text:100061AC CMP R8, R7 .text:100061B0 BNE loc_100061C4 .text:100061B4 .text:100061B4 loc_100061B4 ; CODE XREF: sub_10006070+138j .text:100061B4 MOV R2, #1 .text:100061B8 LDRH R10, [SP,#0x38+var_36] .text:100061BC STR R2, [SP,#0x38+var_34] .text:100061C0 B loc_100061C8 .text:100061C4 ; --------------------------------------------------------------------------- .text:100061C4 .text:100061C4 loc_100061C4 ; CODE XREF: sub_10006070+140j .text:100061C4 LDR R2, [SP,#0x38+var_34] .text:100061C8 .text:100061C8 loc_100061C8 ; CODE XREF: sub_10006070+120j .text:100061C8 ; sub_10006070+150j .text:100061C8 LDR R1, [SP,#0x38+var_30] .text:100061CC LDR R3, [SP,#0x38+var_2C] .text:100061D0 ADD R1, R1, #1 .text:100061D4 STR R1, [SP,#0x38+var_30] .text:100061D8 CMP R3, #0 .text:100061DC BNE loc_100061F8 .text:100061E0 CMP R2, #0 .text:100061E4 BEQ loc_100061F0 .text:100061E8 CMP R6, #0 .text:100061EC BNE loc_100061F8 .text:100061F0 .text:100061F0 loc_100061F0 ; CODE XREF: sub_10006070+174j .text:100061F0 CMP R1, #0x18 .text:100061F4 BLT loc_10006158 .text:100061F8 .text:100061F8 loc_100061F8 ; CODE XREF: sub_10006070+16Cj .text:100061F8 ; sub_10006070+17Cj .text:100061F8 MOVL R6, 0xFFFF .text:10006200 CMP R9, R6 .text:10006204 BEQ loc_1000624C .text:10006208 CMP R10, R6 .text:1000620C BEQ loc_1000624C .text:10006210 LDR R3, [SP,#0x38+var_28] .text:10006214 STRH R9, [R3] .text:10006218 STRH R10, [R11] .text:1000621C .text:1000621C loc_1000621C ; CODE XREF: sub_10006070+204j .text:1000621C MOV R4, #0 .text:10006220 .text:10006220 loc_10006220 ; CODE XREF: sub_10006070+280j .text:10006220 LDR R3, [R5,#0x18] .text:10006224 MOVS R2, R3 .text:10006228 LDRNE R3, [R5,#0x1C] .text:1000622C TSTNE R3, #2 .text:10006230 MOVNE R0, R5 .text:10006234 MOVNE LR, PC .text:10006238 BXNE R2 .text:1000623C .text:1000623C loc_1000623C ; CODE XREF: sub_10006070+BCj .text:1000623C MOV R0, R4 .text:10006240 ADD SP, SP, #0x14 .text:10006244 LDMFD SP!, {R4-R11,LR} .text:10006248 BX LR .text:1000624C ; --------------------------------------------------------------------------- .text:1000624C .text:1000624C loc_1000624C ; CODE XREF: sub_10006070+194j .text:1000624C ; sub_10006070+19Cj .text:1000624C CMP R8, R7 .text:10006250 BEQ loc_1000626C .text:10006254 CMP R4, R7 .text:10006258 BEQ loc_1000626C .text:1000625C MOV R0, R5 .text:10006260 BL sub_10005F04 .text:10006264 LDR R3, [SP,#0x38+var_2C] .text:10006268 B loc_10006270 .text:1000626C ; --------------------------------------------------------------------------- .text:1000626C .text:1000626C loc_1000626C ; CODE XREF: sub_10006070+1E0j .text:1000626C ; sub_10006070+1E8j .text:1000626C MOV R0, #0 .text:10006270 .text:10006270 loc_10006270 ; CODE XREF: sub_10006070+1F8j .text:10006270 CMP R0, #0 .text:10006274 BNE loc_1000621C .text:10006278 CMP R3, #0 .text:1000627C BEQ loc_100062D4 .text:10006280 LDR R2, [R5,#4] .text:10006284 LDRH R3, [R2,#2] .text:10006288 ADD R2, R2, #0x24 .text:1000628C TST R3, #0x20 .text:10006290 BEQ loc_100062B8 .text:10006294 LDRB R3, [R2,#0x49] .text:10006298 MOV R0, R5 .text:1000629C ADD R3, R3, R3,LSL#1 .text:100062A0 ADD R3, R2, R3,LSL#2 .text:100062A4 LDR R4, [R3,#8] .text:100062A8 BL sub_100083DC .text:100062AC SUB R3, R0, R4 .text:100062B0 CMP R3, #0x15 .text:100062B4 BCC loc_100062D4 .text:100062B8 .text:100062B8 loc_100062B8 ; CODE XREF: sub_10006070+220j .text:100062B8 MOV R1, #3 .text:100062BC MOV R0, R5 .text:100062C0 BL sub_10007030 .text:100062C4 MOV R2, #0x4000 .text:100062C8 MOV R1, #0 .text:100062CC MOV R0, R5 .text:100062D0 BL sub_10007B0C .text:100062D4 .text:100062D4 loc_100062D4 ; CODE XREF: sub_10006070+20Cj .text:100062D4 ; sub_10006070+244j .text:100062D4 LDR R1, [R5,#4] .text:100062D8 MOVL R2, 0xFFEF .text:100062E0 LDRH R3, [R1,#2] .text:100062E4 MOV R4, R7 .text:100062E8 AND R3, R3, R2 .text:100062EC STRH R3, [R1,#2] .text:100062F0 B loc_10006220 .text:100062F0 ; End of function sub_10006070 .text:100062F0 .text:100062F0 ; --------------------------------------------------------------------------- .text:100062F4 dword_100062F4 DCD 0xEEEE0021 ; DATA XREF: sub_10006070+DCr .text:100062F8 off_100062F8 DCD aWm97touchstart ; DATA XREF: sub_10006070+90r .text:100062F8 ; "WM97TouchStartCapture--fail\r\n" .text:100062FC dword_100062FC DCD 0xEEEE0003 ; DATA XREF: sub_10006070+64r .text:10006300 .text:10006300 ; =============== S U B R O U T I N E ======================================= .text:10006300 .text:10006300 .text:10006300 sub_10006300 ; CODE XREF: sub_1000645C+40p .text:10006300 ; DATA XREF: .pdata:1000D2C0o .text:10006300 .text:10006300 var_38 = -0x38 .text:10006300 var_34 = -0x34 .text:10006300 var_30 = -0x30 .text:10006300 var_2C = -0x2C .text:10006300 var_28 = -0x28 .text:10006300 .text:10006300 STMFD SP!, {R4-R11,LR} .text:10006304 SUB SP, SP, #0x14 .text:10006308 MOV R8, R0 .text:1000630C STR R8, [SP,#0x38+var_38] .text:10006310 LDR R3, [R8,#4] .text:10006314 LDR R6, =0xEEEE0024 .text:10006318 MOV R11, #0 .text:1000631C ADD R10, R3, #0x24 .text:10006320 STR R10, [SP,#0x38+var_34] .text:10006324 MOV R5, R6 .text:10006328 .text:10006328 loc_10006328 ; CODE XREF: sub_10006300+138j .text:10006328 ADD R2, SP, #0x38+var_30+2 .text:1000632C ADD R1, SP, #0x38+var_30 .text:10006330 MOV R0, R8 .text:10006334 BL sub_10006070 .text:10006338 CMP R0, #0 .text:1000633C BNE loc_10006440 .text:10006340 LDR R3, [R8,#4] .text:10006344 LDR R2, [SP,#0x38+var_2C] .text:10006348 LDR LR, [SP,#0x38+var_30] .text:1000634C ADD R4, R3, #0x24 .text:10006350 LDRB R7, [R4,#0x48] .text:10006354 LDR R1, [SP,#0x38+var_28] .text:10006358 MOV R0, R8 .text:1000635C ADD R3, R7, R7,LSL#1 .text:10006360 ADD R9, R4, R3,LSL#2 .text:10006364 STR R2, [R9,#4] .text:10006368 STR R11, [R9,#4] .text:1000636C MOV R5, #0 .text:10006370 STR LR, [R9] .text:10006374 STR R1, [R9,#8] .text:10006378 BL sub_100083DC .text:1000637C LDRH R11, [SP,#0x38+var_30+2] .text:10006380 LDRH LR, [SP,#0x38+var_30] .text:10006384 STR R0, [R9,#8] .text:10006388 MOV R0, #0 .text:1000638C MOV R2, R4 .text:10006390 MOV R6, #1 .text:10006394 MOV R10, #1 .text:10006398 MOV R8, #1 .text:1000639C .text:1000639C loc_1000639C ; CODE XREF: sub_10006300+F0j .text:1000639C CMP R7, R0 .text:100063A0 BEQ loc_100063E4 .text:100063A4 LDRH R3, [R2] .text:100063A8 SUBS R1, LR, R3 .text:100063AC LDRH R3, [R2,#2] .text:100063B0 RSBMI R1, R1, #0 .text:100063B4 SUBS R3, R11, R3 .text:100063B8 RSBMI R3, R3, #0 .text:100063BC CMP R1, #0x100 .text:100063C0 CMPLT R3, #0x100 .text:100063C4 LDRLT R3, [R9,#4] .text:100063C8 ORRLT R3, R3, R10,LSL R0 .text:100063CC STRLT R3, [R9,#4] .text:100063D0 LDRLT R3, [R2,#4] .text:100063D4 ORRLT R3, R3, R8,LSL R7 .text:100063D8 LDRGE R3, [R2,#4] .text:100063DC BICGE R3, R3, R6,LSL R7 .text:100063E0 STR R3, [R2,#4] .text:100063E4 .text:100063E4 loc_100063E4 ; CODE XREF: sub_10006300+A0j .text:100063E4 ADD R0, R0, #1 .text:100063E8 CMP R0, #6 .text:100063EC ADD R2, R2, #0xC .text:100063F0 BLT loc_1000639C .text:100063F4 LDRB R2, [R4,#0x48] .text:100063F8 MOV R11, #0 .text:100063FC LDR R10, [SP,#0x38+var_34] .text:10006400 ADD R3, R2, #1 .text:10006404 AND R3, R3, #0xFF .text:10006408 STRB R3, [R4,#0x48] .text:1000640C CMP R3, #6 .text:10006410 LDRB R3, [R4,#0x4A] .text:10006414 STRCSB R11, [R4,#0x48] .text:10006418 STRB R2, [R4,#0x49] .text:1000641C CMP R3, #6 .text:10006420 ADDCC R3, R3, #1 .text:10006424 STRCCB R3, [R4,#0x4A] .text:10006428 LDRB R3, [R10,#0x4A] .text:1000642C LDR R6, =0xEEEE0024 .text:10006430 LDR R8, [SP,#0x38+var_38] .text:10006434 CMP R3, #6 .text:10006438 BCC loc_10006328 .text:1000643C B loc_10006448 .text:10006440 ; --------------------------------------------------------------------------- .text:10006440 .text:10006440 loc_10006440 ; CODE XREF: sub_10006300+3Cj .text:10006440 CMP R0, R6 .text:10006444 MOVNE R5, R0 .text:10006448 .text:10006448 loc_10006448 ; CODE XREF: sub_10006300+13Cj .text:10006448 MOV R0, R5 .text:1000644C ADD SP, SP, #0x14 .text:10006450 LDMFD SP!, {R4-R11,LR} .text:10006454 BX LR .text:10006454 ; End of function sub_10006300 .text:10006454 .text:10006454 ; --------------------------------------------------------------------------- .text:10006458 dword_10006458 DCD 0xEEEE0024 ; DATA XREF: sub_10006300+14r .text:10006458 ; sub_10006300+12Cr .text:1000645C .text:1000645C ; =============== S U B R O U T I N E ======================================= .text:1000645C .text:1000645C .text:1000645C sub_1000645C ; CODE XREF: sub_10005868+2Cp .text:1000645C ; DATA XREF: .pdata:1000D2C8o .text:1000645C STMFD SP!, {R4-R7,LR} .text:10006460 MOV R6, R2 .text:10006464 MOV R7, R1 .text:10006468 MOV R5, R0 .text:1000646C LDR R3, [R5,#0x14] .text:10006470 MOVS R4, R3 .text:10006474 BEQ loc_10006498 .text:10006478 LDR R3, [R5,#0x1C] .text:1000647C TST R3, #2 .text:10006480 BEQ loc_10006498 .text:10006484 MOV LR, PC .text:10006488 BX R4 .text:1000648C CMP R0, #0 .text:10006490 LDREQ R4, =0xEEEE0003 .text:10006494 BEQ loc_10006538 .text:10006498 .text:10006498 loc_10006498 ; CODE XREF: sub_1000645C+18j .text:10006498 ; sub_1000645C+24j .text:10006498 MOV R0, R5 .text:1000649C BL sub_10006300 .text:100064A0 MOVS R4, R0 .text:100064A4 BEQ loc_100064EC .text:100064A8 LDR R3, =0xEEEE0021 .text:100064AC CMP R4, R3 .text:100064B0 BEQ loc_100064C0 .text:100064B4 LDR R3, =0xEEEE0024 .text:100064B8 CMP R4, R3 .text:100064BC BNE loc_1000651C .text:100064C0 .text:100064C0 loc_100064C0 ; CODE XREF: sub_1000645C+54j .text:100064C0 LDR R2, [R5,#4] .text:100064C4 MOVL R1, 0xFFCF .text:100064CC LDRH R3, [R2,#2] .text:100064D0 ORR R3, R3, #0x20 .text:100064D4 STRH R3, [R2,#2] .text:100064D8 LDR R2, [R5,#4] .text:100064DC LDRH R3, [R2,#2] .text:100064E0 AND R3, R3, R1 .text:100064E4 STRH R3, [R2,#2] .text:100064E8 B loc_1000651C .text:100064EC ; --------------------------------------------------------------------------- .text:100064EC .text:100064EC loc_100064EC ; CODE XREF: sub_1000645C+48j .text:100064EC LDR R4, [R5,#4] .text:100064F0 MOVL LR, 0xFFDF .text:100064F8 LDRH R3, [R4,#2] .text:100064FC MOV R2, R6 .text:10006500 MOV R1, R7 .text:10006504 AND R3, R3, LR .text:10006508 MOV R0, R5 .text:1000650C STRH R3, [R4,#2] .text:10006510 BL sub_10005C70 .text:10006514 MOVS R4, R0 .text:10006518 BEQ loc_1000654C .text:1000651C .text:1000651C loc_1000651C ; CODE XREF: sub_1000645C+60j .text:1000651C ; sub_1000645C+8Cj .text:1000651C LDR R3, [R5,#0x18] .text:10006520 MOVS R2, R3 .text:10006524 LDRNE R3, [R5,#0x1C] .text:10006528 TSTNE R3, #2 .text:1000652C MOVNE R0, R5 .text:10006530 MOVNE LR, PC .text:10006534 BXNE R2 .text:10006538 .text:10006538 loc_10006538 ; CODE XREF: sub_1000645C+38j .text:10006538 MOVL R3, 0xFFFF .text:10006540 STRH R3, [R7] .text:10006544 STRH R3, [R6] .text:10006548 B loc_1000656C .text:1000654C ; --------------------------------------------------------------------------- .text:1000654C .text:1000654C loc_1000654C ; CODE XREF: sub_1000645C+BCj .text:1000654C LDR R3, [R5,#0x18] .text:10006550 MOVS R2, R3 .text:10006554 LDRNE R3, [R5,#0x1C] .text:10006558 TSTNE R3, #2 .text:1000655C MOVNE R0, R5 .text:10006560 MOVNE LR, PC .text:10006564 BXNE R2 .text:10006568 MOV R4, #0 .text:1000656C .text:1000656C loc_1000656C ; CODE XREF: sub_1000645C+ECj .text:1000656C MOV R0, R4 .text:10006570 LDMFD SP!, {R4-R7,LR} .text:10006574 BX LR .text:10006574 ; End of function sub_1000645C .text:10006574 .text:10006574 ; --------------------------------------------------------------------------- .text:10006578 dword_10006578 DCD 0xEEEE0024 ; DATA XREF: sub_1000645C+58r .text:1000657C dword_1000657C DCD 0xEEEE0021 ; DATA XREF: sub_1000645C+4Cr .text:10006580 dword_10006580 DCD 0xEEEE0003 ; DATA XREF: sub_1000645C+34r .text:10006584 .text:10006584 ; =============== S U B R O U T I N E ======================================= .text:10006584 .text:10006584 .text:10006584 sub_10006584 ; CODE XREF: sub_10005730+1Cp .text:10006584 ; DATA XREF: .pdata:1000D2D0o .text:10006584 LDR R2, [R0,#0x30] .text:10006588 LDR R3, [R2,#0x14] .text:1000658C BIC R3, R3, #0x80000000 .text:10006590 STR R3, [R2,#0x14] .text:10006594 LDR R2, [R0,#0x30] .text:10006598 LDR R3, [R2,#0x38] .text:1000659C ORR R3, R3, #0x80000000 .text:100065A0 STR R3, [R2,#0x38] .text:100065A4 LDR R2, [R0,#0x30] .text:100065A8 LDR R3, [R2,#0x44] .text:100065AC BIC R3, R3, #0x80000000 .text:100065B0 STR R3, [R2,#0x44] .text:100065B4 LDR R2, [R0,#0x30] .text:100065B8 LDR R3, [R2,#0x50] .text:100065BC ORR R3, R3, #0x80000000 .text:100065C0 STR R3, [R2,#0x50] .text:100065C4 BX LR .text:100065C4 ; End of function sub_10006584 .text:100065C4 .text:100065C8 .text:100065C8 ; =============== S U B R O U T I N E ======================================= .text:100065C8 .text:100065C8 .text:100065C8 sub_100065C8 ; CODE XREF: sub_100056C8+1Cp .text:100065C8 ; sub_10005700+1Cp .text:100065C8 ; DATA XREF: ... .text:100065C8 LDR R2, [R0,#0x30] .text:100065CC LDR R3, [R2,#0x44] .text:100065D0 BIC R3, R3, #0x80000000 .text:100065D4 STR R3, [R2,#0x44] .text:100065D8 LDR R2, [R0,#0x30] .text:100065DC LDR R3, [R2,#0x38] .text:100065E0 BIC R3, R3, #0x80000000 .text:100065E4 STR R3, [R2,#0x38] .text:100065E8 LDR R2, [R0,#0x30] .text:100065EC LDR R3, [R2,#0x50] .text:100065F0 ORR R3, R3, #0x80000000 .text:100065F4 STR R3, [R2,#0x50] .text:100065F8 BX LR .text:100065F8 ; End of function sub_100065C8 .text:100065F8 .text:100065FC .text:100065FC ; =============== S U B R O U T I N E ======================================= .text:100065FC .text:100065FC .text:100065FC sub_100065FC ; CODE XREF: sub_10005760+20p .text:100065FC ; DATA XREF: .pdata:1000D2E0o .text:100065FC MOV R0, #0 .text:10006600 BX LR .text:10006600 ; End of function sub_100065FC .text:10006600 .text:10006604 .text:10006604 ; =============== S U B R O U T I N E ======================================= .text:10006604 .text:10006604 .text:10006604 sub_10006604 ; CODE XREF: sub_100057A4+1Cp .text:10006604 ; DATA XREF: .pdata:1000D2E8o .text:10006604 LDR R2, [R0,#0x30] .text:10006608 LDR R3, [R2,#0x50] .text:1000660C ORR R3, R3, #0x80000000 .text:10006610 STR R3, [R2,#0x50] .text:10006614 BX LR .text:10006614 ; End of function sub_10006604 .text:10006614 .text:10006618 .text:10006618 ; =============== S U B R O U T I N E ======================================= .text:10006618 .text:10006618 .text:10006618 sub_10006618 ; CODE XREF: sub_100056C8+Cp .text:10006618 ; sub_10005700+Cp ... .text:10006618 STMFD SP!, {R4-R6,LR} .text:1000661C MOV R4, R1 .text:10006620 MOV R5, R0 .text:10006624 LDR R3, [R5,#0x24] .text:10006628 CMP R3, #0x70 .text:1000662C MOVCC R3, #0x70 .text:10006630 STRCC R3, [R5,#0x24] .text:10006634 MOVCC R0, #5 .text:10006638 LDMCCFD SP!, {R4-R6,LR} .text:1000663C BXCC LR .text:10006640 MOV R6, #0 .text:10006644 STR R6, [R4,#0x1C] .text:10006648 LDR R3, [R5,#0xC] .text:1000664C MOVL R1, 0x4C05 .text:10006654 STR R3, [R4,#0x2C] .text:10006658 LDR R3, [R5,#8] .text:1000665C STR R3, [R4,#0x30] .text:10006660 LDR R3, [R5,#0x10] .text:10006664 STR R3, [R4,#0x34] .text:10006668 LDR R3, [R5,#0x14] .text:1000666C STR R3, [R4,#0x38] .text:10006670 LDR R3, [R5,#0x18] .text:10006674 STR R3, [R4,#0x3C] .text:10006678 LDR R2, [R5] .text:1000667C CMP R2, R1 .text:10006680 BEQ loc_100066B8 .text:10006684 MOVL R3, 0x4C12 .text:1000668C CMP R2, R3 .text:10006690 BEQ loc_100066B0 .text:10006694 MOVL R3, 0x4C13 .text:1000669C CMP R2, R3 .text:100066A0 BEQ loc_100066B0 .text:100066A4 .text:100066A4 loc_100066A4 ; CODE XREF: sub_10006618+B4j .text:100066A4 MOV R0, #2 .text:100066A8 LDMFD SP!, {R4-R6,LR} .text:100066AC BX LR .text:100066B0 ; --------------------------------------------------------------------------- .text:100066B0 .text:100066B0 loc_100066B0 ; CODE XREF: sub_10006618+78j .text:100066B0 ; sub_10006618+88j .text:100066B0 STRH R3, [R4,#0x24] .text:100066B4 B loc_100066BC .text:100066B8 ; --------------------------------------------------------------------------- .text:100066B8 .text:100066B8 loc_100066B8 ; CODE XREF: sub_10006618+68j .text:100066B8 STRH R1, [R4,#0x24] .text:100066BC .text:100066BC loc_100066BC ; CODE XREF: sub_10006618+9Cj .text:100066BC MOV R0, R4 .text:100066C0 STRH R6, [R4,#0x26] .text:100066C4 BL sub_1000842C .text:100066C8 CMP R0, #0 .text:100066CC BEQ loc_100066A4 .text:100066D0 LDR R3, [R5,#0x20] .text:100066D4 STR R6, [R4,#8] .text:100066D8 STR R6, [R4,#0xC] .text:100066DC CMP R3, #0 .text:100066E0 MOVNE R3, #2 .text:100066E4 MOVEQ R3, #1 .text:100066E8 STR R3, [R4,#0x20] .text:100066EC LDR R3, [R4,#0x1C] .text:100066F0 STR R6, [R4,#0x10] .text:100066F4 STR R6, [R4,#0x14] .text:100066F8 BIC R3, R3, #2 .text:100066FC STR R3, [R4,#0x1C] .text:10006700 STR R6, [R4,#0x18] .text:10006704 STR R6, [R4] .text:10006708 LDR R2, [R5,#0x28] .text:1000670C ORR R3, R3, #5 .text:10006710 STR R3, [R4,#0x1C] .text:10006714 STR R2, [R4,#4] .text:10006718 MOV R0, #0 .text:1000671C LDMFD SP!, {R4-R6,LR} .text:10006720 BX LR .text:10006720 ; End of function sub_10006618 .text:10006720 .text:10006724 .text:10006724 ; =============== S U B R O U T I N E ======================================= .text:10006724 .text:10006724 .text:10006724 sub_10006724 ; CODE XREF: sub_10005818+38p .text:10006724 ; sub_10005868+38p ... .text:10006724 LDR R3, =0xEEEE0015 .text:10006728 CMP R0, R3 .text:1000672C BGT loc_100067C8 .text:10006730 BEQ loc_100067C0 .text:10006734 LDR R3, =0xEEEE0010 .text:10006738 CMP R0, R3 .text:1000673C BGT loc_1000678C .text:10006740 BEQ loc_10006784 .text:10006744 LDR R3, =0xEEEE0001 .text:10006748 CMP R0, R3 .text:1000674C BLT loc_10006818 .text:10006750 LDR R3, =0xEEEE0003 .text:10006754 CMP R0, R3 .text:10006758 BLE loc_1000677C .text:1000675C LDR R3, =0xEEEE0005 .text:10006760 CMP R0, R3 .text:10006764 BLE loc_100067C0 .text:10006768 LDR R3, =0xEEEE0006 .text:1000676C CMP R0, R3 .text:10006770 BNE loc_10006818 .text:10006774 .text:10006774 loc_10006774 ; CODE XREF: sub_10006724+7Cj .text:10006774 MOV R0, #2 .text:10006778 BX LR .text:1000677C ; --------------------------------------------------------------------------- .text:1000677C .text:1000677C loc_1000677C ; CODE XREF: sub_10006724+34j .text:1000677C MOV R0, #4 .text:10006780 BX LR .text:10006784 ; --------------------------------------------------------------------------- .text:10006784 .text:10006784 loc_10006784 ; CODE XREF: sub_10006724+1Cj .text:10006784 MOV R0, #5 .text:10006788 BX LR .text:1000678C ; --------------------------------------------------------------------------- .text:1000678C .text:1000678C loc_1000678C ; CODE XREF: sub_10006724+18j .text:1000678C LDR R3, =0xEEEE0011 .text:10006790 CMP R0, R3 .text:10006794 BEQ loc_100067B8 .text:10006798 LDR R3, =0xEEEE0012 .text:1000679C CMP R0, R3 .text:100067A0 BEQ loc_10006774 .text:100067A4 LDR R3, =0xEEEE0013 .text:100067A8 CMP R0, R3 .text:100067AC BNE loc_10006818 .text:100067B0 MOV R0, #6 .text:100067B4 BX LR .text:100067B8 ; --------------------------------------------------------------------------- .text:100067B8 .text:100067B8 loc_100067B8 ; CODE XREF: sub_10006724+70j .text:100067B8 MOV R0, #3 .text:100067BC BX LR .text:100067C0 ; --------------------------------------------------------------------------- .text:100067C0 .text:100067C0 loc_100067C0 ; CODE XREF: sub_10006724+Cj .text:100067C0 ; sub_10006724+40j ... .text:100067C0 MOV R0, #0xC .text:100067C4 BX LR .text:100067C8 ; --------------------------------------------------------------------------- .text:100067C8 .text:100067C8 loc_100067C8 ; CODE XREF: sub_10006724+8j .text:100067C8 LDR R3, =0xEEEE0016 .text:100067CC CMP R0, R3 .text:100067D0 BEQ loc_10006840 .text:100067D4 LDR R3, =0xEEEE0020 .text:100067D8 CMP R0, R3 .text:100067DC BEQ loc_10006838 .text:100067E0 LDR R3, =0xEEEE0021 .text:100067E4 CMP R0, R3 .text:100067E8 BEQ loc_10006830 .text:100067EC LDR R3, =0xEEEE0022 .text:100067F0 CMP R0, R3 .text:100067F4 BEQ loc_10006838 .text:100067F8 LDR R3, =0xEEEE0023 .text:100067FC CMP R0, R3 .text:10006800 BEQ loc_100067C0 .text:10006804 LDR R3, =0xEEEE0024 .text:10006808 CMP R0, R3 .text:1000680C BEQ loc_10006828 .text:10006810 CMP R0, #0 .text:10006814 BEQ loc_10006820 .text:10006818 .text:10006818 loc_10006818 ; CODE XREF: sub_10006724+28j .text:10006818 ; sub_10006724+4Cj ... .text:10006818 MOV R0, #1 .text:1000681C BX LR .text:10006820 ; --------------------------------------------------------------------------- .text:10006820 .text:10006820 loc_10006820 ; CODE XREF: sub_10006724+F0j .text:10006820 MOV R0, #0 .text:10006824 BX LR .text:10006828 ; --------------------------------------------------------------------------- .text:10006828 .text:10006828 loc_10006828 ; CODE XREF: sub_10006724+E8j .text:10006828 MOV R0, #8 .text:1000682C BX LR .text:10006830 ; --------------------------------------------------------------------------- .text:10006830 .text:10006830 loc_10006830 ; CODE XREF: sub_10006724+C4j .text:10006830 MOV R0, #0x16 .text:10006834 BX LR .text:10006838 ; --------------------------------------------------------------------------- .text:10006838 .text:10006838 loc_10006838 ; CODE XREF: sub_10006724+B8j .text:10006838 ; sub_10006724+D0j .text:10006838 MOV R0, #0xA .text:1000683C BX LR .text:10006840 ; --------------------------------------------------------------------------- .text:10006840 .text:10006840 loc_10006840 ; CODE XREF: sub_10006724+ACj .text:10006840 MOV R0, #0xD .text:10006844 BX LR .text:10006844 ; End of function sub_10006724 .text:10006844 .text:10006844 ; --------------------------------------------------------------------------- .text:10006848 dword_10006848 DCD 0xEEEE0024 ; DATA XREF: sub_10006724+E0r .text:1000684C dword_1000684C DCD 0xEEEE0023 ; DATA XREF: sub_10006724+D4r .text:10006850 dword_10006850 DCD 0xEEEE0022 ; DATA XREF: sub_10006724+C8r .text:10006854 dword_10006854 DCD 0xEEEE0021 ; DATA XREF: sub_10006724+BCr .text:10006858 dword_10006858 DCD 0xEEEE0020 ; DATA XREF: sub_10006724+B0r .text:1000685C dword_1000685C DCD 0xEEEE0016 ; DATA XREF: sub_10006724:loc_100067C8r .text:10006860 dword_10006860 DCD 0xEEEE0013 ; DATA XREF: sub_10006724+80r .text:10006864 dword_10006864 DCD 0xEEEE0012 ; DATA XREF: sub_10006724+74r .text:10006868 dword_10006868 DCD 0xEEEE0011 ; DATA XREF: sub_10006724:loc_1000678Cr .text:1000686C dword_1000686C DCD 0xEEEE0006 ; DATA XREF: sub_10006724+44r .text:10006870 dword_10006870 DCD 0xEEEE0005 ; DATA XREF: sub_10006724+38r .text:10006874 dword_10006874 DCD 0xEEEE0003 ; DATA XREF: sub_10006724+2Cr .text:10006878 dword_10006878 DCD 0xEEEE0001 ; DATA XREF: sub_10006724+20r .text:1000687C dword_1000687C DCD 0xEEEE0010 ; DATA XREF: sub_10006724+10r .text:10006880 dword_10006880 DCD 0xEEEE0015 ; DATA XREF: sub_10006724r .text:10006884 .text:10006884 ; =============== S U B R O U T I N E ======================================= ; AuxDac Init .text:10006884 .text:10006884 .text:10006884 sub_10006884 ; CODE XREF: sub_10005D58+64p .text:10006884 ; DATA XREF: .pdata:1000D300o .text:10006884 STMFD SP!, {R4,R5,LR} .text:10006888 MOV R4, R0 .text:1000688C LDR R3, [R4,#0x14] .text:10006890 MOVS R2, R3 .text:10006894 BEQ loc_100068B8 .text:10006898 LDR R3, [R4,#0x1C] .text:1000689C TST R3, #2 .text:100068A0 BEQ loc_100068B8 .text:100068A4 MOV LR, PC .text:100068A8 BX R2 .text:100068AC CMP R0, #0 .text:100068B0 LDREQ R5, =0xEEEE0003 .text:100068B4 BEQ loc_10006988 .text:100068B8 .text:100068B8 loc_100068B8 ; CODE XREF: sub_10006884+10j .text:100068B8 ; sub_10006884+1Cj .text:100068B8 MOV R1, #2 .text:100068BC MOV R0, R4 .text:100068C0 BL sub_10007FF4 .text:100068C4 MOVS R5, R0 .text:100068C8 BEQ loc_100068F4 .text:100068CC LDR R3, [R4,#0x18] .text:100068D0 MOVS R2, R3 .text:100068D4 BEQ loc_10006988 .text:100068D8 LDR R3, [R4,#0x1C] .text:100068DC TST R3, #2 .text:100068E0 BEQ loc_10006988 .text:100068E4 MOV R0, R4 .text:100068E8 MOV LR, PC .text:100068EC BX R2 .text:100068F0 B loc_10006988 .text:100068F4 ; --------------------------------------------------------------------------- .text:100068F4 .text:100068F4 loc_100068F4 ; CODE XREF: sub_10006884+44j .text:100068F4 LDR R3, [R4,#4] .text:100068F8 LDRH R3, [R3,#2] .text:100068FC TST R3, #1 .text:10006900 BNE loc_10006968 .text:10006904 LDR R3, [R4,#4] .text:10006908 MOV R2, #0 .text:1000690C MOV R1, #0xFF00 .text:10006910 STRH R2, [R3] .text:10006914 LDR R2, [R4,#4] .text:10006918 ORR R1, R1, #0xFB .text:1000691C MOV R5, #0xFF00 .text:10006920 LDRH R3, [R2,#2] .text:10006924 MOV R0, #4 .text:10006928 MOV LR, #8 .text:1000692C AND R3, R3, R1 .text:10006930 STRH R3, [R2,#2] .text:10006934 ORR R5, R5, #0xFF .text:10006938 .text:10006938 loc_10006938 ; CODE XREF: sub_10006884+D0j .text:10006938 LDR R3, [R4,#4] .text:1000693C SUBS LR, LR, #1 .text:10006940 STRH R5, [R0,R3] .text:10006944 LDR R3, [R4,#4] .text:10006948 ADD R3, R0, R3 .text:1000694C STRH R5, [R3,#0x10] .text:10006950 ADD R0, R0, #2 .text:10006954 BNE loc_10006938 .text:10006958 LDR R2, [R4,#4] .text:1000695C LDRH R3, [R2,#2] .text:10006960 ORR R3, R3, #1 .text:10006964 STRH R3, [R2,#2] .text:10006968 .text:10006968 loc_10006968 ; CODE XREF: sub_10006884+7Cj .text:10006968 LDR R3, [R4,#0x18] .text:1000696C MOVS R2, R3 .text:10006970 LDRNE R3, [R4,#0x1C] .text:10006974 TSTNE R3, #2 .text:10006978 MOVNE R0, R4 .text:1000697C MOVNE LR, PC .text:10006980 BXNE R2 .text:10006984 MOV R5, #0 .text:10006988 .text:10006988 loc_10006988 ; CODE XREF: sub_10006884+30j .text:10006988 ; sub_10006884+50j ... .text:10006988 MOV R0, R5 .text:1000698C LDMFD SP!, {R4,R5,LR} .text:10006990 BX LR .text:10006990 ; End of function sub_10006884 .text:10006990 .text:10006990 ; --------------------------------------------------------------------------- .text:10006994 dword_10006994 DCD 0xEEEE0003 ; DATA XREF: sub_10006884+2Cr .text:10006998 .text:10006998 ; =============== S U B R O U T I N E ======================================= .text:10006998 .text:10006998 .text:10006998 sub_10006998 ; CODE XREF: sub_10005BA0+18p .text:10006998 ; sub_10005D58+14Cp .text:10006998 ; DATA XREF: ... .text:10006998 STMFD SP!, {R4,LR} .text:1000699C MOV R4, R0 .text:100069A0 MOV R2, #0x1000 .text:100069A4 MOV R1, #2 .text:100069A8 BL sub_10007B0C .text:100069AC MOV R1, #2 .text:100069B0 MOV R0, R4 .text:100069B4 BL sub_10007274 .text:100069B8 LDMFD SP!, {R4,LR} .text:100069BC BX LR .text:100069BC ; End of function sub_10006998 .text:100069BC .text:100069C0 .text:100069C0 ; =============== S U B R O U T I N E ======================================= .text:100069C0 .text:100069C0 .text:100069C0 sub_100069C0 ; CODE XREF: sub_10007174:loc_100071FCp .text:100069C0 ; DATA XREF: .pdata:1000D310o .text:100069C0 .text:100069C0 var_1C = -0x1C .text:100069C0 var_1A = -0x1A .text:100069C0 .text:100069C0 STMFD SP!, {R4-R8,LR} .text:100069C4 SUB SP, SP, #4 .text:100069C8 MOV R8, R2 .text:100069CC MOV R7, R1 .text:100069D0 MOV R5, R0 .text:100069D4 MOV R2, #0 .text:100069D8 STRH R2, [SP,#0x1C+var_1C] .text:100069DC MOV R3, #0 .text:100069E0 MOV R2, #0x1000 .text:100069E4 MOV R1, #2 .text:100069E8 STRH R3, [SP,#0x1C+var_1A] .text:100069EC MOV R6, #0 .text:100069F0 BL sub_10007740 .text:100069F4 MOVS R4, R0 .text:100069F8 BNE loc_10006B18 .text:100069FC CMP R7, #2 .text:10006A00 MOVEQ R6, #0x40 .text:10006A04 MOV R2, R6 .text:10006A08 MOV R3, #0xF0 .text:10006A0C MOV R1, #0x76 .text:10006A10 MOV R0, R5 .text:10006A14 BL sub_1000752C .text:10006A18 MOVS R4, R0 .text:10006A1C BNE loc_10006B18 .text:10006A20 ORR R3, R7, #0x200 .text:10006A24 ADD R2, SP, #0x1C+var_1C .text:10006A28 MOV R1, #0x74 .text:10006A2C MOV R0, R5 .text:10006A30 STRH R3, [SP,#0x1C+var_1A] .text:10006A34 BL sub_1000730C .text:10006A38 LDRH R3, [SP,#0x1C+var_1C] .text:10006A3C MOV R0, R5 .text:10006A40 TST R3, #0x100 .text:10006A44 BEQ loc_10006A74 .text:10006A48 LDR R4, =0xEEEE0001 .text:10006A4C ADD R2, SP, #0x1C+var_1C .text:10006A50 MOV R1, #0x76 .text:10006A54 BL sub_1000730C .text:10006A58 LDRH R3, [SP,#0x1C+var_1C] .text:10006A5C MOV R1, #0x76 .text:10006A60 MOV R0, R5 .text:10006A64 ORR R2, R3, #0x40 .text:10006A68 STRH R2, [SP,#0x1C+var_1C] .text:10006A6C BL sub_1000741C .text:10006A70 B loc_10006B18 .text:10006A74 ; --------------------------------------------------------------------------- .text:10006A74 .text:10006A74 loc_10006A74 ; CODE XREF: sub_100069C0+84j .text:10006A74 LDRH R2, [SP,#0x1C+var_1A] .text:10006A78 MOVL R3, 0x2FE .text:10006A80 MOV R1, #0x74 .text:10006A84 BL sub_1000752C .text:10006A88 MOVS R4, R0 .text:10006A8C BNE loc_10006B18 .text:10006A90 MOV R0, R5 .text:10006A94 BL sub_100083DC .text:10006A98 ADD R6, R0, #2 .text:10006A9C .text:10006A9C loc_10006A9C ; CODE XREF: sub_100069C0+114j .text:10006A9C ADD R2, SP, #0x1C+var_1A .text:10006AA0 MOV R1, #0x74 .text:10006AA4 MOV R0, R5 .text:10006AA8 BL sub_1000730C .text:10006AAC MOVS R4, R0 .text:10006AB0 BNE loc_10006B18 .text:10006AB4 LDRH R3, [SP,#0x1C+var_1A] .text:10006AB8 TST R3, #0x200 .text:10006ABC BEQ loc_10006ADC .text:10006AC0 MOV R0, R5 .text:10006AC4 BL sub_100084A0 .text:10006AC8 MOV R0, R5 .text:10006ACC BL sub_100083DC .text:10006AD0 CMP R0, R6 .text:10006AD4 BCC loc_10006A9C .text:10006AD8 LDRH R3, [SP,#0x1C+var_1A] .text:10006ADC .text:10006ADC loc_10006ADC ; CODE XREF: sub_100069C0+FCj .text:10006ADC TST R3, #0x200 .text:10006AE0 LDRNE R4, =0xEEEE0024 .text:10006AE4 BNE loc_10006B18 .text:10006AE8 MOV R2, R8 .text:10006AEC MOV R1, #0x7A .text:10006AF0 MOV R0, R5 .text:10006AF4 BL sub_1000730C .text:10006AF8 MOVS R4, R0 .text:10006AFC BNE loc_10006B18 .text:10006B00 MOV R2, #0x1000 .text:10006B04 MOV R1, #2 .text:10006B08 MOV R0, R5 .text:10006B0C BL sub_10007B0C .text:10006B10 MOVS R4, R0 .text:10006B14 BEQ loc_10006B2C .text:10006B18 .text:10006B18 loc_10006B18 ; CODE XREF: sub_100069C0+38j .text:10006B18 ; sub_100069C0+5Cj ... .text:10006B18 MOV R2, #0x1000 .text:10006B1C MOV R1, #2 .text:10006B20 MOV R0, R5 .text:10006B24 BL sub_10007B0C .text:10006B28 B loc_10006B30 .text:10006B2C ; --------------------------------------------------------------------------- .text:10006B2C .text:10006B2C loc_10006B2C ; CODE XREF: sub_100069C0+154j .text:10006B2C MOV R4, #0 .text:10006B30 .text:10006B30 loc_10006B30 ; CODE XREF: sub_100069C0+168j .text:10006B30 MOV R0, R4 .text:10006B34 ADD SP, SP, #4 .text:10006B38 LDMFD SP!, {R4-R8,LR} .text:10006B3C BX LR .text:10006B3C ; End of function sub_100069C0 .text:10006B3C .text:10006B3C ; --------------------------------------------------------------------------- .text:10006B40 dword_10006B40 DCD 0xEEEE0024 ; DATA XREF: sub_100069C0+120r .text:10006B44 dword_10006B44 DCD 0xEEEE0001 ; DATA XREF: sub_100069C0+88r .text:10006B48 .text:10006B48 ; =============== S U B R O U T I N E ======================================= .text:10006B48 .text:10006B48 .text:10006B48 sub_10006B48 ; CODE XREF: sub_10006EB8+144p .text:10006B48 ; sub_10007030+110p .text:10006B48 ; DATA XREF: ... .text:10006B48 STMFD SP!, {R4-R7,LR} .text:10006B4C MOV R5, R0 .text:10006B50 LDR R3, [R5,#4] .text:10006B54 MOV R1, #0 .text:10006B58 MOV R2, #0 .text:10006B5C LDRH LR, [R3,#2] .text:10006B60 LDRH R4, [R3,#2] .text:10006B64 MOV R0, R3 .text:10006B68 LDRH R3, [R0] .text:10006B6C ANDS R6, R3, #0xFE .text:10006B70 BEQ loc_10006C48 .text:10006B74 TST LR, #4 .text:10006B78 MOVNE R1, #0x300 .text:10006B7C MOVNE R2, #0x40 .text:10006B80 TST R4, #8 .text:10006B84 BEQ loc_10006BB4 .text:10006B88 LDRH R3, [R0] .text:10006B8C CMP R3, #0 .text:10006B90 BEQ loc_10006BB4 .text:10006B94 CMP R1, #0 .text:10006B98 MOVEQ R1, #0 .text:10006B9C CMP R2, #0 .text:10006BA0 MOVEQ R2, #0 .text:10006BA4 MOV R1, R1,LSL#16 .text:10006BA8 MOV R2, R2,LSL#16 .text:10006BAC MOV R1, R1,LSR#16 .text:10006BB0 MOV R2, R2,LSR#16 .text:10006BB4 .text:10006BB4 loc_10006BB4 ; CODE XREF: sub_10006B48+3Cj .text:10006BB4 ; sub_10006B48+48j .text:10006BB4 LDRH R3, [R0,#2] .text:10006BB8 ORR R7, R2, R1 .text:10006BBC TST R3, #2 .text:10006BC0 BNE loc_10006BDC .text:10006BC4 MOV R2, #0x1000 .text:10006BC8 MOV R1, #2 .text:10006BCC MOV R0, R5 .text:10006BD0 BL sub_10007740 .text:10006BD4 MOVS R4, R0 .text:10006BD8 BNE loc_10006C78 .text:10006BDC .text:10006BDC loc_10006BDC ; CODE XREF: sub_10006B48+78j .text:10006BDC ORR R2, R7, #8 .text:10006BE0 MOV R1, #0x76 .text:10006BE4 MOV R0, R5 .text:10006BE8 ORR R6, R6, #0x200 .text:10006BEC BL sub_1000741C .text:10006BF0 MOVS R4, R0 .text:10006BF4 BNE loc_10006C78 .text:10006BF8 MOV R2, R6 .text:10006BFC MOV R1, #0x74 .text:10006C00 MOV R0, R5 .text:10006C04 BL sub_1000741C .text:10006C08 MOVS R4, R0 .text:10006C0C BNE loc_10006C78 .text:10006C10 MOVL R3, 0xFCFF .text:10006C18 AND R3, R6, R3 .text:10006C1C ORR R2, R3, #0x100 .text:10006C20 MOV R1, #0x74 .text:10006C24 MOV R0, R5 .text:10006C28 BL sub_1000741C .text:10006C2C MOVS R4, R0 .text:10006C30 BNE loc_10006C78 .text:10006C34 LDR R2, [R5,#4] .text:10006C38 LDRH R3, [R2,#2] .text:10006C3C ORR R3, R3, #2 .text:10006C40 STRH R3, [R2,#2] .text:10006C44 B loc_10006C9C .text:10006C48 ; --------------------------------------------------------------------------- .text:10006C48 .text:10006C48 loc_10006C48 ; CODE XREF: sub_10006B48+28j .text:10006C48 MOV R2, #0 .text:10006C4C MOV R1, #0x74 .text:10006C50 MOV R0, R5 .text:10006C54 BL sub_1000741C .text:10006C58 MOVS R4, R0 .text:10006C5C BNE loc_10006C78 .text:10006C60 MOV R2, #0x1000 .text:10006C64 MOV R1, #2 .text:10006C68 MOV R0, R5 .text:10006C6C BL sub_10007B0C .text:10006C70 MOVS R4, R0 .text:10006C74 BEQ loc_10006C84 .text:10006C78 .text:10006C78 loc_10006C78 ; CODE XREF: sub_10006B48+90j .text:10006C78 ; sub_10006B48+ACj ... .text:10006C78 LDR R0, =aPrivate_switch .text:10006C7C BL NKDbgPrintfW .text:10006C80 B loc_10006CA0 .text:10006C84 ; --------------------------------------------------------------------------- .text:10006C84 .text:10006C84 loc_10006C84 ; CODE XREF: sub_10006B48+12Cj .text:10006C84 LDR R1, [R5,#4] .text:10006C88 MOVL R2, 0xFFFD .text:10006C90 LDRH R3, [R1,#2] .text:10006C94 AND R3, R3, R2 .text:10006C98 STRH R3, [R1,#2] .text:10006C9C .text:10006C9C loc_10006C9C ; CODE XREF: sub_10006B48+FCj .text:10006C9C MOV R4, #0 .text:10006CA0 .text:10006CA0 loc_10006CA0 ; CODE XREF: sub_10006B48+138j .text:10006CA0 MOV R0, R4 .text:10006CA4 LDMFD SP!, {R4-R7,LR} .text:10006CA8 BX LR .text:10006CA8 ; End of function sub_10006B48 .text:10006CA8 .text:10006CA8 ; --------------------------------------------------------------------------- .text:10006CAC off_10006CAC DCD aPrivate_switch ; DATA XREF: sub_10006B48:loc_10006C78r .text:10006CAC ; "private_SwitchStreaming--fail\r\n" .text:10006CB0 .text:10006CB0 ; =============== S U B R O U T I N E ======================================= .text:10006CB0 .text:10006CB0 .text:10006CB0 sub_10006CB0 ; CODE XREF: sub_10007174+80p .text:10006CB0 ; DATA XREF: .pdata:1000D320o .text:10006CB0 .text:10006CB0 var_2C = -0x2C .text:10006CB0 var_28 = -0x28 .text:10006CB0 .text:10006CB0 STMFD SP!, {R4-R11,LR} .text:10006CB4 SUB SP, SP, #8 .text:10006CB8 MOV R8, R2 .text:10006CBC MOV R6, R1 .text:10006CC0 MOV R4, R0 .text:10006CC4 LDR R3, [R4,#0x14] .text:10006CC8 MOVS R5, R3 .text:10006CCC BEQ loc_10006CF0 .text:10006CD0 LDR R3, [R4,#0x1C] .text:10006CD4 TST R3, #2 .text:10006CD8 BEQ loc_10006CF0 .text:10006CDC MOV LR, PC .text:10006CE0 BX R5 .text:10006CE4 CMP R0, #0 .text:10006CE8 LDREQ R5, =0xEEEE0003 .text:10006CEC BEQ loc_10006E98 .text:10006CF0 .text:10006CF0 loc_10006CF0 ; CODE XREF: sub_10006CB0+1Cj .text:10006CF0 ; sub_10006CB0+28j .text:10006CF0 MOV R3, R6,LSL#17 .text:10006CF4 LDR R2, [R4,#4] .text:10006CF8 MOV R10, R3,LSR#29 .text:10006CFC ADD R7, R10, #2 .text:10006D00 MOV R6, #0xFF00 .text:10006D04 ADD R3, R2, R7,LSL#1 .text:10006D08 ORR R6, R6, #0xFF .text:10006D0C STRH R6, [R3] .text:10006D10 LDR R2, [R4,#4] .text:10006D14 MOV R3, #1 .text:10006D18 MOV R11, R3,LSL R10 .text:10006D1C ADD R3, R2, R7,LSL#1 .text:10006D20 LDRH R3, [R3] .text:10006D24 MOV R1, R11 .text:10006D28 LDR R5, =0xEEEE0024 .text:10006D2C CMP R3, R6 .text:10006D30 STR R11, [SP,#0x2C+var_28] .text:10006D34 STRH R1, [SP,#0x2C+var_2C] .text:10006D38 MOV R9, #0 .text:10006D3C BNE loc_10006DDC .text:10006D40 MOV R11, R11,LSL#16 .text:10006D44 MOV R11, R11,LSR#16 .text:10006D48 .text:10006D48 loc_10006D48 ; CODE XREF: sub_10006CB0+124j .text:10006D48 LDRH R3, [R2] .text:10006D4C TST R3, R11 .text:10006D50 BEQ loc_10006DD8 .text:10006D54 CMP R9, #0x64 .text:10006D58 BGE loc_10006DD8 .text:10006D5C ADD R1, SP, #0x2C+var_2C .text:10006D60 MOV R0, R4 .text:10006D64 BL sub_100081C4 .text:10006D68 CMP R0, #0 .text:10006D6C BNE loc_10006D98 .text:10006D70 LDRH R1, [SP,#0x2C+var_2C] .text:10006D74 MOV R3, R1,LSL#17 .text:10006D78 MOV R3, R3,LSR#29 .text:10006D7C CMP R3, #8 .text:10006D80 LDRCC R2, [R4,#4] .text:10006D84 ADDCC R3, R3, #2 .text:10006D88 LDRCS R0, =0xEEEE0020 .text:10006D8C ADDCC R3, R2, R3,LSL#1 .text:10006D90 STRCCH R1, [R3] .text:10006D94 MOVCC R0, #0 .text:10006D98 .text:10006D98 loc_10006D98 ; CODE XREF: sub_10006CB0+BCj .text:10006D98 CMP R0, R5 .text:10006D9C BEQ loc_10006DB4 .text:10006DA0 LDR R3, [R4,#4] .text:10006DA4 ADD R3, R3, R7,LSL#1 .text:10006DA8 LDRH R3, [R3] .text:10006DAC CMP R3, R6 .text:10006DB0 BNE loc_10006DC0 .text:10006DB4 .text:10006DB4 loc_10006DB4 ; CODE XREF: sub_10006CB0+ECj .text:10006DB4 MOV R1, #0x1F4 .text:10006DB8 MOV R0, R4 .text:10006DBC BL sub_1000837C .text:10006DC0 .text:10006DC0 loc_10006DC0 ; CODE XREF: sub_10006CB0+100j .text:10006DC0 LDR R2, [R4,#4] .text:10006DC4 ADD R9, R9, #1 .text:10006DC8 ADD R3, R2, R7,LSL#1 .text:10006DCC LDRH R3, [R3] .text:10006DD0 CMP R3, R6 .text:10006DD4 BEQ loc_10006D48 .text:10006DD8 .text:10006DD8 loc_10006DD8 ; CODE XREF: sub_10006CB0+A0j .text:10006DD8 ; sub_10006CB0+A8j .text:10006DD8 LDR R11, [SP,#0x2C+var_28] .text:10006DDC .text:10006DDC loc_10006DDC ; CODE XREF: sub_10006CB0+8Cj .text:10006DDC LDR R3, [R4,#4] .text:10006DE0 ADD R3, R3, R7,LSL#1 .text:10006DE4 LDRH R3, [R3] .text:10006DE8 CMP R3, R6 .text:10006DEC STRH R3, [R8] .text:10006DF0 LDREQ R2, [R4,#4] .text:10006DF4 ADDEQ R3, R10, #0xA .text:10006DF8 ADDEQ R3, R2, R3,LSL#1 .text:10006DFC LDREQH R3, [R3] .text:10006E00 STREQH R3, [R8] .text:10006E04 LDRH R3, [R8] .text:10006E08 CMP R3, R6 .text:10006E0C BNE loc_10006E54 .text:10006E10 LDR R3, [R4,#4] .text:10006E14 LDRH R3, [R3] .text:10006E18 CMP R3, #0 .text:10006E1C MOVEQ R3, #1 .text:10006E20 MOVNE R3, #0 .text:10006E24 TST R11, R3 .text:10006E28 LDRNE R5, =0xEEEE0023 .text:10006E2C LDR R3, [R4,#0x18] .text:10006E30 MOVS R2, R3 .text:10006E34 BEQ loc_10006E98 .text:10006E38 LDR R3, [R4,#0x1C] .text:10006E3C TST R3, #2 .text:10006E40 BEQ loc_10006E98 .text:10006E44 MOV R0, R4 .text:10006E48 MOV LR, PC .text:10006E4C BX R2 .text:10006E50 B loc_10006E98 .text:10006E54 ; --------------------------------------------------------------------------- .text:10006E54 .text:10006E54 loc_10006E54 ; CODE XREF: sub_10006CB0+15Cj .text:10006E54 LDR R0, [R4,#4] .text:10006E58 ADD R1, R10, #0xA .text:10006E5C ADD R3, R0, R7,LSL#1 .text:10006E60 LDRH R2, [R3] .text:10006E64 ADD R3, R0, R1,LSL#1 .text:10006E68 STRH R2, [R3] .text:10006E6C LDR R3, [R4,#4] .text:10006E70 ADD R3, R3, R7,LSL#1 .text:10006E74 STRH R6, [R3] .text:10006E78 LDR R3, [R4,#0x18] .text:10006E7C MOVS R2, R3 .text:10006E80 LDRNE R3, [R4,#0x1C] .text:10006E84 TSTNE R3, #2 .text:10006E88 MOVNE R0, R4 .text:10006E8C MOVNE LR, PC .text:10006E90 BXNE R2 .text:10006E94 MOV R5, #0 .text:10006E98 .text:10006E98 loc_10006E98 ; CODE XREF: sub_10006CB0+3Cj .text:10006E98 ; sub_10006CB0+184j ... .text:10006E98 MOV R0, R5 .text:10006E9C ADD SP, SP, #8 .text:10006EA0 LDMFD SP!, {R4-R11,LR} .text:10006EA4 BX LR .text:10006EA4 ; End of function sub_10006CB0 .text:10006EA4 .text:10006EA4 ; --------------------------------------------------------------------------- .text:10006EA8 dword_10006EA8 DCD 0xEEEE0023 ; DATA XREF: sub_10006CB0+178r .text:10006EAC dword_10006EAC DCD 0xEEEE0020 ; DATA XREF: sub_10006CB0+D8r .text:10006EB0 dword_10006EB0 DCD 0xEEEE0024 ; DATA XREF: sub_10006CB0+78r .text:10006EB4 dword_10006EB4 DCD 0xEEEE0003 ; DATA XREF: sub_10006CB0+38r .text:10006EB8 .text:10006EB8 ; =============== S U B R O U T I N E ======================================= .text:10006EB8 .text:10006EB8 .text:10006EB8 sub_10006EB8 ; CODE XREF: sub_1000596C+38p .text:10006EB8 ; sub_10005F74+78p .text:10006EB8 ; DATA XREF: ... .text:10006EB8 STMFD SP!, {R4-R6,LR} .text:10006EBC MOV R6, R1 .text:10006EC0 MOV R4, R0 .text:10006EC4 LDR R3, [R4,#0x14] .text:10006EC8 MOV R5, #0 .text:10006ECC MOVS R2, R3 .text:10006ED0 BEQ loc_10006EF4 .text:10006ED4 LDR R3, [R4,#0x1C] .text:10006ED8 TST R3, #2 .text:10006EDC BEQ loc_10006EF4 .text:10006EE0 MOV LR, PC .text:10006EE4 BX R2 .text:10006EE8 CMP R0, #0 .text:10006EEC LDREQ R5, =0xEEEE0003 .text:10006EF0 BEQ loc_10007004 .text:10006EF4 .text:10006EF4 loc_10006EF4 ; CODE XREF: sub_10006EB8+18j .text:10006EF4 ; sub_10006EB8+24j .text:10006EF4 MOV R3, R6,LSL#16 .text:10006EF8 MOV R3, R3,LSR#16 .text:10006EFC AND R3, R3, #3 .text:10006F00 CMP R3, R6 .text:10006F04 BNE loc_10006F70 .text:10006F08 LDR R3, [R4,#4] .text:10006F0C LDRH R3, [R3,#2] .text:10006F10 TST R3, #4 .text:10006F14 BNE loc_10007004 .text:10006F18 LDR R2, [R4,#4] .text:10006F1C MOVL R5, 0xFFFF .text:10006F24 LDRH R3, [R2,#2] .text:10006F28 ORR R3, R3, #4 .text:10006F2C STRH R3, [R2,#2] .text:10006F30 LDR R3, [R4,#4] .text:10006F34 STRH R5, [R3,#6] .text:10006F38 LDR R3, [R4,#4] .text:10006F3C STRH R5, [R3,#0x16] .text:10006F40 LDR R2, [R4,#4] .text:10006F44 LDRH R3, [R2] .text:10006F48 ORR R3, R3, #2 .text:10006F4C STRH R3, [R2] .text:10006F50 LDR R3, [R4,#4] .text:10006F54 STRH R5, [R3,#8] .text:10006F58 LDR R3, [R4,#4] .text:10006F5C STRH R5, [R3,#0x18] .text:10006F60 LDR R2, [R4,#4] .text:10006F64 LDRH R3, [R2] .text:10006F68 ORR R3, R3, #4 .text:10006F6C B loc_10006FF4 .text:10006F70 ; --------------------------------------------------------------------------- .text:10006F70 .text:10006F70 loc_10006F70 ; CODE XREF: sub_10006EB8+4Cj .text:10006F70 LDR R2, [R4,#0x28] .text:10006F74 MOVL R3, 0xFFF .text:10006F7C LDR R2, [R2,#0x10] .text:10006F80 AND R3, R6, R3 .text:10006F84 ADD R3, R3, R3,LSL#1 .text:10006F88 ADD R3, R2, R3,LSL#1 .text:10006F8C LDRH R3, [R3,#-4] .text:10006F90 LDR R1, [R4,#4] .text:10006F94 LDRH R2, [R1] .text:10006F98 MOV R3, R3,LSL#17 .text:10006F9C MOV R1, #1 .text:10006FA0 MOV LR, R3,LSR#29 .text:10006FA4 TST R2, R1,LSL LR .text:10006FA8 BNE loc_10007004 .text:10006FAC LDR R1, [R4,#4] .text:10006FB0 ADD R0, LR, #2 .text:10006FB4 MOV R5, #0xFF00 .text:10006FB8 LDRH R3, [R1,#2] .text:10006FBC ORR R5, R5, #0xFF .text:10006FC0 ADD R2, LR, #0xA .text:10006FC4 ORR R3, R3, #8 .text:10006FC8 STRH R3, [R1,#2] .text:10006FCC LDR R3, [R4,#4] .text:10006FD0 MOV R6, #1 .text:10006FD4 ADD R3, R3, R0,LSL#1 .text:10006FD8 STRH R5, [R3] .text:10006FDC LDR R3, [R4,#4] .text:10006FE0 ADD R3, R3, R2,LSL#1 .text:10006FE4 STRH R5, [R3] .text:10006FE8 LDR R2, [R4,#4] .text:10006FEC LDRH R3, [R2] .text:10006FF0 ORR R3, R3, R6,LSL LR .text:10006FF4 .text:10006FF4 loc_10006FF4 ; CODE XREF: sub_10006EB8+B4j .text:10006FF4 MOV R0, R4 .text:10006FF8 STRH R3, [R2] .text:10006FFC BL sub_10006B48 .text:10007000 MOV R5, R0 .text:10007004 .text:10007004 loc_10007004 ; CODE XREF: sub_10006EB8+38j .text:10007004 ; sub_10006EB8+5Cj ... .text:10007004 LDR R3, [R4,#0x18] .text:10007008 MOVS R2, R3 .text:1000700C LDRNE R3, [R4,#0x1C] .text:10007010 TSTNE R3, #2 .text:10007014 MOVNE R0, R4 .text:10007018 MOVNE LR, PC .text:1000701C BXNE R2 .text:10007020 MOV R0, R5 .text:10007024 LDMFD SP!, {R4-R6,LR} .text:10007028 BX LR .text:10007028 ; End of function sub_10006EB8 .text:10007028 .text:10007028 ; --------------------------------------------------------------------------- .text:1000702C dword_1000702C DCD 0xEEEE0003 ; DATA XREF: sub_10006EB8+34r .text:10007030 .text:10007030 ; =============== S U B R O U T I N E ======================================= .text:10007030 .text:10007030 .text:10007030 sub_10007030 ; CODE XREF: sub_100059C8+38p .text:10007030 ; sub_10005C04+10p ... .text:10007030 STMFD SP!, {R4-R6,LR} .text:10007034 MOV R6, R1 .text:10007038 MOV R4, R0 .text:1000703C LDR R3, [R4,#0x14] .text:10007040 MOV R5, #0 .text:10007044 MOVS R2, R3 .text:10007048 BEQ loc_1000706C .text:1000704C LDR R3, [R4,#0x1C] .text:10007050 TST R3, #2 .text:10007054 BEQ loc_1000706C .text:10007058 MOV LR, PC .text:1000705C BX R2 .text:10007060 CMP R0, #0 .text:10007064 LDREQ R5, =0xEEEE0003 .text:10007068 BEQ loc_10007148 .text:1000706C .text:1000706C loc_1000706C ; CODE XREF: sub_10007030+18j .text:1000706C ; sub_10007030+24j .text:1000706C CMP R6, #3 .text:10007070 BNE loc_100070C4 .text:10007074 LDR R3, [R4,#4] .text:10007078 LDRH R3, [R3,#2] .text:1000707C TST R3, #4 .text:10007080 BEQ loc_10007148 .text:10007084 LDR R2, [R4,#4] .text:10007088 MOVL R0, 0xFFFB .text:10007090 LDRH R3, [R2,#2] .text:10007094 MOVL R1, 0xFFFD .text:1000709C AND R3, R3, R0 .text:100070A0 STRH R3, [R2,#2] .text:100070A4 LDR R2, [R4,#4] .text:100070A8 LDRH R3, [R2] .text:100070AC AND R3, R3, R1 .text:100070B0 STRH R3, [R2] .text:100070B4 LDR R2, [R4,#4] .text:100070B8 LDRH R3, [R2] .text:100070BC AND R3, R3, R0 .text:100070C0 B loc_10007138 .text:100070C4 ; --------------------------------------------------------------------------- .text:100070C4 .text:100070C4 loc_100070C4 ; CODE XREF: sub_10007030+40j .text:100070C4 LDR R2, [R4,#0x28] .text:100070C8 MOVL R3, 0xFFF .text:100070D0 LDR R2, [R2,#0x10] .text:100070D4 AND R3, R6, R3 .text:100070D8 ADD R3, R3, R3,LSL#1 .text:100070DC ADD R3, R2, R3,LSL#1 .text:100070E0 LDRH R3, [R3,#-4] .text:100070E4 LDR R1, [R4,#4] .text:100070E8 MOV R3, R3,LSL#17 .text:100070EC LDRH R2, [R1] .text:100070F0 MOV R3, R3,LSR#29 .text:100070F4 MOV R1, #1 .text:100070F8 MOV R0, R1,LSL R3 .text:100070FC TST R2, R0 .text:10007100 BEQ loc_10007148 .text:10007104 LDR R2, [R4,#4] .text:10007108 MOVL R1, 0xFFF7 .text:10007110 LDRH R3, [R2] .text:10007114 BIC R3, R3, R0 .text:10007118 STRH R3, [R2] .text:1000711C LDR R2, [R4,#4] .text:10007120 LDRH R3, [R2,#2] .text:10007124 AND R3, R3, R1 .text:10007128 STRH R3, [R2,#2] .text:1000712C LDR R2, [R4,#4] .text:10007130 LDRH R3, [R2] .text:10007134 BIC R3, R3, R0 .text:10007138 .text:10007138 loc_10007138 ; CODE XREF: sub_10007030+90j .text:10007138 MOV R0, R4 .text:1000713C STRH R3, [R2] .text:10007140 BL sub_10006B48 .text:10007144 MOV R5, R0 .text:10007148 .text:10007148 loc_10007148 ; CODE XREF: sub_10007030+38j .text:10007148 ; sub_10007030+50j ... .text:10007148 LDR R3, [R4,#0x18] .text:1000714C MOVS R2, R3 .text:10007150 LDRNE R3, [R4,#0x1C] .text:10007154 TSTNE R3, #2 .text:10007158 MOVNE R0, R4 .text:1000715C MOVNE LR, PC .text:10007160 BXNE R2 .text:10007164 MOV R0, R5 .text:10007168 LDMFD SP!, {R4-R6,LR} .text:1000716C BX LR .text:1000716C ; End of function sub_10007030 .text:1000716C .text:1000716C ; --------------------------------------------------------------------------- .text:10007170 dword_10007170 DCD 0xEEEE0003 ; DATA XREF: sub_10007030+34r .text:10007174 .text:10007174 ; =============== S U B R O U T I N E ======================================= .text:10007174 .text:10007174 .text:10007174 sub_10007174 ; CODE XREF: sub_10005A24+40p .text:10007174 ; sub_10006070+FCp ... .text:10007174 .text:10007174 var_20 = -0x20 .text:10007174 .text:10007174 STMFD SP!, {R4-R9,LR} .text:10007178 SUB SP, SP, #4 .text:1000717C MOV R4, R2 .text:10007180 MOV R8, R1 .text:10007184 LDR LR, [R0,#0x28] .text:10007188 MOVL R9, 0xFFF .text:10007190 LDR LR, [LR,#0x14] .text:10007194 AND R3, R8, R9 .text:10007198 SUB R2, R3, #1 .text:1000719C MOV R6, #0xFF00 .text:100071A0 CMP R2, LR .text:100071A4 ORR R6, R6, #0xFF .text:100071A8 BCS loc_100071D0 .text:100071AC LDR R3, [R0,#0x28] .text:100071B0 ADD R2, R2, R2,LSL#1 .text:100071B4 LDR R3, [R3,#0x10] .text:100071B8 ADD R3, R3, R2,LSL#1 .text:100071BC LDRH R5, [R3,#2] .text:100071C0 LDRH R1, [R3] .text:100071C4 LDRSH R7, [R3,#4] .text:100071C8 CMP R5, R6 .text:100071CC BNE loc_100071DC .text:100071D0 .text:100071D0 loc_100071D0 ; CODE XREF: sub_10007174+34j .text:100071D0 LDR R0, =0xEEEE0011 .text:100071D4 STRH R6, [R4] .text:100071D8 B loc_1000725C .text:100071DC ; --------------------------------------------------------------------------- .text:100071DC .text:100071DC loc_100071DC ; CODE XREF: sub_10007174+58j .text:100071DC LDR R3, [R0,#4] .text:100071E0 ADD R2, SP, #0x20+var_20 .text:100071E4 LDRH R3, [R3,#2] .text:100071E8 TST R3, #2 .text:100071EC BEQ loc_100071FC .text:100071F0 MOV R1, R5 .text:100071F4 BL sub_10006CB0 .text:100071F8 B loc_10007200 .text:100071FC ; --------------------------------------------------------------------------- .text:100071FC .text:100071FC loc_100071FC ; CODE XREF: sub_10007174+78j .text:100071FC BL sub_100069C0 .text:10007200 .text:10007200 loc_10007200 ; CODE XREF: sub_10007174+84j .text:10007200 CMP R0, #0 .text:10007204 BNE loc_1000723C .text:10007208 LDRH R2, [SP,#0x20+var_20] .text:1000720C MOV R3, R2,LSL#16 .text:10007210 MOV R3, R3,LSR#16 .text:10007214 AND R3, R3, #0x7000 .text:10007218 CMP R3, R5 .text:1000721C LDRNE R0, =0xEEEE0020 .text:10007220 STRNEH R6, [R4] .text:10007224 BNE loc_1000725C .text:10007228 CMP R7, #0 .text:1000722C BEQ loc_10007244 .text:10007230 TST R2, #0x8000 .text:10007234 BNE loc_10007244 .text:10007238 LDR R0, =0xEEEE0021 .text:1000723C .text:1000723C loc_1000723C ; CODE XREF: sub_10007174+90j .text:1000723C STRH R6, [R4] .text:10007240 B loc_1000725C .text:10007244 ; --------------------------------------------------------------------------- .text:10007244 .text:10007244 loc_10007244 ; CODE XREF: sub_10007174+B8j .text:10007244 ; sub_10007174+C0j .text:10007244 AND R3, R2, R9 .text:10007248 CMP R8, #5 .text:1000724C STRH R3, [R4] .text:10007250 ADDEQ R3, R3, R3,LSL#1 .text:10007254 STREQH R3, [R4] .text:10007258 MOV R0, #0 .text:1000725C .text:1000725C loc_1000725C ; CODE XREF: sub_10007174+64j .text:1000725C ; sub_10007174+B0j ... .text:1000725C ADD SP, SP, #4 .text:10007260 LDMFD SP!, {R4-R9,LR} .text:10007264 BX LR .text:10007264 ; End of function sub_10007174 .text:10007264 .text:10007264 ; --------------------------------------------------------------------------- .text:10007268 dword_10007268 DCD 0xEEEE0021 ; DATA XREF: sub_10007174+C4r .text:1000726C dword_1000726C DCD 0xEEEE0020 ; DATA XREF: sub_10007174+A8r .text:10007270 dword_10007270 DCD 0xEEEE0011 ; DATA XREF: sub_10007174:loc_100071D0r .text:10007274 .text:10007274 ; =============== S U B R O U T I N E ======================================= .text:10007274 .text:10007274 .text:10007274 sub_10007274 ; CODE XREF: sub_10005BA0+24p .text:10007274 ; sub_10005D58+158p ... .text:10007274 STMFD SP!, {R4,R5,LR} .text:10007278 MOV R5, R1 .text:1000727C MOV R4, R0 .text:10007280 LDR R3, [R4,#0x14] .text:10007284 MOVS R2, R3 .text:10007288 BEQ loc_100072A8 .text:1000728C LDR R3, [R4,#0x1C] .text:10007290 TST R3, #2 .text:10007294 BEQ loc_100072A8 .text:10007298 MOV LR, PC .text:1000729C BX R2 .text:100072A0 CMP R0, #0 .text:100072A4 BEQ loc_100072E8 .text:100072A8 .text:100072A8 loc_100072A8 ; CODE XREF: sub_10007274+14j .text:100072A8 ; sub_10007274+20j .text:100072A8 LDR R3, [R4] .text:100072AC MOVS R2, R3 .text:100072B0 BEQ loc_100072E8 .text:100072B4 LDRB R3, [R2,#1] .text:100072B8 MOV R1, #1 .text:100072BC MOV R1, R1,LSL R5 .text:100072C0 TST R3, R1 .text:100072C4 BEQ loc_100072E8 .text:100072C8 LDRB R3, [R2,#1] .text:100072CC BIC R3, R3, R1 .text:100072D0 STRB R3, [R2,#1] .text:100072D4 LDR R3, [R4] .text:100072D8 LDRB R3, [R3,#1] .text:100072DC CMP R3, #0 .text:100072E0 MOVEQ R0, R4 .text:100072E4 BLEQ sub_10008290 .text:100072E8 .text:100072E8 loc_100072E8 ; CODE XREF: sub_10007274+30j .text:100072E8 ; sub_10007274+3Cj ... .text:100072E8 LDR R3, [R4,#0x18] .text:100072EC MOVS R2, R3 .text:100072F0 LDRNE R3, [R4,#0x1C] .text:100072F4 TSTNE R3, #2 .text:100072F8 MOVNE R0, R4 .text:100072FC MOVNE LR, PC .text:10007300 BXNE R2 .text:10007304 LDMFD SP!, {R4,R5,LR} .text:10007308 BX LR .text:10007308 ; End of function sub_10007274 .text:10007308 .text:1000730C .text:1000730C ; =============== S U B R O U T I N E ======================================= .text:1000730C .text:1000730C .text:1000730C sub_1000730C ; CODE XREF: sub_10005D58+A8p .text:1000730C ; sub_100069C0+74p ... .text:1000730C STMFD SP!, {R4-R7,LR} .text:10007310 MOV R6, R2 .text:10007314 MOV R7, R1 .text:10007318 MOV R4, R0 .text:1000731C LDR R3, [R4,#0xC] .text:10007320 MOVS R5, R3 .text:10007324 BEQ loc_10007348 .text:10007328 LDR R3, [R4,#0x1C] .text:1000732C TST R3, #2 .text:10007330 BEQ loc_10007348 .text:10007334 MOV LR, PC .text:10007338 BX R5 .text:1000733C CMP R0, #0 .text:10007340 LDREQ R5, =0xEEEE0003 .text:10007344 BEQ loc_1000740C .text:10007348 .text:10007348 loc_10007348 ; CODE XREF: sub_1000730C+18j .text:10007348 ; sub_1000730C+24j .text:10007348 LDR R3, [R4,#0x14] .text:1000734C MOVS R2, R3 .text:10007350 BEQ loc_10007378 .text:10007354 LDR R3, [R4,#0x1C] .text:10007358 TST R3, #2 .text:1000735C BEQ loc_10007378 .text:10007360 MOV R0, R4 .text:10007364 MOV LR, PC .text:10007368 BX R2 .text:1000736C CMP R0, #0 .text:10007370 LDREQ R5, =0xEEEE0003 .text:10007374 BEQ loc_100073AC .text:10007378 .text:10007378 loc_10007378 ; CODE XREF: sub_1000730C+44j .text:10007378 ; sub_1000730C+50j .text:10007378 MOV R2, R6 .text:1000737C MOV R1, R7 .text:10007380 MOV R0, R4 .text:10007384 BL sub_100080EC .text:10007388 LDR R3, [R4,#0x18] .text:1000738C MOVS R5, R0 .text:10007390 BEQ loc_100073D4 .text:10007394 MOVS R2, R3 .text:10007398 LDRNE R3, [R4,#0x1C] .text:1000739C TSTNE R3, #2 .text:100073A0 MOVNE R0, R4 .text:100073A4 MOVNE LR, PC .text:100073A8 BXNE R2 .text:100073AC .text:100073AC loc_100073AC ; CODE XREF: sub_1000730C+68j .text:100073AC LDR R3, [R4,#0x10] .text:100073B0 MOVS R2, R3 .text:100073B4 BEQ loc_1000740C .text:100073B8 LDR R3, [R4,#0x1C] .text:100073BC TST R3, #2 .text:100073C0 BEQ loc_1000740C .text:100073C4 MOV R0, R4 .text:100073C8 MOV LR, PC .text:100073CC BX R2 .text:100073D0 B loc_1000740C .text:100073D4 ; --------------------------------------------------------------------------- .text:100073D4 .text:100073D4 loc_100073D4 ; CODE XREF: sub_1000730C+84j .text:100073D4 MOVS R2, R3 .text:100073D8 LDRNE R3, [R4,#0x1C] .text:100073DC TSTNE R3, #2 .text:100073E0 MOVNE R0, R4 .text:100073E4 MOVNE LR, PC .text:100073E8 BXNE R2 .text:100073EC LDR R3, [R4,#0x10] .text:100073F0 MOVS R2, R3 .text:100073F4 LDRNE R3, [R4,#0x1C] .text:100073F8 TSTNE R3, #2 .text:100073FC MOVNE R0, R4 .text:10007400 MOVNE LR, PC .text:10007404 BXNE R2 .text:10007408 MOV R5, #0 .text:1000740C .text:1000740C loc_1000740C ; CODE XREF: sub_1000730C+38j .text:1000740C ; sub_1000730C+A8j ... .text:1000740C MOV R0, R5 .text:10007410 LDMFD SP!, {R4-R7,LR} .text:10007414 BX LR .text:10007414 ; End of function sub_1000730C .text:10007414 .text:10007414 ; --------------------------------------------------------------------------- .text:10007418 dword_10007418 DCD 0xEEEE0003 ; DATA XREF: sub_1000730C+34r .text:10007418 ; sub_1000730C+64r .text:1000741C .text:1000741C ; =============== S U B R O U T I N E ======================================= .text:1000741C .text:1000741C .text:1000741C sub_1000741C ; CODE XREF: sub_10005C04+3Cp .text:1000741C ; sub_10005C04+4Cp ... .text:1000741C STMFD SP!, {R4-R7,LR} .text:10007420 MOV R6, R2 .text:10007424 MOV R7, R1 .text:10007428 MOV R4, R0 .text:1000742C LDR R3, [R4,#0xC] .text:10007430 MOVS R5, R3 .text:10007434 BEQ loc_10007458 .text:10007438 LDR R3, [R4,#0x1C] .text:1000743C TST R3, #2 .text:10007440 BEQ loc_10007458 .text:10007444 MOV LR, PC .text:10007448 BX R5 .text:1000744C CMP R0, #0 .text:10007450 LDREQ R5, =0xEEEE0003 .text:10007454 BEQ loc_1000751C .text:10007458 .text:10007458 loc_10007458 ; CODE XREF: sub_1000741C+18j .text:10007458 ; sub_1000741C+24j .text:10007458 LDR R3, [R4,#0x14] .text:1000745C MOVS R2, R3 .text:10007460 BEQ loc_10007488 .text:10007464 LDR R3, [R4,#0x1C] .text:10007468 TST R3, #2 .text:1000746C BEQ loc_10007488 .text:10007470 MOV R0, R4 .text:10007474 MOV LR, PC .text:10007478 BX R2 .text:1000747C CMP R0, #0 .text:10007480 LDREQ R5, =0xEEEE0003 .text:10007484 BEQ loc_100074BC .text:10007488 .text:10007488 loc_10007488 ; CODE XREF: sub_1000741C+44j .text:10007488 ; sub_1000741C+50j .text:10007488 MOV R2, R6 .text:1000748C MOV R1, R7 .text:10007490 MOV R0, R4 .text:10007494 BL sub_10008158 .text:10007498 LDR R3, [R4,#0x18] .text:1000749C MOVS R5, R0 .text:100074A0 BEQ loc_100074E4 .text:100074A4 MOVS R2, R3 .text:100074A8 LDRNE R3, [R4,#0x1C] .text:100074AC TSTNE R3, #2 .text:100074B0 MOVNE R0, R4 .text:100074B4 MOVNE LR, PC .text:100074B8 BXNE R2 .text:100074BC .text:100074BC loc_100074BC ; CODE XREF: sub_1000741C+68j .text:100074BC LDR R3, [R4,#0x10] .text:100074C0 MOVS R2, R3 .text:100074C4 BEQ loc_1000751C .text:100074C8 LDR R3, [R4,#0x1C] .text:100074CC TST R3, #2 .text:100074D0 BEQ loc_1000751C .text:100074D4 MOV R0, R4 .text:100074D8 MOV LR, PC .text:100074DC BX R2 .text:100074E0 B loc_1000751C .text:100074E4 ; --------------------------------------------------------------------------- .text:100074E4 .text:100074E4 loc_100074E4 ; CODE XREF: sub_1000741C+84j .text:100074E4 MOVS R2, R3 .text:100074E8 LDRNE R3, [R4,#0x1C] .text:100074EC TSTNE R3, #2 .text:100074F0 MOVNE R0, R4 .text:100074F4 MOVNE LR, PC .text:100074F8 BXNE R2 .text:100074FC LDR R3, [R4,#0x10] .text:10007500 MOVS R2, R3 .text:10007504 LDRNE R3, [R4,#0x1C] .text:10007508 TSTNE R3, #2 .text:1000750C MOVNE R0, R4 .text:10007510 MOVNE LR, PC .text:10007514 BXNE R2 .text:10007518 MOV R5, #0 .text:1000751C .text:1000751C loc_1000751C ; CODE XREF: sub_1000741C+38j .text:1000751C ; sub_1000741C+A8j ... .text:1000751C MOV R0, R5 .text:10007520 LDMFD SP!, {R4-R7,LR} .text:10007524 BX LR .text:10007524 ; End of function sub_1000741C .text:10007524 .text:10007524 ; --------------------------------------------------------------------------- .text:10007528 dword_10007528 DCD 0xEEEE0003 ; DATA XREF: sub_1000741C+34r .text:10007528 ; sub_1000741C+64r .text:1000752C .text:1000752C ; =============== S U B R O U T I N E ======================================= .text:1000752C .text:1000752C .text:1000752C sub_1000752C ; CODE XREF: sub_100069C0+54p .text:1000752C ; sub_100069C0+C4p ... .text:1000752C .text:1000752C var_18 = -0x18 .text:1000752C .text:1000752C STMFD SP!, {R4-R7,LR} .text:10007530 SUB SP, SP, #4 .text:10007534 MOV R6, R3 .text:10007538 MOV R7, R2 .text:1000753C MOV R4, R1 .text:10007540 MOV R5, R0 .text:10007544 ADD R2, SP, #0x18+var_18 .text:10007548 BL sub_1000730C .text:1000754C CMP R0, #0 .text:10007550 LDREQH LR, [SP,#0x18+var_18] .text:10007554 ANDEQ R2, R7, R6 .text:10007558 MOVEQ R1, R4 .text:1000755C BICEQ R3, LR, R6 .text:10007560 ORREQ R2, R3, R2 .text:10007564 MOVEQ R0, R5 .text:10007568 STREQH R2, [SP,#0x18+var_18] .text:1000756C BLEQ sub_1000741C .text:10007570 ADD SP, SP, #4 .text:10007574 LDMFD SP!, {R4-R7,LR} .text:10007578 BX LR .text:10007578 ; End of function sub_1000752C .text:10007578 .text:1000757C .text:1000757C ; =============== S U B R O U T I N E ======================================= .text:1000757C .text:1000757C .text:1000757C sub_1000757C ; CODE XREF: sub_10005D58+F4p .text:1000757C ; sub_10005D58+10Cp .text:1000757C ; DATA XREF: ... .text:1000757C .text:1000757C var_4 = -4 .text:1000757C arg_4 = 4 .text:1000757C .text:1000757C STR LR, [SP,#var_4]! .text:10007580 MOV R3, R2 .text:10007584 MOV R2, #0 .text:10007588 BL sub_1000752C .text:1000758C LDR LR, [SP],#arg_4 .text:10007590 BX LR .text:10007590 ; End of function sub_1000757C .text:10007590 .text:10007594 .text:10007594 ; =============== S U B R O U T I N E ======================================= .text:10007594 .text:10007594 .text:10007594 sub_10007594 ; CODE XREF: sub_10007620+10p .text:10007594 ; DATA XREF: .pdata:1000D368o .text:10007594 .text:10007594 var_C = -0xC .text:10007594 .text:10007594 STMFD SP!, {R4,LR} .text:10007598 SUB SP, SP, #4 .text:1000759C MOV R4, R0 .text:100075A0 BL sub_1000820C .text:100075A4 CMP R0, #0 .text:100075A8 BEQ loc_100075C0 .text:100075AC ADD R2, SP, #0xC+var_C .text:100075B0 MOV R1, #0x26 .text:100075B4 MOV R0, R4 .text:100075B8 BL sub_1000730C .text:100075BC B loc_100075C4 .text:100075C0 ; --------------------------------------------------------------------------- .text:100075C0 .text:100075C0 loc_100075C0 ; CODE XREF: sub_10007594+14j .text:100075C0 LDR R0, =0xEEEE0005 .text:100075C4 .text:100075C4 loc_100075C4 ; CODE XREF: sub_10007594+28j .text:100075C4 CMP R0, #0 .text:100075C8 BNE loc_1000760C .text:100075CC LDRH R3, [SP,#0xC+var_C] .text:100075D0 MOV R0, #1 .text:100075D4 TST R3, #0x100 .text:100075D8 MOVEQ R0, #0x11 .text:100075DC TST R3, #0x200 .text:100075E0 ORREQ R0, R0, #0x20 .text:100075E4 TST R3, #0x400 .text:100075E8 ORREQ R0, R0, #4 .text:100075EC TST R3, #0x800 .text:100075F0 ORREQ R0, R0, #8 .text:100075F4 TST R3, #0x2000 .text:100075F8 ORREQ R0, R0, #2 .text:100075FC TST R3, #0x4000 .text:10007600 BNE loc_10007610 .text:10007604 ORR R0, R0, #0x40 .text:10007608 B loc_10007610 .text:1000760C ; --------------------------------------------------------------------------- .text:1000760C .text:1000760C loc_1000760C ; CODE XREF: sub_10007594+34j .text:1000760C MOV R0, #0 .text:10007610 .text:10007610 loc_10007610 ; CODE XREF: sub_10007594+6Cj .text:10007610 ; sub_10007594+74j .text:10007610 ADD SP, SP, #4 .text:10007614 LDMFD SP!, {R4,LR} .text:10007618 BX LR .text:10007618 ; End of function sub_10007594 .text:10007618 .text:10007618 ; --------------------------------------------------------------------------- .text:1000761C dword_1000761C DCD 0xEEEE0005 ; DATA XREF: sub_10007594:loc_100075C0r .text:10007620 .text:10007620 ; =============== S U B R O U T I N E ======================================= .text:10007620 .text:10007620 .text:10007620 sub_10007620 ; CODE XREF: sub_10007740+58p .text:10007620 ; sub_10007B0C+70p .text:10007620 ; DATA XREF: ... .text:10007620 .text:10007620 arg_0 = 0 .text:10007620 .text:10007620 STMFD SP!, {R4-R6,LR} .text:10007624 MOV R5, R3 .text:10007628 MOV R4, R2 .text:1000762C MOV R6, R0 .text:10007630 BL sub_10007594 .text:10007634 MOV LR, R0 .text:10007638 ORR R2, R4, LR .text:1000763C LDR R1, [SP,#0x10+arg_0] .text:10007640 BIC R3, R2, R5 .text:10007644 TST LR, #1 .text:10007648 MOV R0, R3,LSL#16 .text:1000764C STRH LR, [R1] .text:10007650 LDRH R2, [R6,#0x24] .text:10007654 MOV R3, #0x4C00 .text:10007658 MOV R0, R0,LSR#16 .text:1000765C ORR R3, R3, #7 .text:10007660 ORRNE R0, R0, #1 .text:10007664 CMP R2, R3 .text:10007668 BNE loc_10007674 .text:1000766C TST LR, #8 .text:10007670 ORRNE R0, R0, #8 .text:10007674 .text:10007674 loc_10007674 ; CODE XREF: sub_10007620+48j .text:10007674 TST R0, #0x4000 .text:10007678 MOVLNE R3, 0x1001 .text:10007680 ORRNE R3, R0, R3 .text:10007684 MOVNE R0, R3,LSL#16 .text:10007688 MOVNE R0, R0,LSR#16 .text:1000768C TST R0, #0x64 .text:10007690 ORRNE R3, R0, #0xC .text:10007694 MOVNE R0, R3 .text:10007698 TST R0, #0x10 .text:1000769C ORRNE R3, R0, #8 .text:100076A0 MOVNE R0, R3 .text:100076A4 MOVL R3, 0x1030 .text:100076AC TST R0, R3 .text:100076B0 ORRNE R3, R0, #3 .text:100076B4 MOVNE R0, R3 .text:100076B8 LDMFD SP!, {R4-R6,LR} .text:100076BC BX LR .text:100076BC ; End of function sub_10007620 .text:100076BC .text:100076C0 .text:100076C0 ; =============== S U B R O U T I N E ======================================= .text:100076C0 .text:100076C0 .text:100076C0 sub_100076C0 ; CODE XREF: sub_10007740+8Cp .text:100076C0 ; DATA XREF: .pdata:1000D378o .text:100076C0 STMFD SP!, {R4,R5,LR} .text:100076C4 MOV R4, R0 .text:100076C8 LDR R3, [R4,#0x14] .text:100076CC MOVS R2, R3 .text:100076D0 BEQ loc_100076F4 .text:100076D4 LDR R3, [R4,#0x1C] .text:100076D8 TST R3, #2 .text:100076DC BEQ loc_100076F4 .text:100076E0 MOV LR, PC .text:100076E4 BX R2 .text:100076E8 CMP R0, #0 .text:100076EC LDREQ R5, =0xEEEE0003 .text:100076F0 BEQ loc_10007730 .text:100076F4 .text:100076F4 loc_100076F4 ; CODE XREF: sub_100076C0+10j .text:100076F4 ; sub_100076C0+1Cj .text:100076F4 MOV R0, R4 .text:100076F8 BL sub_10008224 .text:100076FC MOVS R5, R0 .text:10007700 BEQ loc_1000772C .text:10007704 LDR R3, [R4,#0x18] .text:10007708 MOVS R2, R3 .text:1000770C BEQ loc_10007730 .text:10007710 LDR R3, [R4,#0x1C] .text:10007714 TST R3, #2 .text:10007718 BEQ loc_10007730 .text:1000771C MOV R0, R4 .text:10007720 MOV LR, PC .text:10007724 BX R2 .text:10007728 B loc_10007730 .text:1000772C ; --------------------------------------------------------------------------- .text:1000772C .text:1000772C loc_1000772C ; CODE XREF: sub_100076C0+40j .text:1000772C MOV R5, #0 .text:10007730 .text:10007730 loc_10007730 ; CODE XREF: sub_100076C0+30j .text:10007730 ; sub_100076C0+4Cj ... .text:10007730 MOV R0, R5 .text:10007734 LDMFD SP!, {R4,R5,LR} .text:10007738 BX LR .text:10007738 ; End of function sub_100076C0 .text:10007738 .text:10007738 ; --------------------------------------------------------------------------- .text:1000773C dword_1000773C DCD 0xEEEE0003 ; DATA XREF: sub_100076C0+2Cr .text:10007740 .text:10007740 ; =============== S U B R O U T I N E ======================================= .text:10007740 .text:10007740 .text:10007740 sub_10007740 ; CODE XREF: sub_10005BD0+10p .text:10007740 ; sub_100069C0+30p ... .text:10007740 .text:10007740 var_20 = -0x20 .text:10007740 var_1C = -0x1C .text:10007740 var_1A = -0x1A .text:10007740 .text:10007740 STMFD SP!, {R4-R8,LR} .text:10007744 SUB SP, SP, #8 .text:10007748 MOV R6, R2 .text:1000774C MOV R7, R1 .text:10007750 MOV R4, R0 .text:10007754 LDR R3, [R4,#0x14] .text:10007758 MOVS R5, R3 .text:1000775C BEQ loc_10007780 .text:10007760 LDR R3, [R4,#0x1C] .text:10007764 TST R3, #2 .text:10007768 BEQ loc_10007780 .text:1000776C MOV LR, PC .text:10007770 BX R5 .text:10007774 CMP R0, #0 .text:10007778 LDREQ R5, =0xEEEE0003 .text:1000777C BEQ loc_10007AF8 .text:10007780 .text:10007780 loc_10007780 ; CODE XREF: sub_10007740+1Cj .text:10007780 ; sub_10007740+28j .text:10007780 ADD R3, SP, #0x20+var_1A .text:10007784 STR R3, [SP,#0x20+var_20] .text:10007788 MOV R3, #0 .text:1000778C MOV R2, R6 .text:10007790 MOV R1, R7 .text:10007794 MOV R0, R4 .text:10007798 BL sub_10007620 .text:1000779C LDRH R2, [SP,#0x20+var_1A] .text:100077A0 MOV R7, R0 .text:100077A4 BIC R3, R7, R2 .text:100077A8 MOV R6, R3,LSL#16 .text:100077AC MOVS R6, R6,LSR#16 .text:100077B0 BEQ loc_10007AD8 .text:100077B4 TST R2, #1 .text:100077B8 BNE loc_100077D0 .text:100077BC MOV R1, #1 .text:100077C0 MOV R0, R4 .text:100077C4 BL sub_100081EC .text:100077C8 MOV R0, R4 .text:100077CC BL sub_100076C0 .text:100077D0 .text:100077D0 loc_100077D0 ; CODE XREF: sub_10007740+78j .text:100077D0 ADD R2, SP, #0x20+var_1C .text:100077D4 MOV R1, #0x26 .text:100077D8 MOV R0, R4 .text:100077DC BL sub_1000730C .text:100077E0 MOVS R5, R0 .text:100077E4 BNE loc_10007AB0 .text:100077E8 MOVL R3, 0xFFE .text:100077F0 MOV R8, #0xF700 .text:100077F4 TST R6, R3 .text:100077F8 ORR R8, R8, #0xFF .text:100077FC BEQ loc_10007A20 .text:10007800 MOV R3, #0x80 .text:10007804 MOV R2, #0 .text:10007808 MOV R1, #0x5C .text:1000780C MOV R0, R4 .text:10007810 BL sub_1000752C .text:10007814 MOV R3, #4 .text:10007818 MOV R2, #4 .text:1000781C MOV R1, #0x68 .text:10007820 MOV R0, R4 .text:10007824 BL sub_1000752C .text:10007828 MOVS R5, R0 .text:1000782C BNE loc_10007AB0 .text:10007830 TST R6, #2 .text:10007834 BEQ loc_10007868 .text:10007838 LDRH R2, [SP,#0x20+var_1C] .text:1000783C TST R2, #0x2000 .text:10007840 BEQ loc_1000786C .text:10007844 MOVL R3, 0xDFFF .text:1000784C AND R2, R2, R3 .text:10007850 MOV R1, #0x26 .text:10007854 MOV R0, R4 .text:10007858 STRH R2, [SP,#0x20+var_1C] .text:1000785C BL sub_1000741C .text:10007860 MOVS R5, R0 .text:10007864 BNE loc_10007AB0 .text:10007868 .text:10007868 loc_10007868 ; CODE XREF: sub_10007740+F4j .text:10007868 LDRH R2, [SP,#0x20+var_1C] .text:1000786C .text:1000786C loc_1000786C ; CODE XREF: sub_10007740+100j .text:1000786C TST R6, #8 .text:10007870 BEQ loc_100078A4 .text:10007874 TST R2, #0x800 .text:10007878 BEQ loc_100078A4 .text:1000787C AND R2, R2, R8 .text:10007880 MOV R1, #0x26 .text:10007884 MOV R0, R4 .text:10007888 STRH R2, [SP,#0x20+var_1C] .text:1000788C BL sub_1000741C .text:10007890 MOVS R5, R0 .text:10007894 BNE loc_10007AB0 .text:10007898 MOV R0, R4 .text:1000789C BL nullsub_1 .text:100078A0 LDRH R2, [SP,#0x20+var_1C] .text:100078A4 .text:100078A4 loc_100078A4 ; CODE XREF: sub_10007740+130j .text:100078A4 ; sub_10007740+138j .text:100078A4 TST R6, #4 .text:100078A8 BEQ loc_1000791C .text:100078AC TST R2, #0x400 .text:100078B0 BEQ loc_1000791C .text:100078B4 MOVL R3, 0x40F .text:100078BC MOV R2, #0 .text:100078C0 MOV R1, #0x3C .text:100078C4 MOV R0, R4 .text:100078C8 BL sub_1000752C .text:100078CC MOV R3, #0x7F .text:100078D0 MOV R2, #0 .text:100078D4 MOV R1, #0x3E .text:100078D8 MOV R0, R4 .text:100078DC BL sub_1000752C .text:100078E0 MOVS R5, R0 .text:100078E4 BNE loc_10007AB0 .text:100078E8 LDRH R3, [SP,#0x20+var_1C] .text:100078EC MOVL R2, 0xFBFF .text:100078F4 AND R2, R3, R2 .text:100078F8 MOV R1, #0x26 @ RJK: ac97 power ??? .text:100078FC MOV R0, R4 .text:10007900 STRH R2, [SP,#0x20+var_1C] .text:10007904 BL sub_1000741C @ RJK: disables internal clock ? .text:10007908 MOVS R5, R0 .text:1000790C BNE loc_10007AB0 .text:10007910 MOV R0, R4 .text:10007914 BL nullsub_1 .text:10007918 LDRH R2, [SP,#0x20+var_1C] .text:1000791C .text:1000791C loc_1000791C ; CODE XREF: sub_10007740+168j .text:1000791C ; sub_10007740+170j .text:1000791C TST R6, #0x20 .text:10007920 BEQ loc_10007974 .text:10007924 TST R2, #0x200 .text:10007928 BEQ loc_10007974 .text:1000792C MOV R3, #0x18C0 .text:10007930 MOV R2, #0 .text:10007934 MOV R1, #0x3C .text:10007938 MOV R0, R4 .text:1000793C BL sub_1000752C .text:10007940 MOVS R5, R0 .text:10007944 BNE loc_10007AB0 .text:10007948 LDRH R3, [SP,#0x20+var_1C] .text:1000794C MOVL R2, 0xFDFF @ RJK: internal ac97 link .text:10007954 AND R2, R3, R2 .text:10007958 MOV R1, #0x26 .text:1000795C MOV R0, R4 .text:10007960 STRH R2, [SP,#0x20+var_1C] .text:10007964 BL sub_1000741C .text:10007968 MOVS R5, R0 .text:1000796C BNE loc_10007AB0 .text:10007970 LDRH R2, [SP,#0x20+var_1C] .text:10007974 .text:10007974 loc_10007974 ; CODE XREF: sub_10007740+1E0j .text:10007974 ; sub_10007740+1E8j .text:10007974 TST R6, #0x10 .text:10007978 BEQ loc_100079CC .text:1000797C TST R2, #0x100 .text:10007980 BEQ loc_100079CC .text:10007984 MOV R3, #0x30 .text:10007988 MOV R2, #0 .text:1000798C MOV R1, #0x3C .text:10007990 MOV R0, R4 .text:10007994 BL sub_1000752C .text:10007998 MOVS R5, R0 .text:1000799C BNE loc_10007AB0 .text:100079A0 LDRH R3, [SP,#0x20+var_1C] .text:100079A4 MOVL R2, 0xFEFF .text:100079AC AND R2, R3, R2 .text:100079B0 MOV R1, #0x26 .text:100079B4 MOV R0, R4 .text:100079B8 STRH R2, [SP,#0x20+var_1C] .text:100079BC BL sub_1000741C .text:100079C0 MOVS R5, R0 .text:100079C4 BNE loc_10007AB0 .text:100079C8 LDRH R2, [SP,#0x20+var_1C] .text:100079CC .text:100079CC loc_100079CC ; CODE XREF: sub_10007740+238j .text:100079CC ; sub_10007740+240j .text:100079CC TST R6, #0x40 .text:100079D0 BEQ loc_10007A24 .text:100079D4 TST R2, #0x4000 .text:100079D8 BEQ loc_10007A24 .text:100079DC MOV R3, #0x3F80 .text:100079E0 MOV R2, #0 .text:100079E4 MOV R1, #0x3E .text:100079E8 MOV R0, R4 .text:100079EC BL sub_1000752C .text:100079F0 MOVS R5, R0 .text:100079F4 BNE loc_10007AB0 .text:100079F8 LDRH R3, [SP,#0x20+var_1C] .text:100079FC MOVL R2, 0xBFFF .text:10007A04 AND R2, R3, R2 .text:10007A08 MOV R1, #0x26 .text:10007A0C MOV R0, R4 .text:10007A10 STRH R2, [SP,#0x20+var_1C] .text:10007A14 BL sub_1000741C .text:10007A18 MOVS R5, R0 .text:10007A1C BNE loc_10007AB0 .text:10007A20 .text:10007A20 loc_10007A20 ; CODE XREF: sub_10007740+BCj .text:10007A20 LDRH R2, [SP,#0x20+var_1C] .text:10007A24 .text:10007A24 loc_10007A24 ; CODE XREF: sub_10007740+290j .text:10007A24 ; sub_10007740+298j .text:10007A24 TST R6, #0x7000 .text:10007A28 BEQ loc_10007AD8 .text:10007A2C AND R2, R2, R8 .text:10007A30 MOV R1, #0x26 .text:10007A34 MOV R0, R4 .text:10007A38 STRH R2, [SP,#0x20+var_1C] .text:10007A3C BL sub_1000741C .text:10007A40 MOVS R5, R0 .text:10007A44 BNE loc_10007AB0 .text:10007A48 TST R7, #0x1000 .text:10007A4C MOVNE R2, #0xC000 .text:10007A50 BNE loc_10007A60 .text:10007A54 TST R7, #0x2000 .text:10007A58 MOVNE R2, #0x4000 .text:10007A5C MOVEQ R2, #0 .text:10007A60 .text:10007A60 loc_10007A60 ; CODE XREF: sub_10007740+310j .text:10007A60 MOV R3, #0xC000 .text:10007A64 MOV R1, #0x78 .text:10007A68 MOV R0, R4 .text:10007A6C BL sub_1000752C .text:10007A70 MOVS R5, R0 .text:10007A74 BNE loc_10007AB0 .text:10007A78 MOV R3, #0x8000 .text:10007A7C MOV R2, #0 .text:10007A80 MOV R1, #0x3C .text:10007A84 MOV R0, R4 .text:10007A88 BL sub_1000752C .text:10007A8C MOVS R5, R0 .text:10007A90 BNE loc_10007AB0 .text:10007A94 MOV R3, #0x400 .text:10007A98 MOV R2, #0 .text:10007A9C MOV R1, #0x3C .text:10007AA0 MOV R0, R4 .text:10007AA4 BL sub_1000752C .text:10007AA8 MOVS R5, R0 .text:10007AAC BEQ loc_10007AD8 .text:10007AB0 .text:10007AB0 loc_10007AB0 ; CODE XREF: sub_10007740+A4j .text:10007AB0 ; sub_10007740+ECj ... .text:10007AB0 LDR R3, [R4,#0x18] .text:10007AB4 MOVS R2, R3 .text:10007AB8 BEQ loc_10007AF8 .text:10007ABC LDR R3, [R4,#0x1C] .text:10007AC0 TST R3, #2 .text:10007AC4 BEQ loc_10007AF8 .text:10007AC8 MOV R0, R4 .text:10007ACC MOV LR, PC .text:10007AD0 BX R2 .text:10007AD4 B loc_10007AF8 .text:10007AD8 ; --------------------------------------------------------------------------- .text:10007AD8 .text:10007AD8 loc_10007AD8 ; CODE XREF: sub_10007740+70j .text:10007AD8 ; sub_10007740+2E8j ... .text:10007AD8 LDR R3, [R4,#0x18] .text:10007ADC MOVS R2, R3 .text:10007AE0 LDRNE R3, [R4,#0x1C] .text:10007AE4 TSTNE R3, #2 .text:10007AE8 MOVNE R0, R4 .text:10007AEC MOVNE LR, PC .text:10007AF0 BXNE R2 .text:10007AF4 MOV R5, #0 .text:10007AF8 .text:10007AF8 loc_10007AF8 ; CODE XREF: sub_10007740+3Cj .text:10007AF8 ; sub_10007740+378j ... .text:10007AF8 MOV R0, R5 .text:10007AFC ADD SP, SP, #8 .text:10007B00 LDMFD SP!, {R4-R8,LR} .text:10007B04 BX LR .text:10007B04 ; End of function sub_10007740 .text:10007B04 .text:10007B04 ; --------------------------------------------------------------------------- .text:10007B08 dword_10007B08 DCD 0xEEEE0003 ; DATA XREF: sub_10007740+38r .text:10007B0C .text:10007B0C ; =============== S U B R O U T I N E ======================================= .text:10007B0C .text:10007B0C .text:10007B0C sub_10007B0C ; CODE XREF: sub_10005BA0+10p .text:10007B0C ; sub_10005C04+20p ... .text:10007B0C .text:10007B0C var_20 = -0x20 .text:10007B0C var_1C = -0x1C .text:10007B0C var_1A = -0x1A .text:10007B0C .text:10007B0C STMFD SP!, {R4-R8,LR} .text:10007B10 SUB SP, SP, #8 .text:10007B14 MOV R8, R2 .text:10007B18 MOV R6, R1 .text:10007B1C MOV R4, R0 .text:10007B20 LDR R3, [R4,#0x14] .text:10007B24 MOVS R5, R3 .text:10007B28 BEQ loc_10007B4C .text:10007B2C LDR R3, [R4,#0x1C] .text:10007B30 TST R3, #2 .text:10007B34 BEQ loc_10007B4C .text:10007B38 MOV LR, PC .text:10007B3C BX R5 .text:10007B40 CMP R0, #0 .text:10007B44 LDREQ R5, =0xEEEE0003 .text:10007B48 BEQ loc_10007E28 .text:10007B4C .text:10007B4C loc_10007B4C ; CODE XREF: sub_10007B0C+1Cj .text:10007B4C ; sub_10007B0C+28j .text:10007B4C LDR R3, [R4,#0x1C] .text:10007B50 CMP R3, #0 .text:10007B54 MOVEQ R3, #1 .text:10007B58 MOVNE R3, #0 .text:10007B5C TST R3, #4 .text:10007B60 BNE loc_10007E08 .text:10007B64 ADD R3, SP, #0x20+var_1A .text:10007B68 STR R3, [SP,#0x20+var_20] .text:10007B6C MOV R3, R8 .text:10007B70 MOV R2, #0 .text:10007B74 MOV R1, R6 .text:10007B78 MOV R0, R4 .text:10007B7C BL sub_10007620 .text:10007B80 LDRH R3, [SP,#0x20+var_1A] .text:10007B84 MOV R7, R0 .text:10007B88 BICS R6, R3, R7 .text:10007B8C BEQ loc_10007E08 .text:10007B90 ADD R2, SP, #0x20+var_1C .text:10007B94 MOV R1, #0x26 .text:10007B98 MOV R0, R4 .text:10007B9C BL sub_1000730C .text:10007BA0 MOVS R5, R0 .text:10007BA4 BNE loc_10007DD4 .text:10007BA8 MOVL R3, 0xFFE .text:10007BB0 TST R6, R3 .text:10007BB4 BEQ loc_10007D50 .text:10007BB8 MOV R3, #0x3F80 .text:10007BBC MOV R2, #0x3F80 .text:10007BC0 MOV R1, #0x3E .text:10007BC4 MOV R0, R4 .text:10007BC8 BL sub_1000752C .text:10007BCC MOVS R5, R0 .text:10007BD0 BNE loc_10007DD4 .text:10007BD4 TST R6, #0x40 .text:10007BD8 BEQ loc_10007C04 .text:10007BDC TST R7, #0x40 .text:10007BE0 BNE loc_10007C04 .text:10007BE4 LDRH R3, [SP,#0x20+var_1C] .text:10007BE8 MOV R1, #0x26 .text:10007BEC MOV R0, R4 .text:10007BF0 ORR R2, R3, #0x4000 .text:10007BF4 STRH R2, [SP,#0x20+var_1C] .text:10007BF8 BL sub_1000741C .text:10007BFC MOVS R5, R0 .text:10007C00 BNE loc_10007DD4 .text:10007C04 .text:10007C04 loc_10007C04 ; CODE XREF: sub_10007B0C+CCj .text:10007C04 ; sub_10007B0C+D4j .text:10007C04 TST R6, #0x10 .text:10007C08 BEQ loc_10007C48 .text:10007C0C MOV R3, #0x30 .text:10007C10 MOV R2, #0x30 .text:10007C14 MOV R1, #0x3C .text:10007C18 MOV R0, R4 .text:10007C1C BL sub_1000752C .text:10007C20 MOVS R5, R0 .text:10007C24 BNE loc_10007DD4 .text:10007C28 LDRH R3, [SP,#0x20+var_1C] .text:10007C2C MOV R1, #0x26 .text:10007C30 MOV R0, R4 .text:10007C34 ORR R2, R3, #0x100 .text:10007C38 STRH R2, [SP,#0x20+var_1C] .text:10007C3C BL sub_1000741C .text:10007C40 MOVS R5, R0 .text:10007C44 BNE loc_10007DD4 .text:10007C48 .text:10007C48 loc_10007C48 ; CODE XREF: sub_10007B0C+FCj .text:10007C48 TST R6, #0x20 .text:10007C4C BEQ loc_10007C8C .text:10007C50 MOV R3, #0x18C0 .text:10007C54 MOV R2, #0x18C0 .text:10007C58 MOV R1, #0x3C .text:10007C5C MOV R0, R4 .text:10007C60 BL sub_1000752C .text:10007C64 MOVS R5, R0 .text:10007C68 BNE loc_10007DD4 .text:10007C6C LDRH R3, [SP,#0x20+var_1C] .text:10007C70 MOV R1, #0x26 .text:10007C74 MOV R0, R4 .text:10007C78 ORR R2, R3, #0x200 .text:10007C7C STRH R2, [SP,#0x20+var_1C] .text:10007C80 BL sub_1000741C .text:10007C84 MOVS R5, R0 .text:10007C88 BNE loc_10007DD4 .text:10007C8C .text:10007C8C loc_10007C8C ; CODE XREF: sub_10007B0C+140j .text:10007C8C TST R6, #4 .text:10007C90 BEQ loc_10007CF8 .text:10007C94 TST R7, #4 .text:10007C98 BNE loc_10007CF8 .text:10007C9C MOVL R2, 0x40F .text:10007CA4 MOV R3, R2 .text:10007CA8 MOV R1, #0x3C .text:10007CAC MOV R0, R4 .text:10007CB0 BL sub_1000752C .text:10007CB4 MOV R3, #0x7F .text:10007CB8 MOV R2, #0x7F .text:10007CBC MOV R1, #0x3E .text:10007CC0 MOV R0, R4 .text:10007CC4 BL sub_1000752C .text:10007CC8 MOVS R5, R0 .text:10007CCC BNE loc_10007DD4 .text:10007CD0 LDRH R3, [SP,#0x20+var_1C] .text:10007CD4 MOV R1, #0x26 .text:10007CD8 MOV R0, R4 .text:10007CDC ORR R2, R3, #0x400 .text:10007CE0 STRH R2, [SP,#0x20+var_1C] .text:10007CE4 BL sub_1000741C .text:10007CE8 MOVS R5, R0 .text:10007CEC BNE loc_10007DD4 .text:10007CF0 MOV R0, R4 .text:10007CF4 BL nullsub_2 .text:10007CF8 .text:10007CF8 loc_10007CF8 ; CODE XREF: sub_10007B0C+184j .text:10007CF8 ; sub_10007B0C+18Cj .text:10007CF8 TST R6, #8 .text:10007CFC BEQ loc_10007D28 .text:10007D00 LDRH R3, [SP,#0x20+var_1C] .text:10007D04 MOV R1, #0x26 .text:10007D08 MOV R0, R4 .text:10007D0C ORR R2, R3, #0x800 .text:10007D10 STRH R2, [SP,#0x20+var_1C] .text:10007D14 BL sub_1000741C .text:10007D18 MOVS R5, R0 .text:10007D1C BNE loc_10007DD4 .text:10007D20 MOV R0, R4 .text:10007D24 BL nullsub_2 .text:10007D28 .text:10007D28 loc_10007D28 ; CODE XREF: sub_10007B0C+1F0j .text:10007D28 TST R6, #2 .text:10007D2C BEQ loc_10007D50 .text:10007D30 LDRH R3, [SP,#0x20+var_1C] .text:10007D34 MOV R1, #0x26 .text:10007D38 MOV R0, R4 .text:10007D3C ORR R2, R3, #0x2000 .text:10007D40 STRH R2, [SP,#0x20+var_1C] .text:10007D44 BL sub_1000741C .text:10007D48 MOVS R5, R0 .text:10007D4C BNE loc_10007DD4 .text:10007D50 .text:10007D50 loc_10007D50 ; CODE XREF: sub_10007B0C+A8j .text:10007D50 ; sub_10007B0C+220j .text:10007D50 TST R6, #0x7000 .text:10007D54 BEQ loc_10007DA4 .text:10007D58 TST R7, #0x1000 .text:10007D5C MOVNE R2, #0xC000 .text:10007D60 BNE loc_10007D70 .text:10007D64 TST R7, #0x2000 .text:10007D68 MOVNE R2, #0x4000 .text:10007D6C MOVEQ R2, #0 .text:10007D70 .text:10007D70 loc_10007D70 ; CODE XREF: sub_10007B0C+254j .text:10007D70 MOV R3, #0xC000 .text:10007D74 MOV R1, #0x78 .text:10007D78 MOV R0, R4 .text:10007D7C BL sub_1000752C .text:10007D80 MOVS R5, R0 .text:10007D84 BNE loc_10007DD4 .text:10007D88 MOV R3, #0x8000 .text:10007D8C MOV R2, #0x8000 .text:10007D90 MOV R1, #0x3C .text:10007D94 MOV R0, R4 .text:10007D98 BL sub_1000752C .text:10007D9C MOVS R5, R0 .text:10007DA0 BNE loc_10007DD4 .text:10007DA4 .text:10007DA4 loc_10007DA4 ; CODE XREF: sub_10007B0C+248j .text:10007DA4 TST R6, #1 .text:10007DA8 BEQ loc_10007E08 .text:10007DAC TST R8, #1 .text:10007DB0 BEQ loc_10007E08 .text:10007DB4 LDRH R3, [SP,#0x20+var_1C] .text:10007DB8 MOV R1, #0x26 .text:10007DBC MOV R0, R4 .text:10007DC0 ORR R2, R3, #0x1000 .text:10007DC4 STRH R2, [SP,#0x20+var_1C] .text:10007DC8 BL sub_1000741C .text:10007DCC MOVS R5, R0 .text:10007DD0 BEQ loc_10007DFC .text:10007DD4 .text:10007DD4 loc_10007DD4 ; CODE XREF: sub_10007B0C+98j .text:10007DD4 ; sub_10007B0C+C4j ... .text:10007DD4 LDR R3, [R4,#0x18] .text:10007DD8 MOVS R2, R3 .text:10007DDC BEQ loc_10007E28 .text:10007DE0 LDR R3, [R4,#0x1C] .text:10007DE4 TST R3, #2 .text:10007DE8 BEQ loc_10007E28 .text:10007DEC MOV R0, R4 .text:10007DF0 MOV LR, PC .text:10007DF4 BX R2 .text:10007DF8 B loc_10007E28 .text:10007DFC ; --------------------------------------------------------------------------- .text:10007DFC .text:10007DFC loc_10007DFC ; CODE XREF: sub_10007B0C+2C4j .text:10007DFC MOV R1, #0 .text:10007E00 MOV R0, R4 .text:10007E04 BL sub_100081EC .text:10007E08 .text:10007E08 loc_10007E08 ; CODE XREF: sub_10007B0C+54j .text:10007E08 ; sub_10007B0C+80j ... .text:10007E08 LDR R3, [R4,#0x18] .text:10007E0C MOVS R2, R3 .text:10007E10 LDRNE R3, [R4,#0x1C] .text:10007E14 TSTNE R3, #2 .text:10007E18 MOVNE R0, R4 .text:10007E1C MOVNE LR, PC .text:10007E20 BXNE R2 .text:10007E24 MOV R5, #0 .text:10007E28 .text:10007E28 loc_10007E28 ; CODE XREF: sub_10007B0C+3Cj .text:10007E28 ; sub_10007B0C+2D0j ... .text:10007E28 MOV R0, R5 .text:10007E2C ADD SP, SP, #8 .text:10007E30 LDMFD SP!, {R4-R8,LR} .text:10007E34 BX LR .text:10007E34 ; End of function sub_10007B0C .text:10007E34 .text:10007E34 ; --------------------------------------------------------------------------- .text:10007E38 dword_10007E38 DCD 0xEEEE0003 ; DATA XREF: sub_10007B0C+38r .text:10007E3C .text:10007E3C ; =============== S U B R O U T I N E ======================================= .text:10007E3C .text:10007E3C .text:10007E3C sub_10007E3C ; CODE XREF: sub_10007FF4+60p .text:10007E3C ; DATA XREF: .pdata:1000D390o .text:10007E3C .text:10007E3C var_20 = -0x20 .text:10007E3C var_1E = -0x1E .text:10007E3C var_1C = -0x1C .text:10007E3C .text:10007E3C STMFD SP!, {R4-R8,LR} .text:10007E40 SUB SP, SP, #8 .text:10007E44 MOV R6, R2 .text:10007E48 MOV R7, R1 .text:10007E4C MOV R4, R0 .text:10007E50 LDR R3, [R4,#0x14] .text:10007E54 MOV R8, #0 .text:10007E58 MOVS R2, R3 .text:10007E5C BEQ loc_10007E80 .text:10007E60 LDR R3, [R4,#0x1C] .text:10007E64 TST R3, #2 .text:10007E68 BEQ loc_10007E80 .text:10007E6C MOV LR, PC .text:10007E70 BX R2 .text:10007E74 CMP R0, #0 .text:10007E78 LDREQ R5, =0xEEEE0003 .text:10007E7C BEQ loc_10007F8C .text:10007E80 .text:10007E80 loc_10007E80 ; CODE XREF: sub_10007E3C+20j .text:10007E80 ; sub_10007E3C+2Cj .text:10007E80 LDRH R3, [R4,#0x24] .text:10007E84 CMP R3, #0 .text:10007E88 BEQ loc_10007E98 .text:10007E8C LDR R3, [R4,#0x1C] .text:10007E90 TST R3, #8 .text:10007E94 BEQ loc_10007F58 .text:10007E98 .text:10007E98 loc_10007E98 ; CODE XREF: sub_10007E3C+4Cj .text:10007E98 ADD R2, SP, #0x20+var_20 .text:10007E9C MOV R1, #0x7C .text:10007EA0 MOV R0, R4 .text:10007EA4 STR R8, [R4,#0x28] .text:10007EA8 BL sub_1000730C .text:10007EAC MOVS R5, R0 .text:10007EB0 BNE loc_10007F70 .text:10007EB4 LDRH R2, [SP,#0x20+var_20] .text:10007EB8 MOVL R3, 0x574D .text:10007EC0 CMP R2, R3 .text:10007EC4 BNE loc_10007F6C .text:10007EC8 ADD R2, SP, #0x20+var_1E .text:10007ECC MOV R1, #0x7E .text:10007ED0 MOV R0, R4 .text:10007ED4 BL sub_1000730C .text:10007ED8 MOVS R5, R0 .text:10007EDC BNE loc_10007F70 .text:10007EE0 LDRH R2, [SP,#0x20+var_1E] .text:10007EE4 MOVL R3, 0x4C13 .text:10007EEC CMP R2, R3 .text:10007EF0 STRH R2, [R4,#0x24] .text:10007EF4 BNE loc_10007F6C .text:10007EF8 ADD R2, SP, #0x20+var_1C .text:10007EFC MOV R1, #0x5A .text:10007F00 MOV R0, R4 .text:10007F04 BL sub_1000730C .text:10007F08 CMP R0, #0 .text:10007F0C BNE loc_10007F2C .text:10007F10 LDRH R3, [SP,#0x20+var_1C] .text:10007F14 ANDS R3, R3, #0x1C .text:10007F18 BEQ loc_10007F44 .text:10007F1C CMP R3, #4 .text:10007F20 BEQ loc_10007F3C .text:10007F24 CMP R3, #8 .text:10007F28 BEQ loc_10007F34 .text:10007F2C .text:10007F2C loc_10007F2C ; CODE XREF: sub_10007E3C+D0j .text:10007F2C MOV R2, #0 .text:10007F30 B loc_10007F48 .text:10007F34 ; --------------------------------------------------------------------------- .text:10007F34 .text:10007F34 loc_10007F34 ; CODE XREF: sub_10007E3C+ECj .text:10007F34 MOV R2, #0x43 .text:10007F38 B loc_10007F48 .text:10007F3C ; --------------------------------------------------------------------------- .text:10007F3C .text:10007F3C loc_10007F3C ; CODE XREF: sub_10007E3C+E4j .text:10007F3C MOV R2, #0x42 .text:10007F40 B loc_10007F48 .text:10007F44 ; --------------------------------------------------------------------------- .text:10007F44 .text:10007F44 loc_10007F44 ; CODE XREF: sub_10007E3C+DCj .text:10007F44 MOV R2, #0x41 .text:10007F48 .text:10007F48 loc_10007F48 ; CODE XREF: sub_10007E3C+F4j .text:10007F48 ; sub_10007E3C+FCj ... .text:10007F48 LDR R3, [R4,#0x1C] .text:10007F4C STRH R2, [R4,#0x26] .text:10007F50 BIC R3, R3, #8 .text:10007F54 STR R3, [R4,#0x1C] .text:10007F58 .text:10007F58 loc_10007F58 ; CODE XREF: sub_10007E3C+58j .text:10007F58 MOV R0, R4 .text:10007F5C BL sub_1000842C .text:10007F60 CMP R0, #0 .text:10007F64 STR R0, [R4,#0x28] .text:10007F68 BNE loc_10007FA4 .text:10007F6C .text:10007F6C loc_10007F6C ; CODE XREF: sub_10007E3C+88j .text:10007F6C ; sub_10007E3C+B8j .text:10007F6C LDR R5, =0xEEEE0006 .text:10007F70 .text:10007F70 loc_10007F70 ; CODE XREF: sub_10007E3C+74j .text:10007F70 ; sub_10007E3C+A0j .text:10007F70 LDR R3, [R4,#0x18] .text:10007F74 MOVS R2, R3 .text:10007F78 LDRNE R3, [R4,#0x1C] .text:10007F7C TSTNE R3, #2 .text:10007F80 MOVNE R0, R4 .text:10007F84 MOVNE LR, PC .text:10007F88 BXNE R2 .text:10007F8C .text:10007F8C loc_10007F8C ; CODE XREF: sub_10007E3C+40j .text:10007F8C CMP R7, #0 .text:10007F90 STRNEH R8, [R7] .text:10007F94 CMP R6, #0 .text:10007F98 BEQ loc_10007FDC .text:10007F9C STRH R8, [R6] .text:10007FA0 B loc_10007FDC .text:10007FA4 ; --------------------------------------------------------------------------- .text:10007FA4 .text:10007FA4 loc_10007FA4 ; CODE XREF: sub_10007E3C+12Cj .text:10007FA4 CMP R7, #0 .text:10007FA8 LDRNEH R3, [R4,#0x24] .text:10007FAC STRNEH R3, [R7] .text:10007FB0 CMP R6, #0 .text:10007FB4 LDRNEH R3, [R4,#0x26] .text:10007FB8 STRNEH R3, [R6] .text:10007FBC LDR R3, [R4,#0x18] .text:10007FC0 MOVS R2, R3 .text:10007FC4 LDRNE R3, [R4,#0x1C] .text:10007FC8 TSTNE R3, #2 .text:10007FCC MOVNE R0, R4 .text:10007FD0 MOVNE LR, PC .text:10007FD4 BXNE R2 .text:10007FD8 MOV R5, #0 .text:10007FDC .text:10007FDC loc_10007FDC ; CODE XREF: sub_10007E3C+15Cj .text:10007FDC ; sub_10007E3C+164j .text:10007FDC MOV R0, R5 .text:10007FE0 ADD SP, SP, #8 .text:10007FE4 LDMFD SP!, {R4-R8,LR} .text:10007FE8 BX LR .text:10007FE8 ; End of function sub_10007E3C .text:10007FE8 .text:10007FE8 ; --------------------------------------------------------------------------- .text:10007FEC dword_10007FEC DCD 0xEEEE0006 ; DATA XREF: sub_10007E3C:loc_10007F6Cr .text:10007FF0 dword_10007FF0 DCD 0xEEEE0003 ; DATA XREF: sub_10007E3C+3Cr .text:10007FF4 .text:10007FF4 ; =============== S U B R O U T I N E ======================================= .text:10007FF4 .text:10007FF4 .text:10007FF4 sub_10007FF4 ; CODE XREF: sub_10005D58+48p .text:10007FF4 ; sub_10006884+3Cp .text:10007FF4 ; DATA XREF: ... .text:10007FF4 STMFD SP!, {R4-R6,LR} .text:10007FF8 MOV R6, R1 .text:10007FFC MOV R4, R0 .text:10008000 LDR R3, [R4,#0x14] .text:10008004 MOVS R2, R3 .text:10008008 BEQ loc_1000802C .text:1000800C LDR R3, [R4,#0x1C] .text:10008010 TST R3, #2 .text:10008014 BEQ loc_1000802C .text:10008018 MOV LR, PC .text:1000801C BX R2 .text:10008020 CMP R0, #0 .text:10008024 LDREQ R5, =0xEEEE0003 .text:10008028 BEQ loc_100080DC .text:1000802C .text:1000802C loc_1000802C ; CODE XREF: sub_10007FF4+14j .text:1000802C ; sub_10007FF4+20j .text:1000802C LDR R3, [R4,#0x1C] .text:10008030 TST R3, #4 .text:10008034 BNE loc_10008048 .text:10008038 MOV R0, R4 .text:1000803C BL sub_100082B4 .text:10008040 MOVS R5, R0 .text:10008044 BNE loc_1000806C .text:10008048 .text:10008048 loc_10008048 ; CODE XREF: sub_10007FF4+40j .text:10008048 MOV R2, #0 .text:1000804C MOV R1, #0 .text:10008050 MOV R0, R4 .text:10008054 BL sub_10007E3C .text:10008058 MOVS R5, R0 .text:1000805C BEQ loc_10008094 .text:10008060 MOV R1, R6 .text:10008064 MOV R0, R4 .text:10008068 BL sub_10007274 .text:1000806C .text:1000806C loc_1000806C ; CODE XREF: sub_10007FF4+50j .text:1000806C LDR R3, [R4,#0x18] .text:10008070 MOVS R2, R3 .text:10008074 BEQ loc_100080DC .text:10008078 LDR R3, [R4,#0x1C] .text:1000807C TST R3, #2 .text:10008080 BEQ loc_100080DC .text:10008084 MOV R0, R4 .text:10008088 MOV LR, PC .text:1000808C BX R2 .text:10008090 B loc_100080DC .text:10008094 ; --------------------------------------------------------------------------- .text:10008094 .text:10008094 loc_10008094 ; CODE XREF: sub_10007FF4+68j .text:10008094 LDR R3, [R4] .text:10008098 MOVS R2, R3 .text:1000809C BEQ loc_100080BC .text:100080A0 LDRB R3, [R2,#1] .text:100080A4 MOV R1, #1 .text:100080A8 MOV R1, R1,LSL R6 .text:100080AC TST R3, R1 .text:100080B0 LDREQB R3, [R2,#1] .text:100080B4 ORREQ R3, R3, R1 .text:100080B8 STREQB R3, [R2,#1] .text:100080BC .text:100080BC loc_100080BC ; CODE XREF: sub_10007FF4+A8j .text:100080BC LDR R3, [R4,#0x18] .text:100080C0 MOVS R2, R3 .text:100080C4 LDRNE R3, [R4,#0x1C] .text:100080C8 TSTNE R3, #2 .text:100080CC MOVNE R0, R4 .text:100080D0 MOVNE LR, PC .text:100080D4 BXNE R2 .text:100080D8 MOV R5, #0 .text:100080DC .text:100080DC loc_100080DC ; CODE XREF: sub_10007FF4+34j .text:100080DC ; sub_10007FF4+80j ... .text:100080DC MOV R0, R5 .text:100080E0 LDMFD SP!, {R4-R6,LR} .text:100080E4 BX LR .text:100080E4 ; End of function sub_10007FF4 .text:100080E4 .text:100080E4 ; --------------------------------------------------------------------------- .text:100080E8 dword_100080E8 DCD 0xEEEE0003 ; DATA XREF: sub_10007FF4+30r .text:100080EC .text:100080EC ; =============== S U B R O U T I N E ======================================= .text:100080EC .text:100080EC .text:100080EC sub_100080EC ; CODE XREF: sub_1000730C+78p .text:100080EC ; DATA XREF: .pdata:1000D3A0o .text:100080EC .text:100080EC var_1C = -0x1C .text:100080EC var_18 = -0x18 .text:100080EC .text:100080EC STMFD SP!, {R4-R7,LR} .text:100080F0 SUB SP, SP, #8 .text:100080F4 MOV R4, R2 .text:100080F8 MOV R5, R1 .text:100080FC MOV R6, R0 .text:10008100 LDR R3, [R6,#0x34] .text:10008104 LDR R2, [R6,#0x2C] .text:10008108 MOVL LR, 0x1388 .text:10008110 MOV R7, #0 .text:10008114 MOV R1, R4 .text:10008118 MOV R0, R5 .text:1000811C STR LR, [SP,#0x1C+var_1C] .text:10008120 STR R7, [SP,#0x1C+var_18] .text:10008124 BL sub_10008E34 .text:10008128 CMP R0, #0 .text:1000812C BEQ loc_10008148 .text:10008130 BL nullsub_3 .text:10008134 LDR R2, [R6,#0x2C] .text:10008138 LDR R3, [R2,#0x20] .text:1000813C BIC R3, R3, #1 .text:10008140 STR R3, [R2,#0x20] .text:10008144 B loc_1000814C .text:10008148 ; --------------------------------------------------------------------------- .text:10008148 .text:10008148 loc_10008148 ; CODE XREF: sub_100080EC+40j .text:10008148 MOV R0, #0 .text:1000814C .text:1000814C loc_1000814C ; CODE XREF: sub_100080EC+58j .text:1000814C ADD SP, SP, #8 .text:10008150 LDMFD SP!, {R4-R7,LR} .text:10008154 BX LR .text:10008154 ; End of function sub_100080EC .text:10008154 .text:10008158 .text:10008158 ; =============== S U B R O U T I N E ======================================= .text:10008158 .text:10008158 .text:10008158 sub_10008158 ; CODE XREF: sub_1000741C+78p .text:10008158 ; DATA XREF: .pdata:1000D3A8o .text:10008158 .text:10008158 var_1C = -0x1C .text:10008158 var_18 = -0x18 .text:10008158 .text:10008158 STMFD SP!, {R4-R7,LR} .text:1000815C SUB SP, SP, #8 .text:10008160 MOV R4, R2 .text:10008164 MOV R5, R1 .text:10008168 MOV R6, R0 .text:1000816C LDR R3, [R6,#0x34] .text:10008170 LDR R2, [R6,#0x2C] .text:10008174 MOVL LR, 0x1389 .text:1000817C MOV R7, #0 .text:10008180 MOV R1, R4 .text:10008184 MOV R0, R5 .text:10008188 STR LR, [SP,#0x1C+var_1C] .text:1000818C STR R7, [SP,#0x1C+var_18] .text:10008190 BL sub_10008CFC .text:10008194 CMP R0, #0 .text:10008198 BEQ loc_100081B4 .text:1000819C BL nullsub_3 .text:100081A0 LDR R2, [R6,#0x2C] .text:100081A4 LDR R3, [R2,#0x20] .text:100081A8 BIC R3, R3, #1 .text:100081AC STR R3, [R2,#0x20] .text:100081B0 B loc_100081B8 .text:100081B4 ; --------------------------------------------------------------------------- .text:100081B4 .text:100081B4 loc_100081B4 ; CODE XREF: sub_10008158+40j .text:100081B4 MOV R0, #0 .text:100081B8 .text:100081B8 loc_100081B8 ; CODE XREF: sub_10008158+58j .text:100081B8 ADD SP, SP, #8 .text:100081BC LDMFD SP!, {R4-R7,LR} .text:100081C0 BX LR .text:100081C0 ; End of function sub_10008158 .text:100081C0 .text:100081C4 .text:100081C4 ; =============== S U B R O U T I N E ======================================= .text:100081C4 .text:100081C4 .text:100081C4 sub_100081C4 ; CODE XREF: sub_10006CB0+B4p .text:100081C4 ; DATA XREF: .pdata:1000D3B0o .text:100081C4 LDR R2, [R0,#0x2C] .text:100081C8 LDR R3, [R2,#0x118] .text:100081CC TST R3, #0x10 .text:100081D0 MOVNE R3, #0x10 .text:100081D4 STRNE R3, [R2,#0x118] .text:100081D8 LDR R3, [R0,#0x2C] .text:100081DC MOV R0, #0 .text:100081E0 LDR R3, [R3,#0x140] .text:100081E4 STRH R3, [R1] .text:100081E8 BX LR .text:100081E8 ; End of function sub_100081C4 .text:100081E8 .text:100081EC .text:100081EC ; =============== S U B R O U T I N E ======================================= .text:100081EC .text:100081EC .text:100081EC sub_100081EC ; CODE XREF: sub_10007740+84p .text:100081EC ; sub_10007B0C+2F8p .text:100081EC ; DATA XREF: ... .text:100081EC CMP R1, #0 .text:100081F0 LDR R2, [R0,#0x2C] .text:100081F4 LDR R3, [R2,#0xC] .text:100081F8 BICNE R3, R3, #8 .text:100081FC STRNE R3, [R2,#0xC] .text:10008200 ORREQ R3, R3, #8 .text:10008204 STREQ R3, [R2,#0xC] .text:10008208 BX LR .text:10008208 ; End of function sub_100081EC .text:10008208 .text:1000820C .text:1000820C ; =============== S U B R O U T I N E ======================================= .text:1000820C .text:1000820C .text:1000820C sub_1000820C ; CODE XREF: sub_10007594+Cp .text:1000820C ; DATA XREF: .pdata:1000D3C0o .text:1000820C LDR R3, [R0,#0x2C] .text:10008210 LDR R3, [R3,#0x1C] .text:10008214 TST R3, #0x300 .text:10008218 MOVNE R0, #1 .text:1000821C MOVEQ R0, #0 .text:10008220 BX LR .text:10008220 ; End of function sub_1000820C .text:10008220 .text:10008224 .text:10008224 ; =============== S U B R O U T I N E ======================================= .text:10008224 .text:10008224 .text:10008224 sub_10008224 ; CODE XREF: sub_100076C0+38p .text:10008224 ; DATA XREF: .pdata:1000D3C8o .text:10008224 STMFD SP!, {R4,LR} .text:10008228 MOV R4, R0 .text:1000822C LDR R2, [R4,#0x2C] .text:10008230 MOV R1, #5 .text:10008234 LDR R3, [R2,#0xC] .text:10008238 ORR R3, R3, #4 .text:1000823C STR R3, [R2,#0xC] .text:10008240 BL sub_1000837C .text:10008244 LDR R3, [R4,#0x2C] .text:10008248 LDR R3, [R3,#0x1C] .text:1000824C TST R3, #0x300 .text:10008250 LDREQ R0, =0xEEEE0005 .text:10008254 LDMEQFD SP!, {R4,LR} .text:10008258 MOVNE R0, #0 .text:1000825C LDMNEFD SP!, {R4,LR} .text:10008260 BX LR .text:10008260 ; End of function sub_10008224 .text:10008260 .text:10008260 ; --------------------------------------------------------------------------- .text:10008264 dword_10008264 DCD 0xEEEE0005 ; DATA XREF: sub_10008224+2Cr .text:10008268 .text:10008268 ; =============== S U B R O U T I N E ======================================= .text:10008268 .text:10008268 .text:10008268 sub_10008268 ; CODE XREF: sub_10005BD0+20p .text:10008268 ; DATA XREF: .pdata:1000D3D0o .text:10008268 MOV R0, #0 .text:1000826C BX LR .text:1000826C ; End of function sub_10008268 .text:1000826C .text:10008270 .text:10008270 ; =============== S U B R O U T I N E ======================================= .text:10008270 .text:10008270 .text:10008270 sub_10008270 ; CODE XREF: sub_10005F04+8p @ RJK: Is charging ? .text:10008270 ; DATA XREF: .pdata:1000D3D8o .text:10008270 LDR R3, [R0,#0x30] .text:10008274 LDR R3, [R3,#8] .text:10008278 TST R3, #0x80000000 .text:1000827C MOVNE R0, #1 .text:10008280 MOVEQ R0, #0 .text:10008284 BX LR .text:10008284 ; End of function sub_10008270 .text:10008284 .text:10008288 ; [00000004 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND] .text:1000828C ; [00000004 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND] .text:10008290 .text:10008290 ; =============== S U B R O U T I N E ======================================= .text:10008290 .text:10008290 .text:10008290 sub_10008290 ; CODE XREF: sub_10007274+70p .text:10008290 ; DATA XREF: .pdata:1000D3F0o .text:10008290 LDR R3, [R0] .text:10008294 MOVS R2, R3 .text:10008298 LDRNEB R3, [R2] .text:1000829C ANDNE R3, R3, #0xFB .text:100082A0 STRNEB R3, [R2] .text:100082A4 LDR R3, [R0,#0x1C] .text:100082A8 BIC R3, R3, #4 .text:100082AC STR R3, [R0,#0x1C] .text:100082B0 BX LR .text:100082B0 ; End of function sub_10008290 .text:100082B0 .text:100082B4 .text:100082B4 ; =============== S U B R O U T I N E ======================================= .text:100082B4 .text:100082B4 .text:100082B4 sub_100082B4 ; CODE XREF: sub_10007FF4+48p .text:100082B4 ; DATA XREF: .pdata:1000D3F8o .text:100082B4 .text:100082B4 var_78 = -0x78 .text:100082B4 var_74 = -0x74 .text:100082B4 var_70 = -0x70 .text:100082B4 var_6C = -0x6C .text:100082B4 var_68 = -0x68 .text:100082B4 var_64 = -0x64 .text:100082B4 var_60 = -0x60 .text:100082B4 var_5C = -0x5C .text:100082B4 var_58 = -0x58 .text:100082B4 var_54 = -0x54 .text:100082B4 .text:100082B4 STMFD SP!, {R4-R8,LR} .text:100082B8 SUB SP, SP, #0x60 .text:100082BC MOV R4, R0 .text:100082C0 LDR R0, [R4,#0x2C] .text:100082C4 LDR R3, [R0,#0x1C] .text:100082C8 TST R3, #0x300 .text:100082CC BNE loc_10008360 .text:100082D0 LDR LR, [R4,#0x20] .text:100082D4 LDR R3, [R4,#0x30] .text:100082D8 LDR R2, [R4,#0x3C] .text:100082DC CMP LR, #1 .text:100082E0 STR R3, [SP,#0x78+var_74] .text:100082E4 MOVEQ R3, #0 .text:100082E8 MOVNE R3, #1 .text:100082EC LDR R1, [R4,#0x34] .text:100082F0 STR R3, [SP,#0x78+var_58] .text:100082F4 MOVL R3, 0x4C13 .text:100082FC MOV R5, #0 .text:10008300 MOV R6, #0 .text:10008304 MOV R7, #0x3E8 .text:10008308 MOV R8, #0x3E8 .text:1000830C STR R0, [SP,#0x78+var_70] .text:10008310 ADD R0, SP, #0x78+var_78 .text:10008314 STR R3, [SP,#0x78+var_78] .text:10008318 STR R2, [SP,#0x78+var_68] .text:1000831C STR R1, [SP,#0x78+var_54] .text:10008320 STR R5, [SP,#0x78+var_6C] .text:10008324 STR R6, [SP,#0x78+var_64] .text:10008328 STR R7, [SP,#0x78+var_60] .text:1000832C STR R8, [SP,#0x78+var_5C] .text:10008330 BL sub_10008FE4 .text:10008334 CMP R0, #0 .text:10008338 BEQ loc_10008360 .text:1000833C BL nullsub_3 .text:10008340 LDR R3, [R4] .text:10008344 MOVS R2, R3 .text:10008348 LDRNEB R3, [R2] .text:1000834C ANDNE R3, R3, #0xFB .text:10008350 STRNEB R3, [R2] .text:10008354 LDR R3, [R4,#0x1C] .text:10008358 BIC R3, R3, #4 .text:1000835C B loc_1000836C .text:10008360 ; --------------------------------------------------------------------------- .text:10008360 .text:10008360 loc_10008360 ; CODE XREF: sub_100082B4+18j .text:10008360 ; sub_100082B4+84j .text:10008360 LDR R3, [R4,#0x1C] .text:10008364 MOV R0, #0 .text:10008368 ORR R3, R3, #4 .text:1000836C .text:1000836C loc_1000836C ; CODE XREF: sub_100082B4+A8j .text:1000836C STR R3, [R4,#0x1C] .text:10008370 ADD SP, SP, #0x60 .text:10008374 LDMFD SP!, {R4-R8,LR} .text:10008378 BX LR .text:10008378 ; End of function sub_100082B4 .text:10008378 .text:1000837C .text:1000837C ; =============== S U B R O U T I N E ======================================= .text:1000837C .text:1000837C .text:1000837C sub_1000837C ; CODE XREF: sub_10006CB0+10Cp .text:1000837C ; sub_10008224+1Cp .text:1000837C ; DATA XREF: ... .text:1000837C STMFD SP!, {R4-R6,LR} .text:10008380 CMP R1, #0 .text:10008384 MOV R5, R0 .text:10008388 BEQ loc_100083D0 .text:1000838C MOVL R3, 0xCB2 .text:10008394 MUL R4, R1, R3 .text:10008398 LDR R3, =0x10624DD3 .text:1000839C LDR R2, [R5,#0x34] .text:100083A0 UMULL LR, R1, R4, R3 .text:100083A4 LDR R3, [R2,#0x10] .text:100083A8 LDR R2, [R2,#0x10] .text:100083AC ADD R6, R3, R1,LSR#6 .text:100083B0 CMP R2, R6 .text:100083B4 BCS loc_100083D0 .text:100083B8 .text:100083B8 loc_100083B8 ; CODE XREF: sub_1000837C+50j .text:100083B8 MOV R0, R5 .text:100083BC BL sub_100084A0 .text:100083C0 LDR R3, [R5,#0x34] .text:100083C4 LDR R3, [R3,#0x10] .text:100083C8 CMP R3, R6 .text:100083CC BCC loc_100083B8 .text:100083D0 .text:100083D0 loc_100083D0 ; CODE XREF: sub_1000837C+Cj .text:100083D0 ; sub_1000837C+38j .text:100083D0 LDMFD SP!, {R4-R6,LR} .text:100083D4 BX LR .text:100083D4 ; End of function sub_1000837C .text:100083D4 .text:100083D4 ; --------------------------------------------------------------------------- .text:100083D8 dword_100083D8 DCD 0x10624DD3 ; DATA XREF: sub_1000837C+1Cr .text:100083DC .text:100083DC ; =============== S U B R O U T I N E ======================================= .text:100083DC .text:100083DC .text:100083DC sub_100083DC ; CODE XREF: sub_10005F04+50p .text:100083DC ; sub_10005F74+8Cp ... .text:100083DC LDR R3, [R0,#0x34] .text:100083E0 LDR R1, =0xA151C331 .text:100083E4 LDR R2, [R3,#0x10] .text:100083E8 UMULL R3, R1, R2, R1 .text:100083EC MOV R0, R1,LSR#11 .text:100083F0 BX LR .text:100083F0 ; End of function sub_100083DC .text:100083F0 .text:100083F0 ; --------------------------------------------------------------------------- .text:100083F4 dword_100083F4 DCD 0xA151C331 ; DATA XREF: sub_100083DC+4r .text:100083F8 ; [00000004 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND] .text:100083FC .text:100083FC ; =============== S U B R O U T I N E ======================================= .text:100083FC .text:100083FC .text:100083FC sub_100083FC ; CODE XREF: sub_1000842C+18p .text:100083FC ; DATA XREF: .pdata:1000D418o .text:100083FC .text:100083FC var_4 = -4 .text:100083FC arg_4 = 4 .text:100083FC .text:100083FC STR LR, [SP,#var_4]! .text:10008400 LDR LR, =unk_1000C318 .text:10008404 LDR R1, [LR] .text:10008408 ADD R2, LR, #8 .text:1000840C RSB R3, R1, R1,LSL#3 .text:10008410 ADD R0, R2, R3,LSL#3 .text:10008414 ADD R3, R1, #1 .text:10008418 STR R3, [LR] .text:1000841C BL sub_100084C8 .text:10008420 LDR LR, [SP],#arg_4 .text:10008424 BX LR .text:10008424 ; End of function sub_100083FC .text:10008424 .text:10008424 ; --------------------------------------------------------------------------- .text:10008428 off_10008428 DCD unk_1000C318 ; DATA XREF: sub_100083FC+4r .text:1000842C .text:1000842C ; =============== S U B R O U T I N E ======================================= .text:1000842C .text:1000842C .text:1000842C sub_1000842C ; CODE XREF: sub_10006618+ACp .text:1000842C ; sub_10007E3C+120p .text:1000842C ; DATA XREF: ... .text:1000842C STMFD SP!, {R4,R5,LR} .text:10008430 MOV R5, R0 .text:10008434 LDR R4, =unk_1000C318 .text:10008438 LDR R2, [R4] .text:1000843C CMP R2, #0 .text:10008440 BNE loc_1000844C .text:10008444 BL sub_100083FC .text:10008448 LDR R2, [R4] .text:1000844C .text:1000844C loc_1000844C ; CODE XREF: sub_1000842C+14j .text:1000844C MOV R1, #0 .text:10008450 CMP R2, #0 .text:10008454 BEQ loc_10008490 .text:10008458 LDRH LR, [R5,#0x24] .text:1000845C ADD R0, R4, #8 .text:10008460 .text:10008460 loc_10008460 ; CODE XREF: sub_1000842C+4Cj .text:10008460 LDRH R3, [R0] .text:10