.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 : 7C266CD5B29CAC33A129FABB419DE855 .text:10001000 .text:10001000 ; File Name : C:\Scoter Kitchen\Extraction Room\dump_mio\pxa27x_wavedev.dll\pxa27x_wavedev.dll .text:10001000 ; Format : Portable executable for ARMI (PE) .text:10001000 ; Imagebase : 10000000 .text:10001000 ; Section 1. (virtual address 00001000) .text:10001000 ; Virtual size : 00009759 ( 38745.) .text:10001000 ; Section size in file : 00009800 ( 38912.) .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 0x32E027B1, 0 .text:1000100C DCD 2, 0x2B, 0x1B38, 0xF38 .text:1000101C aSpeaker unicode 0, ,0 ; DATA XREF: .text:off_10002568o .text:1000102C aSystemStateHar unicode 0, ,0 .text:1000102C ; DATA XREF: .text:off_1000256Co .text:10001058 aKy3Lq unicode 0, ,0 ; DATA XREF: .text:off_10002578o .text:10001066 DCW 0 .text:10001068 aKy3Lt unicode 0, ,0 ; DATA XREF: .text:off_1000257Co .text:10001076 DCW 0 .text:10001078 aRadioversion unicode 0, ,0 ; DATA XREF: .text:off_10002580o .text:10001092 DCW 0 .text:10001094 aSoftwareMicros unicode 0, ,0 .text:10001094 ; DATA XREF: .text:off_10002584o .text:100010C2 DCW 0 .text:100010C4 off_100010C4 DCD sub_10002674 ; DATA XREF: .text:off_10002698o .text:100010C4 ; .text:off_10002AD8o ... .text:100010C8 DCD sub_10002CE4 .text:100010CC DCD sub_100033EC .text:100010D0 DCD sub_1000310C .text:100010D4 DCD sub_100032C8 .text:100010D8 DCD sub_10003300 .text:100010DC DCD sub_10003310 .text:100010E0 DCD _purecall .text:100010E4 DCD sub_1000259C .text:100010E8 DCD sub_100025DC .text:100010EC DCD sub_1000261C .text:100010F0 DCD sub_10002E80 .text:100010F4 DCD sub_10002658 .text:100010F8 dword_100010F8 DCD 0x180001, 1, 0x750041, 0x690064, 0x20006F, 0x75004F .text:100010F8 ; DATA XREF: .text:off_100028B8o .text:100010F8 DCD 0x700074, 0x740075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:10001140 DCD 0xFFF, 1, 6, 0 .text:10001150 dword_10001150 DCD 0x170001, 1, 0x750041, 0x690064, 0x20006F, 0x6E0049 .text:10001150 ; DATA XREF: .text:off_100028E0o .text:10001150 DCD 0x750070, 0x74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 .text:10001198 dword_10001198 DCD 0xFFF, 1, 0xFFFF, 0xFFFF, 0, 0, 0 .text:10001198 ; DATA XREF: .text:off_10002908o .text:100011B4 DCD 0x1F40, 0xBB80 .text:100011BC off_100011BC DCD sub_10002ADC ; DATA XREF: .text:off_10002CE0o .text:100011C0 DCD sub_10004184 .text:100011C4 DCD sub_100042B0 .text:100011C8 DCD sub_1000310C .text:100011CC DCD sub_100032C8 .text:100011D0 DCD sub_10003300 .text:100011D4 DCD sub_10004270 .text:100011D8 DCD sub_100044B4 .text:100011DC DCD sub_1000259C .text:100011E0 DCD sub_100025DC .text:100011E4 DCD sub_1000261C .text:100011E8 DCD sub_10002E80 .text:100011EC DCD sub_10003F78 .text:100011F0 off_100011F0 DCD sub_10002AB4 ; DATA XREF: .text:off_10002BCCo .text:100011F4 DCD sub_100031FC .text:100011F8 DCD sub_100033EC .text:100011FC DCD sub_1000310C .text:10001200 DCD sub_100032C8 .text:10001204 DCD sub_100034B8 .text:10001208 DCD sub_10003310 .text:1000120C DCD sub_100036F8 .text:10001210 DCD sub_100029F8 .text:10001214 DCD sub_10002A34 .text:10001218 DCD sub_10002A74 .text:1000121C DCD sub_10002E80 .text:10001220 DCD sub_10002658 .text:10001224 DCD sub_1000344C .text:10001228 DCD sub_100034EC .text:1000122C off_1000122C DCD sub_10002B04 ; DATA XREF: .text:off_10002CDCo .text:10001230 DCD sub_1000363C .text:10001234 DCD sub_100033EC .text:10001238 DCD sub_1000310C .text:1000123C DCD sub_100032C8 .text:10001240 DCD sub_10003300 .text:10001244 DCD sub_1000366C .text:10001248 DCD sub_100036F8 .text:1000124C DCD sub_1000259C .text:10001250 DCD sub_100025DC .text:10001254 DCD sub_1000261C .text:10001258 DCD sub_10002E80 .text:1000125C DCD sub_10002658 .text:10001260 DCD sub_1000369C .text:10001264 DCD sub_100037D4 .text:10001268 off_10001268 DCD sub_10002B2C ; DATA XREF: .text:off_10002CD8o .text:1000126C DCD sub_1000363C .text:10001270 DCD sub_100033EC .text:10001274 DCD sub_1000310C .text:10001278 DCD sub_100032C8 .text:1000127C DCD sub_10003300 .text:10001280 DCD sub_1000366C .text:10001284 DCD sub_100036F8 .text:10001288 DCD sub_1000259C .text:1000128C DCD sub_100025DC .text:10001290 DCD sub_1000261C .text:10001294 DCD sub_10002E80 .text:10001298 DCD sub_10002658 .text:1000129C DCD sub_1000369C .text:100012A0 DCD sub_10003978 .text:100012A4 off_100012A4 DCD sub_10002B54 ; DATA XREF: .text:off_10002CD4o .text:100012A8 DCD sub_1000363C .text:100012AC DCD sub_100033EC .text:100012B0 DCD sub_1000310C .text:100012B4 DCD sub_100032C8 .text:100012B8 DCD sub_10003300 .text:100012BC DCD sub_1000366C .text:100012C0 DCD sub_100036F8 .text:100012C4 DCD sub_1000259C .text:100012C8 DCD sub_100025DC .text:100012CC DCD sub_1000261C .text:100012D0 DCD sub_10002E80 .text:100012D4 DCD sub_10002658 .text:100012D8 DCD sub_1000369C .text:100012DC DCD sub_10003B20 .text:100012E0 off_100012E0 DCD sub_10002B7C ; DATA XREF: .text:off_10002CD0o .text:100012E4 DCD sub_1000363C .text:100012E8 DCD sub_100033EC .text:100012EC DCD sub_1000310C .text:100012F0 DCD sub_100032C8 .text:100012F4 DCD sub_10003300 .text:100012F8 DCD sub_1000366C .text:100012FC DCD sub_100036F8 .text:10001300 DCD sub_1000259C .text:10001304 DCD sub_100025DC .text:10001308 DCD sub_1000261C .text:1000130C DCD sub_10002E80 .text:10001310 DCD sub_10002658 .text:10001314 DCD sub_1000369C .text:10001318 DCD sub_10003D5C .text:1000131C ALIGN 0x10 .text:10001320 dword_10001320 DCD 0x10000, 0xEC77, 0xDA6D, 0xC9C2, 0xBA5D, 0xAC25, 0x9F03 .text:10001320 ; DATA XREF: .text:off_10003108o .text:10001320 DCD 0x92E1, 0x87AC, 0x7D52, 0x73C2, 0x6AED, 0x62C5, 0x5B3B .text:10001320 DCD 0x5445, 0x4DD7, 0x47E7, 0x426B, 0x3D59, 0x38AB, 0x3458 .text:10001320 DCD 0x305A, 0x2CA9, 0x2941, 0x261B, 0x2333, 0x2083, 0x1E08 .text:10001320 DCD 0x1BBE, 0x19A0, 0x17AB, 0x15DD, 0x1432, 0x12A7, 0x113B .text:10001320 DCD 0xFEA, 0xEB3, 0xD94, 0xC8B, 0xB96, 0xAB4, 0x9E3, 0x921 .text:10001320 DCD 0x86F, 0x7CA, 0x732, 0x6A6, 0x624, 0x5AC, 0x53D, 0x4D7 .text:10001320 DCD 0x478, 0x421, 0x3D0, 0x386, 0x341, 0x301, 0x2C6, 0x290 .text:10001320 DCD 0x25E, 0x230, 0x205, 0x1DE, 0x1B9 .text:10001420 dword_10001420 DCD 0x184CBB6, 0x19BEA2D, 0x1B46892, 0x1CE5BD2, 0x1E9DA1A .text:10001420 ; DATA XREF: .text:off_100047DCo .text:10001420 DCD 0x206FAE6, 0x225D719, 0x2468912, 0x2692CBF, 0x28DDFB9 .text:10001420 DCD 0x2B4C15A, 0x2DDF2DB .text:10001450 dword_10001450 DCD 0x3240000, 0x96A0647, 0xFAB0C8B, 0x15E112C7, 0x1C0B18F8 .text:10001450 ; DATA XREF: .text:off_1000472Co .text:10001450 DCD 0x22231F19, 0x28262527, 0x2E102B1E, 0x33DE30FB, 0x398C36B9 .text:10001450 DCD 0x3F163C56, 0x447A41CD, 0x49B3471C, 0x4EBF4C3F, 0x539A5133 .text:10001450 DCD 0x584255F4, 0x5CB35A81, 0x60EB5ED6, 0x64E762F1, 0x68A566CE .text:10001450 DCD 0x6C236A6C, 0x6F5E6DC9, 0x725470E1, 0x750373B5, 0x776B7640 .text:10001450 DCD 0x79897883, 0x7B5C7A7C, 0x7CE27C29, 0x7E1C7D89, 0x7F087E9C .text:10001450 DCD 0x7FA67F61, 0x7FF57FD7, 0x7FF57FFF, 0x7FA67FD7, 0x7F087F61 .text:10001450 DCD 0x7E1C7E9C, 0x7CE27D89, 0x7B5C7C29, 0x79897A7C, 0x776B7883 .text:10001450 DCD 0x75037640, 0x725473B5, 0x6F5E70E1, 0x6C236DC9, 0x68A56A6C .text:10001450 DCD 0x64E766CE, 0x60EB62F1, 0x5CB35ED6, 0x58425A81, 0x539A55F4 .text:10001450 DCD 0x4EBF5133, 0x49B34C3F, 0x447A471C, 0x3F1641CD, 0x398C3C56 .text:10001450 DCD 0x33DE36B9, 0x2E1030FB, 0x28262B1E, 0x22232527, 0x1C0B1F19 .text:10001450 DCD 0x15E118F8, 0xFAB12C7, 0x96A0C8B, 0x3240647, 0xFCDC0000 .text:10001450 DCD 0xF696F9B9, 0xF055F375, 0xEA1FED39, 0xE3F5E708, 0xDDDDE0E7 .text:10001450 DCD 0xD7DADAD9, 0xD1F0D4E2, 0xCC22CF05, 0xC674C947, 0xC0EAC3AA .text:10001450 DCD 0xBB86BE33, 0xB64DB8E4, 0xB141B3C1, 0xAC66AECD, 0xA7BEAA0C .text:10001450 DCD 0xA34DA57F, 0x9F15A12A, 0x9B199D0F, 0x975B9932, 0x93DD9594 .text:10001450 DCD 0x90A29237, 0x8DAC8F1F, 0x8AFD8C4B, 0x889589C0, 0x8677877D .text:10001450 DCD 0x84A48584, 0x831E83D7, 0x81E48277, 0x80F88164, 0x805A809F .text:10001450 DCD 0x800B8029, 0x800B8001, 0x805A8029, 0x80F8809F, 0x81E48164 .text:10001450 DCD 0x831E8277, 0x84A483D7, 0x86778584, 0x8895877D, 0x8AFD89C0 .text:10001450 DCD 0x8DAC8C4B, 0x90A28F1F, 0x93DD9237, 0x975B9594, 0x9B199932 .text:10001450 DCD 0x9F159D0F, 0xA34DA12A, 0xA7BEA57F, 0xAC66AA0C, 0xB141AECD .text:10001450 DCD 0xB64DB3C1, 0xBB86B8E4, 0xC0EABE33, 0xC674C3AA, 0xCC22C947 .text:10001450 DCD 0xD1F0CF05, 0xD7DAD4E2, 0xDDDDDAD9, 0xE3F5E0E7, 0xEA1FE708 .text:10001450 DCD 0xF055ED39, 0xF696F375, 0xFCDCF9B9, 0 .text:10001654 off_10001654 DCD sub_1000269C ; DATA XREF: .text:off_100057E4o .text:10001658 DCD sub_1000290C .text:1000165C DCD sub_100028BC .text:10001660 DCD sub_10002878 .text:10001664 DCD sub_10002BA4 .text:10001668 off_10001668 DCD sub_10002718 ; DATA XREF: .text:off_100057E0o .text:1000166C DCD sub_100028E4 .text:10001670 DCD sub_10002894 .text:10001674 DCD sub_1000285C .text:10001678 DCD sub_10002BD0 .text:1000167C aPath unicode 0, ,0 ; DATA XREF: .text:off_10005010o .text:10001686 DCW 0 .text:10001688 aSddialeropen unicode 0, ,0 ; DATA XREF: .text:off_10005018o .text:100016A2 DCW 0 .text:100016A4 aSoftwareOemVoi unicode 0, ,0 .text:100016A4 ; DATA XREF: .text:off_10005014o .text:100016D8 aVoiceSpeedDial unicode 0, ,0 .text:100016D8 ; DATA XREF: .text:off_10005020o .text:100016FA DCW 0 .text:100016FC aDialog unicode 0, ,0 ; DATA XREF: .text:off_1000501Co .text:1000170A DCW 0 .text:1000170C aPttButtonIsPre unicode 0, ,0 .text:1000170C ; DATA XREF: .text:off_10005618o .text:10001738 aWmlock_mutex_n unicode 0, ,0 .text:10001738 ; DATA XREF: .text:off_1000564Co .text:1000175C aNotifyThreadEv unicode 0, ,0 .text:1000175C ; DATA XREF: .text:off_10008E80o .text:10001784 aInitperipheral unicode 0, .text:10001784 ; DATA XREF: .text:off_10008E8Co .text:10001784 DCW 0xD .text:10001784 DCW 0xA .text:10001784 unicode 0, <>,0 .text:100017B8 aAudioinitializ DCB "AudioInitialize: VirtualAllocCopy failed RecB",0 .text:100017B8 ; DATA XREF: .text:off_10008E94o .text:100017E6 DCW 0 .text:100017E8 aAudioinitial_0 DCB "AudioInitialize: VirtualAllocCopy failed RecA",0 .text:100017E8 ; DATA XREF: .text:off_10008E9Co .text:10001816 DCW 0 .text:10001818 aAudioinitial_1 DCB "AudioInitialize: VirtualAllocCopy failed XmitB",0 .text:10001818 ; DATA XREF: .text:off_10008EA4o .text:10001847 DCB 0 .text:10001848 aAudioinitial_2 DCB "AudioInitialize: VirtualAllocCopy failed XmitA",0 .text:10001848 ; DATA XREF: .text:off_10008EACo .text:10001877 DCB 0 .text:10001878 aGdedmaglobalsf unicode 0, ,0 .text:10001878 ; DATA XREF: .text:off_10008EB0o .text:1000189C DCD 0, 0 .text:100018A4 DCD 0x4033, 0x444101, 0x9401050, 0x4005, 0x534C01, 0x9401050 .text:100018A4 DCD 0x2078, 0x534C01, 0x802910EC, 0xC0F0, 0x534B01, 0x812910EC .text:100018A4 DCD 0 .text:100018D8 DCD 0x545204, 0x813910EC, 0x900B, 0x545204, 0x813910EC .text:100018D8 DCD 0xD0C9, 0x545204, 0x813910EC, 0xE04C, 0x545204, 0x13001186 .text:100018D8 DCD 0x50BA, 0x4C4404, 0x20100B, 0xA0CC, 0x474E05, 0x905010B7 .text:100018D8 DCD 0x6008, 0x433306, 0x920010B7, 0x476, 0x433306 .text:10001930 aAclink_control unicode 0, ,0 .text:10001930 ; DATA XREF: .text:off_10009AC8o .text:1000194E DCW 0 .text:10001950 aUswaitOstregs DCB "usWait OSTRegs",0 ; DATA XREF: .text:off_10009ACCo .text:1000195F DCB 0 .text:10001960 aAllocaclinkXll unicode 0, ,0 .text:10001960 ; DATA XREF: .text:off_10009AD0o .text:10001996 DCW 0 .text:10001998 aAclinkAlloc4Cl unicode 0, ,0 .text:10001998 ; DATA XREF: .text:off_10009AD4o .text:100019C2 DCW 0 .text:100019C4 aAc97Driver_glo unicode 0, ,0 .text:100019C4 ; DATA XREF: .text:off_10009ADCo .text:100019EE DCW 0 .text:100019F0 aAc97ContolRegi unicode 0, ,0 .text:100019F0 ; DATA XREF: .text:off_10009AE0o .text:10001A1C aAc97Intc_base_ unicode 0, ,0 .text:10001A1C ; DATA XREF: .text:off_10009AE4o .text:10001A50 aDelayinitOstre DCB "delayInit OSTRegs",0 ; DATA XREF: .text:off_10009BD0o .text:10001A62 DCW 0 .text:10001A64 ALIGN 8 .text:10001A68 aXllpac97coldre unicode 0, .text:10001A68 ; DATA XREF: .text:off_10009D88o .text:10001A68 DCW 0xD .text:10001A68 DCW 0xA .text:10001A68 unicode 0, <>,0 .text:10001AC8 aXllpac97warmre unicode 0, .text:10001AC8 ; DATA XREF: .text:off_10009FD0o .text:10001AC8 DCW 0xD .text:10001AC8 DCW 0xA .text:10001AC8 unicode 0, <>,0 .text:10001B00 aXllpac97cold_0 unicode 0, .text:10001B00 ; DATA XREF: .text:off_10009FD4o .text:10001B00 DCW 0xD .text:10001B00 DCW 0xA .text:10001B00 unicode 0, <>,0 .text:10001B38 aRd unicode 0x53, .text:10001B3C DCD 0x32E027B1, 0xEC1CA59D, 0x441B8F32, 0x1C5E4D6D, 1 .text:10001B50 aPxa27x_wavedev DCB "pxa27x_wavedev.pdb",0 .text:10001B63 DCB 0 .text:10001B64 .text:10001B64 ; =============== S U B R O U T I N E ======================================= .text:10001B64 .text:10001B64 .text:10001B64 EXPORT start .text:10001B64 start ; DATA XREF: .pdata:1000C000o .text:10001B64 MOV R0, #1 .text:10001B68 BX LR .text:10001B68 ; End of function start .text:10001B68 .text:10001B6C ; Exported entry 4. WAV_Init .text:10001B6C .text:10001B6C ; =============== S U B R O U T I N E ======================================= .text:10001B6C .text:10001B6C .text:10001B6C EXPORT WAV_Init .text:10001B6C WAV_Init ; DATA XREF: .pdata:1000C008o .text:10001B6C .text:10001B6C var_4 = -4 .text:10001B6C arg_4 = 4 .text:10001B6C .text:10001B6C STR LR, [SP,#var_4]! .text:10001B70 BL sub_10008EBC .text:10001B74 LDR LR, [SP],#arg_4 .text:10001B78 BX LR .text:10001B78 ; End of function WAV_Init .text:10001B78 .text:10001B7C ; Exported entry 2. WAV_Deinit .text:10001B7C .text:10001B7C ; =============== S U B R O U T I N E ======================================= .text:10001B7C .text:10001B7C .text:10001B7C EXPORT WAV_Deinit .text:10001B7C WAV_Deinit ; DATA XREF: .pdata:1000C010o .text:10001B7C .text:10001B7C var_4 = -4 .text:10001B7C arg_4 = 4 .text:10001B7C .text:10001B7C STR LR, [SP,#var_4]! .text:10001B80 LDR R3, =unk_1000B548 .text:10001B84 LDR R0, [R3] .text:10001B88 BL sub_100057E8 .text:10001B8C LDR LR, [SP],#arg_4 .text:10001B90 BX LR .text:10001B90 ; End of function WAV_Deinit .text:10001B90 .text:10001B90 ; --------------------------------------------------------------------------- .text:10001B94 off_10001B94 DCD unk_1000B548 ; DATA XREF: WAV_Deinit+4r .text:10001B98 ; Exported entry 5. WAV_Open .text:10001B98 .text:10001B98 ; =============== S U B R O U T I N E ======================================= .text:10001B98 .text:10001B98 .text:10001B98 EXPORT WAV_Open .text:10001B98 WAV_Open ; DATA XREF: .pdata:1000C018o .text:10001B98 MOV R0, #4 .text:10001B9C BX LR .text:10001B9C ; End of function WAV_Open .text:10001B9C .text:10001BA0 ; Exported entry 1. WAV_Close .text:10001BA0 .text:10001BA0 ; =============== S U B R O U T I N E ======================================= .text:10001BA0 .text:10001BA0 .text:10001BA0 EXPORT WAV_Close .text:10001BA0 WAV_Close ; DATA XREF: .pdata:1000C020o .text:10001BA0 MOV R0, #1 .text:10001BA4 BX LR .text:10001BA4 ; End of function WAV_Close .text:10001BA4 .text:10001BA8 ; Exported entry 7. WAV_PowerUp .text:10001BA8 .text:10001BA8 ; =============== S U B R O U T I N E ======================================= .text:10001BA8 .text:10001BA8 .text:10001BA8 EXPORT WAV_PowerUp .text:10001BA8 WAV_PowerUp ; DATA XREF: .pdata:1000C028o .text:10001BA8 STMFD SP!, {R4,R5,LR} .text:10001BAC LDR R5, =unk_1000B548 .text:10001BB0 MOV R2, #1 .text:10001BB4 LDR R3, [R5] .text:10001BB8 LDR R4, [R3,#4] .text:10001BBC STR R2, [R3,#4] .text:10001BC0 LDR R0, [R5] @ r0 = [0xb548] .text:10001BC4 BL sub_10007C94 @ call resume(ac97 base) .text:10001BC8 LDR R3, [R5] .text:10001BCC STR R4, [R3,#4] .text:10001BD0 LDMFD SP!, {R4,R5,LR} .text:10001BD4 BX LR .text:10001BD4 ; End of function WAV_PowerUp .text:10001BD4 .text:10001BD4 ; --------------------------------------------------------------------------- .text:10001BD8 off_10001BD8 DCD unk_1000B548 ; DATA XREF: WAV_PowerUp+4r .text:10001BDC ; Exported entry 6. WAV_PowerDown .text:10001BDC .text:10001BDC ; =============== S U B R O U T I N E ======================================= .text:10001BDC .text:10001BDC .text:10001BDC EXPORT WAV_PowerDown .text:10001BDC WAV_PowerDown ; DATA XREF: .pdata:1000C030o .text:10001BDC STMFD SP!, {R4,R5,LR} .text:10001BE0 LDR R5, =unk_1000B548 .text:10001BE4 MOV R2, #1 .text:10001BE8 LDR R3, [R5] .text:10001BEC LDR R4, [R3,#4] .text:10001BF0 STR R2, [R3,#4] .text:10001BF4 LDR R0, [R5] @ r0 = [0xb548] = ac97 base .text:10001BF8 BL sub_100058C0 @ call ac97 widgets powerdown .text:10001BFC LDR R3, [R5] .text:10001C00 STR R4, [R3,#4] .text:10001C04 LDMFD SP!, {R4,R5,LR} .text:10001C08 BX LR .text:10001C08 ; End of function WAV_PowerDown .text:10001C08 .text:10001C08 ; --------------------------------------------------------------------------- .text:10001C0C off_10001C0C DCD unk_1000B548 ; DATA XREF: WAV_PowerDown+4r .text:10001C10 .text:10001C10 ; =============== S U B R O U T I N E ======================================= .text:10001C10 .text:10001C10 .text:10001C10 sub_10001C10 ; CODE XREF: WAV_IOControl+50p .text:10001C10 ; DATA XREF: .pdata:1000C038o .text:10001C10 .text:10001C10 var_24 = -0x24 .text:10001C10 .text:10001C10 STMFD SP!, {R4-R10,LR} .text:10001C14 SUB SP, SP, #4 .text:10001C18 MOV R10, R1 .text:10001C1C MOV R4, R0 .text:10001C20 MOV R0, #0 .text:10001C24 BL SetLastError .text:10001C28 LDR R8, =unk_1000B548 .text:10001C2C LDR R6, [R4,#4] .text:10001C30 LDR R7, [R4,#0xC] .text:10001C34 LDR R2, [R8] .text:10001C38 LDR R9, [R4,#0x10] .text:10001C3C LDR R5, [R4,#8] .text:10001C40 LDR R3, [R2] .text:10001C44 CMP R3, #0 .text:10001C48 BNE loc_100021A8 .text:10001C4C ADD R0, R2, #0x50 .text:10001C50 BL EnterCriticalSection .text:10001C54 CMP R6, #0x32 .text:10001C58 BHI loc_10001DCC .text:10001C5C BEQ loc_1000200C ; jumptable 10001C78 case 0 .text:10001C60 SUB R2, R6, #3 .text:10001C64 CMP R2, #0x13 ; switch 20 cases .text:10001C68 BHI loc_10002120 ; default .text:10001C68 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001C6C MOV R3, R2,LSL#1 .text:10001C70 ADD R3, R3, PC .text:10001C74 LDRH R3, [R3,#4] .text:10001C78 ADD PC, PC, R3 ; switch jump .text:10001C78 ; --------------------------------------------------------------------------- .text:10001C7C DCW loc_1000200C - off_10001C80 ; jump table for switch statement .text:10001C7E DCW loc_10001CA4 - off_10001C80 ; jumptable 10001C78 case 1 .text:10001C80 off_10001C80 DCW loc_10001D04 - off_10001C80 ; DATA XREF: sub_10001C10+6Co .text:10001C80 ; sub_10001C10+6Eo ... .text:10001C80 ; jumptable 10001C78 case 2 .text:10001C82 DCW loc_10001E50 - off_10001C80 ; jumptable 10001C78 case 3 .text:10001C84 DCW loc_10002120 - off_10001C80 ; default .text:10001C84 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001C86 DCW loc_10002120 - off_10001C80 ; default .text:10001C86 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001C88 DCW loc_10001E30 - off_10001C80 ; jumptable 10001C78 case 6 .text:10001C8A DCW loc_10001EB4 - off_10001C80 ; jumptable 10001C78 case 7 .text:10001C8C DCW loc_10001E14 - off_10001C80 ; jumptable 10001C78 case 8 .text:10001C8E DCW loc_10001F58 - off_10001C80 ; jumptable 10001C78 case 9 .text:10001C90 DCW loc_10001F38 - off_10001C80 ; jumptable 10001C78 case 10 .text:10001C92 DCW loc_10002120 - off_10001C80 ; default .text:10001C92 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001C94 DCW loc_10002120 - off_10001C80 ; default .text:10001C94 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001C96 DCW loc_10001D24 - off_10001C80 ; jumptable 10001C78 case 13 .text:10001C98 DCW loc_10001D4C - off_10001C80 ; jumptable 10001C78 case 14 .text:10001C9A DCW loc_10001DB8 - off_10001C80 ; jumptable 10001C78 case 15 .text:10001C9C DCW loc_10001D98 - off_10001C80 ; jumptable 10001C78 case 16 .text:10001C9E DCW loc_10001D88 - off_10001C80 ; jumptable 10001C78 case 17 .text:10001CA0 DCW loc_10002120 - off_10001C80 ; default .text:10001CA0 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001CA2 DCW loc_10001CD4 - off_10001C80 ; jumptable 10001C78 case 19 .text:10001CA4 ; --------------------------------------------------------------------------- .text:10001CA4 .text:10001CA4 loc_10001CA4 ; CODE XREF: sub_10001C10+68j .text:10001CA4 ; DATA XREF: sub_10001C10+6Eo .text:10001CA4 CMP R5, #0 ; jumptable 10001C78 case 1 .text:10001CA8 LDREQ R3, [R8] .text:10001CAC LDRNE R0, [R5,#0x50] .text:10001CB0 MOV R2, R9 .text:10001CB4 ADDEQ R0, R3, #0xCC .text:10001CB8 LDR R3, [R0] .text:10001CBC MOV R1, R7 .text:10001CC0 LDR R3, [R3,#8] .text:10001CC4 MOV LR, PC .text:10001CC8 BX R3 .text:10001CCC MOV R4, R0 .text:10001CD0 B loc_10002194 .text:10001CD4 ; --------------------------------------------------------------------------- .text:10001CD4 .text:10001CD4 loc_10001CD4 ; CODE XREF: sub_10001C10+68j .text:10001CD4 ; DATA XREF: sub_10001C10+92o .text:10001CD4 CMP R5, #0 ; jumptable 10001C78 case 19 .text:10001CD8 LDREQ R3, [R8] .text:10001CDC LDRNE R0, [R5,#0x50] .text:10001CE0 MOV R2, R9 .text:10001CE4 ADDEQ R0, R3, #0xCC .text:10001CE8 LDR R3, [R0] .text:10001CEC MOV R1, R7 .text:10001CF0 LDR R3, [R3,#4] .text:10001CF4 MOV LR, PC .text:10001CF8 BX R3 .text:10001CFC MOV R4, R0 .text:10001D00 B loc_10002194 .text:10001D04 ; --------------------------------------------------------------------------- .text:10001D04 .text:10001D04 loc_10001D04 ; CODE XREF: sub_10001C10+68j .text:10001D04 ; DATA XREF: sub_10001C10:off_10001C80o .text:10001D04 LDR R1, [R8] ; jumptable 10001C78 case 2 .text:10001D08 ADD R0, R1, #0xCC .text:10001D0C .text:10001D0C loc_10001D0C ; CODE XREF: sub_10001C10+270j .text:10001D0C MOV R2, R9 .text:10001D10 MOV R3, R5 .text:10001D14 MOV R1, R7 .text:10001D18 BL sub_10002914 .text:10001D1C MOV R4, R0 .text:10001D20 B loc_10002194 .text:10001D24 ; --------------------------------------------------------------------------- .text:10001D24 .text:10001D24 loc_10001D24 ; CODE XREF: sub_10001C10+68j .text:10001D24 ; DATA XREF: sub_10001C10+86o .text:10001D24 CMP R5, #0 ; jumptable 10001C78 case 13 .text:10001D28 LDRNE R3, [R5,#0x58] .text:10001D2C MOVNE R4, #0 .text:10001D30 STRNE R3, [R7] .text:10001D34 BNE loc_10002194 .text:10001D38 LDR R0, [R8] .text:10001D3C BL sub_100050D4 .text:10001D40 STR R0, [R7] .text:10001D44 MOV R4, #0 .text:10001D48 B loc_10002194 .text:10001D4C ; --------------------------------------------------------------------------- .text:10001D4C .text:10001D4C loc_10001D4C ; CODE XREF: sub_10001C10+68j .text:10001D4C ; DATA XREF: sub_10001C10+88o .text:10001D4C CMP R5, #0 ; jumptable 10001C78 case 14 .text:10001D50 BEQ loc_10001D74 .text:10001D54 LDR R3, [R5] .text:10001D58 MOV R0, R5 .text:10001D5C STR R7, [R5,#0x58] .text:10001D60 LDR R3, [R3,#0x30] .text:10001D64 MOV LR, PC .text:10001D68 BX R3 .text:10001D6C MOV R4, #0 .text:10001D70 B loc_10002194 .text:10001D74 ; --------------------------------------------------------------------------- .text:10001D74 .text:10001D74 loc_10001D74 ; CODE XREF: sub_10001C10+140j .text:10001D74 LDR R0, [R8] .text:10001D78 MOV R1, R7 .text:10001D7C BL sub_100059BC .text:10001D80 MOV R4, R0 .text:10001D84 B loc_10002194 .text:10001D88 ; --------------------------------------------------------------------------- .text:10001D88 .text:10001D88 loc_10001D88 ; CODE XREF: sub_10001C10+68j .text:10001D88 ; DATA XREF: sub_10001C10+8Eo .text:10001D88 MOV R0, R5 ; jumptable 10001C78 case 17 .text:10001D8C BL sub_1000300C .text:10001D90 MOV R4, R0 .text:10001D94 B loc_10002194 .text:10001D98 ; --------------------------------------------------------------------------- .text:10001D98 .text:10001D98 loc_10001D98 ; CODE XREF: sub_10001C10+68j .text:10001D98 ; DATA XREF: sub_10001C10+8Co .text:10001D98 LDR R3, [R5] ; jumptable 10001C78 case 16 .text:10001D9C MOV R1, R7 .text:10001DA0 MOV R0, R5 .text:10001DA4 LDR R3, [R3,#0x34] .text:10001DA8 MOV LR, PC .text:10001DAC BX R3 .text:10001DB0 MOV R4, R0 .text:10001DB4 B loc_10002194 .text:10001DB8 ; --------------------------------------------------------------------------- .text:10001DB8 .text:10001DB8 loc_10001DB8 ; CODE XREF: sub_10001C10+68j .text:10001DB8 ; DATA XREF: sub_10001C10+8Ao .text:10001DB8 MOV R1, R7 ; jumptable 10001C78 case 15 .text:10001DBC MOV R0, R5 .text:10001DC0 BL sub_100032B8 .text:10001DC4 MOV R4, R0 .text:10001DC8 B loc_10002194 .text:10001DCC ; --------------------------------------------------------------------------- .text:10001DCC .text:10001DCC loc_10001DCC ; CODE XREF: sub_10001C10+48j .text:10001DCC MOVL R3, 0x1D6 .text:10001DD4 CMP R6, R3 .text:10001DD8 BHI loc_10001F84 .text:10001DDC BEQ loc_10001F74 .text:10001DE0 CMP R6, #0x3A .text:10001DE4 BHI loc_10001ED0 .text:10001DE8 BEQ loc_10001EB4 ; jumptable 10001C78 case 7 .text:10001DEC CMP R6, #0x33 .text:10001DF0 BEQ loc_10001E84 .text:10001DF4 CMP R6, #0x34 .text:10001DF8 BEQ loc_10001E78 .text:10001DFC CMP R6, #0x35 .text:10001E00 BEQ loc_10001E50 ; jumptable 10001C78 case 3 .text:10001E04 CMP R6, #0x38 .text:10001E08 BEQ loc_10001E30 ; jumptable 10001C78 case 6 .text:10001E0C CMP R6, #0x39 .text:10001E10 BNE loc_10002120 ; default .text:10001E10 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001E14 .text:10001E14 loc_10001E14 ; CODE XREF: sub_10001C10+68j .text:10001E14 ; DATA XREF: sub_10001C10+7Co .text:10001E14 LDR R3, [R5] ; jumptable 10001C78 case 8 .text:10001E18 MOV R0, R5 .text:10001E1C LDR R3, [R3,#0x10] .text:10001E20 MOV LR, PC .text:10001E24 BX R3 .text:10001E28 MOV R4, R0 .text:10001E2C B loc_10002194 .text:10001E30 ; --------------------------------------------------------------------------- .text:10001E30 .text:10001E30 loc_10001E30 ; CODE XREF: sub_10001C10+68j .text:10001E30 ; sub_10001C10+1F8j .text:10001E30 ; DATA XREF: ... .text:10001E30 LDR R3, [R5] ; jumptable 10001C78 case 6 .text:10001E34 MOV R1, R7 .text:10001E38 MOV R0, R5 .text:10001E3C LDR R3, [R3,#0x2C] .text:10001E40 MOV LR, PC .text:10001E44 BX R3 .text:10001E48 MOV R4, R0 .text:10001E4C B loc_10002194 .text:10001E50 ; --------------------------------------------------------------------------- .text:10001E50 .text:10001E50 loc_10001E50 ; CODE XREF: sub_10001C10+68j .text:10001E50 ; sub_10001C10+1F0j .text:10001E50 ; DATA XREF: ... .text:10001E50 LDR R3, [R5] ; jumptable 10001C78 case 3 .text:10001E54 MOV R0, R5 .text:10001E58 LDR R3, [R3,#8] .text:10001E5C MOV LR, PC .text:10001E60 BX R3 .text:10001E64 MOVS R4, R0 .text:10001E68 BNE loc_10002194 .text:10001E6C MOV R0, R5 .text:10001E70 BL sub_10002E34 .text:10001E74 B loc_10002194 .text:10001E78 ; --------------------------------------------------------------------------- .text:10001E78 .text:10001E78 loc_10001E78 ; CODE XREF: sub_10001C10+1E8j .text:10001E78 LDR R1, [R8] .text:10001E7C ADD R0, R1, #0xA8 .text:10001E80 B loc_10001D0C .text:10001E84 ; --------------------------------------------------------------------------- .text:10001E84 .text:10001E84 loc_10001E84 ; CODE XREF: sub_10001C10+1E0j .text:10001E84 CMP R5, #0 .text:10001E88 LDREQ R3, [R8] .text:10001E8C LDRNE R0, [R5,#0x50] .text:10001E90 MOV R2, R9 .text:10001E94 ADDEQ R0, R3, #0xA8 .text:10001E98 LDR R3, [R0] .text:10001E9C MOV R1, R7 .text:10001EA0 LDR R3, [R3,#8] .text:10001EA4 MOV LR, PC .text:10001EA8 BX R3 .text:10001EAC MOV R4, R0 .text:10001EB0 B loc_10002194 .text:10001EB4 ; --------------------------------------------------------------------------- .text:10001EB4 .text:10001EB4 loc_10001EB4 ; CODE XREF: sub_10001C10+68j .text:10001EB4 ; sub_10001C10+1D8j .text:10001EB4 ; DATA XREF: ... .text:10001EB4 LDR R3, [R5] ; jumptable 10001C78 case 7 .text:10001EB8 MOV R0, R5 .text:10001EBC LDR R3, [R3,#0x14] .text:10001EC0 MOV LR, PC .text:10001EC4 BX R3 .text:10001EC8 MOV R4, R0 .text:10001ECC B loc_10002194 .text:10001ED0 ; --------------------------------------------------------------------------- .text:10001ED0 .text:10001ED0 loc_10001ED0 ; CODE XREF: sub_10001C10+1D4j .text:10001ED0 CMP R6, #0x3B .text:10001ED4 BEQ loc_10001F58 ; jumptable 10001C78 case 9 .text:10001ED8 CMP R6, #0x3C .text:10001EDC BEQ loc_10001F38 ; jumptable 10001C78 case 10 .text:10001EE0 MOVL R3, 0x1B3 .text:10001EE8 CMP R6, R3 .text:10001EEC BEQ loc_10001F28 .text:10001EF0 MOVL R3, 0x1CE .text:10001EF8 CMP R6, R3 .text:10001EFC BEQ loc_10001F18 .text:10001F00 MOVL R3, 0x1CF .text:10001F08 CMP R6, R3 .text:10001F0C BNE loc_10002120 ; default .text:10001F0C ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001F10 MOV R2, #0 .text:10001F14 B loc_10001F1C .text:10001F18 ; --------------------------------------------------------------------------- .text:10001F18 .text:10001F18 loc_10001F18 ; CODE XREF: sub_10001C10+2ECj .text:10001F18 MOV R2, #1 .text:10001F1C .text:10001F1C loc_10001F1C ; CODE XREF: sub_10001C10+304j .text:10001F1C LDR R3, [R8] .text:10001F20 STR R2, [R3,#0x28] .text:10001F24 B loc_10002190 .text:10001F28 ; --------------------------------------------------------------------------- .text:10001F28 .text:10001F28 loc_10001F28 ; CODE XREF: sub_10001C10+2DCj .text:10001F28 LDR R0, [R8] .text:10001F2C MOV R1, R7 .text:10001F30 BL sub_100055D4 .text:10001F34 B loc_10002190 .text:10001F38 ; --------------------------------------------------------------------------- .text:10001F38 .text:10001F38 loc_10001F38 ; CODE XREF: sub_10001C10+68j .text:10001F38 ; sub_10001C10+2CCj .text:10001F38 ; DATA XREF: ... .text:10001F38 LDR R3, [R5] ; jumptable 10001C78 case 10 .text:10001F3C MOV R1, R7 .text:10001F40 MOV R0, R5 .text:10001F44 LDR R3, [R3,#0xC] .text:10001F48 MOV LR, PC .text:10001F4C BX R3 .text:10001F50 MOV R4, R0 .text:10001F54 B loc_10002194 .text:10001F58 ; --------------------------------------------------------------------------- .text:10001F58 .text:10001F58 loc_10001F58 ; CODE XREF: sub_10001C10+68j .text:10001F58 ; sub_10001C10+2C4j .text:10001F58 ; DATA XREF: ... .text:10001F58 LDR R3, [R5] ; jumptable 10001C78 case 9 .text:10001F5C MOV R0, R5 .text:10001F60 LDR R3, [R3,#0x18] .text:10001F64 MOV LR, PC .text:10001F68 BX R3 .text:10001F6C MOV R4, R0 .text:10001F70 B loc_10002194 .text:10001F74 ; --------------------------------------------------------------------------- .text:10001F74 .text:10001F74 loc_10001F74 ; CODE XREF: sub_10001C10+1CCj .text:10001F74 LDR R0, [R8] .text:10001F78 MOV R1, R7 .text:10001F7C BL sub_10004C44 .text:10001F80 B loc_10002190 .text:10001F84 ; --------------------------------------------------------------------------- .text:10001F84 .text:10001F84 loc_10001F84 ; CODE XREF: sub_10001C10+1C8j .text:10001F84 MOVL R3, 0x402 .text:10001F8C CMP R6, R3 .text:10001F90 BHI loc_100020D8 .text:10001F94 BEQ loc_100020AC .text:10001F98 MOVL R3, 0x1D7 .text:10001FA0 CMP R6, R3 .text:10001FA4 BEQ loc_1000209C .text:10001FA8 CMP R6, #0x1F4 .text:10001FAC BEQ loc_10002068 .text:10001FB0 MOVL R3, 0x1F5 .text:10001FB8 CMP R6, R3 .text:10001FBC BEQ loc_10002034 .text:10001FC0 CMP R6, #0x400 .text:10001FC4 BEQ loc_10002004 .text:10001FC8 MOVL R3, 0x401 .text:10001FD0 CMP R6, R3 .text:10001FD4 BNE loc_10002120 ; default .text:10001FD4 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10001FD8 CMP R5, #0 .text:10001FDC LDREQ R3, [R8] .text:10001FE0 LDRNE R0, [R5,#0x50] .text:10001FE4 ADDEQ R0, R3, #0xCC .text:10001FE8 CMP R7, #4 .text:10001FEC BCS loc_1000200C ; jumptable 10001C78 case 0 .text:10001FF0 ADD R3, R0, R7,LSL#2 .text:10001FF4 STR R9, [R3,#0x14] .text:10001FF8 BL sub_10002824 .text:10001FFC MOV R4, #0 .text:10002000 B loc_10002194 .text:10002004 ; --------------------------------------------------------------------------- .text:10002004 .text:10002004 loc_10002004 ; CODE XREF: sub_10001C10+3B4j .text:10002004 CMP R7, #4 .text:10002008 BCC loc_10002014 .text:1000200C .text:1000200C loc_1000200C ; CODE XREF: sub_10001C10+4Cj .text:1000200C ; sub_10001C10+68j ... .text:1000200C MOV R4, #1 ; jumptable 10001C78 case 0 .text:10002010 B loc_10002194 .text:10002014 ; --------------------------------------------------------------------------- .text:10002014 .text:10002014 loc_10002014 ; CODE XREF: sub_10001C10+3F8j .text:10002014 LDR R3, [R5] .text:10002018 MOV R0, R5 .text:1000201C STR R7, [R5,#0x5C] .text:10002020 LDR R3, [R3,#0x30] .text:10002024 MOV LR, PC .text:10002028 BX R3 .text:1000202C MOV R4, #0 .text:10002030 B loc_10002194 .text:10002034 ; --------------------------------------------------------------------------- .text:10002034 .text:10002034 loc_10002034 ; CODE XREF: sub_10001C10+3ACj .text:10002034 LDR R0, [R8] .text:10002038 MOVL R2, 0xC183 .text:10002040 MOV R3, #2 .text:10002044 MOV R1, #0x36 .text:10002048 BL sub_10004BCC .text:1000204C LDR R0, [R8] .text:10002050 MOV R3, #2 .text:10002054 MOV R2, #0xB80 .text:10002058 MOV R1, #0x44 .text:1000205C BL sub_10004BCC .text:10002060 MOV R4, #1 .text:10002064 B loc_10002194 .text:10002068 ; --------------------------------------------------------------------------- .text:10002068 .text:10002068 loc_10002068 ; CODE XREF: sub_10001C10+39Cj .text:10002068 LDR R0, [R8] .text:1000206C BL sub_10005DA0 .text:10002070 LDR R3, [R8] .text:10002074 CMP R9, #1 .text:10002078 MOVEQ R1, #1 .text:1000207C MOVNE R1, #0 .text:10002080 STR R1, [R3,#0x18] .text:10002084 LDR R0, [R8] .text:10002088 MOVEQ R2, #1 .text:1000208C MOVNE R2, #0 .text:10002090 MOV R1, #2 .text:10002094 BL sub_100087C4 .text:10002098 B loc_10002190 .text:1000209C ; --------------------------------------------------------------------------- .text:1000209C .text:1000209C loc_1000209C ; CODE XREF: sub_10001C10+394j .text:1000209C LDR R0, [R8] .text:100020A0 MOV R1, R7 .text:100020A4 BL sub_10004C9C .text:100020A8 B loc_10002190 .text:100020AC ; --------------------------------------------------------------------------- .text:100020AC .text:100020AC loc_100020AC ; CODE XREF: sub_10001C10+384j .text:100020AC CMP R5, #0 .text:100020B0 MOV R1, R7 .text:100020B4 BEQ loc_100020C8 .text:100020B8 MOV R0, R5 .text:100020BC BL sub_100033AC .text:100020C0 MOV R4, R0 .text:100020C4 B loc_10002194 .text:100020C8 ; --------------------------------------------------------------------------- .text:100020C8 .text:100020C8 loc_100020C8 ; CODE XREF: sub_10001C10+4A4j .text:100020C8 LDR R0, [R8] .text:100020CC BL sub_10004BB0 .text:100020D0 MOV R4, R0 .text:100020D4 B loc_10002194 .text:100020D8 ; --------------------------------------------------------------------------- .text:100020D8 .text:100020D8 loc_100020D8 ; CODE XREF: sub_10001C10+380j .text:100020D8 MOVL R3, 0x40A .text:100020E0 CMP R6, R3 .text:100020E4 BEQ loc_10002180 .text:100020E8 MOVL R3, 0x40B .text:100020F0 CMP R6, R3 .text:100020F4 BEQ loc_1000216C .text:100020F8 MOVL R3, 0x40D .text:10002100 CMP R6, R3 .text:10002104 BEQ loc_10002148 .text:10002108 MOVL R3, 0x40E .text:10002110 CMP R6, R3 .text:10002114 BEQ loc_1000213C .text:10002118 CMP R6, #0x500 .text:1000211C BEQ loc_10002128 .text:10002120 .text:10002120 loc_10002120 ; CODE XREF: sub_10001C10+58j .text:10002120 ; sub_10001C10+68j ... .text:10002120 MOV R4, #8 ; default .text:10002120 ; jumptable 10001C78 cases 4,5,11,12,18 .text:10002124 B loc_10002194 .text:10002128 ; --------------------------------------------------------------------------- .text:10002128 .text:10002128 loc_10002128 ; CODE XREF: sub_10001C10+50Cj .text:10002128 MOV R1, R7 .text:1000212C MOV R0, R5 .text:10002130 BL sub_10004594 .text:10002134 MOV R4, R0 .text:10002138 B loc_10002194 .text:1000213C ; --------------------------------------------------------------------------- .text:1000213C .text:1000213C loc_1000213C ; CODE XREF: sub_10001C10+504j .text:1000213C LDR R3, [R8] .text:10002140 LDR R4, [R3,#0x24] .text:10002144 B loc_10002194 .text:10002148 ; --------------------------------------------------------------------------- .text:10002148 .text:10002148 loc_10002148 ; CODE XREF: sub_10001C10+4F4j .text:10002148 CMP R7, #0xA .text:1000214C BCC loc_10002190 .text:10002150 CMP R7, #0xE .text:10002154 BHI loc_10002190 .text:10002158 LDR R0, [R8] .text:1000215C MOV R1, R7 .text:10002160 BL sub_10008878 .text:10002164 MOV R4, #0 .text:10002168 B loc_10002194 .text:1000216C ; --------------------------------------------------------------------------- .text:1000216C .text:1000216C loc_1000216C ; CODE XREF: sub_10001C10+4E4j .text:1000216C LDR R0, [R8] .text:10002170 MOV R2, R9 .text:10002174 MOV R1, R7 .text:10002178 BL sub_10005968 .text:1000217C B loc_10002190 .text:10002180 ; --------------------------------------------------------------------------- .text:10002180 .text:10002180 loc_10002180 ; CODE XREF: sub_10001C10+4D4j .text:10002180 LDR R0, [R8] .text:10002184 MOV R2, R9 .text:10002188 MOV R1, R7 .text:1000218C BL sub_10005930 .text:10002190 .text:10002190 loc_10002190 ; CODE XREF: sub_10001C10+314j .text:10002190 ; sub_10001C10+324j ... .text:10002190 LDR R4, [SP,#0x24+var_24] .text:10002194 .text:10002194 loc_10002194 ; CODE XREF: sub_10001C10+C0j .text:10002194 ; sub_10001C10+F0j ... .text:10002194 LDR R3, [R8] .text:10002198 ADD R0, R3, #0x50 .text:1000219C BL LeaveCriticalSection .text:100021A0 CMP R10, #0 .text:100021A4 STRNE R4, [R10] .text:100021A8 .text:100021A8 loc_100021A8 ; CODE XREF: sub_10001C10+38j .text:100021A8 MOV R0, #1 .text:100021AC ADD SP, SP, #4 .text:100021B0 LDMFD SP!, {R4-R10,LR} .text:100021B4 BX LR .text:100021B4 ; End of function sub_10001C10 .text:100021B4 .text:100021B4 ; --------------------------------------------------------------------------- .text:100021B8 off_100021B8 DCD unk_1000B548 ; DATA XREF: sub_10001C10+18r .text:100021BC DCD loc_1000A338 .text:100021C0 DCD dword_1000A528 .text:100021C4 ; Exported entry 3. WAV_IOControl .text:100021C4 .text:100021C4 ; =============== S U B R O U T I N E ======================================= .text:100021C4 .text:100021C4 ; Attributes: bp-based frame .text:100021C4 .text:100021C4 EXPORT WAV_IOControl .text:100021C4 WAV_IOControl ; DATA XREF: .pdata:1000C040o .text:100021C4 .text:100021C4 var_4C = -0x4C .text:100021C4 var_48 = -0x48 .text:100021C4 var_44 = -0x44 .text:100021C4 var_40 = -0x40 .text:100021C4 var_3C = -0x3C .text:100021C4 var_38 = -0x38 .text:100021C4 var_34 = -0x34 .text:100021C4 var_30 = -0x30 .text:100021C4 var_2C = -0x2C .text:100021C4 oldR4 = -0x24 .text:100021C4 oldR5 = -0x20 .text:100021C4 oldR6 = -0x1C .text:100021C4 oldR7 = -0x18 .text:100021C4 oldR8 = -0x14 .text:100021C4 oldR9 = -0x10 .text:100021C4 oldR11 = -0xC .text:100021C4 oldSP = -8 .text:100021C4 oldLR = -4 .text:100021C4 arg_0 = 0 .text:100021C4 arg_4 = 4 .text:100021C4 arg_8 = 8 .text:100021C4 .text:100021C4 MOV R12, SP .text:100021C8 STMFD SP!, {R4-R9,R11,R12,LR} .text:100021CC ADD R11, SP, #0x24 .text:100021D0 SUB SP, SP, #0x28 .text:100021D4 MOV R9, R3 .text:100021D8 MOV R8, R2 .text:100021DC MOV R3, #0 .text:100021E0 MOV R2, #0 .text:100021E4 MOV R0, #0x100 .text:100021E8 MOV R4, #0 .text:100021EC STR R3, [R11,#var_34] .text:100021F0 STR R2, [R11,#var_38] .text:100021F4 STR R0, [R11,#var_30] .text:100021F8 STR R4, [R11,#var_44] .text:100021FC .text:100021FC loc_100021FC ; DATA XREF: .text:1000A53Co .text:100021FC MOVL R0, 0x1D000C .text:10002204 CMP R1, R0 .text:10002208 BNE loc_10002220 .text:1000220C LDR R1, [R11,#arg_0] .text:10002210 MOV R0, R8 .text:10002214 BL sub_10001C10 .text:10002218 STR R0, [R11,#var_2C] .text:1000221C B loc_1000253C .text:10002220 ; --------------------------------------------------------------------------- .text:10002220 .text:10002220 loc_10002220 ; CODE XREF: WAV_IOControl+44j .text:10002220 MOVL R3, 0x321000 .text:10002228 CMP R1, R3 .text:1000222C BNE loc_10002288 .text:10002230 LDR R5, [R11,#arg_0] .text:10002234 CMP R5, #0 .text:10002238 BEQ loc_10002520 .text:1000223C LDR R3, [R11,#arg_4] .text:10002240 CMP R3, #0x30 .text:10002244 BCC loc_10002520 .text:10002248 LDR R6, [R11,#arg_8] .text:1000224C CMP R6, #0 .text:10002250 BEQ loc_10002520 .text:10002254 MOV R2, #0x30 .text:10002258 MOV R1, #0 .text:1000225C MOV R0, R5 .text:10002260 BL memset .text:10002264 MOV R3, #0x1F .text:10002268 STRB R3, [R5] .text:1000226C MOV R3, #0x30 .text:10002270 STR R3, [R6] .text:10002274 MOV R4, #1 .text:10002278 STR R4, [R11,#var_44] .text:1000227C MOV R3, #0 .text:10002280 STR R3, [R11,#var_3C] .text:10002284 B loc_10002520 .text:10002288 ; --------------------------------------------------------------------------- .text:10002288 .text:10002288 loc_10002288 ; CODE XREF: WAV_IOControl+68j .text:10002288 LDR R3, =0x321004 .text:1000228C CMP R1, R3 .text:10002290 BNE loc_100022C4 .text:10002294 LDR R2, [R11,#arg_0] .text:10002298 CMP R2, #0 .text:1000229C BEQ loc_10002520 .text:100022A0 LDR R3, [R11,#arg_4] .text:100022A4 CMP R3, #4 .text:100022A8 BCC loc_10002520 .text:100022AC LDR R3, =unk_1000B500 .text:100022B0 MOV R1, #0 .text:100022B4 LDR R3, [R3,#4] .text:100022B8 STR R3, [R2] .text:100022BC STR R1, [R11,#var_3C] .text:100022C0 B loc_10002518 .text:100022C4 ; --------------------------------------------------------------------------- .text:100022C4 .text:100022C4 loc_100022C4 ; CODE XREF: WAV_IOControl+CCj .text:100022C4 LDR R3, =0x321008 .text:100022C8 CMP R1, R3 .text:100022CC BNE loc_100022FC .text:100022D0 LDR R0, [R11,#arg_0] .text:100022D4 LDR R2, =unk_1000B500 .text:100022D8 LDR R1, [R11,#arg_8] .text:100022DC LDR R3, [R0] .text:100022E0 MOV LR, #4 .text:100022E4 MOV R4, #0 .text:100022E8 STR R3, [R2,#4] .text:100022EC STR R3, [R0] .text:100022F0 STR LR, [R1] .text:100022F4 STR R4, [R11,#var_3C] .text:100022F8 B loc_10002518 .text:100022FC ; --------------------------------------------------------------------------- .text:100022FC .text:100022FC loc_100022FC ; CODE XREF: WAV_IOControl+108j .text:100022FC LDR R3, =0x32100C .text:10002300 CMP R1, R3 .text:10002304 BNE loc_10002338 .text:10002308 LDR R2, [R11,#arg_0] .text:1000230C CMP R2, #0 .text:10002310 BEQ loc_10002520 .text:10002314 LDR R3, [R11,#arg_4] .text:10002318 CMP R3, #4 .text:1000231C BCC loc_10002520 .text:10002320 LDR R3, [R2] .text:10002324 CMP R3, #4 .text:10002328 BHI loc_10002520 .text:1000232C MOV R3, #0 .text:10002330 STR R3, [R11,#var_3C] .text:10002334 B loc_10002518 .text:10002338 ; --------------------------------------------------------------------------- .text:10002338 .text:10002338 loc_10002338 ; CODE XREF: WAV_IOControl+140j .text:10002338 LDR R3, =0x80022018 .text:1000233C CMP R1, R3 .text:10002340 BNE loc_10002374 .text:10002344 LDR R3, [R11,#arg_4] .text:10002348 CMP R3, #4 .text:1000234C BNE loc_1000235C .text:10002350 LDR R2, [R11,#arg_0] .text:10002354 CMP R2, #0 .text:10002358 BNE loc_10002364 .text:1000235C .text:1000235C loc_1000235C ; CODE XREF: WAV_IOControl+188j .text:1000235C LDR R0, [R11,#var_40] .text:10002360 B loc_10002538 .text:10002364 ; --------------------------------------------------------------------------- .text:10002364 .text:10002364 loc_10002364 ; CODE XREF: WAV_IOControl+194j .text:10002364 LDR R3, =unk_1000B500 .text:10002368 LDR R3, [R3] .text:1000236C STR R3, [R2] .text:10002370 B loc_10002518 .text:10002374 ; --------------------------------------------------------------------------- .text:10002374 .text:10002374 loc_10002374 ; CODE XREF: WAV_IOControl+17Cj .text:10002374 LDR R3, =0x8002201C .text:10002378 CMP R1, R3 .text:1000237C BNE loc_10002520 .text:10002380 MOV R0, #0x200 .text:10002384 BL __2_YAPAXI_Z ; operator new(uint) .text:10002388 LDR R6, =unk_1000B548 .text:1000238C MOV R7, R0 .text:10002390 LDR R3, [R6] .text:10002394 LDR R3, [R3,#0x40] .text:10002398 CMP R3, #0 .text:1000239C BNE loc_1000243C .text:100023A0 LDR R1, =aSoftwareMicros .text:100023A4 SUB LR, R11, #0x38 .text:100023A8 MOV R3, #0 .text:100023AC MOV R2, #0 .text:100023B0 MOV R0, #0x80000002 .text:100023B4 STR LR, [SP,#0x4C+var_4C] .text:100023B8 BL RegOpenKeyExW .text:100023BC CMP R0, #0 .text:100023C0 BNE loc_1000243C .text:100023C4 LDR R1, =aRadioversion .text:100023C8 LDR R0, [R11,#var_38] .text:100023CC SUB LR, R11, #0x30 .text:100023D0 SUB R3, R11, #0x28 .text:100023D4 MOV R2, #0 .text:100023D8 STR LR, [SP,#0x4C+var_48] .text:100023DC STR R7, [SP,#0x4C+var_4C] .text:100023E0 BL RegQueryValueExW .text:100023E4 CMP R0, #0 .text:100023E8 BNE loc_1000242C .text:100023EC LDR R0, =aKy3Lt .text:100023F0 MOV R1, R7 .text:100023F4 BL wcsstr .text:100023F8 CMP R0, #0 .text:100023FC LDRNE R3, [R6] .text:10002400 MOVNE R2, #2 .text:10002404 STRNE R2, [R3,#0x40] .text:10002408 BNE loc_1000242C .text:1000240C LDR R0, =aKy3Lq .text:10002410 MOV R1, R7 .text:10002414 BL wcsstr .text:10002418 CMP R0, #0 .text:1000241C LDR R3, [R6] .text:10002420 MOV R5, #1 .text:10002424 STR R5, [R3,#0x40] .text:10002428 B loc_10002430 .text:1000242C ; --------------------------------------------------------------------------- .text:1000242C .text:1000242C loc_1000242C ; CODE XREF: WAV_IOControl+224j .text:1000242C ; WAV_IOControl+244j .text:1000242C MOV R5, #1 .text:10002430 .text:10002430 loc_10002430 ; CODE XREF: WAV_IOControl+264j .text:10002430 LDR R0, [R11,#var_38] .text:10002434 BL RegCloseKey .text:10002438 B loc_10002440 .text:1000243C ; --------------------------------------------------------------------------- .text:1000243C .text:1000243C loc_1000243C ; CODE XREF: WAV_IOControl+1D8j .text:1000243C ; WAV_IOControl+1FCj .text:1000243C MOV R5, #1 .text:10002440 .text:10002440 loc_10002440 ; CODE XREF: WAV_IOControl+274j .text:10002440 MOV R0, R7 .text:10002444 BL __3_YAXPAX_Z ; operator delete(void *) .text:10002448 CMP R9, #4 .text:1000244C BNE loc_10002458 .text:10002450 CMP R8, #0 .text:10002454 BNE loc_10002460 .text:10002458 .text:10002458 loc_10002458 ; CODE XREF: WAV_IOControl+288j .text:10002458 LDR R0, [R11,#var_40] .text:1000245C B loc_10002538 .text:10002460 ; --------------------------------------------------------------------------- .text:10002460 .text:10002460 loc_10002460 ; CODE XREF: WAV_IOControl+290j .text:10002460 ; DATA XREF: .text:1000A52Co .text:10002460 LDR R7, =unk_1000B500 .text:10002464 LDR R3, [R8] .text:10002468 STR R3, [R7] .text:1000246C .text:1000246C loc_1000246C ; DATA XREF: .text:1000A530o .text:1000246C B loc_10002488 .text:10002470 ; --------------------------------------------------------------------------- .text:10002470 .text:10002470 loc_10002470 ; DATA XREF: .text:1000A538o .text:10002470 LDR R6, =unk_1000B548 .text:10002474 LDR R7, =unk_1000B500 .text:10002478 LDR R4, [R11,#var_44] .text:1000247C MOV R5, #1 .text:10002480 LDR R0, [R11,#var_40] .text:10002484 B loc_10002538 .text:10002488 ; --------------------------------------------------------------------------- .text:10002488 .text:10002488 loc_10002488 ; CODE XREF: WAV_IOControl:loc_1000246Cj .text:10002488 LDR R0, [R6] .text:1000248C BL sub_10005DA0 .text:10002490 LDR R3, [R7] .text:10002494 CMP R3, #0 .text:10002498 LDREQ R3, [R6] .text:1000249C MOVEQ R1, #0 .text:100024A0 MOVEQ R2, #0 .text:100024A4 STREQ R1, [R3,#0x20] .text:100024A8 BEQ loc_100024C0 .text:100024AC CMP R3, #1 .text:100024B0 BNE loc_100024CC .text:100024B4 LDR R3, [R6] .text:100024B8 MOV R2, #1 .text:100024BC STR R5, [R3,#0x20] .text:100024C0 .text:100024C0 loc_100024C0 ; CODE XREF: WAV_IOControl+2E4j .text:100024C0 MOV R1, #4 .text:100024C4 LDR R0, [R6] .text:100024C8 BL sub_100087C4 .text:100024CC .text:100024CC loc_100024CC ; CODE XREF: WAV_IOControl+2ECj .text:100024CC LDR R1, =aSystemStateHar .text:100024D0 SUB LR, R11, #0x34 .text:100024D4 MOV R3, #0 .text:100024D8 MOV R2, #0 .text:100024DC MOV R0, #0x80000002 .text:100024E0 STR LR, [SP,#0x4C+var_4C] .text:100024E4 BL RegOpenKeyExW .text:100024E8 CMP R0, #0 .text:100024EC BNE loc_10002518 .text:100024F0 LDR R1, =aSpeaker .text:100024F4 LDR R0, [R11,#var_34] .text:100024F8 MOV LR, #4 .text:100024FC MOV R3, #4 .text:10002500 MOV R2, #0 .text:10002504 STR LR, [SP,#0x4C+var_48] .text:10002508 STR R7, [SP,#0x4C+var_4C] .text:1000250C BL RegSetValueExW .text:10002510 LDR R0, [R11,#var_34] .text:10002514 BL RegCloseKey .text:10002518 .text:10002518 loc_10002518 ; CODE XREF: WAV_IOControl+FCj .text:10002518 ; WAV_IOControl+134j ... .text:10002518 MOV R4, #1 .text:1000251C STR R4, [R11,#var_44] .text:10002520 .text:10002520 loc_10002520 ; CODE XREF: WAV_IOControl+74j .text:10002520 ; WAV_IOControl+80j ... .text:10002520 LDR R0, [R11,#var_40] .text:10002524 B loc_10002538 .text:10002528 ; --------------------------------------------------------------------------- .text:10002528 .text:10002528 loc_10002528 ; DATA XREF: .text:1000A548o .text:10002528 LDR R0, =0x80004005 .text:1000252C BL SetLastError .text:10002530 LDR R4, [R11,#var_44] .text:10002534 LDR R0, [R11,#var_40] .text:10002538 .text:10002538 loc_10002538 ; CODE XREF: WAV_IOControl+19Cj .text:10002538 ; WAV_IOControl+298j ... .text:10002538 MOV R0, R4 .text:1000253C .text:1000253C loc_1000253C ; CODE XREF: WAV_IOControl+58j .text:1000253C LDMDB R11, {R4-R9,R11,SP,LR} .text:10002540 BX LR .text:10002540 ; End of function WAV_IOControl .text:10002540 .text:10002544 .text:10002544 ; =============== S U B R O U T I N E ======================================= .text:10002544 .text:10002544 .text:10002544 sub_10002544 ; DATA XREF: .text:1000A544o .text:10002544 ; .pdata:1000C048o .text:10002544 LDR R3, [R0] .text:10002548 LDR R3, [R3] .text:1000254C CMP R3, #0xC0000005 .text:10002550 MOVEQ R0, #1 .text:10002554 MOVNE R0, #0 .text:10002558 RET .text:10002558 ; End of function sub_10002544 .text:10002558 .text:1000255C .text:1000255C ; =============== S U B R O U T I N E ======================================= .text:1000255C .text:1000255C .text:1000255C sub_1000255C ; DATA XREF: .text:1000A534o .text:1000255C ; .pdata:1000C050o .text:1000255C MOV R0, #1 .text:10002560 RET .text:10002560 ; End of function sub_1000255C .text:10002560 .text:10002560 ; --------------------------------------------------------------------------- .text:10002564 dword_10002564 DCD 0x80004005 ; DATA XREF: WAV_IOControl:loc_10002528r .text:10002568 off_10002568 DCD aSpeaker ; DATA XREF: WAV_IOControl+32Cr .text:10002568 ; "Speaker" .text:1000256C off_1000256C DCD aSystemStateHar ; DATA XREF: WAV_IOControl:loc_100024CCr .text:1000256C ; "System\\State\\Hardware" .text:10002570 off_10002570 DCD unk_1000B500 ; DATA XREF: WAV_IOControl+E8r .text:10002570 ; WAV_IOControl+110r ... .text:10002574 off_10002574 DCD unk_1000B548 ; DATA XREF: WAV_IOControl+1C4r .text:10002574 ; WAV_IOControl:loc_10002470r .text:10002578 off_10002578 DCD aKy3Lq ; DATA XREF: WAV_IOControl+248r .text:10002578 ; "KY3,LQ" .text:1000257C off_1000257C DCD aKy3Lt ; DATA XREF: WAV_IOControl+228r .text:1000257C ; "KY3,LT" .text:10002580 off_10002580 DCD aRadioversion ; DATA XREF: WAV_IOControl+200r .text:10002580 ; "RadioVersion" .text:10002584 off_10002584 DCD aSoftwareMicros ; DATA XREF: WAV_IOControl+1DCr .text:10002584 ; "Software\\Microsoft\\RIL" .text:10002588 dword_10002588 DCD 0x8002201C ; DATA XREF: WAV_IOControl:loc_10002374r .text:1000258C dword_1000258C DCD 0x80022018 ; DATA XREF: WAV_IOControl:loc_10002338r .text:10002590 dword_10002590 DCD 0x32100C ; DATA XREF: WAV_IOControl:loc_100022FCr .text:10002594 dword_10002594 DCD 0x321008 ; DATA XREF: WAV_IOControl:loc_100022C4r .text:10002598 dword_10002598 DCD 0x321004 ; DATA XREF: WAV_IOControl:loc_10002288r .text:1000259C .text:1000259C ; =============== S U B R O U T I N E ======================================= .text:1000259C .text:1000259C .text:1000259C sub_1000259C ; DATA XREF: .text:100010E4o .text:1000259C ; .text:100011DCo ... .text:1000259C .text:1000259C var_10 = -0x10 .text:1000259C .text:1000259C STMFD SP!, {R4,R5,LR} .text:100025A0 SUB SP, SP, #4 .text:100025A4 MOV R3, R1 .text:100025A8 MOV R1, R0 .text:100025AC LDR R2, [R1,#0x20] .text:100025B0 LDR R0, [R1,#0x18] .text:100025B4 LDR R4, [R1,#0x1C] .text:100025B8 MOV R1, #0x3BC .text:100025BC MOV R5, #0 .text:100025C0 ORR R1, R1, #1 .text:100025C4 STR R5, [SP,#0x10+var_10] .text:100025C8 MOV LR, PC .text:100025CC BX R4 .text:100025D0 ADD SP, SP, #4 .text:100025D4 LDMFD SP!, {R4,R5,LR} .text:100025D8 BX LR .text:100025D8 ; End of function sub_1000259C .text:100025D8 .text:100025DC .text:100025DC ; =============== S U B R O U T I N E ======================================= .text:100025DC .text:100025DC .text:100025DC sub_100025DC ; DATA XREF: .text:100010E8o .text:100025DC ; .text:100011E0o ... .text:100025DC .text:100025DC var_10 = -0x10 .text:100025DC .text:100025DC STMFD SP!, {R4,R5,LR} .text:100025E0 SUB SP, SP, #4 .text:100025E4 MOV R3, R0 .text:100025E8 LDR R2, [R3,#0x20] .text:100025EC LDR R0, [R3,#0x18] .text:100025F0 LDR R4, [R3,#0x1C] .text:100025F4 MOV R5, #0 .text:100025F8 MOVL R1, 0x3BB .text:10002600 STR R5, [SP,#0x10+var_10] .text:10002604 MOV R3, #0 .text:10002608 MOV LR, PC .text:1000260C BX R4 .text:10002610 ADD SP, SP, #4 .text:10002614 LDMFD SP!, {R4,R5,LR} .text:10002618 BX LR .text:10002618 ; End of function sub_100025DC .text:10002618 .text:1000261C .text:1000261C ; =============== S U B R O U T I N E ======================================= .text:1000261C .text:1000261C .text:1000261C sub_1000261C ; DATA XREF: .text:100010ECo .text:1000261C ; .text:100011E4o ... .text:1000261C .text:1000261C var_10 = -0x10 .text:1000261C .text:1000261C STMFD SP!, {R4,R5,LR} .text:10002620 SUB SP, SP, #4 .text:10002624 MOV R3, R0 .text:10002628 LDR R2, [R3,#0x20] .text:1000262C LDR R0, [R3,#0x18] .text:10002630 LDR R4, [R3,#0x1C] .text:10002634 MOV R5, #0 .text:10002638 STR R5, [SP,#0x10+var_10] .text:1000263C MOV R3, #0 .text:10002640 MOV R1, #0x3BC .text:10002644 MOV LR, PC .text:10002648 BX R4 .text:1000264C ADD SP, SP, #4 .text:10002650 LDMFD SP!, {R4,R5,LR} .text:10002654 BX LR .text:10002654 ; End of function sub_1000261C .text:10002654 .text:10002658 .text:10002658 ; =============== S U B R O U T I N E ======================================= .text:10002658 .text:10002658 .text:10002658 sub_10002658 ; DATA XREF: .text:100010F4o .text:10002658 ; .text:10001220o ... .text:10002658 STMFD SP!, {R4,LR} .text:1000265C MOV R4, R0 .text:10002660 LDR R1, [R4,#0x58] .text:10002664 BL sub_10003098 .text:10002668 STR R0, [R4,#0x60] .text:1000266C LDMFD SP!, {R4,LR} .text:10002670 BX LR .text:10002670 ; End of function sub_10002658 .text:10002670 .text:10002674 .text:10002674 ; =============== S U B R O U T I N E ======================================= .text:10002674 .text:10002674 .text:10002674 sub_10002674 ; DATA XREF: .text:off_100010C4o .text:10002674 ; .pdata:1000C078o .text:10002674 STMFD SP!, {R4,LR} .text:10002678 MOV R4, R0 .text:1000267C LDR R3, =off_100010C4 .text:10002680 TST R1, #1 .text:10002684 STR R3, [R4] .text:10002688 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:1000268C MOV R0, R4 .text:10002690 LDMFD SP!, {R4,LR} .text:10002694 BX LR .text:10002694 ; End of function sub_10002674 .text:10002694 .text:10002694 ; --------------------------------------------------------------------------- .text:10002698 off_10002698 DCD off_100010C4 ; DATA XREF: sub_10002674+8r .text:1000269C .text:1000269C ; =============== S U B R O U T I N E ======================================= .text:1000269C .text:1000269C .text:1000269C sub_1000269C ; CODE XREF: sub_10002718+20p .text:1000269C ; DATA XREF: .text:off_10001654o ... .text:1000269C LDRB R2, [R1] .text:100026A0 LDRB R3, [R1,#1] .text:100026A4 ORR R3, R2, R3,LSL#8 .text:100026A8 CMP R3, #1 .text:100026AC BNE loc_10002708 .text:100026B0 LDRB R2, [R1,#2] .text:100026B4 LDRB R3, [R1,#3] .text:100026B8 ORR R3, R2, R3,LSL#8 .text:100026BC CMP R3, #1 .text:100026C0 BEQ loc_100026CC .text:100026C4 CMP R3, #2 .text:100026C8 BNE loc_10002708 .text:100026CC .text:100026CC loc_100026CC ; CODE XREF: sub_1000269C+24j .text:100026CC LDRB R2, [R1,#0xE] .text:100026D0 LDRB R3, [R1,#0xF] .text:100026D4 ORR R3, R2, R3,LSL#8 .text:100026D8 CMP R3, #8 .text:100026DC BEQ loc_100026E8 .text:100026E0 CMP R3, #0x10 .text:100026E4 BNE loc_10002708 .text:100026E8 .text:100026E8 loc_100026E8 ; CODE XREF: sub_1000269C+40j .text:100026E8 LDRB R0, [R1,#4] .text:100026EC LDRB R3, [R1,#5] .text:100026F0 LDRB R2, [R1,#6] .text:100026F4 LDRB R1, [R1,#7] .text:100026F8 ORR R3, R0, R3,LSL#8 .text:100026FC ORR R3, R3, R2,LSL#16 .text:10002700 ORRS R3, R3, R1,LSL#24 .text:10002704 BNE loc_10002710 .text:10002708 .text:10002708 loc_10002708 ; CODE XREF: sub_1000269C+10j .text:10002708 ; sub_1000269C+2Cj ... .text:10002708 MOV R0, #0 .text:1000270C BX LR .text:10002710 ; --------------------------------------------------------------------------- .text:10002710 .text:10002710 loc_10002710 ; CODE XREF: sub_1000269C+68j .text:10002710 MOV R0, #1 .text:10002714 BX LR .text:10002714 ; End of function sub_1000269C .text:10002714 .text:10002718 .text:10002718 ; =============== S U B R O U T I N E ======================================= .text:10002718 .text:10002718 .text:10002718 sub_10002718 ; DATA XREF: .text:off_10001668o .text:10002718 ; .pdata:1000C088o .text:10002718 .text:10002718 var_4 = -4 .text:10002718 arg_4 = 4 .text:10002718 .text:10002718 STR LR, [SP,#var_4]! .text:1000271C LDRB R2, [R1] .text:10002720 LDRB R3, [R1,#1] .text:10002724 ORR R3, R2, R3,LSL#8 .text:10002728 CMP R3, #0x3000 .text:1000272C MOVEQ R0, #1 .text:10002730 LDREQ LR, [SP],#arg_4 .text:10002734 BXEQ LR .text:10002738 BL sub_1000269C .text:1000273C LDR LR, [SP],#arg_4 .text:10002740 BX LR .text:10002740 ; End of function sub_10002718 .text:10002740 .text:10002744 .text:10002744 ; =============== S U B R O U T I N E ======================================= .text:10002744 .text:10002744 .text:10002744 sub_10002744 ; CODE XREF: sub_10002CE4+118p .text:10002744 ; DATA XREF: .pdata:1000C090o .text:10002744 ADD R0, R0, #4 .text:10002748 LDR R3, [R0,#4] .text:1000274C ADD R2, R1, #4 .text:10002750 STR R0, [R1,#4] .text:10002754 STR R3, [R1,#8] .text:10002758 STR R2, [R3] .text:1000275C STR R2, [R0,#4] .text:10002760 BX LR .text:10002760 ; End of function sub_10002744 .text:10002760 .text:10002764 .text:10002764 ; =============== S U B R O U T I N E ======================================= .text:10002764 .text:10002764 .text:10002764 sub_10002764 ; CODE XREF: sub_10002E34+24p .text:10002764 ; DATA XREF: .pdata:1000C098o .text:10002764 LDR R2, [R1,#8] .text:10002768 LDR R3, [R1,#4] .text:1000276C STR R3, [R2] .text:10002770 LDR R2, [R1,#4] .text:10002774 LDR R3, [R1,#8] .text:10002778 STR R3, [R2,#4] .text:1000277C BX LR .text:1000277C ; End of function sub_10002764 .text:1000277C .text:10002780 .text:10002780 ; =============== S U B R O U T I N E ======================================= .text:10002780 .text:10002780 .text:10002780 sub_10002780 ; CODE XREF: sub_100048BC+24p .text:10002780 ; sub_100048F8+28p .text:10002780 ; DATA XREF: ... .text:10002780 .text:10002780 var_2C = -0x2C .text:10002780 var_28 = -0x28 .text:10002780 .text:10002780 STMFD SP!, {R4-R11,LR} .text:10002784 SUB SP, SP, #8 .text:10002788 MOV R9, R3 .text:1000278C STR R9, [SP,#0x2C+var_28] .text:10002790 STR R2, [SP,#0x2C+var_2C] .text:10002794 MOV R11, R1 .text:10002798 MOV R8, R0 .text:1000279C LDR R10, [R8,#4]! .text:100027A0 MOV R6, R11 .text:100027A4 MOV R7, #0 .text:100027A8 CMP R10, R8 .text:100027AC BEQ loc_1000280C .text:100027B0 MOV R9, R2 .text:100027B4 .text:100027B4 loc_100027B4 ; CODE XREF: sub_10002780+84j .text:100027B4 SUB R5, R10, #4 .text:100027B8 LDR R10, [R10] .text:100027BC MOV R0, R5 .text:100027C0 BL sub_10002E20 .text:100027C4 LDR LR, [R5] .text:100027C8 MOV R3, R6 .text:100027CC MOV R2, R9 .text:100027D0 LDR R4, [LR,#0x1C] .text:100027D4 MOV R1, R11 .text:100027D8 MOV R0, R5 .text:100027DC MOV LR, PC .text:100027E0 BX R4 .text:100027E4 MOV R4, R0 .text:100027E8 MOV R0, R5 .text:100027EC BL sub_10002E34 .text:100027F0 CMP R4, R11 .text:100027F4 ADDHI R7, R7, #1 .text:100027F8 CMP R6, R4 .text:100027FC MOVCC R6, R4 .text:10002800 CMP R10, R8 .text:10002804 BNE loc_100027B4 .text:10002808 LDR R9, [SP,#0x2C+var_28] .text:1000280C .text:1000280C loc_1000280C ; CODE XREF: sub_10002780+2Cj .text:1000280C CMP R9, #0 .text:10002810 STRNE R7, [R9] .text:10002814 MOV R0, R6 .text:10002818 ADD SP, SP, #8 .text:1000281C LDMFD SP!, {R4-R11,LR} .text:10002820 BX LR .text:10002820 ; End of function sub_10002780 .text:10002820 .text:10002824 .text:10002824 ; =============== S U B R O U T I N E ======================================= .text:10002824 .text:10002824 .text:10002824 sub_10002824 ; CODE XREF: sub_10001C10+3E8p .text:10002824 ; DATA XREF: .pdata:1000C0A8o .text:10002824 STMFD SP!, {R4,R5,LR} .text:10002828 MOV R4, R0 .text:1000282C LDR R5, [R4,#4]! .text:10002830 B loc_1000284C .text:10002834 ; --------------------------------------------------------------------------- .text:10002834 .text:10002834 loc_10002834 ; CODE XREF: sub_10002824+2Cj .text:10002834 SUB R0, R5, #4 .text:10002838 LDR R3, [R0] .text:1000283C LDR R3, [R3,#0x30] .text:10002840 MOV LR, PC .text:10002844 BX R3 .text:10002848 LDR R5, [R5] .text:1000284C .text:1000284C loc_1000284C ; CODE XREF: sub_10002824+Cj .text:1000284C CMP R5, R4 .text:10002850 BNE loc_10002834 .text:10002854 LDMFD SP!, {R4,R5,LR} .text:10002858 BX LR .text:10002858 ; End of function sub_10002824 .text:10002858 .text:1000285C .text:1000285C ; =============== S U B R O U T I N E ======================================= .text:1000285C .text:1000285C .text:1000285C sub_1000285C ; DATA XREF: .text:10001674o .text:1000285C ; .pdata:1000C0B0o .text:1000285C .text:1000285C var_4 = -4 .text:1000285C arg_4 = 4 .text:1000285C .text:1000285C STR LR, [SP,#var_4]! .text:10002860 LDR R3, =unk_1000B548 .text:10002864 LDR R0, [R3] .text:10002868 BL sub_10008410 .text:1000286C LDR LR, [SP],#arg_4 .text:10002870 BX LR .text:10002870 ; End of function sub_1000285C .text:10002870 .text:10002870 ; --------------------------------------------------------------------------- .text:10002874 off_10002874 DCD unk_1000B548 ; DATA XREF: sub_1000285C+4r .text:10002878 .text:10002878 ; =============== S U B R O U T I N E ======================================= .text:10002878 .text:10002878 .text:10002878 sub_10002878 ; DATA XREF: .text:10001660o .text:10002878 ; .pdata:1000C0B8o .text:10002878 .text:10002878 var_4 = -4 .text:10002878 arg_4 = 4 .text:10002878 .text:10002878 STR LR, [SP,#var_4]! .text:1000287C LDR R3, =unk_1000B548 .text:10002880 LDR R0, [R3] .text:10002884 BL sub_10008570 .text:10002888 LDR LR, [SP],#arg_4 .text:1000288C BX LR .text:1000288C ; End of function sub_10002878 .text:1000288C .text:1000288C ; --------------------------------------------------------------------------- .text:10002890 off_10002890 DCD unk_1000B548 ; DATA XREF: sub_10002878+4r .text:10002894 .text:10002894 ; =============== S U B R O U T I N E ======================================= .text:10002894 .text:10002894 .text:10002894 sub_10002894 ; DATA XREF: .text:10001670o .text:10002894 ; .pdata:1000C0C0o .text:10002894 .text:10002894 var_4 = -4 .text:10002894 arg_4 = 4 .text:10002894 .text:10002894 STR LR, [SP,#var_4]! .text:10002898 MOV R0, R1 .text:1000289C LDR R1, =dword_100010F8 .text:100028A0 CMP R2, #0x54 .text:100028A4 MOVCS R2, #0x54 .text:100028A8 BL memcpy .text:100028AC MOV R0, #0 .text:100028B0 LDR LR, [SP],#arg_4 .text:100028B4 BX LR .text:100028B4 ; End of function sub_10002894 .text:100028B4 .text:100028B4 ; --------------------------------------------------------------------------- .text:100028B8 off_100028B8 DCD dword_100010F8 ; DATA XREF: sub_10002894+8r .text:100028BC .text:100028BC ; =============== S U B R O U T I N E ======================================= .text:100028BC .text:100028BC .text:100028BC sub_100028BC ; DATA XREF: .text:1000165Co .text:100028BC ; .pdata:1000C0C8o .text:100028BC .text:100028BC var_4 = -4 .text:100028BC arg_4 = 4 .text:100028BC .text:100028BC STR LR, [SP,#var_4]! .text:100028C0 MOV R0, R1 .text:100028C4 LDR R1, =dword_10001150 .text:100028C8 CMP R2, #0x50 .text:100028CC MOVCS R2, #0x50 .text:100028D0 BL memcpy .text:100028D4 MOV R0, #0 .text:100028D8 LDR LR, [SP],#arg_4 .text:100028DC BX LR .text:100028DC ; End of function sub_100028BC .text:100028DC .text:100028DC ; --------------------------------------------------------------------------- .text:100028E0 off_100028E0 DCD dword_10001150 ; DATA XREF: sub_100028BC+8r .text:100028E4 .text:100028E4 ; =============== S U B R O U T I N E ======================================= .text:100028E4 .text:100028E4 .text:100028E4 sub_100028E4 ; DATA XREF: .text:1000166Co .text:100028E4 ; .pdata:1000C0D0o .text:100028E4 .text:100028E4 var_4 = -4 .text:100028E4 arg_4 = 4 .text:100028E4 .text:100028E4 STR LR, [SP,#var_4]! .text:100028E8 MOV R0, R1 .text:100028EC LDR R1, =(dword_10001198+8) .text:100028F0 CMP R2, #0x1C .text:100028F4 MOVCS R2, #0x1C .text:100028F8 BL memcpy .text:100028FC MOV R0, #0 .text:10002900 LDR LR, [SP],#arg_4 .text:10002904 BX LR .text:10002904 ; End of function sub_100028E4 .text:10002904 .text:10002904 ; --------------------------------------------------------------------------- .text:10002908 off_10002908 DCD dword_10001198+8 ; DATA XREF: sub_100028E4+8r .text:1000290C .text:1000290C ; =============== S U B R O U T I N E ======================================= .text:1000290C .text:1000290C .text:1000290C sub_1000290C ; DATA XREF: .text:10001658o .text:1000290C ; .pdata:1000C0D8o .text:1000290C MOV R0, #8 .text:10002910 BX LR .text:10002910 ; End of function sub_1000290C .text:10002910 .text:10002914 .text:10002914 ; =============== S U B R O U T I N E ======================================= .text:10002914 .text:10002914 .text:10002914 sub_10002914 ; CODE XREF: sub_10001C10+108p .text:10002914 ; DATA XREF: .pdata:1000C0E0o .text:10002914 STMFD SP!, {R4-R10,LR} .text:10002918 MOV R10, R3 .text:1000291C MOV R8, R2 .text:10002920 MOV R9, R1 .text:10002924 MOV R7, R0 .text:10002928 LDRB R6, [R9,#4] .text:1000292C LDRB LR, [R9,#5] .text:10002930 LDRB R4, [R9,#6] .text:10002934 LDRB R5, [R9,#7] .text:10002938 ORR LR, R6, LR,LSL#8 .text:1000293C ORR LR, LR, R4,LSL#16 .text:10002940 ORRS R1, LR, R5,LSL#24 .text:10002944 BEQ loc_10002960 .text:10002948 LDR R3, [R7] .text:1000294C LDR R3, [R3] .text:10002950 MOV LR, PC .text:10002954 BX R3 .text:10002958 CMP R0, #0 .text:1000295C BNE loc_1000296C .text:10002960 .text:10002960 loc_10002960 ; CODE XREF: sub_10002914+30j .text:10002960 MOV R0, #0x20 .text:10002964 LDMFD SP!, {R4-R10,LR} .text:10002968 BX LR .text:1000296C ; --------------------------------------------------------------------------- .text:1000296C .text:1000296C loc_1000296C ; CODE XREF: sub_10002914+48j .text:1000296C TST R8, #1 .text:10002970 BNE loc_100029EC .text:10002974 LDR R3, [R7] .text:10002978 MOV R1, R9 .text:1000297C MOV R0, R7 .text:10002980 LDR R3, [R3,#0x10] .text:10002984 MOV LR, PC .text:10002988 BX R3 .text:1000298C MOVS R5, R0 .text:10002990 MOVEQ R0, #7 .text:10002994 LDMEQFD SP!, {R4-R10,LR} .text:10002998 BXEQ LR .text:1000299C LDR R1, [R5] .text:100029A0 MOV R3, R8 .text:100029A4 MOV R2, R9 .text:100029A8 LDR R4, [R1,#4] .text:100029AC MOV R1, R7 .text:100029B0 MOV R0, R5 .text:100029B4 MOV LR, PC .text:100029B8 BX R4 .text:100029BC CMP R0, #0 .text:100029C0 BPL loc_100029E8 .text:100029C4 LDR R3, [R5] .text:100029C8 MOV R1, #1 .text:100029CC MOV R0, R5 .text:100029D0 LDR R3, [R3] .text:100029D4 MOV LR, PC .text:100029D8 BX R3 .text:100029DC MOV R0, #1 .text:100029E0 LDMFD SP!, {R4-R10,LR} .text:100029E4 BX LR .text:100029E8 ; --------------------------------------------------------------------------- .text:100029E8 .text:100029E8 loc_100029E8 ; CODE XREF: sub_10002914+ACj .text:100029E8 STR R5, [R10] .text:100029EC .text:100029EC loc_100029EC ; CODE XREF: sub_10002914+5Cj .text:100029EC MOV R0, #0 .text:100029F0 LDMFD SP!, {R4-R10,LR} .text:100029F4 BX LR .text:100029F4 ; End of function sub_10002914 .text:100029F4 .text:100029F8 .text:100029F8 ; =============== S U B R O U T I N E ======================================= .text:100029F8 .text:100029F8 .text:100029F8 sub_100029F8 ; DATA XREF: .text:10001210o .text:100029F8 ; .pdata:1000C0E8o .text:100029F8 .text:100029F8 var_10 = -0x10 .text:100029F8 .text:100029F8 STMFD SP!, {R4,R5,LR} .text:100029FC SUB SP, SP, #4 .text:10002A00 MOV R3, R1 .text:10002A04 MOV R1, R0 .text:10002A08 LDR R2, [R1,#0x20] .text:10002A0C LDR R0, [R1,#0x18] .text:10002A10 LDR R4, [R1,#0x1C] .text:10002A14 MOV R5, #0 .text:10002A18 STR R5, [SP,#0x10+var_10] .text:10002A1C MOV R1, #0x3C0 .text:10002A20 MOV LR, PC .text:10002A24 BX R4 .text:10002A28 ADD SP, SP, #4 .text:10002A2C LDMFD SP!, {R4,R5,LR} .text:10002A30 BX LR .text:10002A30 ; End of function sub_100029F8 .text:10002A30 .text:10002A34 .text:10002A34 ; =============== S U B R O U T I N E ======================================= .text:10002A34 .text:10002A34 .text:10002A34 sub_10002A34 ; DATA XREF: .text:10001214o .text:10002A34 ; .pdata:1000C0F0o .text:10002A34 .text:10002A34 var_10 = -0x10 .text:10002A34 .text:10002A34 STMFD SP!, {R4,R5,LR} .text:10002A38 SUB SP, SP, #4 .text:10002A3C MOV R3, R0 .text:10002A40 LDR R2, [R3,#0x20] .text:10002A44 LDR R0, [R3,#0x18] .text:10002A48 LDR R4, [R3,#0x1C] .text:10002A4C MOV R5, #0 .text:10002A50 MOVL R1, 0x3BE .text:10002A58 STR R5, [SP,#0x10+var_10] .text:10002A5C MOV R3, #0 .text:10002A60 MOV LR, PC .text:10002A64 BX R4 .text:10002A68 ADD SP, SP, #4 .text:10002A6C LDMFD SP!, {R4,R5,LR} .text:10002A70 BX LR .text:10002A70 ; End of function sub_10002A34 .text:10002A70 .text:10002A74 .text:10002A74 ; =============== S U B R O U T I N E ======================================= .text:10002A74 .text:10002A74 .text:10002A74 sub_10002A74 ; DATA XREF: .text:10001218o .text:10002A74 ; .pdata:1000C0F8o .text:10002A74 .text:10002A74 var_10 = -0x10 .text:10002A74 .text:10002A74 STMFD SP!, {R4,R5,LR} .text:10002A78 SUB SP, SP, #4 .text:10002A7C MOV R3, R0 .text:10002A80 LDR R2, [R3,#0x20] .text:10002A84 LDR R0, [R3,#0x18] .text:10002A88 LDR R4, [R3,#0x1C] .text:10002A8C MOV R5, #0 .text:10002A90 MOVL R1, 0x3BF .text:10002A98 STR R5, [SP,#0x10+var_10] .text:10002A9C MOV R3, #0 .text:10002AA0 MOV LR, PC .text:10002AA4 BX R4 .text:10002AA8 ADD SP, SP, #4 .text:10002AAC LDMFD SP!, {R4,R5,LR} .text:10002AB0 BX LR .text:10002AB0 ; End of function sub_10002A74 .text:10002AB0 .text:10002AB4 .text:10002AB4 ; =============== S U B R O U T I N E ======================================= .text:10002AB4 .text:10002AB4 .text:10002AB4 sub_10002AB4 ; DATA XREF: .text:off_100011F0o .text:10002AB4 ; .pdata:1000C100o .text:10002AB4 STMFD SP!, {R4,LR} .text:10002AB8 MOV R4, R0 .text:10002ABC LDR R3, =off_100010C4 .text:10002AC0 TST R1, #1 .text:10002AC4 STR R3, [R4] .text:10002AC8 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002ACC MOV R0, R4 .text:10002AD0 LDMFD SP!, {R4,LR} .text:10002AD4 BX LR .text:10002AD4 ; End of function sub_10002AB4 .text:10002AD4 .text:10002AD4 ; --------------------------------------------------------------------------- .text:10002AD8 off_10002AD8 DCD off_100010C4 ; DATA XREF: sub_10002AB4+8r .text:10002ADC .text:10002ADC ; =============== S U B R O U T I N E ======================================= .text:10002ADC .text:10002ADC .text:10002ADC sub_10002ADC ; DATA XREF: .text:off_100011BCo .text:10002ADC ; .pdata:1000C108o .text:10002ADC STMFD SP!, {R4,LR} .text:10002AE0 MOV R4, R0 .text:10002AE4 LDR R3, =off_100010C4 .text:10002AE8 TST R1, #1 .text:10002AEC STR R3, [R4] .text:10002AF0 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002AF4 MOV R0, R4 .text:10002AF8 LDMFD SP!, {R4,LR} .text:10002AFC BX LR .text:10002AFC ; End of function sub_10002ADC .text:10002AFC .text:10002AFC ; --------------------------------------------------------------------------- .text:10002B00 off_10002B00 DCD off_100010C4 ; DATA XREF: sub_10002ADC+8r .text:10002B04 .text:10002B04 ; =============== S U B R O U T I N E ======================================= .text:10002B04 .text:10002B04 .text:10002B04 sub_10002B04 ; DATA XREF: .text:off_1000122Co .text:10002B04 ; .pdata:1000C110o .text:10002B04 STMFD SP!, {R4,LR} .text:10002B08 MOV R4, R0 .text:10002B0C LDR R3, =off_100010C4 .text:10002B10 TST R1, #1 .text:10002B14 STR R3, [R4] .text:10002B18 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002B1C MOV R0, R4 .text:10002B20 LDMFD SP!, {R4,LR} .text:10002B24 BX LR .text:10002B24 ; End of function sub_10002B04 .text:10002B24 .text:10002B24 ; --------------------------------------------------------------------------- .text:10002B28 off_10002B28 DCD off_100010C4 ; DATA XREF: sub_10002B04+8r .text:10002B2C .text:10002B2C ; =============== S U B R O U T I N E ======================================= .text:10002B2C .text:10002B2C .text:10002B2C sub_10002B2C ; DATA XREF: .text:off_10001268o .text:10002B2C ; .pdata:1000C118o .text:10002B2C STMFD SP!, {R4,LR} .text:10002B30 MOV R4, R0 .text:10002B34 LDR R3, =off_100010C4 .text:10002B38 TST R1, #1 .text:10002B3C STR R3, [R4] .text:10002B40 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002B44 MOV R0, R4 .text:10002B48 LDMFD SP!, {R4,LR} .text:10002B4C BX LR .text:10002B4C ; End of function sub_10002B2C .text:10002B4C .text:10002B4C ; --------------------------------------------------------------------------- .text:10002B50 off_10002B50 DCD off_100010C4 ; DATA XREF: sub_10002B2C+8r .text:10002B54 .text:10002B54 ; =============== S U B R O U T I N E ======================================= .text:10002B54 .text:10002B54 .text:10002B54 sub_10002B54 ; DATA XREF: .text:off_100012A4o .text:10002B54 ; .pdata:1000C120o .text:10002B54 STMFD SP!, {R4,LR} .text:10002B58 MOV R4, R0 .text:10002B5C LDR R3, =off_100010C4 .text:10002B60 TST R1, #1 .text:10002B64 STR R3, [R4] .text:10002B68 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002B6C MOV R0, R4 .text:10002B70 LDMFD SP!, {R4,LR} .text:10002B74 BX LR .text:10002B74 ; End of function sub_10002B54 .text:10002B74 .text:10002B74 ; --------------------------------------------------------------------------- .text:10002B78 off_10002B78 DCD off_100010C4 ; DATA XREF: sub_10002B54+8r .text:10002B7C .text:10002B7C ; =============== S U B R O U T I N E ======================================= .text:10002B7C .text:10002B7C .text:10002B7C sub_10002B7C ; DATA XREF: .text:off_100012E0o .text:10002B7C ; .pdata:1000C128o .text:10002B7C STMFD SP!, {R4,LR} .text:10002B80 MOV R4, R0 .text:10002B84 LDR R3, =off_100010C4 .text:10002B88 TST R1, #1 .text:10002B8C STR R3, [R4] .text:10002B90 BLNE __3_YAXPAX_Z ; operator delete(void *) .text:10002B94 MOV R0, R4 .text:10002B98 LDMFD SP!, {R4,LR} .text:10002B9C BX LR .text:10002B9C ; End of function sub_10002B7C .text:10002B9C .text:10002B9C ; --------------------------------------------------------------------------- .text:10002BA0 off_10002BA0 DCD off_100010C4 ; DATA XREF: sub_10002B7C+8r .text:10002BA4 .text:10002BA4 ; =============== S U B R O U T I N E ======================================= .text:10002BA4 .text:10002BA4 .text:10002BA4 sub_10002BA4 ; DATA XREF: .text:10001664o .text:10002BA4 ; .pdata:1000C130o .text:10002BA4 .text:10002BA4 var_4 = -4 .text:10002BA4 arg_4 = 4 .text:10002BA4 .text:10002BA4 STR LR, [SP,#var_4]! .text:10002BA8 MOV R0, #0x8C .text:10002BAC BL __2_YAPAXI_Z ; operator new(uint) .text:10002BB0 CMP R0, #0 .text:10002BB4 LDRNE R3, =off_100011F0 .text:10002BB8 STRNE R3, [R0] .text:10002BBC LDRNE LR, [SP],#arg_4 .text:10002BC0 MOVEQ R0, #0 .text:10002BC4 LDREQ LR, [SP],#arg_4 .text:10002BC8 BX LR .text:10002BC8 ; End of function sub_10002BA4 .text:10002BC8 .text:10002BC8 ; --------------------------------------------------------------------------- .text:10002BCC off_10002BCC DCD off_100011F0 ; DATA XREF: sub_10002BA4+10r .text:10002BD0 .text:10002BD0 ; =============== S U B R O U T I N E ======================================= .text:10002BD0 .text:10002BD0 .text:10002BD0 sub_10002BD0 ; DATA XREF: .text:10001678o .text:10002BD0 ; .pdata:1000C138o .text:10002BD0 .text:10002BD0 var_4 = -4 .text:10002BD0 arg_4 = 4 .text:10002BD0 .text:10002BD0 STR LR, [SP,#var_4]! .text:10002BD4 LDRB R0, [R1,#4] .text:10002BD8 LDRB R3, [R1,#5] .text:10002BDC LDRB R2, [R1,#6] .text:10002BE0 LDRB R1, [R1,#7] .text:10002BE4 ORR R3, R0, R3,LSL#8 .text:10002BE8 ORR R3, R3, R2,LSL#16 .text:10002BEC ORR R1, R3, R1,LSL#24 .text:10002BF0 LDRB R2, [R1] .text:10002BF4 LDRB R3, [R1,#1] .text:10002BF8 ORR R3, R2, R3,LSL#8 .text:10002BFC CMP R3, #0x3000 .text:10002C00 BNE loc_10002C24 .text:10002C04 MOV R0, #0x610 .text:10002C08 BL __2_YAPAXI_Z ; operator new(uint) .text:10002C0C CMP R0, #0 .text:10002C10 BEQ loc_10002CC4 .text:10002C14 LDR R3, =off_100011BC .text:10002C18 STR R3, [R0] .text:10002C1C LDR LR, [SP],#arg_4 .text:10002C20 BX LR .text:10002C24 ; --------------------------------------------------------------------------- .text:10002C24 .text:10002C24 loc_10002C24 ; CODE XREF: sub_10002BD0+30j .text:10002C24 LDRB R2, [R1,#2] .text:10002C28 LDRB R3, [R1,#3] .text:10002C2C MOV R0, #0x8C .text:10002C30 ORR R3, R2, R3,LSL#8 .text:10002C34 LDRB R2, [R1,#0xE] .text:10002C38 CMP R3, #1 .text:10002C3C LDRB R3, [R1,#0xF] .text:10002C40 ORR R3, R2, R3,LSL#8 .text:10002C44 BNE loc_10002C88 .text:10002C48 CMP R3, #8 .text:10002C4C BNE loc_10002C6C .text:10002C50 BL __2_YAPAXI_Z ; operator new(uint) .text:10002C54 CMP R0, #0 .text:10002C58 BEQ loc_10002CC4 .text:10002C5C LDR R3, =off_1000122C .text:10002C60 STR R3, [R0] .text:10002C64 LDR LR, [SP],#arg_4 .text:10002C68 BX LR .text:10002C6C ; --------------------------------------------------------------------------- .text:10002C6C .text:10002C6C loc_10002C6C ; CODE XREF: sub_10002BD0+7Cj .text:10002C6C BL __2_YAPAXI_Z ; operator new(uint) .text:10002C70 CMP R0, #0 .text:10002C74 BEQ loc_10002CC4 .text:10002C78 LDR R3, =off_10001268 .text:10002C7C STR R3, [R0] .text:10002C80 LDR LR, [SP],#arg_4 .text:10002C84 BX LR .text:10002C88 ; --------------------------------------------------------------------------- .text:10002C88 .text:10002C88 loc_10002C88 ; CODE XREF: sub_10002BD0+74j .text:10002C88 CMP R3, #8 .text:10002C8C BNE loc_10002CAC .text:10002C90 BL __2_YAPAXI_Z ; operator new(uint) .text:10002C94 CMP R0, #0 .text:10002C98 BEQ loc_10002CC4 .text:10002C9C LDR R3, =off_100012A4 .text:10002CA0 STR R3, [R0] .text:10002CA4 LDR LR, [SP],#arg_4 .text:10002CA8 BX LR .text:10002CAC ; --------------------------------------------------------------------------- .text:10002CAC .text:10002CAC loc_10002CAC ; CODE XREF: sub_10002BD0+BCj .text:10002CAC BL __2_YAPAXI_Z ; operator new(uint) .text:10002CB0 CMP R0, #0 .text:10002CB4 LDRNE R3, =off_100012E0 .text:10002CB8 STRNE R3, [R0] .text:10002CBC LDRNE LR, [SP],#arg_4 .text:10002CC0 BXNE LR .text:10002CC4 .text:10002CC4 loc_10002CC4 ; CODE XREF: sub_10002BD0+40j .text:10002CC4 ; sub_10002BD0+88j ... .text:10002CC4 MOV R0, #0 .text:10002CC8 LDR LR, [SP],#arg_4 .text:10002CCC BX LR .text:10002CCC ; End of function sub_10002BD0 .text:10002CCC .text:10002CCC ; --------------------------------------------------------------------------- .text:10002CD0 off_10002CD0 DCD off_100012E0 ; DATA XREF: sub_10002BD0+E4r .text:10002CD4 off_10002CD4 DCD off_100012A4 ; DATA XREF: sub_10002BD0+CCr .text:10002CD8 off_10002CD8 DCD off_10001268 ; DATA XREF: sub_10002BD0+A8r .text:10002CDC off_10002CDC DCD off_1000122C ; DATA XREF: sub_10002BD0+8Cr .text:10002CE0 off_10002CE0 DCD off_100011BC ; DATA XREF: sub_10002BD0+44r .text:10002CE4 .text:10002CE4 ; =============== S U B R O U T I N E ======================================= .text:10002CE4 .text:10002CE4 .text:10002CE4 sub_10002CE4 ; CODE XREF: sub_100031FC+8p .text:10002CE4 ; sub_10004184+C0p .text:10002CE4 ; DATA XREF: ... .text:10002CE4 STMFD SP!, {R4-R10,LR} .text:10002CE8 MOV R7, R3 .text:10002CEC MOV R8, R2 .text:10002CF0 MOV R10, R1 .text:10002CF4 MOV R9, R0 .text:10002CF8 MOV R3, #1 .text:10002CFC STR R3, [R9,#0xC] .text:10002D00 STR R10, [R9,#0x50] .text:10002D04 LDRB R6, [R8,#8] .text:10002D08 LDRB LR, [R8,#9] .text:10002D0C LDRB R4, [R8,#0xA] .text:10002D10 LDRB R5, [R8,#0xB] .text:10002D14 ORR LR, R6, LR,LSL#8 .text:10002D18 ORR LR, LR, R4,LSL#16 .text:10002D1C ORR LR, LR, R5,LSL#24 .text:10002D20 STR LR, [R9,#0x1C] .text:10002D24 LDRB R6, [R8,#0xC] .text:10002D28 LDRB LR, [R8,#0xD] .text:10002D2C LDRB R4, [R8,#0xE] .text:10002D30 LDRB R5, [R8,#0xF] .text:10002D34 ORR LR, R6, LR,LSL#8 .text:10002D38 ORR LR, LR, R4,LSL#16 .text:10002D3C ORR LR, LR, R5,LSL#24 .text:10002D40 STR LR, [R9,#0x20] .text:10002D44 LDRB LR, [R8] .text:10002D48 LDRB R3, [R8,#1] .text:10002D4C LDRB R2, [R8,#2] .text:10002D50 LDRB R1, [R8,#3] .text:10002D54 ORR R3, LR, R3,LSL#8 .text:10002D58 ORR R3, R3, R2,LSL#16 .text:10002D5C ORR R3, R3, R1,LSL#24 .text:10002D60 MOV R4, #0 .text:10002D64 STR R3, [R9,#0x18] .text:10002D68 STR R7, [R9,#0x14] .text:10002D6C STR R4, [R9,#0x10] .text:10002D70 STR R4, [R9,#0x64] .text:10002D74 LDRB R0, [R8,#4] .text:10002D78 LDRB R3, [R8,#5] .text:10002D7C LDRB R2, [R8,#6] .text:10002D80 LDRB R1, [R8,#7] .text:10002D84 ORR R3, R0, R3,LSL#8 .text:10002D88 ORR R3, R3, R2,LSL#16 .text:10002D8C ORR R1, R3, R1,LSL#24 .text:10002D90 LDRB R2, [R1] .text:10002D94 LDRB R3, [R1,#1] .text:10002D98 ADD R0, R9, #0x24 .text:10002D9C ORR R3, R2, R3,LSL#8 .text:10002DA0 CMP R3, #1 .text:10002DA4 MOVEQ R2, #0x10 .text:10002DA8 MOVNE R2, #0x12 .text:10002DAC STREQB R4, [R9,#0x34] .text:10002DB0 STREQB R4, [R9,#0x35] .text:10002DB4 BL memcpy .text:10002DB8 LDR R2, [R9] .text:10002DBC STR R4, [R9,#0x38] .text:10002DC0 STR R4, [R9,#0x40] .text:10002DC4 STR R4, [R9,#0x3C] .text:10002DC8 STR R4, [R9,#0x44] .text:10002DCC STR R4, [R9,#0x48] .text:10002DD0 STR R4, [R9,#0x4C] .text:10002DD4 STR R4, [R9,#0x54] .text:10002DD8 STR R4, [R9,#0x5C] .text:10002DDC LDR R3, [R10,#0x10] .text:10002DE0 LDR R2, [R2,#0x30] .text:10002DE4 MOV R0, R9 .text:10002DE8 STR R3, [R9,#0x58] .text:10002DEC MOV LR, PC .text:10002DF0 BX R2 .text:10002DF4 MOV R1, R9 .text:10002DF8 MOV R0, R10 .text:10002DFC BL sub_10002744 .text:10002E00 LDR R3, [R9] .text:10002E04 MOV R0, R9 .text:10002E08 LDR R3, [R3,#0x24] .text:10002E0C MOV LR, PC .text:10002E10 BX R3 .text:10002E14 MOV R0, #0 .text:10002E18 LDMFD SP!, {R4-R10,LR} .text:10002E1C BX LR .text:10002E1C ; End of function sub_10002CE4 .text:10002E1C .text:10002E20 .text:10002E20 ; =============== S U B R O U T I N E ======================================= .text:10002E20 .text:10002E20 .text:10002E20 sub_10002E20 ; CODE XREF: sub_10002780+40p .text:10002E20 ; sub_10004084+5Cp .text:10002E20 ; DATA XREF: ... .text:10002E20 MOV R2, R0 .text:10002E24 LDR R3, [R2,#0xC] .text:10002E28 ADD R0, R3, #1 .text:10002E2C STR R0, [R2,#0xC] .text:10002E30 BX LR .text:10002E30 ; End of function sub_10002E20 .text:10002E30 .text:10002E34 .text:10002E34 ; =============== S U B R O U T I N E ======================================= .text:10002E34 .text:10002E34 .text:10002E34 sub_10002E34 ; CODE XREF: sub_10001C10+260p .text:10002E34 ; sub_10002780+6Cp ... .text:10002E34 STMFD SP!, {R4,R5,LR} .text:10002E38 MOV R4, R0 .text:10002E3C LDR R3, [R4,#0xC] .text:10002E40 SUB R3, R3, #1 .text:10002E44 STR R3, [R4,#0xC] .text:10002E48 MOVS R5, R3 .text:10002E4C BNE loc_10002E74 .text:10002E50 LDR R0, [R4,#0x50] .text:10002E54 MOV R1, R4 .text:10002E58 BL sub_10002764 .text:10002E5C LDR R3, [R4] .text:10002E60 MOV R1, #1 .text:10002E64 MOV R0, R4 .text:10002E68 LDR R3, [R3] .text:10002E6C MOV LR, PC .text:10002E70 BX R3 .text:10002E74 .text:10002E74 loc_10002E74 ; CODE XREF: sub_10002E34+18j .text:10002E74 MOV R0, R5 .text:10002E78 LDMFD SP!, {R4,R5,LR} .text:10002E7C BX LR .text:10002E7C ; End of function sub_10002E34 .text:10002E7C .text:10002E80 .text:10002E80 ; =============== S U B R O U T I N E ======================================= .text:10002E80 .text:10002E80 .text:10002E80 sub_10002E80 ; DATA XREF: .text:100010F0o .text:10002E80 ; .text:100011E8o ... .text:10002E80 .text:10002E80 var_4 = -4 .text:10002E80 arg_4 = 4 .text:10002E80 .text:10002E80 STR LR, [SP,#var_4]! .text:10002E84 MOV LR, R1 .text:10002E88 MOV R1, R0 .text:10002E8C LDR R3, [LR,#0x10] .text:10002E90 TST R3, #2 .text:10002E94 MOVEQ R0, #0x22 .text:10002E98 LDREQ LR, [SP],#arg_4 .text:10002E9C BXEQ LR .text:10002EA0 BIC R3, R3, #1 .text:10002EA4 ORR R3, R3, #0x10 .text:10002EA8 STR R3, [LR,#0x10] .text:10002EAC MOV R3, #0 .text:10002EB0 STR R3, [LR,#0x18] .text:10002EB4 STR R3, [LR,#8] .text:10002EB8 LDR R3, [R1,#0x38] .text:10002EBC CMP R3, #0 .text:10002EC0 STREQ LR, [R1,#0x38] .text:10002EC4 LDRNE R3, [R1,#0x40] .text:10002EC8 STRNE LR, [R3,#0x18] .text:10002ECC LDR R3, [R1,#0x3C] .text:10002ED0 STR LR, [R1,#0x40] .text:10002ED4 CMP R3, #0 .text:10002ED8 BNE loc_10002F08 .text:10002EDC STR LR, [R1,#0x3C] .text:10002EE0 LDR R3, [LR] .text:10002EE4 STR R3, [R1,#0x44] .text:10002EE8 LDR R2, [LR,#4] .text:10002EEC LDR R3, [LR] .text:10002EF0 ADD R3, R2, R3 .text:10002EF4 STR R3, [R1,#0x48] .text:10002EF8 LDR R3, [LR,#0x10] .text:10002EFC TST R3, #4 .text:10002F00 LDRNE R3, [LR,#0x14] .text:10002F04 STRNE R3, [R1,#0x54] .text:10002F08 .text:10002F08 loc_10002F08 ; CODE XREF: sub_10002E80+58j .text:10002F08 LDR R3, [R1,#0x10] .text:10002F0C CMP R3, #0 .text:10002F10 LDRNE R0, [R1,#0x50] .text:10002F14 LDRNE R3, [R0] .text:10002F18 LDRNE R3, [R3,#0xC] .text:10002F1C MOVNE LR, PC .text:10002F20 BXNE R3 .text:10002F24 MOV R0, #0 .text:10002F28 LDR LR, [SP],#arg_4 .text:10002F2C BX LR .text:10002F2C ; End of function sub_10002E80 .text:10002F2C .text:10002F30 .text:10002F30 ; =============== S U B R O U T I N E ======================================= .text:10002F30 .text:10002F30 .text:10002F30 sub_10002F30 ; CODE XREF: sub_100034B8+24p .text:10002F30 ; sub_100036F8+5Cp ... .text:10002F30 STMFD SP!, {R4,LR} .text:10002F34 MOV R4, R0 .text:10002F38 LDR R3, [R4,#0x3C] .text:10002F3C MOVS R0, R3 .text:10002F40 MOVEQ R0, #0 .text:10002F44 LDMEQFD SP!, {R4,LR} .text:10002F48 BXEQ LR .text:10002F4C LDR R2, [R4,#0x54] .text:10002F50 MOV LR, #0 .text:10002F54 CMP R2, #1 .text:10002F58 BLS loc_10002F8C .text:10002F5C LDR R3, [R0,#0x10] .text:10002F60 TST R3, #8 .text:10002F64 BEQ loc_10002F80 .text:10002F68 CMN R2, #1 .text:10002F6C SUBNE R3, R2, #1 .text:10002F70 LDR R1, [R4,#0x38] .text:10002F74 STRNE R3, [R4,#0x54] .text:10002F78 MOV R0, #0 .text:10002F7C B loc_10002FAC .text:10002F80 ; --------------------------------------------------------------------------- .text:10002F80 .text:10002F80 loc_10002F80 ; CODE XREF: sub_10002F30+34j .text:10002F80 LDR R1, [R0,#0x18] .text:10002F84 MOV R0, #0 .text:10002F88 B loc_10002FAC .text:10002F8C ; --------------------------------------------------------------------------- .text:10002F8C .text:10002F8C loc_10002F8C ; CODE XREF: sub_10002F30+28j .text:10002F8C LDR R3, [R0,#0x18] .text:10002F90 MOVS R1, R3 .text:10002F94 STR R1, [R4,#0x38] .text:10002F98 STREQ LR, [R4,#0x40] .text:10002F9C LDRNE R3, [R1,#0x10] .text:10002FA0 TSTNE R3, #4 .text:10002FA4 LDRNE R3, [R1,#0x14] .text:10002FA8 STRNE R3, [R4,#0x54] .text:10002FAC .text:10002FAC loc_10002FAC ; CODE XREF: sub_10002F30+4Cj .text:10002FAC ; sub_10002F30+58j .text:10002FAC CMP R1, #0 .text:10002FB0 STR R1, [R4,#0x3C] .text:10002FB4 LDRNE R2, [R1] .text:10002FB8 STRNE R2, [R4,#0x44] .text:10002FBC LDRNE R3, [R1,#4] .text:10002FC0 STREQ LR, [R4,#0x44] .text:10002FC4 ADDNE R3, R3, R2 .text:10002FC8 STRNE R3, [R4,#0x48] .text:10002FCC STREQ LR, [R4,#0x48] .text:10002FD0 CMP R0, #0 .text:10002FD4 BEQ loc_10003000 .text:10002FD8 LDR R3, [R0,#0x10] .text:10002FDC MOV R1, R0 .text:10002FE0 BIC R3, R3, #0x10 .text:10002FE4 ORR R3, R3, #1 .text:10002FE8 STR R3, [R0,#0x10] .text:10002FEC LDR R3, [R4] .text:10002FF0 MOV R0, R4 .text:10002FF4 LDR R3, [R3,#0x20] .text:10002FF8 MOV LR, PC .text:10002FFC BX R3 .text:10003000 .text:10003000 loc_10003000 ; CODE XREF: sub_10002F30+A4j .text:10003000 LDR R0, [R4,#0x44] .text:10003004 LDMFD SP!, {R4,LR} .text:10003008 BX LR .text:10003008 ; End of function sub_10002F30 .text:10003008 .text:1000300C .text:1000300C ; =============== S U B R O U T I N E ======================================= .text:1000300C .text:1000300C .text:1000300C sub_1000300C ; CODE XREF: sub_10001C10+17Cp .text:1000300C ; DATA XREF: .pdata:1000C168o .text:1000300C STMFD SP!, {R4,R5,LR} .text:10003010 MOV R4, R0 .text:10003014 LDR R3, [R4,#0xC] .text:10003018 LDR R2, [R4,#0x54] .text:1000301C ADD R3, R3, #1 .text:10003020 STR R3, [R4,#0xC] .text:10003024 CMP R2, #0 .text:10003028 BLS loc_10003084 .text:1000302C MOV R5, #0 .text:10003030 STR R5, [R4,#0x54] .text:10003034 B loc_10003074 .text:10003038 ; --------------------------------------------------------------------------- .text:10003038 .text:10003038 loc_10003038 ; CODE XREF: sub_1000300C+74j .text:10003038 LDR R2, [R4,#0x38] .text:1000303C MOV R0, R4 .text:10003040 LDR R3, [R2,#0x18] .text:10003044 MOV R1, R2 .text:10003048 CMP R3, #0 .text:1000304C STREQ R5, [R4,#0x40] .text:10003050 STR R3, [R4,#0x38] .text:10003054 LDR R3, [R2,#0x10] .text:10003058 BIC R3, R3, #0x10 .text:1000305C ORR R3, R3, #1 .text:10003060 STR R3, [R2,#0x10] .text:10003064 LDR R3, [R4] .text:10003068 LDR R3, [R3,#0x20] .text:1000306C MOV LR, PC .text:10003070 BX R3 .text:10003074 .text:10003074 loc_10003074 ; CODE XREF: sub_1000300C+28j .text:10003074 LDR R3, [R4,#0x3C] .text:10003078 LDR R2, [R4,#0x38] .text:1000307C CMP R2, R3 .text:10003080 BNE loc_10003038 .text:10003084 .text:10003084 loc_10003084 ; CODE XREF: sub_1000300C+1Cj .text:10003084 MOV R0, R4 .text:10003088 BL sub_10002E34 .text:1000308C MOV R0, #0 .text:10003090 LDMFD SP!, {R4,R5,LR} .text:10003094 BX LR .text:10003094 ; End of function sub_1000300C .text:10003094 .text:10003098 .text:10003098 ; =============== S U B R O U T I N E ======================================= .text:10003098 .text:10003098 .text:10003098 sub_10003098 ; CODE XREF: sub_10002658+Cp .text:10003098 ; sub_10003FA8+28p .text:10003098 ; DATA XREF: ... .text:10003098 STMFD SP!, {R4,LR} .text:1000309C LDR R2, [R0,#0x5C] .text:100030A0 LDR R4, [R0,#0x50] .text:100030A4 MOVL R0, 0xFFFF .text:100030AC ADD R3, R4, R2,LSL#2 .text:100030B0 LDR R3, [R3,#0x14] .text:100030B4 CMP R2, #2 .text:100030B8 AND R1, R1, R0 .text:100030BC AND LR, R3, R0 .text:100030C0 LDRCC R3, [R4,#0xC] .text:100030C4 ANDCC R3, R3, R0 .text:100030C8 MULCC R2, R3, R1 .text:100030CC ADDCC R3, R2, #0xFF00 .text:100030D0 ADDCC R3, R3, #0xFF .text:100030D4 MOVCC R1, R3,LSR#16 .text:100030D8 MUL R3, LR, R1 .text:100030DC ADD R3, R3, #0xFF00 .text:100030E0 ADD R3, R3, #0xFF .text:100030E4 MOVS R2, R3,LSR#16 .text:100030E8 MOVEQ R0, #0 .text:100030EC LDMEQFD SP!, {R4,LR} .text:100030F0 LDRNE R3, =dword_10001320 .text:100030F4 MOVNE R2, R2,LSR#10 .text:100030F8 ADDNE R3, R3, #0xFC .text:100030FC LDRNE R0, [R3,-R2,LSL#2] .text:10003100 LDMNEFD SP!, {R4,LR} .text:10003104 BX LR .text:10003104 ; End of function sub_10003098 .text:10003104 .text:10003104 ; --------------------------------------------------------------------------- .text:10003108 off_10003108 DCD dword_10001320 ; DATA XREF: sub_10003098+58r .text:1000310C .text:1000310C ; =============== S U B R O U T I N E ======================================= .text:1000310C .text:1000310C .text:1000310C sub_1000310C ; DATA XREF: .text:100010D0o .text:1000310C ; .text:100011C8o ... .text:1000310C STMFD SP!, {R4-R6,LR} .text:10003110 MOV R5, R1 .text:10003114 MOV R6, R0 .text:10003118 LDRB R4, [R5] .text:1000311C LDRB R3, [R5,#1] .text:10003120 LDRB R2, [R5,#2] .text:10003124 LDRB LR, [R5,#3] .text:10003128 ORR R3, R4, R3,LSL#8 .text:1000312C ORR R3, R3, R2,LSL#16 .text:10003130 ORR R3, R3, LR,LSL#24 .text:10003134 CMP R3, #1 .text:10003138 BEQ loc_100031B8 .text:1000313C CMP R3, #2 .text:10003140 BEQ loc_10003190 .text:10003144 CMP R3, #4 .text:10003148 BEQ loc_10003164 .text:1000314C .text:1000314C loc_1000314C ; CODE XREF: sub_1000310C+C8j .text:1000314C MOV R3, #4 .text:10003150 STRB R3, [R5] .text:10003154 MOV R3, #0 .text:10003158 STRB R3, [R5,#1] .text:1000315C STRB R3, [R5,#2] .text:10003160 STRB R3, [R5,#3] .text:10003164 .text:10003164 loc_10003164 ; CODE XREF: sub_1000310C+3Cj .text:10003164 LDR R1, [R6,#0x4C] .text:10003168 STRB R1, [R5,#4] .text:1000316C MOV R3, R1,LSR#8 .text:10003170 MOV R2, R1,LSR#16 .text:10003174 MOV R1, R1,LSR#24 .text:10003178 .text:10003178 loc_10003178 ; CODE XREF: sub_1000310C+ECj .text:10003178 STRB R3, [R5,#5] .text:1000317C STRB R2, [R5,#6] .text:10003180 STRB R1, [R5,#7] .text:10003184 MOV R0, #0 .text:10003188 LDMFD SP!, {R4-R6,LR} .text:1000318C BX LR .text:10003190 ; --------------------------------------------------------------------------- .text:10003190 .text:10003190 loc_10003190 ; CODE XREF: sub_1000310C+34j .text:10003190 LDRB R1, [R6,#0x32] .text:10003194 LDRB R3, [R6,#0x33] .text:10003198 LDRB R0, [R6,#0x26] .text:1000319C LDRB R2, [R6,#0x27] .text:100031A0 ORR LR, R1, R3,LSL#8 .text:100031A4 LDR R1, [R6,#0x4C] .text:100031A8 ORR R3, R0, R2,LSL#8 .text:100031AC MUL R0, LR, R3 .text:100031B0 MOV R1, R1,LSL#3 .text:100031B4 B loc_100031E4 .text:100031B8 ; --------------------------------------------------------------------------- .text:100031B8 .text:100031B8 loc_100031B8 ; CODE XREF: sub_1000310C+2Cj .text:100031B8 LDRB R0, [R6,#0x2C] .text:100031BC LDRB R3, [R6,#0x2D] .text:100031C0 LDRB R2, [R6,#0x2E] .text:100031C4 LDRB R1, [R6,#0x2F] .text:100031C8 ORR R3, R0, R3,LSL#8 .text:100031CC ORR R3, R3, R2,LSL#16 .text:100031D0 ORRS R0, R3, R1,LSL#24 .text:100031D4 BEQ loc_1000314C .text:100031D8 LDR R3, [R6,#0x4C] .text:100031DC MOV R2, #0x3E8 .text:100031E0 MUL R1, R3, R2 .text:100031E4 .text:100031E4 loc_100031E4 ; CODE XREF: sub_1000310C+A8j .text:100031E4 BL __rt_udiv .text:100031E8 STRB R0, [R5,#4] .text:100031EC MOV R3, R0,LSR#8 .text:100031F0 MOV R2, R0,LSR#16 .text:100031F4 MOV R1, R0,LSR#24 .text:100031F8 B loc_10003178 .text:100031F8 ; End of function sub_1000310C .text:100031F8 .text:100031FC .text:100031FC ; =============== S U B R O U T I N E ======================================= .text:100031FC .text:100031FC .text:100031FC sub_100031FC ; CODE XREF: sub_1000363C+8p .text:100031FC ; DATA XREF: .text:100011F4o ... .text:100031FC STMFD SP!, {R4,R5,LR} .text:10003200 MOV R4, R0 .text:10003204 BL sub_10002CE4 .text:10003208 CMP R0, #0 .text:1000320C BMI loc_100032B0 .text:10003210 LDRB R2, [R4,#0x32] .text:10003214 LDRB R3, [R4,#0x33] .text:10003218 MOV R5, #0 .text:1000321C ORR R3, R2, R3,LSL#8 .text:10003220 LDRB R2, [R4,#0x26] .text:10003224 CMP R3, #8 .text:10003228 LDRB R3, [R4,#0x27] .text:1000322C ORR R3, R2, R3,LSL#8 .text:10003230 BNE loc_10003254 .text:10003234 CMP R3, #1 .text:10003238 MOVEQ R3, #1 .text:1000323C STREQ R3, [R4,#0x6C] .text:10003240 STREQ R5, [R4,#0x68] .text:10003244 BEQ loc_10003270 .text:10003248 MOV R3, #2 .text:1000324C STR R3, [R4,#0x6C] .text:10003250 B loc_1000326C .text:10003254 ; --------------------------------------------------------------------------- .text:10003254 .text:10003254 loc_10003254 ; CODE XREF: sub_100031FC+34j .text:10003254 CMP R3, #1 .text:10003258 MOVEQ R2, #2 .text:1000325C MOVNE R2, #4 .text:10003260 MOVEQ R3, #1 .text:10003264 STR R2, [R4,#0x6C] .text:10003268 MOVNE R3, #3 .text:1000326C .text:1000326C loc_1000326C ; CODE XREF: sub_100031FC+54j .text:1000326C STR R3, [R4,#0x68] .text:10003270 .text:10003270 loc_10003270 ; CODE XREF: sub_100031FC+48j .text:10003270 LDR R3, [R4] .text:10003274 MOV R1, #0x10000 .text:10003278 MOV R0, R4 .text:1000327C LDR R3, [R3,#0x34] .text:10003280 MOV LR, PC .text:10003284 BX R3 .text:10003288 MOV R3, R4 .text:1000328C MOV R2, #2 .text:10003290 .text:10003290 loc_10003290 ; CODE XREF: sub_100031FC+A4j .text:10003290 STR R5, [R3,#0x78] .text:10003294 STR R5, [R3,#0x80] .text:10003298 ADD R3, R3, #4 .text:1000329C SUBS R2, R2, #1 .text:100032A0 BNE loc_10003290 .text:100032A4 MOV R3, #0x200 .text:100032A8 STR R3, [R4,#0x88] .text:100032AC MOV R0, #0 .text:100032B0 .text:100032B0 loc_100032B0 ; CODE XREF: sub_100031FC+10j .text:100032B0 LDMFD SP!, {R4,R5,LR} .text:100032B4 BX LR .text:100032B4 ; End of function sub_100031FC .text:100032B4 .text:100032B8 .text:100032B8 ; =============== S U B R O U T I N E ======================================= .text:100032B8 .text:100032B8 .text:100032B8 sub_100032B8 ; CODE XREF: sub_10001C10+1B0p .text:100032B8 ; DATA XREF: .pdata:1000C188o .text:100032B8 LDR R3, [R0,#0x74] .text:100032BC MOV R0, #0 .text:100032C0 STR R3, [R1] .text:100032C4 BX LR .text:100032C4 ; End of function sub_100032B8 .text:100032C4 .text:100032C8 .text:100032C8 ; =============== S U B R O U T I N E ======================================= .text:100032C8 .text:100032C8 .text:100032C8 sub_100032C8 ; DATA XREF: .text:100010D4o .text:100032C8 ; .text:100011CCo ... .text:100032C8 .text:100032C8 var_4 = -4 .text:100032C8 arg_4 = 4 .text:100032C8 .text:100032C8 STR LR, [SP,#var_4]! .text:100032CC MOV R1, R0 .text:100032D0 LDR R3, [R1,#0x44] .text:100032D4 MOV R2, #1 .text:100032D8 STR R2, [R1,#0x10] .text:100032DC CMP R3, #0 .text:100032E0 LDRNE R0, [R1,#0x50] .text:100032E4 LDRNE R3, [R0] .text:100032E8 LDRNE R3, [R3,#0xC] .text:100032EC MOVNE LR, PC .text:100032F0 BXNE R3 .text:100032F4 MOV R0, #0 .text:100032F8 LDR LR, [SP],#arg_4 .text:100032FC BX LR .text:100032FC ; End of function sub_100032C8 .text:100032FC .text:10003300 .text:10003300 ; =============== S U B R O U T I N E ======================================= .text:10003300 .text:10003300 .text:10003300 sub_10003300 ; CODE XREF: sub_100034B8+8p .text:10003300 ; DATA XREF: .text:100010D8o ... .text:10003300 MOV R3, #0 .text:10003304 STR R3, [R0,#0x10] .text:10003308 MOV R0, #0 .text:1000330C BX LR .text:1000330C ; End of function sub_10003300 .text:1000330C .text:10003310 .text:10003310 ; =============== S U B R O U T I N E ======================================= .text:10003310 .text:10003310 .text:10003310 sub_10003310 ; CODE XREF: sub_1000366C+8p .text:10003310 ; sub_10004270+8p .text:10003310 ; DATA XREF: ... .text:10003310 STMFD SP!, {R4,R5,LR} .text:10003314 MOV R4, R0 .text:10003318 LDR R3, [R4] .text:1000331C LDR R2, [R4,#0xC] .text:10003320 LDR R1, [R3,#0x14] .text:10003324 ADD R3, R2, #1 .text:10003328 STR R3, [R4,#0xC] .text:1000332C MOV LR, PC .text:10003330 BX R1 .text:10003334 MOV R5, #0 .text:10003338 STR R5, [R4,#0x3C] .text:1000333C STR R5, [R4,#0x44] .text:10003340 STR R5, [R4,#0x48] .text:10003344 STR R5, [R4,#0x4C] .text:10003348 STR R5, [R4,#0x54] .text:1000334C B loc_1000338C .text:10003350 ; --------------------------------------------------------------------------- .text:10003350 .text:10003350 loc_10003350 ; CODE XREF: sub_10003310+84j .text:10003350 LDR R2, [R4,#0x38] .text:10003354 MOV R0, R4 .text:10003358 LDR R3, [R2,#0x18] .text:1000335C MOV R1, R2 .text:10003360 CMP R3, #0 .text:10003364 STREQ R5, [R4,#0x40] .text:10003368 STR R3, [R4,#0x38] .text:1000336C LDR R3, [R2,#0x10] .text:10003370 BIC R3, R3, #0x10 .text:10003374 ORR R3, R3, #1 .text:10003378 STR R3, [R2,#0x10] .text:1000337C LDR R3, [R4] .text:10003380 LDR R3, [R3,#0x20] .text:10003384 MOV LR, PC .text:10003388 BX R3 .text:1000338C .text:1000338C loc_1000338C ; CODE XREF: sub_10003310+3Cj .text:1000338C LDR R3, [R4,#0x38] .text:10003390 CMP R3, #0 .text:10003394 BNE loc_10003350 .text:10003398 MOV R0, R4 .text:1000339C BL sub_10002E34 .text:100033A0 MOV R0, #0 .text:100033A4 LDMFD SP!, {R4,R5,LR} .text:100033A8 BX LR .text:100033A8 ; End of function sub_10003310 .text:100033A8 .text:100033AC .text:100033AC ; =============== S U B R O U T I N E ======================================= .text:100033AC .text:100033AC .text:100033AC sub_100033AC ; CODE XREF: sub_10001C10+4ACp .text:100033AC ; DATA XREF: .pdata:1000C1A8o .text:100033AC .text:100033AC var_4 = -4 .text:100033AC arg_4 = 4 .text:100033AC .text:100033AC STR LR, [SP,#var_4]! .text:100033B0 CMP R1, #0 .text:100033B4 LDR R3, [R0,#0x64] .text:100033B8 MOVNE R1, #1 .text:100033BC MOVEQ R1, #0 .text:100033C0 CMP R1, R3 .text:100033C4 MOVEQ R0, #0 .text:100033C8 LDREQ LR, [SP],#arg_4 .text:100033CC BXEQ LR .text:100033D0 LDR R3, =unk_1000B548 .text:100033D4 STR R1, [R0,#0x64] .text:100033D8 LDR R0, [R3] .text:100033DC BL sub_10004BB0 .text:100033E0 LDR LR, [SP],#arg_4 .text:100033E4 BX LR .text:100033E4 ; End of function sub_100033AC .text:100033E4 .text:100033E4 ; --------------------------------------------------------------------------- .text:100033E8 off_100033E8 DCD unk_1000B548 ; DATA XREF: sub_100033AC+24r .text:100033EC .text:100033EC ; =============== S U B R O U T I N E ======================================= .text:100033EC .text:100033EC .text:100033EC sub_100033EC ; CODE XREF: sub_100042B0+8p .text:100033EC ; DATA XREF: .text:100010CCo ... .text:100033EC STMFD SP!, {R4,LR} .text:100033F0 MOV R4, R0 .text:100033F4 LDR R3, [R4,#0x38] .text:100033F8 CMP R3, #0 .text:100033FC MOVNE R0, #0x21 .text:10003400 LDMNEFD SP!, {R4,LR} .text:10003404 BXNE LR .text:10003408 LDR R3, [R4,#0x64] .text:1000340C CMP R3, #0 .text:10003410 LDRNE R3, =unk_1000B548 .text:10003414 MOVNE R2, #0 .text:10003418 STRNE R2, [R4,#0x64] .text:1000341C LDRNE R0, [R3] .text:10003420 MOVNE R1, #0 .text:10003424 BLNE sub_10004BB0 .text:10003428 LDR R3, [R4] .text:1000342C MOV R0, R4 .text:10003430 LDR R3, [R3,#0x28] .text:10003434 MOV LR, PC .text:10003438 BX R3 .text:1000343C MOV R0, #0 .text:10003440 LDMFD SP!, {R4,LR} .text:10003444 BX LR .text:10003444 ; End of function sub_100033EC .text:10003444 .text:10003444 ; --------------------------------------------------------------------------- .text:10003448 off_10003448 DCD unk_1000B548 ; DATA XREF: sub_100033EC+24r .text:1000344C .text:1000344C ; =============== S U B R O U T I N E ======================================= .text:1000344C .text:1000344C .text:1000344C sub_1000344C ; DATA XREF: .text:10001224o .text:1000344C ; .pdata:1000C1B8o .text:1000344C STMFD SP!, {R4-R6,LR} .text:10003450 MOV R5, R1 .text:10003454 MOV R6, R0 .text:10003458 LDRB R4, [R6,#0x28] .text:1000345C LDRB R3, [R6,#0x29] .text:10003460 LDRB R2, [R6,#0x2A] .text:10003464 LDRB LR, [R6,#0x2B] .text:10003468 ORR R3, R4, R3,LSL#8 .text:1000346C ORR R3, R3, R2,LSL#16 .text:10003470 ORR R3, R3, LR,LSL#24 .text:10003474 MUL R2, R3, R5 .text:10003478 MOV R0, #0 .text:1000347C MOV R1, #1 .text:10003480 MOV R3, #0 .text:10003484 MOV R2, R2,LSR#16 .text:10003488 STR R5, [R6,#0x74] .text:1000348C BL __rt_udiv64by64 .text:10003490 MOVL R3, 0xAC44 .text:10003498 ADD R2, R0, #1 .text:1000349C UMULL LR, R3, R2, R3 .text:100034A0 MOV R0, #0 .text:100034A4 MOV R3, R3,LSL#8 .text:100034A8 ORR R3, R3, LR,LSR#24 .text:100034AC STR R3, [R6,#0x70] .text:100034B0 LDMFD SP!, {R4-R6,LR} .text:100034B4 BX LR .text:100034B4 ; End of function sub_1000344C .text:100034B4 .text:100034B8 .text:100034B8 ; =============== S U B R O U T I N E ======================================= .text:100034B8 .text:100034B8 .text:100034B8 sub_100034B8 ; DATA XREF: .text:10001204o .text:100034B8 ; .pdata:1000C1C0o .text:100034B8 STMFD SP!, {R4,LR} .text:100034BC MOV R4, R0 .text:100034C0 BL sub_10003300 .text:100034C4 LDR R3, [R4,#0x3C] .text:100034C8 CMP R3, #0 .text:100034CC BEQ loc_100034E0 .text:100034D0 LDR R3, [R3,#8] .text:100034D4 CMP R3, #0 .text:100034D8 MOVHI R0, R4 .text:100034DC BLHI sub_10002F30 .text:100034E0 .text:100034E0 loc_100034E0 ; CODE XREF: sub_100034B8+14j .text:100034E0 MOV R0, #0 .text:100034E4 LDMFD SP!, {R4,LR} .text:100034E8 BX LR .text:100034E8 ; End of function sub_100034B8 .text:100034E8 .text:100034EC .text:100034EC ; =============== S U B R O U T I N E ======================================= .text:100034EC .text:100034EC .text:100034EC sub_100034EC ; DATA XREF: .text:10001228o .text:100034EC ; .pdata:1000C1C8o .text:100034EC .text:100034EC var_2C = -0x2C .text:100034EC var_28 = -0x28 .text:100034EC .text:100034EC STMFD SP!, {R4-R11,LR} .text:100034F0 SUB SP, SP, #8 .text:100034F4 MOV R3, R2 .text:100034F8 STR R3, [SP,#0x2C+var_28] .text:100034FC MOV R6, R1 .text:10003500 MOV R4, R0 .text:10003504 LDR R2, [R4,#0x70] .text:10003508 LDR LR, [R4,#0x44] .text:1000350C LDR R9, [R4,#0x48] .text:10003510 LDR R5, [R4,#0x88] .text:10003514 LDR R7, [R4,#0x80] .text:10003518 LDR R10, [R4,#0x78] .text:1000351C LDR R8, [R4,#0x84] .text:10003520 LDR R11, [R4,#0x7C] .text:10003524 STR R2, [SP,#0x2C+var_2C] .text:10003528 B loc_100035E0 .text:1000352C ; --------------------------------------------------------------------------- .text:1000352C .text:1000352C loc_1000352C ; CODE XREF: sub_100034EC+64j .text:1000352C CMP R6, R3 .text:10003530 BCS loc_100035E8 .text:10003534 MOV R10, R7 .text:10003538 LDRSH R7, [R6] .text:1000353C MOV R11, R8 .text:10003540 LDRSH R8, [R6,#2] .text:10003544 ADD R6, R6, #4 .text:10003548 SUB R5, R5, #0x100 .text:1000354C .text:1000354C loc_1000354C ; CODE XREF: sub_100034EC+F8j .text:1000354C CMP R5, #0x100 .text:10003550 BGE loc_1000352C .text:10003554 SUB R3, R7, R10 .text:10003558 SUB R2, R8, R11 .text:1000355C MUL R1, R3, R5 .text:10003560 MUL R3, R2, R5 .text:10003564 LDR R2, [SP,#0x2C+var_2C] .text:10003568 LDR R0, [R4,#0x68] .text:1000356C ADD R5, R5, R2 .text:10003570 ADD R2, R10, R1,ASR#8 .text:10003574 ADD R1, R11, R3,ASR#8 .text:10003578 CMP R0, #1 .text:1000357C BEQ loc_100035D0 .text:10003580 CMP R0, #2 .text:10003584 BEQ loc_100035B0 .text:10003588 CMP R0, #3 .text:1000358C ADDNE R3, R1, R2 .text:10003590 MOVNE R3, R3,ASR#9 .text:10003594 ADDNE R3, R3, #0x80 .text:10003598 STRNEB R3, [LR],#1 .text:1000359C BNE loc_100035DC .text:100035A0 STRH R2, [LR] .text:100035A4 STRH R1, [LR,#2] .text:100035A8 ADD LR, LR, #4 .text:100035AC B loc_100035DC .text:100035B0 ; --------------------------------------------------------------------------- .text:100035B0 .text:100035B0 loc_100035B0 ; CODE XREF: sub_100034EC+98j .text:100035B0 MOV R3, R2,ASR#8 .text:100035B4 MOV R2, R1,ASR#8 .text:100035B8 ADD R2, R2, #0x80 .text:100035BC ADD R3, R3, #0x80 .text:100035C0 STRB R2, [LR,#1] .text:100035C4 STRB R3, [LR] .text:100035C8 ADD LR, LR, #2 .text:100035CC B loc_100035DC .text:100035D0 ; --------------------------------------------------------------------------- .text:100035D0 .text:100035D0 loc_100035D0 ; CODE XREF: sub_100034EC+90j .text:100035D0 ADD R3, R1, R2 .text:100035D4 MOV R3, R3,ASR#1 .text:100035D8 STRH R3, [LR],#2 .text:100035DC .text:100035DC loc_100035DC ; CODE XREF: sub_100034EC+B0j .text:100035DC ; sub_100034EC+C0j ... .text:100035DC LDR R3, [SP,#0x2C+var_28] .text:100035E0 .text:100035E0 loc_100035E0 ; CODE XREF: sub_100034EC+3Cj .text:100035E0 CMP LR, R9 .text:100035E4 BCC loc_1000354C .text:100035E8 .text:100035E8 loc_100035E8 ; CODE XREF: sub_100034EC+44j .text:100035E8 LDR R1, [R4,#0x3C] .text:100035EC LDR R2, [R4,#0x44] .text:100035F0 MOV R0, R6 .text:100035F4 LDR R3, [R1,#8] .text:100035F8 SUB R3, R3, R2 .text:100035FC ADD R3, R3, LR .text:10003600 STR R3, [R1,#8] .text:10003604 LDR R2, [R4,#0x4C] .text:10003608 LDR R3, [R4,#0x44] .text:1000360C STR LR, [R4,#0x44] .text:10003610 STR R5, [R4,#0x88] .text:10003614 SUB R3, R2, R3 .text:10003618 ADD R3, R3, LR .text:1000361C STR R3, [R4,#0x4C] .text:10003620 STR R10, [R4,#0x78] .text:10003624 STR R7, [R4,#0x80] .text:10003628 STR R11, [R4,#0x7C] .text:1000362C STR R8, [R4,#0x84] .text:10003630 ADD SP, SP, #8 .text:10003634 LDMFD SP!, {R4-R11,LR} .text:10003638 BX LR .text:10003638 ; End of function sub_100034EC .text:10003638 .text:1000363C .text:1000363C ; =============== S U B R O U T I N E ======================================= .text:1000363C .text:1000363C .text:1000363C sub_1000363C ; DATA XREF: .text:10001230o .text:1000363C ; .text:1000126Co ... .text:1000363C STMFD SP!, {R4,R5,LR} .text:10003640 MOV R4, R0 .text:10003644 BL sub_100031FC .text:10003648 MOVS R5, R0 .text:1000364C LDREQ R3, [R4] .text:10003650 MOVEQ R0, R4 .text:10003654 LDREQ R3, [R3,#0x10] .text:10003658 MOVEQ LR, PC .text:1000365C BXEQ R3 .text:10003660 MOV R0, R5 .text:10003664 LDMFD SP!, {R4,R5,LR} .text:10003668 BX LR .text:10003668 ; End of function sub_1000363C .text:10003668 .text:1000366C .text:1000366C ; =============== S U B R O U T I N E ======================================= .text:1000366C .text:1000366C .text:1000366C sub_1000366C ; DATA XREF: .text:10001244o .text:1000366C ; .text:10001280o ... .text:1000366C STMFD SP!, {R4,R5,LR} .text:10003670 MOV R5, R0 .text:10003674 BL sub_10003310 .text:10003678 MOVS R4, R0 .text:1000367C LDREQ R3, [R5] .text:10003680 MOVEQ R0, R5 .text:10003684 LDREQ R3, [R3,#0x10] .text:10003688 MOVEQ LR, PC .text:1000368C BXEQ R3 .text:10003690 MOV R0, R4 .text:10003694 LDMFD SP!, {R4,R5,LR} .text:10003698 BX LR .text:10003698 ; End of function sub_1000366C .text:10003698 .text:1000369C .text:1000369C ; =============== S U B R O U T I N E ======================================= .text:1000369C .text:1000369C .text:1000369C sub_1000369C ; DATA XREF: .text:10001260o .text:1000369C ; .text:1000129Co ... .text:1000369C STMFD SP!, {R4,R5,LR} .text:100036A0 MOV R5, R0 .text:100036A4 LDRB R4, [R5,#0x28] .text:100036A8 LDRB R3, [R5,#0x29] .text:100036AC LDRB R2, [R5,#0x2A] .text:100036B0 LDRB LR, [R5,#0x2B] .text:100036B4 ORR R3, R4, R3,LSL#8 .text:100036B8 ORR R3, R3, R2,LSL#16 .text:100036BC ORR R3, R3, LR,LSL#24 .text:100036C0 MUL R2, R3, R1 .text:100036C4 MOVL LR, 0x17C70 .text:100036CC STR R1, [R5,#0x74] .text:100036D0 MOV R0, #0 .text:100036D4 MOV R3, R2,LSR#16 .text:100036D8 UMULL R1, R2, R3, LR .text:100036DC MOV R3, R2,LSL#8 .text:100036E0 ORR R3, R3, R1,LSR#24 .text:100036E4 STR R3, [R5,#0x70] .text:100036E8 LDMFD SP!, {R4,R5,LR} .text:100036EC BX LR .text:100036EC ; End of function sub_1000369C .text:100036EC .text:100036EC ; --------------------------------------------------------------------------- .text:100036F0 DCD loc_1000A338 .text:100036F4 DCD dword_1000A54C .text:100036F8 .text:100036F8 ; =============== S U B R O U T I N E ======================================= .text:100036F8 .text:100036F8 ; Attributes: bp-based frame .text:100036F8 .text:100036F8 sub_100036F8 ; DATA XREF: .text:1000120Co .text:100036F8 ; .text:10001248o ... .text:100036F8 .text:100036F8 oldR4 = -0x20 .text:100036F8 oldR5 = -0x1C .text:100036F8 oldR6 = -0x18 .text:100036F8 oldR7 = -0x14 .text:100036F8 oldR8 = -0x10 .text:100036F8 oldR11 = -0xC .text:100036F8 oldSP = -8 .text:100036F8 oldLR = -4 .text:100036F8 param_R0 = 0 .text:100036F8 param_R1 = 4 .text:100036F8 param_R2 = 8 .text:100036F8 param_R3 = 0xC .text:100036F8 .text:100036F8 MOV R12, SP .text:100036FC STMFD SP!, {R0-R3} .text:10003700 STMFD SP!, {R4-R8,R11,R12,LR} .text:10003704 ADD R11, SP, #0x20 .text:10003708 SUB SP, SP, #4 .text:1000370C MOV R8, R3 .text:10003710 STR R8, [R11,#param_R3] .text:10003714 MOV R7, R2 .text:10003718 STR R7, [R11,#param_R2] .text:1000371C MOV R5, R1 .text:10003720 STR R5, [R11,#param_R1] .text:10003724 MOV R6, R0 .text:10003728 STR R6, [R11,#param_R0] .text:1000372C LDR R1, [R6,#0x10] .text:10003730 CMP R1, #0 .text:10003734 BEQ loc_100037B8 .text:10003738 LDR R1, [R6,#0x44] .text:1000373C CMP R1, #0 .text:10003740 BEQ loc_100037B8 .text:10003744 .text:10003744 loc_10003744 ; CODE XREF: sub_100036F8:loc_10003798j .text:10003744 ; sub_100036F8+BCj .text:10003744 CMP R5, R7 .text:10003748 BCS loc_100037B8 .text:1000374C B loc_10003760 .text:10003750 ; --------------------------------------------------------------------------- .text:10003750 .text:10003750 loc_10003750 ; CODE XREF: sub_100036F8+74j .text:10003750 MOV R0, R6 .text:10003754 BL sub_10002F30 .text:10003758 CMP R0, #0 .text:1000375C BEQ loc_100037B8 .text:10003760 .text:10003760 loc_10003760 ; CODE XREF: sub_100036F8+54j .text:10003760 LDR R3, [R6,#0x48] .text:10003764 LDR R2, [R6,#0x44] .text:10003768 CMP R2, R3 .text:1000376C BCS loc_10003750 .text:10003770 .text:10003770 loc_10003770 ; DATA XREF: .text:1000A550o .text:10003770 LDR R1, [R6] .text:10003774 MOV R3, R8 .text:10003778 MOV R2, R7 .text:1000377C LDR R4, [R1,#0x38] .text:10003780 MOV R1, R5 .text:10003784 MOV R0, R6 .text:10003788 MOV LR, PC .text:1000378C BX R4 .text:10003790 MOV R5, R0 .text:10003794 STR R5, [R11,#param_R1] .text:10003798 .text:10003798 loc_10003798 ; DATA XREF: .text:1000A554o .text:10003798 B loc_10003744 .text:1000379C ; --------------------------------------------------------------------------- .text:1000379C .text:1000379C loc_1000379C ; DATA XREF: .text:1000A55Co .text:1000379C LDR R6, [R11,#param_R0] .text:100037A0 LDR R3, [R6,#0x48] .text:100037A4 STR R3, [R6,#0x44] .text:100037A8 LDR R8, [R11,#param_R3] .text:100037AC LDR R7, [R11,#param_R2] .text:100037B0 LDR R5, [R11,#param_R1] .text:100037B4 B loc_10003744 .text:100037B8 ; --------------------------------------------------------------------------- .text:100037B8 .text:100037B8 loc_100037B8 ; CODE XREF: sub_100036F8+3Cj .text:100037B8 ; sub_100036F8+48j ... .text:100037B8 MOV R0, R5 .text:100037BC LDMDB R11, {R4-R8,R11,SP,LR} .text:100037C0 BX LR .text:100037C0 ; End of function sub_100036F8 .text:100037C0 .text:100037C4 .text:100037C4 ; =============== S U B R O U T I N E ======================================= .text:100037C4 .text:100037C4 .text:100037C4 sub_100037C4 ; DATA XREF: .text:1000A558o .text:100037C4 ; .pdata:1000C1F0o .text:100037C4 MOV R0, #1 .text:100037C8 RET .text:100037C8 ; End of function sub_100037C4 .text:100037C8 .text:100037C8 ; --------------------------------------------------------------------------- .text:100037CC DCD loc_1000A338 .text:100037D0 DCD dword_1000A560 .text:100037D4 .text:100037D4 ; =============== S U B R O U T I N E ======================================= .text:100037D4 .text:100037D4 ; Attributes: bp-based frame .text:100037D4 .text:100037D4 sub_100037D4 ; DATA XREF: .text:10001264o .text:100037D4 ; .pdata:1000C1F8o .text:100037D4 .text:100037D4 var_4C = -0x4C .text:100037D4 var_48 = -0x48 .text:100037D4 var_44 = -0x44 .text:100037D4 var_40 = -0x40 .text:100037D4 var_3C = -0x3C .text:100037D4 var_38 = -0x38 .text:100037D4 var_34 = -0x34 .text:100037D4 var_30 = -0x30 .text:100037D4 oldR4 = -0x28 .text:100037D4 oldR5 = -0x24 .text:100037D4 oldR6 = -0x20 .text:100037D4 oldR7 = -0x1C .text:100037D4 oldR8 = -0x18 .text:100037D4 oldR9 = -0x14 .text:100037D4 oldR10 = -0x10 .text:100037D4 oldR11 = -0xC .text:100037D4 oldSP = -8 .text:100037D4 oldLR = -4 .text:100037D4 param_R0 = 0 .text:100037D4 param_R1 = 4 .text:100037D4 param_R2 = 8 .text:100037D4 param_R3 = 0xC .text:100037D4 .text:100037D4 MOV R12, SP .text:100037D8 STMFD SP!, {R0-R3} .text:100037DC STMFD SP!, {R4-R12,LR} .text:100037E0 ADD R11, SP, #0x28 .text:100037E4 SUB SP, SP, #0x24 .text:100037E8 STR R3, [R11,#var_30] .text:100037EC MOV R10, R2 .text:100037F0 STR R1, [R11,#param_R1] .text:100037F4 STR R0, [R11,#param_R0] .text:100037F8 LDR R6, [R0,#0x88] .text:100037FC LDR R9, [R0,#0x80] .text:10003800 LDR R8, [R0,#0x78] .text:10003804 LDR R5, [R0,#0x44] .text:10003808 STR R6, [R11,#var_4C] .text:1000380C STR R9, [R11,#var_48] .text:10003810 STR R8, [R11,#var_40] .text:10003814 STR R5, [R11,#var_3C] .text:10003818 LDR LR, [R0,#0x70] .text:1000381C STR LR, [R11,#var_34] .text:10003820 LDR R3, [R0,#0x48] .text:10003824 STR R3, [R11,#var_44] .text:10003828 LDR LR, [R0,#0x60] .text:1000382C STR LR, [R11,#var_38] .text:10003830 .text:10003830 loc_10003830 ; DATA XREF: .text:1000A564o .text:10003830 MOVL R7, 0x7FFF .text:10003838 .text:10003838 loc_10003838 ; CODE XREF: sub_100037D4+12Cj .text:10003838 CMP R1, R10 .text:1000383C BCS loc_10003904 .text:10003840 .text:10003840 loc_10003840 ; CODE XREF: sub_100037D4+A8j .text:10003840 CMP R6, #0x100 .text:10003844 BLT loc_10003880 .text:10003848 CMP R5, R3 .text:1000384C BCS loc_10003938 .text:10003850 SUB R6, R6, #0x100 .text:10003854 STR R6, [R11,#var_4C] .text:10003858 MOV R8, R9 .text:1000385C STR R9, [R11,#var_40] .text:10003860 LDRB R3, [R5],#1 .text:10003864 STR R5, [R11,#var_3C] .text:10003868 STR R3, [R11,#var_48] .text:1000386C SUB R3, R3, #0x80 .text:10003870 MOV R9, R3,LSL#8 .text:10003874 STR R9, [R11,#var_48] .text:10003878 LDR R3, [R11,#var_44] .text:1000387C B loc_10003840 .text:10003880 ; --------------------------------------------------------------------------- .text:10003880 .text:10003880 loc_10003880 ; CODE XREF: sub_100037D4+70j .text:10003880 SUB R3, R9, R8 .text:10003884 MUL R2, R3, R6 .text:10003888 ADD R3, R8, R2,ASR#8 .text:1000388C LDR R2, [R11,#var_38] .text:10003890 MUL R2, R3, R2 .text:10003894 LDR R3, [R11,#var_34] .text:10003898 ADD R6, R6, R3 .text:1000389C STR R6, [R11,#var_4C] .text:100038A0 LDR R3, [R11,#var_30] .text:100038A4 CMP R1, R3 .text:100038A8 MOV R4, R2,ASR#16 .text:100038AC MOV LR, R4 .text:100038B0 BCS loc_100038EC .text:100038B4 LDRSH R3, [R1] .text:100038B8 LDRSH R2, [R1,#2] .text:100038BC ADD R4, R4, R3 .text:100038C0 CMP R4, R7 .text:100038C4 ADD LR, LR, R2 .text:100038C8 MOVGT R4, R7 .text:100038CC CMNLE R4, #0x8000 .text:100038D0 MOVLLT R4, 0xFFFF8000 .text:100038D8 CMP LR, R7 .text:100038DC MOVGT LR, R7 .text:100038E0 CMNLE LR, #0x8000 .text:100038E4 MOVLLT LR, 0xFFFF8000 .text:100038EC .text:100038EC loc_100038EC ; CODE XREF: sub_100037D4+DCj .text:100038EC STRH R4, [R1] .text:100038F0 STRH LR, [R1,#2] .text:100038F4 ADD R1, R1, #4 .text:100038F8 STR R1, [R11,#param_R1] .text:100038FC LDR R3, [R11,#var_44] .text:10003900 B loc_10003838 .text:10003904 ; --------------------------------------------------------------------------- .text:10003904 .text:10003904 loc_10003904 ; CODE XREF: sub_100037D4+68j .text:10003904 ; DATA XREF: .text:1000A568o .text:10003904 B loc_10003938 .text:10003908 ; --------------------------------------------------------------------------- .text:10003908 .text:10003908 loc_10003908 ; DATA XREF: .text:1000A570o .text:10003908 LDR R0, [R11,#param_R0] .text:1000390C MOV R3, #0 .text:10003910 STR R3, [R0,#0x44] .text:10003914 STR R3, [R0,#0x48] .text:10003918 STR R3, [R0,#0x4C] .text:1000391C STR R3, [R0,#0x3C] .text:10003920 LDR R1, [R11,#param_R1] .text:10003924 LDR R6, [R11,#var_4C] .text:10003928 LDR R9, [R11,#var_48] .text:1000392C LDR R8, [R11,#var_40] .text:10003930 LDR R5, [R11,#var_3C] .text:10003934 B loc_1000395C .text:10003938 ; --------------------------------------------------------------------------- .text:10003938 .text:10003938 loc_10003938 ; CODE XREF: sub_100037D4+78j .text:10003938 ; sub_100037D4:loc_10003904j .text:10003938 LDR R2, [R0,#0x4C] .text:1000393C LDR R3, [R0,#0x44] .text:10003940 STR R5, [R0,#0x44] .text:10003944 STR R6, [R0,#0x88] .text:10003948 SUB R3, R2, R3 .text:1000394C ADD R3, R3, R5 .text:10003950 STR R3, [R0,#0x4C] .text:10003954 STR R8, [R0,#0x78] .text:10003958 STR R9, [R0,#0x80] .text:1000395C .text:1000395C loc_1000395C ; CODE XREF: sub_100037D4+160j .text:1000395C MOV R0, R1 .text:10003960 LDMDB R11, {R4-R11,SP,LR} .text:10003964 BX LR .text:10003964 ; End of function sub_100037D4 .text:10003964 .text:10003968 .text:10003968 ; =============== S U B R O U T I N E ======================================= .text:10003968 .text:10003968 .text:10003968 sub_10003968 ; DATA XREF: .text:1000A56Co .text:10003968 ; .pdata:1000C200o .text:10003968 MOV R0, #1 .text:1000396C RET .text:1000396C ; End of function sub_10003968 .text:1000396C .text:1000396C ; --------------------------------------------------------------------------- .text:10003970 DCD loc_1000A338 .text:10003974 DCD dword_1000A574 .text:10003978 .text:10003978 ; =============== S U B R O U T I N E ======================================= .text:10003978 .text:10003978 ; Attributes: bp-based frame .text:10003978 .text:10003978 sub_10003978 ; DATA XREF: .text:100012A0o .text:10003978 ; .pdata:1000C208o .text:10003978 .text:10003978 var_50 = -0x50 .text:10003978 var_4C = -0x4C .text:10003978 var_48 = -0x48 .text:10003978 var_44 = -0x44 .text:10003978 var_40 = -0x40 .text:10003978 var_3C = -0x3C .text:10003978 var_38 = -0x38 .text:10003978 var_34 = -0x34 .text:10003978 var_30 = -0x30 .text:10003978 oldR4 = -0x28 .text:10003978 oldR5 = -0x24 .text:10003978 oldR6 = -0x20 .text:10003978 oldR7 = -0x1C .text:10003978 oldR8 = -0x18 .text:10003978 oldR9 = -0x14 .text:10003978 oldR10 = -0x10 .text:10003978 oldR11 = -0xC .text:10003978 oldSP = -8 .text:10003978 oldLR = -4 .text:10003978 param_R0 = 0 .text:10003978 param_R1 = 4 .text:10003978 param_R2 = 8 .text:10003978 param_R3 = 0xC .text:10003978 .text:10003978 MOV R12, SP .text:1000397C STMFD SP!, {R0-R3} .text:10003980 STMFD SP!, {R4-R12,LR} .text:10003984 ADD R11, SP, #0x28 .text:10003988 SUB SP, SP, #0x28 .text:1000398C STR R3, [R11,#var_34] .text:10003990 MOV R10, R2 .text:10003994 STR R1, [R11,#param_R1] .text:10003998 STR R0, [R11,#param_R0] .text:1000399C LDR R5, [R0,#0x88] .text:100039A0 LDR R7, [R0,#0x80] .text:100039A4 LDR R9, [R0,#0x78] .text:100039A8 LDR R4, [R0,#0x44] .text:100039AC STR R5, [R11,#var_4C] .text:100039B0 STR R7, [R11,#var_48] .text:100039B4 STR R9, [R11,#var_44] .text:100039B8 STR R4, [R11,#var_40] .text:100039BC LDR LR, [R0,#0x70] .text:100039C0 STR LR, [R11,#var_38] .text:100039C4 LDR R3, [R0,#0x48] .text:100039C8 STR R3, [R11,#var_30] .text:100039CC LDR LR, [R0,#0x60] .text:100039D0 STR LR, [R11,#var_3C] .text:100039D4 .text:100039D4 loc_100039D4 ; DATA XREF: .text:1000A578o .text:100039D4 MOVL R6, 0x7FFF .text:100039DC MOVL R8, 0xFFFF8000 .text:100039E4 .text:100039E4 loc_100039E4 ; CODE XREF: sub_10003978+130j .text:100039E4 CMP R1, R10 .text:100039E8 BCS loc_10003AAC .text:100039EC .text:100039EC loc_100039EC ; CODE XREF: sub_10003978+A0j .text:100039EC CMP R5, #0x100 .text:100039F0 BLT loc_10003A1C .text:100039F4 CMP R4, R3 .text:100039F8 BCS loc_10003AE0 .text:100039FC SUB R5, R5, #0x100 .text:10003A00 STR R5, [R11,#var_4C] .text:10003A04 MOV R9, R7 .text:10003A08 STR R7, [R11,#var_44] .text:10003A0C LDRSH R7, [R4],#2 .text:10003A10 STR R4, [R11,#var_40] .text:10003A14 STR R7, [R11,#var_48] .text:10003A18 B loc_100039EC .text:10003A1C ; --------------------------------------------------------------------------- .text:10003A1C .text:10003A1C loc_10003A1C ; CODE XREF: sub_10003978+78j .text:10003A1C SUB R3, R7, R9 .text:10003A20 MUL R2, R3, R5 .text:10003A24 ADD R2, R9, R2,ASR#8 .text:10003A28 STR R2, [R11,#var_50] .text:10003A2C LDR R3, [R11,#var_3C] .text:10003A30 MUL R3, R2, R3 .text:10003A34 MOV R2, R3,ASR#16 .text:10003A38 STR R2, [R11,#var_50] .text:10003A3C LDR R3, [R11,#var_38] .text:10003A40 ADD R5, R5, R3 .text:10003A44 STR R5, [R11,#var_4C] .text:10003A48 MOV LR, R2 .text:10003A4C LDR R3, [R11,#var_34] .text:10003A50 CMP R1, R3 .text:10003A54 BCS loc_10003A94 .text:10003A58 LDRSH R3, [R1] .text:10003A5C ADD R2, R2, R3 .text:10003A60 STR R2, [R11,#var_50] .text:10003A64 LDRSH R3, [R1,#2] .text:10003A68 CMP R2, R6 .text:10003A6C ADD LR, LR, R3 .text:10003A70 MOVGT R2, R6 .text:10003A74 STRGT R6, [R11,#var_50] .text:10003A78 CMNLE R2, #0x8000 .text:10003A7C MOVLT R2, R8 .text:10003A80 STRLT R8, [R11,#var_50] .text:10003A84 CMP LR, R6 .text:10003A88 MOVGT LR, R6 .text:10003A8C CMNLE LR, #0x8000 .text:10003A90 MOVLT LR, R8 .text:10003A94 .text:10003A94 loc_10003A94 ; CODE XREF: sub_10003978+DCj .text:10003A94 STRH R2, [R1] .text:10003A98 STRH LR, [R1,#2] .text:10003A9C ADD R1, R1, #4 .text:10003AA0 STR R1, [R11,#param_R1] .text:10003AA4 LDR R3, [R11,#var_30] .text:10003AA8 B loc_100039E4 .text:10003AAC ; --------------------------------------------------------------------------- .text:10003AAC .text:10003AAC loc_10003AAC ; CODE XREF: sub_10003978+70j .text:10003AAC ; DATA XREF: .text:1000A57Co .text:10003AAC B loc_10003AE0 .text:10003AB0 ; --------------------------------------------------------------------------- .text:10003AB0 .text:10003AB0 loc_10003AB0 ; DATA XREF: .text:1000A584o .text:10003AB0 LDR R0, [R11,#param_R0] .text:10003AB4 MOV R3, #0 .text:10003AB8 STR R3, [R0,#0x44] .text:10003ABC STR R3, [R0,#0x48] .text:10003AC0 STR R3, [R0,#0x4C] .text:10003AC4 STR R3, [R0,#0x3C] .text:10003AC8 LDR R1, [R11,#param_R1] .text:10003ACC LDR R5, [R11,#var_4C] .text:10003AD0 LDR R7, [R11,#var_48] .text:10003AD4 LDR R9, [R11,#var_44] .text:10003AD8 LDR R4, [R11,#var_40] .text:10003ADC B loc_10003B04 .text:10003AE0 ; --------------------------------------------------------------------------- .text:10003AE0 .text:10003AE0 loc_10003AE0 ; CODE XREF: sub_10003978+80j .text:10003AE0 ; sub_10003978:loc_10003AACj .text:10003AE0 LDR R2, [R0,#0x4C] .text:10003AE4 LDR R3, [R0,#0x44] .text:10003AE8 STR R4, [R0,#0x44] .text:10003AEC STR R5, [R0,#0x88] .text:10003AF0 SUB R3, R2, R3 .text:10003AF4 ADD R3, R3, R4 .text:10003AF8 STR R3, [R0,#0x4C] .text:10003AFC STR R9, [R0,#0x78] .text:10003B00 STR R7, [R0,#0x80] .text:10003B04 .text:10003B04 loc_10003B04 ; CODE XREF: sub_10003978+164j .text:10003B04 MOV R0, R1 .text:10003B08 LDMDB R11, {R4-R11,SP,LR} .text:10003B0C BX LR .text:10003B0C ; End of function sub_10003978 .text:10003B0C .text:10003B10 .text:10003B10 ; =============== S U B R O U T I N E ======================================= .text:10003B10 .text:10003B10 .text:10003B10 sub_10003B10 ; DATA XREF: .text:1000A580o .text:10003B10 ; .pdata:1000C210o .text:10003B10 MOV R0, #1 .text:10003B14 RET .text:10003B14 ; End of function sub_10003B10 .text:10003B14 .text:10003B14 ; --------------------------------------------------------------------------- .text:10003B18 DCD loc_1000A338 .text:10003B1C DCD dword_1000A588 .text:10003B20 .text:10003B20 ; =============== S U B R O U T I N E ======================================= .text:10003B20 .text:10003B20 ; Attributes: bp-based frame .text:10003B20 .text:10003B20 sub_10003B20 ; DATA XREF: .text:100012DCo .text:10003B20 ; .pdata:1000C218o .text:10003B20 .text:10003B20 var_64 = -0x64 .text:10003B20 var_60 = -0x60 .text:10003B20 var_5C = -0x5C .text:10003B20 var_58 = -0x58 .text:10003B20 var_54 = -0x54 .text:10003B20 var_50 = -0x50 .text:10003B20 var_4C = -0x4C .text:10003B20 var_48 = -0x48 .text:10003B20 var_44 = -0x44 .text:10003B20 var_40 = -0x40 .text:10003B20 var_3C = -0x3C .text:10003B20 var_38 = -0x38 .text:10003B20 var_34 = -0x34 .text:10003B20 var_30 = -0x30 .text:10003B20 oldR4 = -0x28 .text:10003B20 oldR5 = -0x24 .text:10003B20 oldR6 = -0x20 .text:10003B20 oldR7 = -0x1C .text:10003B20 oldR8 = -0x18 .text:10003B20 oldR9 = -0x14 .text:10003B20 oldR10 = -0x10 .text:10003B20 oldR11 = -0xC .text:10003B20 oldSP = -8 .text:10003B20 oldLR = -4 .text:10003B20 param_R0 = 0 .text:10003B20 param_R1 = 4 .text:10003B20 param_R2 = 8 .text:10003B20 param_R3 = 0xC .text:10003B20 .text:10003B20 MOV R12, SP .text:10003B24 STMFD SP!, {R0-R3} .text:10003B28 STMFD SP!, {R4-R12,LR} .text:10003B2C ADD R11, SP, #0x28 .text:10003B30 SUB SP, SP, #0x3C .text:10003B34 STR R3, [R11,#var_38] .text:10003B38 MOV R3, R2 .text:10003B3C STR R3, [R11,#var_34] .text:10003B40 STR R1, [R11,#param_R1] .text:10003B44 STR R0, [R11,#param_R0] .text:10003B48 LDR R6, [R0,#0x88] .text:10003B4C LDR R8, [R0,#0x80] .text:10003B50 LDR R9, [R0,#0x84] .text:10003B54 LDR R10, [R0,#0x78] .text:10003B58 LDR LR, [R0,#0x7C] .text:10003B5C STR LR, [R11,#var_64] .text:10003B60 LDR R5, [R0,#0x44] .text:10003B64 STR R6, [R11,#var_58] .text:10003B68 STR R8, [R11,#var_54] .text:10003B6C STR R9, [R11,#var_50] .text:10003B70 STR R10, [R11,#var_48] .text:10003B74 STR LR, [R11,#var_44] .text:10003B78 STR R5, [R11,#var_40] .text:10003B7C LDR R2, [R0,#0x70] .text:10003B80 STR R2, [R11,#var_3C] .text:10003B84 LDR R2, [R0,#0x48] .text:10003B88 STR R2, [R11,#var_30] .text:10003B8C LDR LR, [R0,#0x60] .text:10003B90 STR LR, [R11,#var_4C] .text:10003B94 .text:10003B94 loc_10003B94 ; DATA XREF: .text:1000A58Co .text:10003B94 MOVL R4, 0x7FFF .text:10003B9C MOVL R7, 0xFFFF8000 .text:10003BA4 .text:10003BA4 loc_10003BA4 ; CODE XREF: sub_10003B20+1B0j .text:10003BA4 CMP R1, R3 .text:10003BA8 BCS loc_10003CD4 .text:10003BAC .text:10003BAC loc_10003BAC ; CODE XREF: sub_10003B20+ECj .text:10003BAC CMP R6, #0x100 .text:10003BB0 BLT loc_10003C10 .text:10003BB4 CMP R5, R2 .text:10003BB8 BCC loc_10003BC4 .text:10003BBC LDR LR, [R11,#var_64] .text:10003BC0 B loc_10003D14 .text:10003BC4 ; --------------------------------------------------------------------------- .text:10003BC4 .text:10003BC4 loc_10003BC4 ; CODE XREF: sub_10003B20+98j .text:10003BC4 SUB R6, R6, #0x100 .text:10003BC8 STR R6, [R11,#var_58] .text:10003BCC MOV R10, R8 .text:10003BD0 STR R8, [R11,#var_48] .text:10003BD4 STR R9, [R11,#var_64] .text:10003BD8 STR R9, [R11,#var_44] .text:10003BDC LDRB R3, [R5] .text:10003BE0 STR R3, [R11,#var_54] .text:10003BE4 SUB R3, R3, #0x80 .text:10003BE8 MOV R8, R3,LSL#8 .text:10003BEC STR R8, [R11,#var_54] .text:10003BF0 LDRB R3, [R5,#1] .text:10003BF4 STR R3, [R11,#var_50] .text:10003BF8 SUB R3, R3, #0x80 .text:10003BFC MOV R9, R3,LSL#8 .text:10003C00 STR R9, [R11,#var_50] .text:10003C04 ADD R5, R5, #2 .text:10003C08 STR R5, [R11,#var_40] .text:10003C0C B loc_10003BAC .text:10003C10 ; --------------------------------------------------------------------------- .text:10003C10 .text:10003C10 loc_10003C10 ; CODE XREF: sub_10003B20+90j .text:10003C10 SUB R3, R8, R10 .text:10003C14 MUL R2, R3, R6 .text:10003C18 ADD R2, R10, R2,ASR#8 .text:10003C1C STR R2, [R11,#var_60] .text:10003C20 LDR R3, [R11,#var_4C] .text:10003C24 MUL R3, R2, R3 .text:10003C28 MOV LR, R3,ASR#16 .text:10003C2C STR LR, [R11,#var_60] .text:10003C30 LDR R3, [R11,#var_64] .text:10003C34 SUB R3, R9, R3 .text:10003C38 MUL R2, R3, R6 .text:10003C3C LDR R3, [R11,#var_64] .text:10003C40 ADD R2, R3, R2,ASR#8 .text:10003C44 STR R2, [R11,#var_5C] .text:10003C48 LDR R3, [R11,#var_4C] .text:10003C4C MUL R3, R2, R3 .text:10003C50 MOV R2, R3,ASR#16 .text:10003C54 STR R2, [R11,#var_5C] .text:10003C58 LDR R3, [R11,#var_3C] .text:10003C5C ADD R6, R6, R3 .text:10003C60 STR R6, [R11,#var_58] .text:10003C64 LDR R3, [R11,#var_38] .text:10003C68 CMP R1, R3 .text:10003C6C BCS loc_10003CB8 .text:10003C70 LDRSH R3, [R1] .text:10003C74 ADD LR, LR, R3 .text:10003C78 STR LR, [R11,#var_60] .text:10003C7C LDRSH R3, [R1,#2] .text:10003C80 ADD R2, R2, R3 .text:10003C84 STR R2, [R11,#var_5C] .text:10003C88 CMP LR, R4 .text:10003C8C MOVGT LR, R4 .text:10003C90 STRGT R4, [R11,#var_60] .text:10003C94 CMNLE LR, #0x8000 .text:10003C98 MOVLT LR, R7 .text:10003C9C STRLT R7, [R11,#var_60] .text:10003CA0 CMP R2, R4 .text:10003CA4 MOVGT R2, R4 .text:10003CA8 STRGT R4, [R11,#var_5C] .text:10003CAC CMNLE R2, #0x8000 .text:10003CB0 MOVLT R2, R7 .text:10003CB4 STRLT R7, [R11,#var_5C] .text:10003CB8 .text:10003CB8 loc_10003CB8 ; CODE XREF: sub_10003B20+14Cj .text:10003CB8 STRH LR, [R1] .text:10003CBC STRH R2, [R1,#2] .text:10003CC0 ADD R1, R1, #4 .text:10003CC4 STR R1, [R11,#param_R1] .text:10003CC8 LDR R3, [R11,#var_34] .text:10003CCC LDR R2, [R11,#var_30] .text:10003CD0 B loc_10003BA4 .text:10003CD4 ; --------------------------------------------------------------------------- .text:10003CD4 .text:10003CD4 loc_10003CD4 ; CODE XREF: sub_10003B20+88j .text:10003CD4 ; DATA XREF: .text:1000A590o .text:10003CD4 LDR LR, [R11,#var_64] .text:10003CD8 B loc_10003D14 .text:10003CDC ; --------------------------------------------------------------------------- .text:10003CDC .text:10003CDC loc_10003CDC ; DATA XREF: .text:1000A598o .text:10003CDC LDR R0, [R11,#param_R0] .text:10003CE0 MOV R3, #0 .text:10003CE4 STR R3, [R0,#0x44] .text:10003CE8 STR R3, [R0,#0x48] .text:10003CEC STR R3, [R0,#0x4C] .text:10003CF0 STR R3, [R0,#0x3C] .text:10003CF4 LDR R1, [R11,#param_R1] .text:10003CF8 LDR R6, [R11,#var_58] .text:10003CFC LDR R8, [R11,#var_54] .text:10003D00 LDR R9, [R11,#var_50] .text:10003D04 LDR R10, [R11,#var_48] .text:10003D08 LDR LR, [R11,#var_44] .text:10003D0C LDR R5, [R11,#var_40] .text:10003D10 B loc_10003D40 .text:10003D14 ; --------------------------------------------------------------------------- .text:10003D14 .text:10003D14 loc_10003D14 ; CODE XREF: sub_10003B20+A0j .text:10003D14 ; sub_10003B20+1B8j .text:10003D14 LDR R2, [R0,#0x4C] .text:10003D18 LDR R3, [R0,#0x44] .text:10003D1C STR R5, [R0,#0x44] .text:10003D20 STR R6, [R0,#0x88] .text:10003D24 SUB R3, R2, R3 .text:10003D28 ADD R3, R3, R5 .text:10003D2C STR R3, [R0,#0x4C] .text:10003D30 STR R10, [R0,#0x78] .text:10003D34 STR LR, [R0,#0x7C] .text:10003D38 STR R8, [R0,#0x80] .text:10003D3C STR R9, [R0,#0x84] .text:10003D40 .text:10003D40 loc_10003D40 ; CODE XREF: sub_10003B20+1F0j .text:10003D40 MOV R0, R1 .text:10003D44 LDMDB R11, {R4-R11,SP,LR} .text:10003D48 BX LR .text:10003D48 ; End of function sub_10003B20 .text:10003D48 .text:10003D4C .text:10003D4C ; =============== S U B R O U T I N E ======================================= .text:10003D4C .text:10003D4C .text:10003D4C sub_10003D4C ; DATA XREF: .text:1000A594o .text:10003D4C ; .pdata:1000C220o .text:10003D4C MOV R0, #1 .text:10003D50 RET .text:10003D50 ; End of function sub_10003D4C .text:10003D50 .text:10003D50 ; --------------------------------------------------------------------------- .text:10003D54 DCD loc_1000A338 .text:10003D58 DCD dword_1000A59C .text:10003D5C .text:10003D5C ; =============== S U B R O U T I N E ======================================= .text:10003D5C .text:10003D5C ; Attributes: bp-based frame .text:10003D5C .text:10003D5C sub_10003D5C ; DATA XREF: .text:10001318o .text:10003D5C ; .pdata:1000C228o .text:10003D5C .text:10003D5C var_64 = -0x64 .text:10003D5C var_60 = -0x60 .text:10003D5C var_5C = -0x5C .text:10003D5C var_58 = -0x58 .text:10003D5C var_54 = -0x54 .text:10003D5C var_50 = -0x50 .text:10003D5C var_4C = -0x4C .text:10003D5C var_48 = -0x48 .text:10003D5C var_44 = -0x44 .text:10003D5C var_40 = -0x40 .text:10003D5C var_3C = -0x3C .text:10003D5C var_38 = -0x38 .text:10003D5C var_34 = -0x34 .text:10003D5C var_30 = -0x30 .text:10003D5C oldR4 = -0x28 .text:10003D5C oldR5 = -0x24 .text:10003D5C oldR6 = -0x20 .text:10003D5C oldR7 = -0x1C .text:10003D5C oldR8 = -0x18 .text:10003D5C oldR9 = -0x14 .text:10003D5C oldR10 = -0x10 .text:10003D5C oldR11 = -0xC .text:10003D5C oldSP = -8 .text:10003D5C oldLR = -4 .text:10003D5C param_R0 = 0 .text:10003D5C param_R1 = 4 .text:10003D5C param_R2 = 8 .text:10003D5C param_R3 = 0xC .text:10003D5C .text:10003D5C MOV R12, SP .text:10003D60 STMFD SP!, {R0-R3} .text:10003D64 STMFD SP!, {R4-R12,LR} .text:10003D68 ADD R11, SP, #0x28 .text:10003D6C SUB SP, SP, #0x3C .text:10003D70 STR R3, [R11,#var_38] .text:10003D74 MOV R3, R2 .text:10003D78 STR R3, [R11,#var_34] .text:10003D7C STR R1, [R11,#param_R1] .text:10003D80 STR R0, [R11,#param_R0] .text:10003D84 LDR R6, [R0,#0x88] .text:10003D88 LDR R7, [R0,#0x80] .text:10003D8C LDR R8, [R0,#0x84] .text:10003D90 LDR R10, [R0,#0x78] .text:10003D94 LDR R4, [R0,#0x7C] .text:10003D98 STR R4, [R11,#var_64] .text:10003D9C LDR LR, [R0,#0x44] .text:10003DA0 STR R6, [R11,#var_58] .text:10003DA4 STR R7, [R11,#var_50] .text:10003DA8 STR R8, [R11,#var_4C] .text:10003DAC STR R10, [R11,#var_48] .text:10003DB0 STR R4, [R11,#var_44] .text:10003DB4 STR LR, [R11,#var_40] .text:10003DB8 LDR R2, [R0,#0x70] .text:10003DBC STR R2, [R11,#var_3C] .text:10003DC0 LDR R2, [R0,#0x48] .text:10003DC4 STR R2, [R11,#var_30] .text:10003DC8 LDR R4, [R0,#0x60] .text:10003DCC STR R4, [R11,#var_54] .text:10003DD0 .text:10003DD0 loc_10003DD0 ; DATA XREF: .text:1000A5A0o .text:10003DD0 MOVL R5, 0x7FFF .text:10003DD8 MOVL R9, 0xFFFF8000 .text:10003DE0 .text:10003DE0 loc_10003DE0 ; CODE XREF: sub_10003D5C+19Cj .text:10003DE0 CMP R1, R3 .text:10003DE4 BCS loc_10003EFC .text:10003DE8 .text:10003DE8 loc_10003DE8 ; CODE XREF: sub_10003D5C+D8j .text:10003DE8 CMP R6, #0x100 .text:10003DEC BLT loc_10003E38 .text:10003DF0 CMP LR, R2 .text:10003DF4 BCC loc_10003E00 .text:10003DF8 LDR R4, [R11,#var_64] .text:10003DFC B loc_10003F3C .text:10003E00 ; --------------------------------------------------------------------------- .text:10003E00 .text:10003E00 loc_10003E00 ; CODE XREF: sub_10003D5C+98j .text:10003E00 SUB R6, R6, #0x100 .text:10003E04 STR R6, [R11,#var_58] .text:10003E08 MOV R10, R7 .text:10003E0C STR R7, [R11,#var_48] .text:10003E10 MOV R3, R8 .text:10003E14 STR R3, [R11,#var_64] .text:10003E18 STR R8, [R11,#var_44] .text:10003E1C LDRSH R7, [LR] .text:10003E20 STR R7, [R11,#var_50] .text:10003E24 LDRSH R8, [LR,#2] .text:10003E28 STR R8, [R11,#var_4C] .text:10003E2C ADD LR, LR, #4 .text:10003E30 STR LR, [R11,#var_40] .text:10003E34 B loc_10003DE8 .text:10003E38 ; --------------------------------------------------------------------------- .text:10003E38 .text:10003E38 loc_10003E38 ; CODE XREF: sub_10003D5C+90j .text:10003E38 SUB R3, R7, R10 .text:10003E3C MUL R2, R3, R6 .text:10003E40 ADD R2, R10, R2,ASR#8 .text:10003E44 STR R2, [R11,#var_60] .text:10003E48 LDR R3, [R11,#var_54] .text:10003E4C MUL R3, R2, R3 .text:10003E50 MOV R4, R3,ASR#16 .text:10003E54 STR R4, [R11,#var_60] .text:10003E58 LDR R3, [R11,#var_64] .text:10003E5C SUB R3, R8, R3 .text:10003E60 MUL R2, R3, R6 .text:10003E64 LDR R3, [R11,#var_64] .text:10003E68 ADD R2, R3, R2,ASR#8 .text:10003E6C STR R2, [R11,#var_5C] .text:10003E70 LDR R3, [R11,#var_54] .text:10003E74 MUL R3, R2, R3 .text:10003E78 MOV R2, R3,ASR#16 .text:10003E7C STR R2, [R11,#var_5C] .text:10003E80 LDR R3, [R11,#var_3C] .text:10003E84 ADD R6, R6, R3 .text:10003E88 STR R6, [R11,#var_58] .text:10003E8C LDR R3, [R11,#var_38] .text:10003E90 CMP R1, R3 .text:10003E94 BCS loc_10003EE0 .text:10003E98 LDRSH R3, [R1] .text:10003E9C ADD R4, R4, R3 .text:10003EA0 STR R4, [R11,#var_60] .text:10003EA4 LDRSH R3, [R1,#2] .text:10003EA8 ADD R2, R2, R3 .text:10003EAC STR R2, [R11,#var_5C] .text:10003EB0 CMP R4, R5 .text:10003EB4 MOVGT R4, R5 .text:10003EB8 STRGT R5, [R11,#var_60] .text:10003EBC CMNLE R4, #0x8000 .text:10003EC0 MOVLT R4, R9 .text:10003EC4 STRLT R9, [R11,#var_60] .text:10003EC8 CMP R2, R5 .text:10003ECC MOVGT R2, R5 .text:10003ED0 STRGT R5, [R11,#var_5C] .text:10003ED4 CMNLE R2, #0x8000 .text:10003ED8 MOVLT R2, R9 .text:10003EDC STRLT R9, [R11,#var_5C] .text:10003EE0 .text:10003EE0 loc_10003EE0 ; CODE XREF: sub_10003D5C+138j .text:10003EE0 STRH R4, [R1] .text:10003EE4 STRH R2, [R1,#2] .text:10003EE8 ADD R1, R1, #4 .text:10003EEC STR R1, [R11,#param_R1] .text:10003EF0 LDR R3, [R11,#var_34] .text:10003EF4 LDR R2, [R11,#var_30] .text:10003EF8 B loc_10003DE0 .text:10003EFC ; --------------------------------------------------------------------------- .text:10003EFC .text:10003EFC loc_10003EFC ; CODE XREF: sub_10003D5C+88j .text:10003EFC ; DATA XREF: .text:1000A5A4o .text:10003EFC LDR R4, [R11,#var_64] .text:10003F00 B loc_10003F3C .text:10003F04 ; --------------------------------------------------------------------------- .text:10003F04 .text:10003F04 loc_10003F04 ; DATA XREF: .text:1000A5ACo .text:10003F04 LDR R0, [R11,#param_R0] .text:10003F08 MOV R3, #0 .text:10003F0C STR R3, [R0,#0x44] .text:10003F10 STR R3, [R0,#0x48] .text:10003F14 STR R3, [R0,#0x4C] .text:10003F18 STR R3, [R0,#0x3C] .text:10003F1C LDR R1, [R11,#param_R1] .text:10003F20 LDR R6, [R11,#var_58] .text:10003F24 LDR R7, [R11,#var_50] .text:10003F28 LDR R8, [R11,#var_4C] .text:10003F2C LDR R10, [R11,#var_48] .text:10003F30 LDR R4, [R11,#var_44] .text:10003F34 LDR LR, [R11,#var_40] .text:10003F38 B loc_10003F64 .text:10003F3C ; --------------------------------------------------------------------------- .text:10003F3C .text:10003F3C loc_10003F3C ; CODE XREF: sub_10003D5C+A0j .text:10003F3C ; sub_10003D5C+1A4j .text:10003F3C LDR R2, [R0,#0x4C] .text:10003F40 LDR R3, [R0,#0x44] .text:10003F44 STR LR, [R0,#0x44] .text:10003F48 STR R6, [R0,#0x88] .text:10003F4C SUB R3, R2, R3 .text:10003F50 ADD R3, R3, LR .text:10003F54 STR R3, [R0,#0x4C] .text:10003F58 STR R10, [R0,#0x78] .text:10003F5C ADD R12, R0, #0x7C .text:10003F60 STMIA R12, {R4,R7,R8} .text:10003F64 .text:10003F64 loc_10003F64 ; CODE XREF: sub_10003D5C+1DCj .text:10003F64 MOV R0, R1 .text:10003F68 LDMDB R11, {R4-R11,SP,LR} .text:10003F6C BX LR .text:10003F6C ; End of function sub_10003D5C .text:10003F6C .text:10003F70 .text:10003F70 ; =============== S U B R O U T I N E ======================================= .text:10003F70 .text:10003F70 .text:10003F70 sub_10003F70 ; DATA XREF: .text:1000A5A8o .text:10003F70 ; .pdata:1000C230o .text:10003F70 MOV R0, #1 .text:10003F74 RET .text:10003F74 ; End of function sub_10003F70 .text:10003F74 .text:10003F78 .text:10003F78 ; =============== S U B R O U T I N E ======================================= .text:10003F78 .text:10003F78 .text:10003F78 sub_10003F78 ; DATA XREF: .text:100011ECo .text:10003F78 ; .pdata:1000C238o .text:10003F78 STMFD SP!, {R4,R5,LR} .text:10003F7C ADD R3, R0, #0x500 .text:10003F80 LDR R4, [R0,#0x5E8] .text:10003F84 ADD R5, R3, #0xE8 .text:10003F88 B loc_10003F98 .text:10003F8C ; --------------------------------------------------------------------------- .text:10003F8C .text:10003F8C loc_10003F8C ; CODE XREF: sub_10003F78+24j .text:10003F8C MOV R0, R4 .text:10003F90 BL sub_1000462C .text:10003F94 LDR R4, [R4] .text:10003F98 .text:10003F98 loc_10003F98 ; CODE XREF: sub_10003F78+10j .text:10003F98 CMP R4, R5 .text:10003F9C BNE loc_10003F8C .text:10003FA0 LDMFD SP!, {R4,R5,LR} .text:10003FA4 BX LR .text:10003FA4 ; End of function sub_10003F78 .text:10003FA4 .text:10003FA8 .text:10003FA8 ; =============== S U B R O U T I N E ======================================= .text:10003FA8 .text:10003FA8 .text:10003FA8 sub_10003FA8 ; CODE XREF: sub_1000462C+10p .text:10003FA8 ; sub_10004730+3Cp .text:10003FA8 ; DATA XREF: ... .text:10003FA8 .text:10003FA8 var_4 = -4 .text:10003FA8 arg_4 = 4 .text:10003FA8 .text:10003FA8 STR LR, [SP,#var_4]! .text:10003FAC LDR LR, [R0,#0x58] .text:10003FB0 MOVL R3, 0xFFFF .text:10003FB8 AND R2, R1, R3 .text:10003FBC AND R3, LR, R3 .text:10003FC0 MUL R3, R2, R3 .text:10003FC4 ADD R3, R3, #0xFF00 .text:10003FC8 ADD R1, R3, #0xFF .text:10003FCC MOV R1, R1,LSR#16 .text:10003FD0 BL sub_10003098 .text:10003FD4 LDR LR, [SP],#arg_4 .text:10003FD8 BX LR .text:10003FD8 ; End of function sub_10003FA8 .text:10003FD8 .text:10003FDC .text:10003FDC ; =============== S U B R O U T I N E ======================================= .text:10003FDC .text:10003FDC .text:10003FDC sub_10003FDC ; CODE XREF: sub_10004184+5Cp .text:10003FDC ; sub_1000438C+8Cp .text:10003FDC ; DATA XREF: ... .text:10003FDC STMFD SP!, {R4,R5,LR} .text:10003FE0 MOV R5, R0 .text:10003FE4 LDR R3, [R5,#0x600] .text:10003FE8 MOVL R1, 0xAC44 .text:10003FF0 CMP R3, #0 .text:10003FF4 MOVLEQ R3, 0x7A120 .text:10003FFC STREQ R3, [R5,#0x600] .text:10004000 LDR R3, [R5,#0x604] .text:10004004 LDR R4, [R5,#0x600] .text:10004008 CMP R3, #0 .text:1000400C MOVEQ R3, #0x60 .text:10004010 STREQ R3, [R5,#0x604] .text:10004014 LDR LR, [R5,#0x604] .text:10004018 MOVL R3, 0xF4240 .text:10004020 UMULL R2, R3, LR, R3 .text:10004024 UMULL R0, R1, R4, R1 .text:10004028 BL __rt_udiv64by64 .text:1000402C STR R0, [R5,#0x608] .text:10004030 MOV R0, #0 .text:10004034 LDMFD SP!, {R4,R5,LR} .text:10004038 BX LR .text:10004038 ; End of function sub_10003FDC .text:10004038 .text:1000403C .text:1000403C ; =============== S U B R O U T I N E ======================================= .text:1000403C .text:1000403C .text:1000403C sub_1000403C ; CODE XREF: sub_10004084+1Cp .text:1000403C ; sub_100042D8+94p ... .text:1000403C .text:1000403C var_4 = -4 .text:1000403C arg_4 = 4 .text:1000403C .text:1000403C STR LR, [SP,#var_4]! .text:10004040 LDR LR, [R0,#0x5E8] .text:10004044 ADD R3, R0, #0x500 .text:10004048 ADD R0, R3, #0xE8 .text:1000404C B loc_1000406C .text:10004050 ; --------------------------------------------------------------------------- .text:10004050 .text:10004050 loc_10004050 ; CODE XREF: sub_1000403C+34j .text:10004050 LDR R3, [LR,#0xC] .text:10004054 CMP R3, R1 .text:10004058 BNE loc_10004068 .text:1000405C LDR R3, [LR,#0x14] .text:10004060 CMP R3, R2 .text:10004064 BEQ loc_10004078 .text:10004068 .text:10004068 loc_10004068 ; CODE XREF: sub_1000403C+1Cj .text:10004068 LDR LR, [LR] .text:1000406C .text:1000406C loc_1000406C ; CODE XREF: sub_1000403C+10j .text:1000406C CMP LR, R0 .text:10004070 BNE loc_10004050 .text:10004074 MOV LR, #0 .text:10004078 .text:10004078 loc_10004078 ; CODE XREF: sub_1000403C+28j .text:10004078 MOV R0, LR .text:1000407C LDR LR, [SP],#arg_4 .text:10004080 BX LR .text:10004080 ; End of function sub_1000403C .text:10004080 .text:10004084 .text:10004084 ; =============== S U B R O U T I N E ======================================= .text:10004084 .text:10004084 .text:10004084 sub_10004084 ; CODE XREF: sub_100042D8+7Cp .text:10004084 ; sub_1000438C+54p .text:10004084 ; DATA XREF: ... .text:10004084 .text:10004084 var_1C = -0x1C .text:10004084 .text:10004084 STMFD SP!, {R4-R8,LR} .text:10004088 SUB SP, SP, #4 .text:1000408C MOV R7, R3 .text:10004090 MOV R6, R2 .text:10004094 MOV R8, R1 .text:10004098 MOV R5, R0 .text:1000409C MOV R2, R7 .text:100040A0 BL sub_1000403C .text:100040A4 MOVS R4, R0 .text:100040A8 BEQ loc_100040CC .text:100040AC MOVL R2, 0xFFFFFFFF .text:100040B0 MOV R3, R6,LSL#9 .text:100040B4 MOV R0, R4 .text:100040B8 STR R2, [R4,#0x28] .text:100040BC STR R3, [R4,#0x20] .text:100040C0 STR R6, [R4,#0x10] .text:100040C4 BL sub_1000462C .text:100040C8 B loc_10004104 .text:100040CC ; --------------------------------------------------------------------------- .text:100040CC .text:100040CC loc_100040CC ; CODE XREF: sub_10004084+24j .text:100040CC MOV R3, R5 .text:100040D0 LDR R4, [R3,#0x5F0]! .text:100040D4 CMP R4, R3 .text:100040D8 BEQ loc_100040E8 .text:100040DC MOV R0, R5 .text:100040E0 BL sub_10002E20 .text:100040E4 B loc_100040EC .text:100040E8 ; --------------------------------------------------------------------------- .text:100040E8 .text:100040E8 loc_100040E8 ; CODE XREF: sub_10004084+54j .text:100040E8 LDR R4, [R5,#0x5E8] .text:100040EC .text:100040EC loc_100040EC ; CODE XREF: sub_10004084+60j .text:100040EC MOV R3, R6 .text:100040F0 MOV R2, R8 .text:100040F4 MOV R1, R5 .text:100040F8 MOV R0, R4 .text:100040FC STR R7, [SP,#0x1C+var_1C] .text:10004100 BL sub_10004730 .text:10004104 .text:10004104 loc_10004104 ; CODE XREF: sub_10004084+44j .text:10004104 LDR R1, [R4,#4] .text:10004108 LDR R2, [R4] .text:1000410C ADD R3, R5, #0x500 .text:10004110 ADD LR, R3, #0xE8 .text:10004114 STR R2, [R1] .text:10004118 LDR R2, [R4] .text:1000411C LDR R3, [R4,#4] .text:10004120 MOV R0, #0 .text:10004124 STR R3, [R2,#4] .text:10004128 LDR R3, [LR,#4] .text:1000412C STR LR, [R4] .text:10004130 STR R3, [R4,#4] .text:10004134 STR R4, [R3] .text:10004138 STR R4, [LR,#4] .text:1000413C ADD SP, SP, #4 .text:10004140 LDMFD SP!, {R4-R8,LR} .text:10004144 BX LR .text:10004144 ; End of function sub_10004084 .text:10004144 .text:10004148 .text:10004148 ; =============== S U B R O U T I N E ======================================= .text:10004148 .text:10004148 .text:10004148 sub_10004148 ; CODE XREF: sub_10004270+1Cp .text:10004148 ; sub_100042B0+18p ... .text:10004148 STMFD SP!, {R4-R6,LR} .text:1000414C MOV R6, R1 .text:10004150 ADD R3, R0, #0x500 .text:10004154 LDR R4, [R0,#0x5E8] .text:10004158 ADD R5, R3, #0xE8 .text:1000415C B loc_10004170 .text:10004160 ; --------------------------------------------------------------------------- .text:10004160 .text:10004160 loc_10004160 ; CODE XREF: sub_10004148+2Cj .text:10004160 MOV R0, R4 .text:10004164 LDR R4, [R4] .text:10004168 MOV R1, R6 .text:1000416C BL sub_1000464C .text:10004170 .text:10004170 loc_10004170 ; CODE XREF: sub_10004148+14j .text:10004170 CMP R4, R5 .text:10004174 BNE loc_10004160 .text:10004178 MOV R0, #0 .text:1000417C LDMFD SP!, {R4-R6,LR} .text:10004180 BX LR .text:10004180 ; End of function sub_10004148 .text:10004180 .text:10004184 .text:10004184 ; =============== S U B R O U T I N E ======================================= .text:10004184 .text:10004184 .text:10004184 sub_10004184 ; DATA XREF: .text:100011C0o .text:10004184 ; .pdata:1000C268o .text:10004184 STMFD SP!, {R4-R10,LR} .text:10004188 MOV R9, R3 .text:1000418C MOV R8, R2 .text:10004190 MOV R10, R1 .text:10004194 MOV R7, R0 .text:10004198 LDRB R6, [R8,#4] .text:1000419C LDRB LR, [R8,#5] .text:100041A0 LDRB R4, [R8,#6] .text:100041A4 LDRB R5, [R8,#7] .text:100041A8 ORR LR, R6, LR,LSL#8 .text:100041AC ORR LR, LR, R4,LSL#16 .text:100041B0 ORR R5, LR, R5,LSL#24 .text:100041B4 LDRB R4, [R5,#0x10] .text:100041B8 LDRB LR, [R5,#0x11] .text:100041BC ORR LR, R4, LR,LSL#8 .text:100041C0 CMP LR, #0xA .text:100041C4 LDRNE R4, =0x80004005 .text:100041C8 BNE loc_10004260 .text:100041CC LDR R3, [R5,#0x14] .text:100041D0 MOV R0, R7 .text:100041D4 STR R3, [R7,#0x600] .text:100041D8 LDR R3, [R5,#0x18] .text:100041DC STR R3, [R7,#0x604] .text:100041E0 BL sub_10003FDC .text:100041E4 ADD R3, R7, #0x500 .text:100041E8 ADD R3, R3, #0xE8 .text:100041EC MOV R2, #0 .text:100041F0 ADD R0, R7, #0x5F0 .text:100041F4 STR R3, [R7,#0x5EC] .text:100041F8 STR R3, [R7,#0x5E8] .text:100041FC STR R2, [R7,#0x60C] .text:10004200 STR R0, [R7,#0x5F4] .text:10004204 STR R0, [R7,#0x5F0] .text:10004208 MOV R1, R7 .text:1000420C MOV LR, #0x20 .text:10004210 .text:10004210 loc_10004210 ; CODE XREF: sub_10004184+ACj .text:10004210 LDR R3, [R0,#4] .text:10004214 ADD R2, R1, #0x68 .text:10004218 STR R0, [R1,#0x68] .text:1000421C STR R3, [R1,#0x6C] .text:10004220 STR R2, [R3] .text:10004224 STR R2, [R0,#4] .text:10004228 ADD R1, R1, #0x2C .text:1000422C SUBS LR, LR, #1 .text:10004230 BNE loc_10004210 .text:10004234 MOV R3, R9 .text:10004238 MOV R2, R8 .text:1000423C MOV R1, R10 .text:10004240 MOV R0, R7 .text:10004244 BL sub_10002CE4 .text:10004248 MOVS R4, R0 .text:1000424C LDREQ R3, [R7] .text:10004250 MOVEQ R0, R7 .text:10004254 LDREQ R3, [R3,#0x10] .text:10004258 MOVEQ LR, PC .text:1000425C BXEQ R3 .text:10004260 .text:10004260 loc_10004260 ; CODE XREF: sub_10004184+44j .text:10004260 MOV R0, R4 .text:10004264 LDMFD SP!, {R4-R10,LR} .text:10004268 BX LR .text:10004268 ; End of function sub_10004184 .text:10004268 .text:10004268 ; --------------------------------------------------------------------------- .text:1000426C dword_1000426C DCD 0x80004005 ; DATA XREF: sub_10004184+40r .text:10004270 .text:10004270 ; =============== S U B R O U T I N E ======================================= .text:10004270 .text:10004270 .text:10004270 sub_10004270 ; DATA XREF: .text:100011D4o .text:10004270 ; .pdata:1000C270o .text:10004270 STMFD SP!, {R4,R5,LR} .text:10004274 MOV R4, R0 .text:10004278 BL sub_10003310 .text:1000427C MOVS R5, R0 .text:10004280 BNE loc_100042A4 .text:10004284 MOV R1, #0 .text:10004288 MOV R0, R4 .text:1000428C BL sub_10004148 .text:10004290 LDR R3, [R4] .text:10004294 MOV R0, R4 .text:10004298 LDR R3, [R3,#0x10] .text:1000429C MOV LR, PC .text:100042A0 BX R3 .text:100042A4 .text:100042A4 loc_100042A4 ; CODE XREF: sub_10004270+10j .text:100042A4 MOV R0, R5 .text:100042A8 LDMFD SP!, {R4,R5,LR} .text:100042AC BX LR .text:100042AC ; End of function sub_10004270 .text:100042AC .text:100042B0 .text:100042B0 ; =============== S U B R O U T I N E ======================================= .text:100042B0 .text:100042B0 .text:100042B0 sub_100042B0 ; DATA XREF: .text:100011C4o .text:100042B0 ; .pdata:1000C278o .text:100042B0 STMFD SP!, {R4,R5,LR} .text:100042B4 MOV R5, R0 .text:100042B8 BL sub_100033EC .text:100042BC MOVS R4, R0 .text:100042C0 MOVEQ R1, #0 .text:100042C4 MOVEQ R0, R5 .text:100042C8 BLEQ sub_10004148 .text:100042CC MOV R0, R4 .text:100042D0 LDMFD SP!, {R4,R5,LR} .text:100042D4 BX LR .text:100042D4 ; End of function sub_100042B0 .text:100042D4 .text:100042D8 .text:100042D8 ; =============== S U B R O U T I N E ======================================= .text:100042D8 .text:100042D8 .text:100042D8 sub_100042D8 ; CODE XREF: sub_1000438C:loc_10004424p .text:100042D8 ; DATA XREF: .pdata:1000C280o .text:100042D8 STMFD SP!, {R4-R6,LR} .text:100042DC MOV LR, R0 .text:100042E0 TST R1, #0x80 .text:100042E4 STRNEB R1, [LR,#0x5FC] .text:100042E8 LDREQB R3, [LR,#0x5FC] .text:100042EC LDR R0, =0x80004001 .text:100042F0 ORREQ R1, R3, R1,LSL#8 .text:100042F4 AND R5, R1, #0xF0 .text:100042F8 MOV R3, R1,LSL#17 .text:100042FC MOV R2, R1,LSL#9 .text:10004300 MOV R6, R3,LSR#25 .text:10004304 MOV R4, R2,LSR#25 .text:10004308 CMP R5, #0x80 .text:1000430C BEQ loc_10004360 .text:10004310 CMP R5, #0x90 .text:10004314 BEQ loc_1000433C .text:10004318 CMP R5, #0xB0 .text:1000431C BNE loc_10004380 .text:10004320 CMP R6, #0x7B .text:10004324 BNE loc_10004380 .text:10004328 MOV R1, #0 .text:1000432C MOV R0, LR .text:10004330 BL sub_10004148 .text:10004334 LDMFD SP!, {R4-R6,LR} .text:10004338 BX LR .text:1000433C ; --------------------------------------------------------------------------- .text:1000433C .text:1000433C loc_1000433C ; CODE XREF: sub_100042D8+3Cj .text:1000433C CMP R4, #0 .text:10004340 BEQ loc_10004360 .text:10004344 AND R3, R1, #0xF .text:10004348 MOV R1, R6 .text:1000434C MOV R2, R4 .text:10004350 MOV R0, LR .text:10004354 BL sub_10004084 .text:10004358 LDMFD SP!, {R4-R6,LR} .text:1000435C BX LR .text:10004360 ; --------------------------------------------------------------------------- .text:10004360 .text:10004360 loc_10004360 ; CODE XREF: sub_100042D8+34j .text:10004360 ; sub_100042D8+68j .text:10004360 AND R2, R1, #0xF .text:10004364 MOV R1, R6 .text:10004368 MOV R0, LR .text:1000436C BL sub_1000403C .text:10004370 CMP R0, #0 .text:10004374 MOVNE R1, R4 .text:10004378 BLNE sub_1000464C .text:1000437C MOV R0, #0 .text:10004380 .text:10004380 loc_10004380 ; CODE XREF: sub_100042D8+44j .text:10004380 ; sub_100042D8+4Cj .text:10004380 LDMFD SP!, {R4-R6,LR} .text:10004384 BX LR .text:10004384 ; End of function sub_100042D8 .text:10004384 .text:10004384 ; --------------------------------------------------------------------------- .text:10004388 dword_10004388 DCD 0x80004001 ; DATA XREF: sub_100042D8+14r .text:1000438C .text:1000438C ; =============== S U B R O U T I N E ======================================= .text:1000438C .text:1000438C .text:1000438C sub_1000438C ; CODE XREF: sub_10004434+50p .text:1000438C ; sub_10004594+8p .text:1000438C ; DATA XREF: ... .text:1000438C STMFD SP!, {R4,LR} .text:10004390 ANDS R2, R1, #0xF0000000 .text:10004394 BEQ loc_10004424 .text:10004398 CMP R2, #0x10000000 .text:1000439C BEQ loc_10004410 .text:100043A0 CMP R2, #0x20000000 .text:100043A4 CMPNE R2, #0x30000000 .text:100043A8 LDRNE R0, =0x80004001 .text:100043AC LDMNEFD SP!, {R4,LR} .text:100043B0 BXNE LR .text:100043B4 MOV R3, R1,LSL#9 .text:100043B8 MOVL LR, 0xFFFF .text:100043C0 MOV R4, R3,LSR#25 .text:100043C4 CMP R2, #0x20000000 .text:100043C8 BNE loc_100043EC .text:100043CC CMP R4, #0 .text:100043D0 BEQ loc_100043EC .text:100043D4 MOV R3, #0x10 .text:100043D8 MOV R2, R4 .text:100043DC AND R1, R1, LR .text:100043E0 BL sub_10004084 .text:100043E4 LDMFD SP!, {R4,LR} .text:100043E8 BX LR .text:100043EC ; --------------------------------------------------------------------------- .text:100043EC .text:100043EC loc_100043EC ; CODE XREF: sub_1000438C+3Cj .text:100043EC ; sub_1000438C+44j .text:100043EC MOV R2, #0x10 .text:100043F0 AND R1, R1, LR .text:100043F4 BL sub_1000403C .text:100043F8 CMP R0, #0 .text:100043FC MOVNE R1, R4 .text:10004400 BLNE sub_1000464C .text:10004404 MOV R0, #0 .text:10004408 LDMFD SP!, {R4,LR} .text:1000440C BX LR .text:10004410 ; --------------------------------------------------------------------------- .text:10004410 .text:10004410 loc_10004410 ; CODE XREF: sub_1000438C+10j .text:10004410 BIC R3, R1, #0xFF000000 .text:10004414 STR R3, [R0,#0x600] .text:10004418 BL sub_10003FDC .text:1000441C LDMFD SP!, {R4,LR} .text:10004420 BX LR .text:10004424 ; --------------------------------------------------------------------------- .text:10004424 .text:10004424 loc_10004424 ; CODE XREF: sub_1000438C+8j .text:10004424 BL sub_100042D8 .text:10004428 LDMFD SP!, {R4,LR} .text:1000442C BX LR .text:1000442C ; End of function sub_1000438C .text:1000442C .text:1000442C ; --------------------------------------------------------------------------- .text:10004430 dword_10004430 DCD 0x80004001 ; DATA XREF: sub_1000438C+1Cr .text:10004434 .text:10004434 ; =============== S U B R O U T I N E ======================================= .text:10004434 .text:10004434 .text:10004434 sub_10004434 ; CODE XREF: sub_100044B4+54p .text:10004434 ; DATA XREF: .pdata:1000C290o .text:10004434 STMFD SP!, {R4-R7,LR} .text:10004438 MOV R4, R0 .text:1000443C LDR R5, [R4,#0x44] .text:10004440 LDR R6, [R4,#0x48] .text:10004444 MOV R7, #0 .text:10004448 .text:10004448 loc_10004448 ; CODE XREF: sub_10004434+5Cj .text:10004448 CMP R5, R6 .text:1000444C BCC loc_10004464 .text:10004450 MOV R0, R4 .text:10004454 BL sub_10002F30 .text:10004458 MOVS R5, R0 .text:1000445C BEQ loc_10004494 .text:10004460 LDR R6, [R4,#0x48] .text:10004464 .text:10004464 loc_10004464 ; CODE XREF: sub_10004434+18j .text:10004464 LDR R1, [R5] .text:10004468 LDR R3, [R4,#0x608] .text:1000446C LDR R2, [R4,#0x60C] .text:10004470 MUL R0, R1, R3 .text:10004474 CMP R0, R2 .text:10004478 BHI loc_100044A0 .text:1000447C LDR R1, [R5,#4] .text:10004480 MOV R0, R4 .text:10004484 BL sub_1000438C .text:10004488 STR R7, [R4,#0x60C] .text:1000448C ADD R5, R5, #8 .text:10004490 B loc_10004448 .text:10004494 ; --------------------------------------------------------------------------- .text:10004494 .text:10004494 loc_10004494 ; CODE XREF: sub_10004434+28j .text:10004494 MOV R0, #0 .text:10004498 LDMFD SP!, {R4-R7,LR} .text:1000449C BX LR .text:100044A0 ; --------------------------------------------------------------------------- .text:100044A0 .text:100044A0 loc_100044A0 ; CODE XREF: sub_10004434+44j .text:100044A0 LDR R3, [R4,#0x60C] .text:100044A4 STR R5, [R4,#0x44] .text:100044A8 SUB R0, R0, R3 .text:100044AC LDMFD SP!, {R4-R7,LR} .text:100044B0 BX LR .text:100044B0 ; End of function sub_10004434 .text:100044B0 .text:100044B4 .text:100044B4 ; =============== S U B R O U T I N E ======================================= .text:100044B4 .text:100044B4 .text:100044B4 sub_100044B4 ; DATA XREF: .text:100011D8o .text:100044B4 ; .pdata:1000C298o .text:100044B4 STMFD SP!, {R4-R10,LR} .text:100044B8 MOV R8, R3 .text:100044BC MOV R4, R2 .text:100044C0 MOV R7, R1 .text:100044C4 MOV R5, R0 .text:100044C8 LDR R2, [R5,#0x10] .text:100044CC CMP R2, #0 .text:100044D0 BEQ loc_10004584 .text:100044D4 LDR R2, [R5,#0x38] .text:100044D8 CMP R2, #0 .text:100044DC BNE loc_100044F4 .text:100044E0 LDR LR, [R5,#0x5E8] .text:100044E4 ADD R2, R5, #0x500 .text:100044E8 ADD R2, R2, #0xE8 .text:100044EC CMP LR, R2 .text:100044F0 BEQ loc_10004584 .text:100044F4 .text:100044F4 loc_100044F4 ; CODE XREF: sub_100044B4+28j .text:100044F4 CMP R7, R4 .text:100044F8 BCS loc_10004570 .text:100044FC ADD R2, R5, #0x500 .text:10004500 ADD R10, R2, #0xE8 .text:10004504 .text:10004504 loc_10004504 ; CODE XREF: sub_100044B4+B8j .text:10004504 MOV R0, R5 .text:10004508 BL sub_10004434 .text:1000450C CMP R0, #0 .text:10004510 BEQ loc_10004520 .text:10004514 ADD R6, R7, R0,LSL#2 .text:10004518 CMP R6, R4 .text:1000451C BLS loc_10004524 .text:10004520 .text:10004520 loc_10004520 ; CODE XREF: sub_100044B4+5Cj .text:10004520 MOV R6, R4 .text:10004524 .text:10004524 loc_10004524 ; CODE XREF: sub_100044B4+68j .text:10004524 LDR R2, [R5,#0x60C] .text:10004528 SUB R3, R6, R7 .text:1000452C LDR R9, [R5,#0x5E8] .text:10004530 ADD R3, R2, R3,LSR#2 .text:10004534 STR R3, [R5,#0x60C] .text:10004538 B loc_1000455C .text:1000453C ; --------------------------------------------------------------------------- .text:1000453C .text:1000453C loc_1000453C ; CODE XREF: sub_100044B4+ACj .text:1000453C MOV R0, R9 .text:10004540 LDR R9, [R9] .text:10004544 MOV R3, R8 .text:10004548 MOV R2, R6 .text:1000454C MOV R1, R7 .text:10004550 BL sub_100047E4 .text:10004554 CMP R8, R0 .text:10004558 MOVCC R8, R0 .text:1000455C .text:1000455C loc_1000455C ; CODE XREF: sub_100044B4+84j .text:1000455C CMP R9, R10 .text:10004560 BNE loc_1000453C .text:10004564 MOV R7, R6 .text:10004568 CMP R6, R4 .text:1000456C BCC loc_10004504 .text:10004570 .text:10004570 loc_10004570 ; CODE XREF: sub_100044B4+44j .text:10004570 SUB R2, R4, R8 .text:10004574 MOV R1, #0 .text:10004578 MOV R0, R8 .text:1000457C BL memset .text:10004580 B loc_10004588 .text:10004584 ; --------------------------------------------------------------------------- .text:10004584 .text:10004584 loc_10004584 ; CODE XREF: sub_100044B4+1Cj .text:10004584 ; sub_100044B4+3Cj .text:10004584 MOV R4, R7 .text:10004588 .text:10004588 loc_10004588 ; CODE XREF: sub_100044B4+CCj .text:10004588 MOV R0, R4 .text:1000458C LDMFD SP!, {R4-R10,LR} .text:10004590 BX LR .text:10004590 ; End of function sub_100044B4 .text:10004590 .text:10004594 .text:10004594 ; =============== S U B R O U T I N E ======================================= .text:10004594 .text:10004594 .text:10004594 sub_10004594 ; CODE XREF: sub_10001C10+520p .text:10004594 ; DATA XREF: .pdata:1000C2A0o .text:10004594 STMFD SP!, {R4,R5,LR} .text:10004598 MOV R4, R0 .text:1000459C BL sub_1000438C .text:100045A0 LDR R3, [R4,#0x10] .text:100045A4 MOV R5, R0 .text:100045A8 CMP R3, #0 .text:100045AC LDRNE R2, [R4,#0x5E8] .text:100045B0 ADDNE R3, R4, #0x500 .text:100045B4 ADDNE R3, R3, #0xE8 .text:100045B8 CMPNE R2, R3 .text:100045BC LDRNE R0, [R4,#0x50] .text:100045C0 MOVNE R1, R4 .text:100045C4 LDRNE R3, [R0] .text:100045C8 LDRNE R3, [R3,#0xC] .text:100045CC MOVNE LR, PC .text:100045D0 BXNE R3 .text:100045D4 CMP R5, #0 .text:100045D8 MOVEQ R0, #0 .text:100045DC LDMEQFD SP!, {R4,R5,LR} .text:100045E0 MOVNE R0, #1 .text:100045E4 LDMNEFD SP!, {R4,R5,LR} .text:100045E8 BX LR .text:100045E8 ; End of function sub_10004594 .text:100045E8 .text:100045EC .text:100045EC ; =============== S U B R O U T I N E ======================================= .text:100045EC .text:100045EC .text:100045EC sub_100045EC ; CODE XREF: sub_100047E4+5Cp .text:100045EC ; DATA XREF: .pdata:1000C2A8o .text:100045EC .text:100045EC var_4 = -4 .text:100045EC arg_4 = 4 .text:100045EC .text:100045EC STR LR, [SP,#var_4]! .text:100045F0 LDR R2, [R1,#4] .text:100045F4 LDR R3, [R1] .text:100045F8 ADD LR, R0, #0x5F0 .text:100045FC STR R3, [R2] .text:10004600 LDR R2, [R1] .text:10004604 LDR R3, [R1,#4] .text:10004608 STR R3, [R2,#4] .text:1000460C LDR R3, [LR,#4] .text:10004610 STR LR, [R1] .text:10004614 STR R3, [R1,#4] .text:10004618 STR R1, [R3] .text:1000461C STR R1, [LR,#4] .text:10004620 BL sub_10002E34 .text:10004624 LDR LR, [SP],#arg_4 .text:10004628 BX LR .text:10004628 ; End of function sub_100045EC .text:10004628 .text:1000462C .text:1000462C ; =============== S U B R O U T I N E ======================================= .text:1000462C .text:1000462C .text:1000462C sub_1000462C ; CODE XREF: sub_10003F78+18p .text:1000462C ; sub_10004084+40p .text:1000462C ; DATA XREF: ... .text:1000462C STMFD SP!, {R4,LR} .text:10004630 MOV R4, R0 .text:10004634 LDR R1, [R4,#0x20] .text:10004638 LDR R0, [R4,#8] .text:1000463C BL sub_10003FA8 .text:10004640 STR R0, [R4,#0x24] .text:10004644 LDMFD SP!, {R4,LR} .text:10004648 BX LR .text:10004648 ; End of function sub_1000462C .text:10004648 .text:1000464C .text:1000464C ; =============== S U B R O U T I N E ======================================= .text:1000464C .text:1000464C .text:1000464C sub_1000464C ; CODE XREF: sub_10004148+24p .text:1000464C ; sub_100042D8+A0p ... .text:1000464C STMFD SP!, {R4,LR} .text:10004650 MOV R4, R0 .text:10004654 LDR R3, [R4,#0x18] .text:10004658 LDR R0, [R4,#0x1C] .text:1000465C RSB R3, R3, #0 .text:10004660 BIC R1, R3, #0x80000000 .text:10004664 BL __rt_udiv .text:10004668 ADD R3, R0, #1 .text:1000466C MOV R0, #0 .text:10004670 MOV R3, R3,LSL#2 .text:10004674 STR R3, [R4,#0x28] .text:10004678 LDMFD SP!, {R4,LR} .text:1000467C BX LR .text:1000467C ; End of function sub_1000464C .text:1000467C .text:10004680 .text:10004680 ; =============== S U B R O U T I N E ======================================= .text:10004680 .text:10004680 .text:10004680 sub_10004680 ; CODE XREF: sub_100047E4+1Cp .text:10004680 ; sub_100047E4+48p .text:10004680 ; DATA XREF: ... .text:10004680 STMFD SP!, {R4-R11,LR} .text:10004684 MOV R9, R3 .text:10004688 MOV R7, R2 .text:1000468C LDR R6, [R0,#0x18] .text:10004690 LDR R10, [R0,#0x1C] .text:10004694 LDR R11, [R0,#0x24] .text:10004698 CMP R1, R7 .text:1000469C BCS loc_1000471C .text:100046A0 MOV R5, #0x7F00 .text:100046A4 LDR R8, =dword_10001450 .text:100046A8 ORR R5, R5, #0xFF .text:100046AC .text:100046AC loc_100046AC ; CODE XREF: sub_10004680+98j .text:100046AC MOV LR, R6,LSR#24 .text:100046B0 ADD LR, R8, LR,LSL#1 .text:100046B4 LDRSH R4, [LR] .text:100046B8 ADD R6, R6, R10 .text:100046BC CMP R1, R9 .text:100046C0 MUL LR, R4, R11 .text:100046C4 MOV R4, LR,ASR#16 .text:100046C8 MOV LR, R4 .text:100046CC BCS loc_10004708 .text:100046D0 LDRSH R3, [R1] .text:100046D4 LDRSH R2, [R1,#2] .text:100046D8 ADD R4, R4, R3 .text:100046DC CMP R4, R5 .text:100046E0 MOVGT R4, R5 .text:100046E4 CMNLE R4, #0x8000 .text:100046E8 MOVLT R4, #0 .text:100046EC ADD LR, LR, R2 .text:100046F0 SUBLT R4, R4, #0x8000 .text:100046F4 CMP LR, R5 .text:100046F8 MOVGT LR, R5 .text:100046FC CMNLE LR, #0x8000 .text:10004700 MOVLLT LR, 0xFFFF8000 .text:10004708 .text:10004708 loc_10004708 ; CODE XREF: sub_10004680+4Cj .text:10004708 STRH R4, [R1] .text:1000470C STRH LR, [R1,#2] .text:10004710 ADD R1, R1, #4 .text:10004714 CMP R1, R7 .text:10004718 BCC loc_100046AC .text:1000471C .text:1000471C loc_1000471C ; CODE XREF: sub_10004680+1Cj .text:1000471C STR R6, [R0,#0x18] .text:10004720 MOV R0, R1 .text:10004724 LDMFD SP!, {R4-R11,LR} .text:10004728 BX LR .text:10004728 ; End of function sub_10004680 .text:10004728 .text:10004728 ; --------------------------------------------------------------------------- .text:1000472C off_1000472C DCD dword_10001450 ; DATA XREF: sub_10004680+24r .text:10004730 .text:10004730 ; =============== S U B R O U T I N E ======================================= .text:10004730 .text:10004730 .text:10004730 sub_10004730 ; CODE XREF: sub_10004084+7Cp .text:10004730 ; DATA XREF: .pdata:1000C2C8o .text:10004730 .text:10004730 arg_0 = 0 .text:10004730 .text:10004730 STMFD SP!, {R4-R7,LR} .text:10004734 MOV R7, R2 .text:10004738 MOV R4, R1 .text:1000473C MOV R6, R0 .text:10004740 LDR R5, [SP,#0x14+arg_0] .text:10004744 MOV LR, R3,LSL#9 .text:10004748 MOVL R2, 0xFFFFFFFF .text:1000474C MOV R1, LR .text:10004750 MOV R0, R4 .text:10004754 STR R5, [R6,#0x14] .text:10004758 STR R4, [R6,#8] .text:1000475C STR R7, [R6,#0xC] .text:10004760 STR R2, [R6,#0x28] .text:10004764 STR R3, [R6,#0x10] .text:10004768 STR LR, [R6,#0x20] .text:1000476C BL sub_10003FA8 .text:10004770 MOV R3, #0 .text:10004774 CMP R5, #0x10 .text:10004778 STR R3, [R6,#0x18] .text:1000477C MOVLEQ R3, 0x17C70 .text:10004784 MULEQ R3, R7, R3 .text:10004788 STR R0, [R6,#0x24] .text:1000478C BEQ loc_100047CC .text:10004790 LDR R3, =0xAAAAAAAB .text:10004794 LDR R1, =dword_10001420 .text:10004798 UMULL R3, R2, R7, R3 .text:1000479C MOV R2, R2,LSR#3 .text:100047A0 ADD R3, R2, R2,LSL#1 .text:100047A4 SUB R3, R7, R3,LSL#2 .text:100047A8 SUB R2, R2, #5 .text:100047AC LDR R1, [R1,R3,LSL#2] .text:100047B0 CMP R2, #0 .text:100047B4 STR R1, [R6,#0x1C] .text:100047B8 MOVGT R3, R1,LSL R2 .text:100047BC BGT loc_100047CC .text:100047C0 BPL loc_100047D0 .text:100047C4 RSB R3, R2, #0 .text:100047C8 MOV R3, R1,LSR R3 .text:100047CC .text:100047CC loc_100047CC ; CODE XREF: sub_10004730+5Cj .text:100047CC ; sub_10004730+8Cj .text:100047CC STR R3, [R6,#0x1C] .text:100047D0 .text:100047D0 loc_100047D0 ; CODE XREF: sub_10004730+90j .text:100047D0 MOV R0, #0 .text:100047D4 LDMFD SP!, {R4-R7,LR} .text:100047D8 BX LR .text:100047D8 ; End of function sub_10004730 .text:100047D8 .text:100047D8 ; --------------------------------------------------------------------------- .text:100047DC off_100047DC DCD dword_10001420 ; DATA XREF: sub_10004730+64r .text:100047E0 dword_100047E0 DCD 0xAAAAAAAB ; DATA XREF: sub_10004730+60r .text:100047E4 .text:100047E4 ; =============== S U B R O U T I N E ======================================= .text:100047E4 .text:100047E4 .text:100047E4 sub_100047E4 ; CODE XREF: sub_100044B4+9Cp .text:100047E4 ; DATA XREF: .pdata:1000C2D0o .text:100047E4 STMFD SP!, {R4-R6,LR} .text:100047E8 MOV LR, R3 .text:100047EC MOV R4, R0 .text:100047F0 LDR R0, [R4,#0x28] .text:100047F4 CMN R0, #1 .text:100047F8 BNE loc_1000480C .text:100047FC MOV R0, R4 .text:10004800 BL sub_10004680 .text:10004804 MOV R6, R0 .text:10004808 B loc_10004844 .text:1000480C ; --------------------------------------------------------------------------- .text:1000480C .text:1000480C loc_1000480C ; CODE XREF: sub_100047E4+14j .text:1000480C SUB R3, R2, R1 .text:10004810 CMP R0, R3 .text:10004814 SUBHI R5, R0, R3 .text:10004818 MOVLS R5, #0 .text:1000481C ADDLS R2, R0, R1 .text:10004820 MOV R3, LR .text:10004824 MOV R0, R4 .text:10004828 STR R5, [R4,#0x28] .text:1000482C BL sub_10004680 .text:10004830 CMP R5, #0 .text:10004834 MOV R6, R0 .text:10004838 LDREQ R0, [R4,#8] .text:1000483C MOVEQ R1, R4 .text:10004840 BLEQ sub_100045EC .text:10004844 .text:10004844 loc_10004844 ; CODE XREF: sub_100047E4+24j .text:10004844 MOV R0, R6 .text:10004848 LDMFD SP!, {R4-R6,LR} .text:1000484C BX LR .text:1000484C ; End of function sub_100047E4 .text:1000484C .text:10004850 .text:10004850 ; =============== S U B R O U T I N E ======================================= .text:10004850 .text:10004850 .text:10004850 sub_10004850 ; CODE XREF: sub_10008BD4+1C8p .text:10004850 ; DATA XREF: .pdata:1000C2D8o .text:10004850 STMFD SP!, {R4-R6,LR} .text:10004854 MOV R5, R0 .text:10004858 MOV R3, #1 .text:1000485C MOV R2, #0x2000 .text:10004860 MOV R1, #0x7000 .text:10004864 MOV R0, #0 .text:10004868 MOV R6, #0 .text:1000486C BL VirtualAlloc .text:10004870 MOVS R4, R0 .text:10004874 BEQ loc_100048B0 .text:10004878 MOVL R1, 0xA0200000 .text:10004880 MOV R3, #0x204 .text:10004884 MOV R2, #0x7000 .text:10004888 MOV R0, R4 .text:1000488C BL VirtualCopy .text:10004890 MOVS R6, R0 .text:10004894 ADDNE R3, R4, #0x1C00 .text:10004898 ADDNE R2, R4, #0x3800 .text:1000489C ADDNE R1, R4, #0x5400 .text:100048A0 STRNE R3, [R5,#0xFC] .text:100048A4 STRNE R2, [R5,#0xF0] .text:100048A8 STRNE R1, [R5,#0xF4] .text:100048AC STRNE R4, [R5,#0xF8] .text:100048B0 .text:100048B0 loc_100048B0 ; CODE XREF: sub_10004850+24j .text:100048B0 MOV R0, R6 .text:100048B4 LDMFD SP!, {R4-R6,LR} .text:100048B8 BX LR .text:100048B8 ; End of function sub_10004850 .text:100048B8 .text:100048BC .text:100048BC ; =============== S U B R O U T I N E ======================================= .text:100048BC .text:100048BC .text:100048BC sub_100048BC ; CODE XREF: sub_10008710+70p .text:100048BC ; DATA XREF: .pdata:1000C2E0o .text:100048BC STMFD SP!, {R4,R5,LR} .text:100048C0 LDR R3, =(aSsss+4) .text:100048C4 ADD R5, R0, R1,LSL#2 .text:100048C8 LDR R4, [R5,#0xF0] .text:100048CC LDR R2, [R3] .text:100048D0 MOV R3, #0 .text:100048D4 MOV R1, R4 .text:100048D8 ADD R2, R2, R4 .text:100048DC ADD R0, R0, #0xA8 .text:100048E0 BL sub_10002780 .text:100048E4 RSB R0, R4, R0 .text:100048E8 STR R0, [R5,#0x108] .text:100048EC LDMFD SP!, {R4,R5,LR} .text:100048F0 BX LR .text:100048F0 ; End of function sub_100048BC .text:100048F0 .text:100048F0 ; --------------------------------------------------------------------------- .text:100048F4 off_100048F4 DCD aSsss+4 ; DATA XREF: sub_100048BC+4r .text:100048F8 .text:100048F8 ; =============== S U B R O U T I N E ======================================= .text:100048F8 .text:100048F8 .text:100048F8 sub_100048F8 ; CODE XREF: sub_10008410+64p .text:100048F8 ; sub_10008410+78p ... .text:100048F8 STMFD SP!, {R4-R6,LR} .text:100048FC LDR R3, =(aSsss+4) .text:10004900 ADD R6, R0, R1,LSL#2 .text:10004904 LDR R4, [R6,#0xF8] .text:10004908 LDR R2, [R3] .text:1000490C MOV R3, #0 .text:10004910 MOV R1, R4 .text:10004914 ADD R5, R2, R4 .text:10004918 MOV R2, R5 .text:1000491C ADD R0, R0, #0xCC .text:10004920 BL sub_10002780 .text:10004924 SUB R4, R0, R4 .text:10004928 SUB R2, R5, R0 .text:1000492C MOV R1, #0 .text:10004930 STR R4, [R6,#0x100] .text:10004934 BL memset .text:10004938 MOV R0, R4 .text:1000493C LDMFD SP!, {R4-R6,LR} .text:10004940 BX LR .text:10004940 ; End of function sub_100048F8 .text:10004940 .text:10004940 ; --------------------------------------------------------------------------- .text:10004944 off_10004944 DCD aSsss+4 ; DATA XREF: sub_100048F8+4r .text:10004948 .text:10004948 ; =============== S U B R O U T I N E ======================================= .text:10004948 .text:10004948 .text:10004948 sub_10004948 ; CODE XREF: sub_10008BD4+270p .text:10004948 ; DATA XREF: .pdata:1000C2F0o .text:10004948 .text:10004948 var_18 = -0x18 .text:10004948 .text:10004948 STMFD SP!, {R4-R7,LR} .text:1000494C SUB SP, SP, #4 .text:10004950 MOV R3, #0 .text:10004954 STR R3, [SP,#0x18+var_18] .text:10004958 LDR R2, [SP,#0x18+var_18] .text:1000495C MOVL R3, 0xFFFFE000 .text:10004964 AND R3, R2, R3 .text:10004968 ORR R3, R3, #0x1C00 .text:1000496C STR R3, [SP,#0x18+var_18] .text:10004970 LDR R3, [SP,#0x18+var_18] .text:10004974 LDR R7, =unk_1000B534 .text:10004978 LDR R2, =0xA020A820 .text:1000497C ORR R3, R3, #0xC000 .text:10004980 STR R3, [SP,#0x18+var_18] .text:10004984 LDR R3, [SP,#0x18+var_18] .text:10004988 LDR LR, [R7,#4] .text:1000498C LDR R6, =0x40500040 .text:10004990 ORR R3, R3, #0x30000 .text:10004994 STR R3, [SP,#0x18+var_18] .text:10004998 LDR R3, [SP,#0x18+var_18] .text:1000499C MOVL R1, 0xA0200000 .text:100049A4 BIC R3, R3, #0x40000 .text:100049A8 STR R3, [SP,#0x18+var_18] .text:100049AC LDR R3, [SP,#0x18+var_18] .text:100049B0 LDR R4, =0xA020A800 .text:100049B4 LDR R5, =0xA0201C00 .text:100049B8 BIC R3, R3, #0x80000 .text:100049BC STR R3, [SP,#0x18+var_18] .text:100049C0 LDR R3, [SP,#0x18+var_18] .text:100049C4 MOV R0, #1 .text:100049C8 BIC R3, R3, #0x100000 .text:100049CC STR R3, [SP,#0x18+var_18] .text:100049D0 LDR R3, [SP,#0x18+var_18] .text:100049D4 ORR R3, R3, #0x200000 .text:100049D8 STR R3, [SP,#0x18+var_18] .text:100049DC LDR R3, [SP,#0x18+var_18] .text:100049E0 BIC R3, R3, #0x400000 .text:100049E4 STR R3, [SP,#0x18+var_18] .text:100049E8 LDR R3, [SP,#0x18+var_18] .text:100049EC ORR R3, R3, #0x10000000 .text:100049F0 STR R3, [SP,#0x18+var_18] .text:100049F4 LDR R3, [SP,#0x18+var_18] .text:100049F8 BIC R3, R3, #0x20000000 .text:100049FC STR R3, [SP,#0x18+var_18] .text:10004A00 LDR R3, [SP,#0x18+var_18] .text:10004A04 BIC R3, R3, #0x40000000 .text:10004A08 STR R3, [SP,#0x18+var_18] .text:10004A0C LDR R3, [SP,#0x18+var_18] .text:10004A10 ORR R3, R3, #0x80000000 .text:10004A14 STR R3, [SP,#0x18+var_18] .text:10004A18 STR R2, [LR] .text:10004A1C LDR R3, [R7,#4] .text:10004A20 STR R6, [R3,#8] .text:10004A24 LDR R3, [R7,#4] .text:10004A28 STR R1, [R3,#4] .text:10004A2C LDR R2, [R7,#4] .text:10004A30 LDR R3, [SP,#0x18+var_18] .text:10004A34 STR R3, [R2,#0xC] .text:10004A38 LDR R3, [R7] .text:10004A3C STR R4, [R3] .text:10004A40 LDR R3, [R7] .text:10004A44 STR R6, [R3,#8] .text:10004A48 LDR R3, [R7] .text:10004A4C STR R5, [R3,#4] .text:10004A50 LDR R2, [R7] .text:10004A54 LDR R3, [SP,#0x18+var_18] .text:10004A58 STR R3, [R2,#0xC] .text:10004A5C ADD SP, SP, #4 .text:10004A60 LDMFD SP!, {R4-R7,LR} .text:10004A64 BX LR .text:10004A64 ; End of function sub_10004948 .text:10004A64 .text:10004A64 ; --------------------------------------------------------------------------- .text:10004A68 dword_10004A68 DCD 0xA0201C00 ; DATA XREF: sub_10004948+6Cr .text:10004A6C dword_10004A6C DCD 0xA020A800 ; DATA XREF: sub_10004948+68r .text:10004A70 dword_10004A70 DCD 0x40500040 ; DATA XREF: sub_10004948+44r .text:10004A74 dword_10004A74 DCD 0xA020A820 ; DATA XREF: sub_10004948+30r .text:10004A78 off_10004A78 DCD unk_1000B534 ; DATA XREF: sub_10004948+2Cr .text:10004A7C .text:10004A7C ; =============== S U B R O U T I N E ======================================= .text:10004A7C .text:10004A7C .text:10004A7C sub_10004A7C ; CODE XREF: sub_10008BD4+268p .text:10004A7C ; DATA XREF: .pdata:1000C2F8o .text:10004A7C .text:10004A7C var_18 = -0x18 .text:10004A7C .text:10004A7C STMFD SP!, {R4-R7,LR} .text:10004A80 SUB SP, SP, #4 .text:10004A84 MOV R3, #0 .text:10004A88 STR R3, [SP,#0x18+var_18] .text:10004A8C LDR R2, [SP,#0x18+var_18] .text:10004A90 MOVL R3, 0xFFFFE000 .text:10004A98 AND R3, R2, R3 .text:10004A9C ORR R3, R3, #0x1C00 .text:10004AA0 STR R3, [SP,#0x18+var_18] .text:10004AA4 LDR R3, [SP,#0x18+var_18] .text:10004AA8 LDR R7, =unk_1000B52C .text:10004AAC LDR R1, =0xA020A860 .text:10004AB0 ORR R3, R3, #0xC000 .text:10004AB4 STR R3, [SP,#0x18+var_18] .text:10004AB8 LDR R3, [SP,#0x18+var_18] .text:10004ABC LDR LR, [R7,#4] .text:10004AC0 LDR R2, =0xA0203800 .text:10004AC4 ORR R3, R3, #0x30000 .text:10004AC8 STR R3, [SP,#0x18+var_18] .text:10004ACC LDR R3, [SP,#0x18+var_18] .text:10004AD0 LDR R6, =0x40500040 .text:10004AD4 LDR R4, =0xA020A840 .text:10004AD8 BIC R3, R3, #0x40000 .text:10004ADC STR R3, [SP,#0x18+var_18] .text:10004AE0 LDR R3, [SP,#0x18+var_18] .text:10004AE4 LDR R5, =0xA0205400 .text:10004AE8 MOV R0, #1 .text:10004AEC BIC R3, R3, #0x80000 .text:10004AF0 STR R3, [SP,#0x18+var_18] .text:10004AF4 LDR R3, [SP,#0x18+var_18] .text:10004AF8 BIC R3, R3, #0x100000 .text:10004AFC STR R3, [SP,#0x18+var_18] .text:10004B00 LDR R3, [SP,#0x18+var_18] .text:10004B04 ORR R3, R3, #0x200000 .text:10004B08 STR R3, [SP,#0x18+var_18] .text:10004B0C LDR R3, [SP,#0x18+var_18] .text:10004B10 BIC R3, R3, #0x400000 .text:10004B14 STR R3, [SP,#0x18+var_18] .text:10004B18 LDR R3, [SP,#0x18+var_18] .text:10004B1C BIC R3, R3, #0x10000000 .text:10004B20 STR R3, [SP,#0x18+var_18] .text:10004B24 LDR R3, [SP,#0x18+var_18] .text:10004B28 ORR R3, R3, #0x20000000 .text:10004B2C STR R3, [SP,#0x18+var_18] .text:10004B30 LDR R3, [SP,#0x18+var_18] .text:10004B34 ORR R3, R3, #0x40000000 .text:10004B38 STR R3, [SP,#0x18+var_18] .text:10004B3C LDR R3, [SP,#0x18+var_18] .text:10004B40 BIC R3, R3, #0x80000000 .text:10004B44 STR R3, [SP,#0x18+var_18] .text:10004B48 STR R1, [LR] .text:10004B4C LDR R3, [R7,#4] .text:10004B50 STR R2, [R3,#8] .text:10004B54 LDR R3, [R7,#4] .text:10004B58 STR R6, [R3,#4] .text:10004B5C LDR R2, [R7,#4] .text:10004B60 LDR R3, [SP,#0x18+var_18] .text:10004B64 STR R3, [R2,#0xC] .text:10004B68 LDR R3, [R7] .text:10004B6C STR R4, [R3] .text:10004B70 LDR R3, [R7] .text:10004B74 STR R5, [R3,#8] .text:10004B78 LDR R3, [R7] .text:10004B7C STR R6, [R3,#4] .text:10004B80 LDR R2, [R7] .text:10004B84 LDR R3, [SP,#0x18+var_18] .text:10004B88 STR R3, [R2,#0xC] .text:10004B8C ADD SP, SP, #4 .text:10004B90 LDMFD SP!, {R4-R7,LR} .text:10004B94 BX LR .text:10004B94 ; End of function sub_10004A7C .text:10004B94 .text:10004B94 ; --------------------------------------------------------------------------- .text:10004B98 dword_10004B98 DCD 0xA0205400 ; DATA XREF: sub_10004A7C+68r .text:10004B9C dword_10004B9C DCD 0xA020A840 ; DATA XREF: sub_10004A7C+58r .text:10004BA0 dword_10004BA0 DCD 0x40500040 ; DATA XREF: sub_10004A7C+54r .text:10004BA4 dword_10004BA4 DCD 0xA0203800 ; DATA XREF: sub_10004A7C+44r .text:10004BA8 dword_10004BA8 DCD 0xA020A860 ; DATA XREF: sub_10004A7C+30r .text:10004BAC off_10004BAC DCD unk_1000B52C ; DATA XREF: sub_10004A7C+2Cr .text:10004BB0 .text:10004BB0 ; =============== S U B R O U T I N E ======================================= .text:10004BB0 .text:10004BB0 .text:10004BB0 sub_10004BB0 ; CODE XREF: sub_10001C10+4BCp .text:10004BB0 ; sub_100033AC+30p ... .text:10004BB0 CMP R1, #0 .text:10004BB4 LDR R3, [R0,#0x118] .text:10004BB8 ADDNE R3, R3, #1 .text:10004BBC SUBEQ R3, R3, #1 .text:10004BC0 STR R3, [R0,#0x118] .text:10004BC4 MOV R0, #0 .text:10004BC8 BX LR .text:10004BC8 ; End of function sub_10004BB0 .text:10004BC8 .text:10004BCC .text:10004BCC ; =============== S U B R O U T I N E ======================================= .text:10004BCC @ RJK: ac97_register_write(r0=???, r1=reg, r2=value, r3=length of bytes) .text:10004BCC .text:10004BCC sub_10004BCC ; CODE XREF: sub_10001C10+438p .text:10004BCC ; sub_10001C10+44Cp ... .text:10004BCC STMFD SP!, {R4,LR} .text:10004BD0 MOV LR, R2 .text:10004BD4 MOV R4, R1 .text:10004BD8 LDR R0, [R0,#4] .text:10004BDC MOV R2, R3 @ r2 = forth arg .text:10004BE0 MOV R1, LR @ r1 = third arg .text:10004BE4 CMP R0, #0 .text:10004BE8 MOV R0, R4 @ r0 = reg .text:10004BEC BEQ loc_10004BFC .text:10004BF0 BL sub_10009628 @ call real_ac97_reg_write(reg, value) .text:10004BF4 LDMFD SP!, {R4,LR} .text:10004BF8 BX LR .text:10004BFC ; --------------------------------------------------------------------------- .text:10004BFC .text:10004BFC loc_10004BFC ; CODE XREF: sub_10004BCC+20j .text:10004BFC BL sub_100098D0 @ ac97.reg == 0 => call .text:10004C00 LDMFD SP!, {R4,LR} .text:10004C04 BX LR .text:10004C04 ; End of function sub_10004BCC .text:10004C04 .text:10004C08 .text:10004C08 ; =============== S U B R O U T I N E ======================================= .text:10004C08 @ RJK: ac97_register_read(r0=?, r1=reg, r2=addr of reg.val to be stored) .text:10004C08 .text:10004C08 sub_10004C08 ; CODE XREF: sub_10004C44+20p .text:10004C08 ; sub_10004C44+38p ... .text:10004C08 STMFD SP!, {R4,LR} .text:10004C0C MOV LR, R2 .text:10004C10 MOV R4, R1 .text:10004C14 LDR R0, [R0,#4] .text:10004C18 MOV R2, R3 .text:10004C1C MOV R1, LR .text:10004C20 CMP R0, #0 .text:10004C24 MOV R0, R4 .text:10004C28 BEQ loc_10004C38 .text:10004C2C BL sub_100095E8 @ call real_ac97_reg_read(reg, &val) .text:10004C30 LDMFD SP!, {R4,LR} .text:10004C34 BX LR .text:10004C38 ; --------------------------------------------------------------------------- .text:10004C38 .text:10004C38 loc_10004C38 ; CODE XREF: sub_10004C08+20j .text:10004C38 BL sub_10009898 .text:10004C3C LDMFD SP!, {R4,LR} .text:10004C40 BX LR .text:10004C40 ; End of function sub_10004C08 .text:10004C40 .text:10004C44 .text:10004C44 ; =============== S U B R O U T I N E ======================================= .text:10004C44 .text:10004C44 .text:10004C44 sub_10004C44 ; CODE XREF: sub_10001C10+36Cp .text:10004C44 ; DATA XREF: .pdata:1000C318o .text:10004C44 .text:10004C44 var_10 = -0x10 .text:10004C44 .text:10004C44 STMFD SP!, {R4,R5,LR} .text:10004C48 SUB SP, SP, #4 .text:10004C4C MOV R5, R1 .text:10004C50 MOV R4, R0 .text:10004C54 LDR LR, [R5] .text:10004C58 MOV R3, #2 .text:10004C5C ADD R2, R5, #8 .text:10004C60 AND R1, LR, #0xFF .text:10004C64 BL sub_10004C08 .text:10004C68 LDR LR, [R5] .text:10004C6C MOV R3, #2 .text:10004C70 ADD R2, SP, #0x10+var_10 .text:10004C74 AND R1, LR, #0xFF .text:10004C78 MOV R0, R4 .text:10004C7C BL sub_10004C08 .text:10004C80 LDRH R3, [SP,#0x10+var_10] .text:10004C84 MOV R2, #0 .text:10004C88 STR R2, [R5,#0xC] .text:10004C8C STR R3, [R5,#8] .text:10004C90 ADD SP, SP, #4 .text:10004C94 LDMFD SP!, {R4,R5,LR} .text:10004C98 BX LR .text:10004C98 ; End of function sub_10004C44 .text:10004C98 .text:10004C9C .text:10004C9C ; =============== S U B R O U T I N E ======================================= .text:10004C9C .text:10004C9C .text:10004C9C sub_10004C9C ; CODE XREF: sub_10001C10+494p .text:10004C9C ; DATA XREF: .pdata:1000C320o .text:10004C9C .text:10004C9C var_10 = -0x10 .text:10004C9C .text:10004C9C STMFD SP!, {R4,R5,LR} .text:10004CA0 SUB SP, SP, #4 .text:10004CA4 MOV R5, R1 .text:10004CA8 MOV R4, R0 .text:10004CAC LDR R3, [R5,#4] .text:10004CB0 LDR LR, [R5] .text:10004CB4 MOV R2, #2 .text:10004CB8 MOV R1, R3,LSL#16 .text:10004CBC AND R0, LR, #0xFF .text:10004CC0 MOV R1, R1,LSR#16 .text:10004CC4 BL sub_10009908 .text:10004CC8 LDR LR, [R5] .text:10004CCC MOV R3, #2 .text:10004CD0 ADD R2, SP, #0x10+var_10 .text:10004CD4 AND R1, LR, #0xFF .text:10004CD8 MOV R0, R4 .text:10004CDC BL sub_10004C08 .text:10004CE0 LDR R3, [R5] .text:10004CE4 CMP R3, #0x64 .text:10004CE8 BEQ loc_10004CFC .text:10004CEC LDRH R3, [R5,#4] .text:10004CF0 LDRH R2, [SP,#0x10+var_10] .text:10004CF4 CMP R2, R3 .text:10004CF8 BNE loc_10004D04 .text:10004CFC .text:10004CFC loc_10004CFC ; CODE XREF: sub_10004C9C+4Cj .text:10004CFC MOV R3, #0 .text:10004D00 B loc_10004D08 .text:10004D04 ; --------------------------------------------------------------------------- .text:10004D04 .text:10004D04 loc_10004D04 ; CODE XREF: sub_10004C9C+5Cj .text:10004D04 MVN R3, #0 .text:10004D08 .text:10004D08 loc_10004D08 ; CODE XREF: sub_10004C9C+64j .text:10004D08 STR R3, [R5,#0xC] .text:10004D0C ADD SP, SP, #4 .text:10004D10 LDMFD SP!, {R4,R5,LR} .text:10004D14 BX LR .text:10004D14 ; End of function sub_10004C9C .text:10004D14 .text:10004D18 .text:10004D18 ; =============== S U B R O U T I N E ======================================= .text:10004D18 .text:10004D18 .text:10004D18 sub_10004D18 ; CODE XREF: sub_10004D84+F8p .text:10004D18 ; DATA XREF: .pdata:1000C328o .text:10004D18 .text:10004D18 var_4 = -4 .text:10004D18 arg_4 = 4 .text:10004D18 .text:10004D18 STR LR, [SP,#var_4]! .text:10004D1C LDR R3, [R0,#0x10] .text:10004D20 CMP R3, #1 .text:10004D24 BEQ loc_10004D54 .text:10004D28 CMP R3, #2 .text:10004D2C BEQ loc_10004D38 .text:10004D30 CMP R3, #3 .text:10004D34 BNE loc_10004D7C .text:10004D38 .text:10004D38 loc_10004D38 ; CODE XREF: sub_10004D18+14j .text:10004D38 MOV R3, #0 .text:10004D3C MOV R2, #4 .text:10004D40 MOV R1, #0 .text:10004D44 MOV R0, #0x73 .text:10004D48 BL keybd_event .text:10004D4C MOV R0, #0x73 .text:10004D50 B loc_10004D6C .text:10004D54 ; --------------------------------------------------------------------------- .text:10004D54 .text:10004D54 loc_10004D54 ; CODE XREF: sub_10004D18+Cj .text:10004D54 MOV R3, #0 .text:10004D58 MOV R2, #4 .text:10004D5C MOV R1, #0 .text:10004D60 MOV R0, #0x72 .text:10004D64 BL keybd_event .text:10004D68 MOV R0, #0x72 .text:10004D6C .text:10004D6C loc_10004D6C ; CODE XREF: sub_10004D18+38j .text:10004D6C MOV R3, #0 .text:10004D70 MOV R2, #6 .text:10004D74 MOV R1, #0 .text:10004D78 BL keybd_event .text:10004D7C .text:10004D7C loc_10004D7C ; CODE XREF: sub_10004D18+1Cj .text:10004D7C LDR LR, [SP],#arg_4 .text:10004D80 BX LR .text:10004D80 ; End of function sub_10004D18 .text:10004D80 .text:10004D84 .text:10004D84 ; =============== S U B R O U T I N E ======================================= .text:10004D84 @ RJK Begin_Thread_2_core() .text:10004D84 .text:10004D84 sub_10004D84 ; CODE XREF: sub_10005028+4p .text:10004D84 ; DATA XREF: .pdata:1000C330o .text:10004D84 .text:10004D84 var_38 = -0x38 .text:10004D84 var_34 = -0x34 .text:10004D84 var_30 = -0x30 .text:10004D84 var_2C = -0x2C .text:10004D84 var_28 = -0x28 .text:10004D84 var_24 = -0x24 .text:10004D84 var_20 = -0x20 .text:10004D84 var_1C = -0x1C .text:10004D84 var_18 = -0x18 .text:10004D84 .text:10004D84 STMFD SP!, {R4-R7,LR} .text:10004D88 SUB SP, SP, #0x24 .text:10004D8C MOV R4, R0 .text:10004D90 MOV R3, #0 .text:10004D94 STR R3, [SP,#0x38+var_20] .text:10004D98 MOV R3, #0 .text:10004D9C MOV R2, #0 .text:10004DA0 MOV R1, #0 .text:10004DA4 MOV R0, #0 .text:10004DA8 BL CreateEventW .text:10004DAC CMP R0, #0 .text:10004DB0 STR R0, [R4,#0x30] .text:10004DB4 BEQ loc_10005004 .text:10004DB8 MOV R1, R0 .text:10004DBC MOV R0, #0x16 .text:10004DC0 MOV R3, #0 .text:10004DC4 MOV R2, #0 .text:10004DC8 BL InterruptInitialize .text:10004DCC CMP R0, #0 .text:10004DD0 BEQ loc_10005004 .text:10004DD4 MOVL R0, 0xFFFFFFFF .text:10004DD8 BL SetProcPermissions .text:10004DDC LDR R5, =unk_1000B51C .text:10004DE0 MOV R7, #0 .text:10004DE4 .text:10004DE4 loc_10004DE4 ; CODE XREF: sub_10004D84+27Cj .text:10004DE4 LDR R0, [R4,#0x30] .text:10004DE8 MOVL R1, 0xFFFFFFFF .text:10004DEC BL WaitForSingleObject .text:10004DF0 ADD R0, R4, #0x50 .text:10004DF4 BL EnterCriticalSection .text:10004DF8 LDR R3, [R4,#0x10] .text:10004DFC SUB R3, R3, #1 .text:10004E00 CMP R3, #2 .text:10004E04 BHI loc_10004E84 .text:10004E08 LDR R3, [R4,#0x1C] .text:10004E0C MOV R6, #0 .text:10004E10 CMP R3, #0 .text:10004E14 BEQ loc_10004FF0 .text:10004E18 .text:10004E18 loc_10004E18 ; CODE XREF: sub_10004D84+CCj .text:10004E18 LDR R2, [R5,#0xC] .text:10004E1C CMP R6, #0x1E .text:10004E20 BGE loc_10004E60 .text:10004E24 LDR R3, [R2,#0x100] .text:10004E28 TST R3, #8 .text:10004E2C BNE loc_10004E58 .text:10004E30 LDR R3, [R2] .text:10004E34 TST R3, #0x1000 .text:10004E38 BEQ loc_10004E58 .text:10004E3C MOV R0, #2 .text:10004E40 ADD R6, R6, #1 .text:10004E44 BL Sleep .text:10004E48 LDR R3, [R4,#0x1C] .text:10004E4C CMP R3, #0 .text:10004E50 BNE loc_10004E18 .text:10004E54 LDR R2, [R5,#0xC] .text:10004E58 .text:10004E58 loc_10004E58 ; CODE XREF: sub_10004D84+A8j .text:10004E58 ; sub_10004D84+B4j .text:10004E58 CMP R6, #0x1E .text:10004E5C BLT loc_10004FF0 .text:10004E60 .text:10004E60 loc_10004E60 ; CODE XREF: sub_10004D84+9Cj .text:10004E60 LDR R3, [R4,#0x1C] .text:10004E64 CMP R3, #0 .text:10004E68 BEQ loc_10004FF0 .text:10004E6C LDR R3, [R2] .text:10004E70 TST R3, #0x1000 .text:10004E74 BEQ loc_10004FF0 .text:10004E78 MOV R0, R4 .text:10004E7C BL sub_10004D18 .text:10004E80 B loc_10004FF0 .text:10004E84 ; --------------------------------------------------------------------------- .text:10004E84 .text:10004E84 loc_10004E84 ; CODE XREF: sub_10004D84+80j .text:10004E84 LDR R3, [R5] .text:10004E88 CMP R3, #0 .text:10004E8C BEQ loc_10004EA4 .text:10004E90 LDR R0, [R5,#4] .text:10004E94 MOV R1, #3 .text:10004E98 BL EventModify .text:10004E9C MOV R3, #0 .text:10004EA0 STR R3, [R5] .text:10004EA4 .text:10004EA4 loc_10004EA4 ; CODE XREF: sub_10004D84+108j .text:10004EA4 LDR R3, [R4,#0x1C] .text:10004EA8 CMP R3, #0 .text:10004EAC BEQ loc_10004FF0 .text:10004EB0 LDR R2, [R5,#0xC] .text:10004EB4 LDR R3, [R2] .text:10004EB8 TST R3, #0x1000 .text:10004EBC BEQ loc_10004FF0 .text:10004EC0 MOV R6, #0 .text:10004EC4 .text:10004EC4 loc_10004EC4 ; CODE XREF: sub_10004D84+178j .text:10004EC4 CMP R6, #0x78 .text:10004EC8 BGE loc_10004F24 .text:10004ECC LDR R3, [R2,#0x100] @ R3 = GPLR3 .text:10004ED0 TST R3, #8 .text:10004ED4 BNE loc_10004F00 .text:10004ED8 LDR R3, [R2] .text:10004EDC TST R3, #0x1000 .text:10004EE0 BEQ loc_10004F00 .text:10004EE4 MOV R0, #0xA .text:10004EE8 ADD R6, R6, #1 .text:10004EEC BL Sleep .text:10004EF0 LDR R3, [R4,#0x1C] .text:10004EF4 LDR R2, [R5,#0xC] .text:10004EF8 CMP R3, #0 .text:10004EFC BNE loc_10004EC4 .text:10004F00 .text:10004F00 loc_10004F00 ; CODE XREF: sub_10004D84+150j .text:10004F00 ; sub_10004D84+15Cj .text:10004F00 CMP R6, #0x78 .text:10004F04 BGE loc_10004F24 .text:10004F08 ADD R0, R4, #0x50 .text:10004F0C BL LeaveCriticalSection .text:10004F10 LDR R2, [R5,#0xC] .text:10004F14 LDR R3, [R2,#0x130] .text:10004F18 BIC R3, R3, #8 .text:10004F1C STR R3, [R2,#0x130] .text:10004F20 B loc_10004FF8 .text:10004F24 ; --------------------------------------------------------------------------- .text:10004F24 .text:10004F24 loc_10004F24 ; CODE XREF: sub_10004D84+144j .text:10004F24 ; sub_10004D84+180j .text:10004F24 LDR R3, [R2,#0x100] .text:10004F28 TST R3, #8 .text:10004F2C BNE loc_10004FF0 .text:10004F30 MOV R0, #0x11 .text:10004F34 BL IsAPIReady .text:10004F38 LDR R1, =aVoiceSpeedDial .text:10004F3C LDR R0, =aDialog .text:10004F40 BL FindWindowW .text:10004F44 CMP R0, #0 .text:10004F48 BNE loc_10004FF0 .text:10004F4C LDR R3, =aSddialeropen .text:10004F50 MOV R2, #0 .text:10004F54 MOV R1, #0 .text:10004F58 MOV R0, #0 .text:10004F5C BL CreateEventW .text:10004F60 LDR R1, =aSoftwareOemVoi .text:10004F64 ADD R3, SP, #0x38+var_20 .text:10004F68 STR R3, [SP,#0x38+var_38] .text:10004F6C MOV R3, #0 .text:10004F70 MOV R2, #0 .text:10004F74 MOV R0, #0x80000002 .text:10004F78 BL RegOpenKeyExW .text:10004F7C CMP R0, #0 .text:10004F80 BNE loc_10004FF0 .text:10004F84 MOV R3, #0x100 .text:10004F88 MOV R0, #0x200 .text:10004F8C STR R3, [SP,#0x38+var_1C] .text:10004F90 BL __2_YAPAXI_Z ; operator new(uint) .text:10004F94 LDR R1, =aPath .text:10004F98 MOV R6, R0 .text:10004F9C LDR R0, [SP,#0x38+var_20] .text:10004FA0 ADD LR, SP, #0x38+var_1C .text:10004FA4 ADD R3, SP, #0x38+var_18 .text:10004FA8 MOV R2, #0 .text:10004FAC STR LR, [SP,#0x38+var_34] .text:10004FB0 STR R6, [SP,#0x38+var_38] .text:10004FB4 BL RegQueryValueExW .text:10004FB8 CMP R0, #0 .text:10004FBC BNE loc_10004FF0 .text:10004FC0 MOV R3, #0x20000 .text:10004FC4 STR R3, [SP,#0x38+var_34] .text:10004FC8 MOV R3, #0 .text:10004FCC MOV R2, #0 .text:10004FD0 MOV R1, #0 .text:10004FD4 MOV R0, R6 .text:10004FD8 STR R7, [SP,#0x38+var_24] .text:10004FDC STR R7, [SP,#0x38+var_28] .text:10004FE0 STR R7, [SP,#0x38+var_2C] .text:10004FE4 STR R7, [SP,#0x38+var_30] .text:10004FE8 STR R7, [SP,#0x38+var_38] .text:10004FEC BL CreateProcessW .text:10004FF0 .text:10004FF0 loc_10004FF0 ; CODE XREF: sub_10004D84+90j .text:10004FF0 ; sub_10004D84+D8j ... .text:10004FF0 ADD R0, R4, #0x50 .text:10004FF4 BL LeaveCriticalSection .text:10004FF8 .text:10004FF8 loc_10004FF8 ; CODE XREF: sub_10004D84+19Cj .text:10004FF8 MOV R0, #0x16 .text:10004FFC BL InterruptDone .text:10005000 B loc_10004DE4 .text:10005004 ; --------------------------------------------------------------------------- .text:10005004 .text:10005004 loc_10005004 ; CODE XREF: sub_10004D84+30j .text:10005004 ; sub_10004D84+4Cj .text:10005004 ADD SP, SP, #0x24 .text:10005008 LDMFD SP!, {R4-R7,LR} .text:1000500C BX LR .text:1000500C ; End of function sub_10004D84 .text:1000500C .text:1000500C ; --------------------------------------------------------------------------- .text:10005010 off_10005010 DCD aPath ; DATA XREF: sub_10004D84+210r .text:10005010 ; "Path" .text:10005014 off_10005014 DCD aSoftwareOemVoi ; DATA XREF: sub_10004D84+1DCr .text:10005014 ; "Software\\OEM\\VoiceCommand" .text:10005018 off_10005018 DCD aSddialeropen ; DATA XREF: sub_10004D84+1C8r .text:10005018 ; "SDDialerOpen" .text:1000501C off_1000501C DCD aDialog ; DATA XREF: sub_10004D84+1B8r .text:1000501C ; "dialog" .text:10005020 off_10005020 DCD aVoiceSpeedDial ; DATA XREF: sub_10004D84+1B4r .text:10005020 ; "Voice Speed Dial" .text:10005024 off_10005024 DCD unk_1000B51C ; DATA XREF: sub_10004D84+58r .text:10005028 .text:10005028 ; =============== S U B R O U T I N E ======================================= .text:10005028 @ RJK Begin_Thread_2() .text:10005028 .text:10005028 sub_10005028 ; DATA XREF: .text:off_10008E84o .text:10005028 ; .pdata:1000C338o .text:10005028 .text:10005028 var_4 = -4 .text:10005028 arg_4 = 4 .text:10005028 .text:10005028 STR LR, [SP,#var_4]! .text:1000502C BL sub_10004D84 .text:10005030 LDR LR, [SP],#arg_4 .text:10005034 BX LR .text:10005034 ; End of function sub_10005028 .text:10005034 .text:10005038 .text:10005038 ; =============== S U B R O U T I N E ======================================= .text:10005038 .text:10005038 .text:10005038 sub_10005038 ; CODE XREF: sub_10008BD4+210p .text:10005038 ; DATA XREF: .pdata:1000C340o .text:10005038 .text:10005038 var_C = -0xC .text:10005038 var_8 = -8 .text:10005038 var_4 = -4 .text:10005038 arg_4 = 4 .text:10005038 .text:10005038 STR LR, [SP,#var_4]! .text:1000503C SUB SP, SP, #0xC .text:10005040 LDR R3, =unk_1000B528 .text:10005044 LDR R0, [R3] .text:10005048 CMP R0, #0 .text:1000504C MOVEQ R0, #0 .text:10005050 BEQ loc_10005078 .text:10005054 MOV R1, #0x63 .text:10005058 STR R1, [SP,#0xC+var_4] .text:1000505C MOV R3, #2 .text:10005060 MOV R2, #0xC .text:10005064 ADD R1, SP, #0xC+var_C .text:10005068 STR R3, [SP,#0xC+var_C] .text:1000506C STR R2, [SP,#0xC+var_8] .text:10005070 BL sub_10008F20 .text:10005074 MOV R0, #1 .text:10005078 .text:10005078 loc_10005078 ; CODE XREF: sub_10005038+18j .text:10005078 ADD SP, SP, #0xC .text:1000507C LDR LR, [SP],#arg_4 .text:10005080 BX LR .text:10005080 ; End of function sub_10005038 .text:10005080 .text:10005080 ; --------------------------------------------------------------------------- .text:10005084 off_10005084 DCD unk_1000B528 ; DATA XREF: sub_10005038+8r .text:10005088 .text:10005088 ; =============== S U B R O U T I N E ======================================= .text:10005088 .text:10005088 .text:10005088 sub_10005088 ; CODE XREF: sub_10007C94+94p .text:10005088 ; DATA XREF: .pdata:1000C348o .text:10005088 STMFD SP!, {R4,LR} .text:1000508C MOV R4, R0 .text:10005090 MOV R3, #2 .text:10005094 MOV R2, #0 .text:10005098 MOV R1, #0x26 .text:1000509C BL sub_10004BCC @ ac97.0x26 = 0 .text:100050A0 MOV R3, #2 .text:100050A4 MOV R2, #0 .text:100050A8 MOV R1, #0x3C .text:100050AC MOV R0, R4 .text:100050B0 BL sub_10004BCC @ ac97.0x3c = 0 .text:100050B4 MOV R3, #2 .text:100050B8 MOV R2, #0 .text:100050BC MOV R1, #0x3E .text:100050C0 MOV R0, R4 .text:100050C4 BL sub_10004BCC @ ac97.0x3e = 0 .text:100050C8 MOV R0, #1 .text:100050CC LDMFD SP!, {R4,LR} .text:100050D0 BX LR .text:100050D0 ; End of function sub_10005088 .text:100050D0 .text:100050D4 .text:100050D4 ; =============== S U B R O U T I N E ======================================= .text:100050D4 .text:100050D4 .text:100050D4 sub_100050D4 ; CODE XREF: sub_10001C10+12Cp .text:100050D4 ; DATA XREF: .pdata:1000C350o .text:100050D4 LDR R3, =aSsss .text:100050D8 LDR R0, [R3] .text:100050DC BX LR .text:100050DC ; End of function sub_100050D4 .text:100050DC .text:100050DC ; --------------------------------------------------------------------------- .text:100050E0 off_100050E0 DCD aSsss ; DATA XREF: sub_100050D4r .text:100050E0 ; "ÖÖÖÖ" .text:100050E4 .text:100050E4 ; =============== S U B R O U T I N E ======================================= .text:100050E4 .text:100050E4 .text:100050E4 sub_100050E4 ; CODE XREF: sub_10005368+44p .text:100050E4 ; sub_10007C94+9Cp ... .text:100050E4 STMFD SP!, {R4,R5,LR} .text:100050E8 MOV R5, R0 .text:100050EC LDR R1, [R5,#0xC] ; r1= GCR .text:100050F0 MOVL R2, 0x7FFF .text:100050F8 CMP R1, #7 .text:100050FC MOV R4, R2 .text:10005100 BHI loc_10005338 .text:10005104 MOV R3, R1,LSL#1 ; r3 = r1*2 .text:10005108 ADD R3, R3, PC ; r3 = 0x5110 + r1*2 .text:1000510C LDRH R3, [R3,#4] ; r3 = [0x5114 + r1*2] .text:10005110 ADD PC, PC, R3 ; pc = 0x5118 + [0x5114 + r1*2] .text:10005110 ; --------------------------------------------------------------------------- .text:10005114 DCD 0x0018_000C, 0x00A8_0074, 0x0014_000F0, 0x01E8_0190, 0xE3A02DEF .text:10005114 DCD 0xE382203F, 0xEA00003B, 0xE5953028, 0xE3530001, 0x3A02033 .text:10005114 DCD 0x3A04C31, 0xA00007C, 0xE59F3218, 0xE5933000, 0xE3530002 .text:10005114 DCD 0x3A02C2B, 0x3A04CFF, 0x3822003, 0x38440FF, 0xA000074 .text:10005114 DCD 0xE3530001, 0x3A04CF9, 0xE3A02C3B, 0x38440FF, 0x3822033 .text:10005114 DCD 0xA00006E, 0xE3A04DF9, 0xE384403F, 0xE382203D, 0xEA00006A .text:10005114 DCD 0xE59F31D0, 0xE5933000, 0xE3530002, 0x3A02D8B, 0x382200E .text:10005114 DCD 0xA00001E, 0xE3A02C6B, 0xE38220CF, 0xE3530001, 0xE3A04DFF .text:10005114 DCD 0x1A000025, 0xE384401F, 0xEA00005D, 0xE59F319C, 0xE5933000 .text:10005114 DCD 0xE3530004, 0x3A02DEF, 0x3A04EE6, 0x3822030, 0x3844005 .text:10005114 DCD 0xA000055, 0xE3530002, 0x3A02DAF, 0xA000022, 0xE3530001 .text:10005114 DCD 0x1A00004D, 0xE3A02DEF, 0xE3A04D27, 0xE3822032, 0xE384400F .text:10005114 DCD 0xEA00004B, 0xE59F3154, 0xE5933000, 0xE3530002, 0x1A000004 .text:10005114 DCD 0xE3A02C22, 0xE3822002, 0xE3A04DFF, 0xE384403F, 0xEA000042 .text:10005114 DCD 0xE3530001, 0x3A02C2A, 0x3A04DE6, 0x3822003, 0x3844010 .text:10005114 DCD 0xA00003C, 0xE3A02C2B, 0xE382200D, 0xE3A04DF9, 0xE384403D .text:10005114 DCD 0xEA000037, 0xE59F3104, 0xE5933000, 0xE3530004, 0x3A02C2A .text:10005114 DCD 0xA000013, 0xE3530002, 0x1A000004, 0xE3A02C2B, 0xE3A04CCF .text:10005114 DCD 0xE38440EF, 0xE3822002, 0xEA00002B, 0xE3530001, 0x3A04D66 .text:10005114 DCD 0xE3A02C23, 0x3844003, 0x3822002, 0xA000025, 0xE3A04E26 .text:10005114 DCD 0xEA000022, 0xE59F30B4, 0xE5933000, 0xE3530004, 0x1A000004 .text:10005114 DCD 0xE3A02C22, 0xE3A04EE6, 0xE3822002, 0xE384400D, 0xEA00001A .text:10005114 DCD 0xE3530002, 0x3A02D8F, 0x3A04D7F, 0x3822002, 0x384402D .text:10005114 DCD 0xA000014, 0xE3530001, 0xE3A02C23, 0x1A00000F, 0xE3A04D67 .text:10005114 DCD 0xE384400F, 0xE3822002, 0xEA00000D, 0xE59F305C, 0xE5933000 .text:10005114 DCD 0xE3530004, 0xAFFFFE9, 0xE3530002, 0x3A02C23, 0x3A04D67 .text:10005114 DCD 0xAFFFFE7, 0xE3530001, 0x3A02C23, 0xAFFFFF0, 0xE3A02C23 .text:10005114 DCD 0xE3A04E3E, 0xE3844001 .text:10005338 ; --------------------------------------------------------------------------- .text:10005338 .text:10005338 loc_10005338 ; CODE XREF: sub_100050E4+1Cj .text:10005338 MOV R3, #2 .text:1000533C MOV R1, #0x3C .text:10005340 MOV R0, R5 .text:10005344 BL sub_10004BCC @ ac97.0x3c = r2 .text:10005348 MOV R3, #2 .text:1000534C ORR R2, R4, #1 .text:10005350 MOV R1, #0x3E .text:10005354 MOV R0, R5 .text:10005358 BL sub_10004BCC @ ac97.0x3e = r4 | 1 .text:1000535C LDMFD SP!, {R4,R5,LR} .text:10005360 BX LR .text:10005360 ; End of function sub_100050E4 .text:10005360 .text:10005360 ; --------------------------------------------------------------------------- .text:10005364 DCD unk_1000B514 .text:10005368 .text:10005368 ; =============== S U B R O U T I N E ======================================= .text:10005368 .text:10005368 .text:10005368 sub_10005368 ; DATA XREF: .text:off_100079C8o .text:10005368 ; .pdata:1000C360o .text:10005368 STMFD SP!, {R4-R6,LR} .text:1000536C MOV R6, #0x100 .text:10005370 LDR R4, =unk_1000B50C .text:10005374 ORR R6, R6, #2 .text:10005378 .text:10005378 loc_10005378 ; CODE XREF: sub_10005368+8Cj .text:10005378 MVN R5, #0 .text:1000537C .text:1000537C loc_1000537C ; CODE XREF: sub_10005368+3Cj .text:1000537C ; sub_10005368+A0j .text:1000537C MOV R3, R5 .text:10005380 MOV R2, #0 .text:10005384 MOV R1, R4 .text:10005388 MOV R0, #2 .text:1000538C BL WaitForMultipleObjects .text:10005390 CMP R0, #0 .text:10005394 BEQ loc_1000540C .text:10005398 CMP R0, #1 .text:1000539C BEQ loc_100053F8 .text:100053A0 CMP R0, R6 .text:100053A4 BNE loc_1000537C .text:100053A8 LDR R0, [R4,#0x3C] .text:100053AC BL sub_100050E4 .text:100053B0 LDR R3, [R4,#0x3C] .text:100053B4 LDR LR, [R3,#0x44] .text:100053B8 LDRB R0, [LR,#0x420] .text:100053BC LDRB R3, [LR,#0x421] .text:100053C0 LDRB R2, [LR,#0x422] .text:100053C4 LDRB R1, [LR,#0x423] .text:100053C8 ORR R3, R0, R3,LSL#8 .text:100053CC ORR R3, R3, R2,LSL#16 .text:100053D0 ORR R3, R3, R1,LSL#24 .text:100053D4 BIC R2, R3, #8 .text:100053D8 .text:100053D8 loc_100053D8 ; CODE XREF: sub_10005368+D8j .text:100053D8 MOV R3, R2,LSR#8 .text:100053DC STRB R2, [LR,#0x420] .text:100053E0 STRB R3, [LR,#0x421] .text:100053E4 MOV R3, R2,LSR#16 .text:100053E8 STRB R3, [LR,#0x422] .text:100053EC MOV R3, R2,LSR#24 .text:100053F0 STRB R3, [LR,#0x423] .text:100053F4 B loc_10005378 .text:100053F8 ; --------------------------------------------------------------------------- .text:100053F8 .text:100053F8 loc_100053F8 ; CODE XREF: sub_10005368+34j .text:100053F8 LDR R0, [R4,#4] .text:100053FC MOV R1, #2 .text:10005400 BL EventModify .text:10005404 MOV R5, #0xFA0 .text:10005408 B loc_1000537C .text:1000540C ; --------------------------------------------------------------------------- .text:1000540C .text:1000540C loc_1000540C ; CODE XREF: sub_10005368+2Cj .text:1000540C LDR R0, [R4] .text:10005410 MOV R1, #2 .text:10005414 BL EventModify .text:10005418 LDR R3, [R4,#0x3C] .text:1000541C LDR LR, [R3,#0x44] .text:10005420 LDRB R0, [LR,#0x420] .text:10005424 LDRB R3, [LR,#0x421] .text:10005428 LDRB R2, [LR,#0x422] .text:1000542C LDRB R1, [LR,#0x423] .text:10005430 ORR R3, R0, R3,LSL#8 .text:10005434 ORR R3, R3, R2,LSL#16 .text:10005438 ORR R3, R3, R1,LSL#24 .text:1000543C ORR R2, R3, #8 .text:10005440 B loc_100053D8 .text:10005440 ; End of function sub_10005368 .text:10005440 .text:10005440 ; --------------------------------------------------------------------------- .text:10005444 off_10005444 DCD unk_1000B50C ; DATA XREF: sub_10005368+8r .text:10005448 .text:10005448 ; =============== S U B R O U T I N E ======================================= .text:10005448 .text:10005448 .text:10005448 sub_10005448 ; CODE XREF: sub_100059BC+120p .text:10005448 ; sub_100059BC+184p ... .text:10005448 .text:10005448 var_10 = -0x10 .text:10005448 .text:10005448 STMFD SP!, {R4,R5,LR} .text:1000544C SUB SP, SP, #4 .text:10005450 CMP R1, #0 .text:10005454 MOV R4, R0 .text:10005458 MOV R3, #2 .text:1000545C ADD R2, SP, #0x10+var_10 .text:10005460 MOV R1, #0x56 .text:10005464 BEQ loc_10005510 .text:10005468 BL sub_10004C08 .text:1000546C LDRH R3, [SP,#0x10+var_10] .text:10005470 MOV R1, #0x56 .text:10005474 MOV R0, R4 .text:10005478 ORR R2, R3, #0x100 .text:1000547C MOV R3, #2 .text:10005480 STRH R2, [SP,#0x10+var_10] .text:10005484 BL sub_10004BCC .text:10005488 MOV R3, #2 .text:1000548C ADD R2, SP, #0x10+var_10 .text:10005490 MOV R1, #0x4C .text:10005494 MOV R0, R4 .text:10005498 BL sub_10004C08 .text:1000549C LDRH R3, [SP,#0x10+var_10] .text:100054A0 MOVL R5, 0xFEFF .text:100054A8 AND R2, R3, R5 .text:100054AC MOV R3, #2 .text:100054B0 MOV R1, #0x4C .text:100054B4 MOV R0, R4 .text:100054B8 STRH R2, [SP,#0x10+var_10] .text:100054BC BL sub_10004BCC .text:100054C0 MOV R3, #2 .text:100054C4 ADD R2, SP, #0x10+var_10 .text:100054C8 MOV R1, #0x54 .text:100054CC MOV R0, R4 .text:100054D0 BL sub_10004C08 .text:100054D4 LDRH R3, [SP,#0x10+var_10] .text:100054D8 MOV R1, #0x54 .text:100054DC MOV R0, R4 .text:100054E0 ORR R2, R3, #0x100 .text:100054E4 MOV R3, #2 .text:100054E8 STRH R2, [SP,#0x10+var_10] .text:100054EC BL sub_10004BCC .text:100054F0 MOV R3, #2 .text:100054F4 ADD R2, SP, #0x10+var_10 .text:100054F8 MOV R1, #0x4E .text:100054FC MOV R0, R4 .text:10005500 BL sub_10004C08 .text:10005504 LDRH R3, [SP,#0x10+var_10] .text:10005508 AND R2, R3, R5 .text:1000550C B loc_100055B4 .text:10005510 ; --------------------------------------------------------------------------- .text:10005510 .text:10005510 loc_10005510 ; CODE XREF: sub_10005448+1Cj .text:10005510 BL sub_10004C08 .text:10005514 LDRH R3, [SP,#0x10+var_10] .text:10005518 MOV R1, #0x56 .text:1000551C MOV R0, R4 .text:10005520 ORR R2, R3, #0x100 .text:10005524 MOV R3, #2 .text:10005528 STRH R2, [SP,#0x10+var_10] .text:1000552C BL sub_10004BCC .text:10005530 MOV R3, #2 .text:10005534 ADD R2, SP, #0x10+var_10 .text:10005538 MOV R1, #0x4C .text:1000553C MOV R0, R4 .text:10005540 BL sub_10004C08 .text:10005544 LDRH R3, [SP,#0x10+var_10] .text:10005548 MOVL R5, 0xFEFF .text:10005550 AND R2, R3, R5 .text:10005554 MOV R3, #2 .text:10005558 MOV R1, #0x4C .text:1000555C MOV R0, R4 .text:10005560 STRH R2, [SP,#0x10+var_10] .text:10005564 BL sub_10004BCC .text:10005568 MOV R3, #2 .text:1000556C ADD R2, SP, #0x10+var_10 .text:10005570 MOV R1, #0x54 .text:10005574 MOV R0, R4 .text:10005578 BL sub_10004C08 .text:1000557C LDRH R3, [SP,#0x10+var_10] .text:10005580 MOV R1, #0x54 .text:10005584 MOV R0, R4 .text:10005588 AND R2, R3, R5 .text:1000558C MOV R3, #2 .text:10005590 STRH R2, [SP,#0x10+var_10] .text:10005594 BL sub_10004BCC .text:10005598 MOV R3, #2 .text:1000559C ADD R2, SP, #0x10+var_10 .text:100055A0 MOV R1, #0x4E .text:100055A4 MOV R0, R4 .text:100055A8 BL sub_10004C08 .text:100055AC LDRH R3, [SP,#0x10+var_10] .text:100055B0 ORR R2, R3, #0x100 .text:100055B4 .text:100055B4 loc_100055B4 ; CODE XREF: sub_10005448+C4j .text:100055B4 MOV R3, #2 .text:100055B8 MOV R1, #0x4E .text:100055BC MOV R0, R4 .text:100055C0 STRH R2, [SP,#0x10+var_10] .text:100055C4 BL sub_10004BCC .text:100055C8 ADD SP, SP, #4 .text:100055CC LDMFD SP!, {R4,R5,LR} .text:100055D0 BX LR .text:100055D0 ; End of function sub_10005448 .text:100055D0 .text:100055D4 .text:100055D4 ; =============== S U B R O U T I N E ======================================= .text:100055D4 .text:100055D4 .text:100055D4 sub_100055D4 ; CODE XREF: sub_10001C10+320p .text:100055D4 ; DATA XREF: .pdata:1000C370o .text:100055D4 STMFD SP!, {R4,LR} .text:100055D8 MOV R4, R1 .text:100055DC LDR R3, =aPttButtonIsPre .text:100055E0 MOV R2, #0 .text:100055E4 MOV R1, #0 .text:100055E8 MOV R0, #0 .text:100055EC BL CreateEventW .text:100055F0 LDR R3, =unk_1000B51C .text:100055F4 CMP R0, #0 .text:100055F8 STR R0, [R3,#4] .text:100055FC BEQ loc_1000560C .text:10005600 CMP R4, #0 .text:10005604 STR R4, [R3] .text:10005608 BLEQ CloseHandle .text:1000560C .text:1000560C loc_1000560C ; CODE XREF: sub_100055D4+28j .text:1000560C LDMFD SP!, {R4,LR} .text:10005610 BX LR .text:10005610 ; End of function sub_100055D4 .text:10005610 .text:10005610 ; --------------------------------------------------------------------------- .text:10005614 off_10005614 DCD unk_1000B51C ; DATA XREF: sub_100055D4+1Cr .text:10005618 off_10005618 DCD aPttButtonIsPre ; DATA XREF: sub_100055D4+8r .text:10005618 ; "PTT button is pressed" .text:1000561C .text:1000561C ; =============== S U B R O U T I N E ======================================= .text:1000561C .text:1000561C .text:1000561C sub_1000561C ; CODE XREF: sub_10008BD4+28Cp .text:1000561C ; DATA XREF: .pdata:1000C378o .text:1000561C STMFD SP!, {R4,LR} .text:10005620 LDR R4, =unk_1000B518 .text:10005624 LDR R3, [R4] .text:10005628 CMP R3, #0 .text:1000562C BNE loc_10005644 .text:10005630 LDR R2, =aWmlock_mutex_n .text:10005634 MOV R1, #0 .text:10005638 MOV R0, #0 .text:1000563C BL CreateMutexW .text:10005640 STR R0, [R4] .text:10005644 .text:10005644 loc_10005644 ; CODE XREF: sub_1000561C+10j .text:10005644 LDMFD SP!, {R4,LR} .text:10005648 BX LR .text:10005648 ; End of function sub_1000561C .text:10005648 .text:10005648 ; --------------------------------------------------------------------------- .text:1000564C off_1000564C DCD aWmlock_mutex_n ; DATA XREF: sub_1000561C+14r .text:1000564C ; "WMLOCK_MUTEX_NAME" .text:10005650 off_10005650 DCD unk_1000B518 ; DATA XREF: sub_1000561C+4r .text:10005654 .text:10005654 ; =============== S U B R O U T I N E ======================================= .text:10005654 .text:10005654 .text:10005654 sub_10005654 ; CODE XREF: sub_10005F5C+50p .text:10005654 ; sub_100061EC+64p ... .text:10005654 .text:10005654 var_C = -0xC .text:10005654 .text:10005654 STMFD SP!, {R4,LR} .text:10005658 SUB SP, SP, #4 .text:1000565C MOV R4, R0 .text:10005660 CMP R1, #2 .text:10005664 BNE loc_100056A0 .text:10005668 MOV R3, #2 .text:1000566C ADD R2, SP, #0xC+var_C .text:10005670 MOV R1, #0x4C .text:10005674 BL sub_10004C08 .text:10005678 LDRH R1, [SP,#0xC+var_C] .text:1000567C MOVL R2, 0xFFC5 .text:10005684 AND R2, R1, R2 .text:10005688 ORR R2, R2, #0x10 .text:1000568C MOV R3, #2 .text:10005690 MOV R1, #0x4C .text:10005694 MOV R0, R4 .text:10005698 STRH R2, [SP,#0xC+var_C] .text:1000569C BL sub_10004BCC .text:100056A0 .text:100056A0 loc_100056A0 ; CODE XREF: sub_10005654+10j .text:100056A0 MOV R0, #1 .text:100056A4 ADD SP, SP, #4 .text:100056A8 LDMFD SP!, {R4,LR} .text:100056AC BX LR .text:100056AC ; End of function sub_10005654 .text:100056AC .text:100056B0 .text:100056B0 ; =============== S U B R O U T I N E ======================================= .text:100056B0 .text:100056B0 .text:100056B0 sub_100056B0 ; CODE XREF: sub_10006420+50p .text:100056B0 ; sub_10006420+130p ... .text:100056B0 STMFD SP!, {R4,LR} .text:100056B4 MOV R4, R0 .text:100056B8 LDR R3, =unk_1000B514 .text:100056BC LDR R3, [R3] .text:100056C0 CMP R3, #2 .text:100056C4 BEQ loc_100056F8 .text:100056C8 CMP R3, #4 .text:100056CC BNE loc_10005740 .text:100056D0 LDR R3, [R4,#0x40] .text:100056D4 MOV R1, #0xE .text:100056D8 CMP R3, #2 .text:100056DC MOVLEQ R2, 0xE0E .text:100056E4 BEQ loc_10005734 .text:100056E8 MOVL R2, 0xF0F .text:100056F0 CMP R3, #1 .text:100056F4 B loc_10005734 .text:100056F8 ; --------------------------------------------------------------------------- .text:100056F8 .text:100056F8 loc_100056F8 ; CODE XREF: sub_100056B0+14j .text:100056F8 MOVL R2, 0xAA60 .text:10005700 MOV R3, #2 .text:10005704 MOV R1, #0x18 .text:10005708 MOV R0, R4 .text:1000570C BL sub_10004BCC .text:10005710 MOVL R2, 0xC40A .text:10005718 MOV R3, #2 .text:1000571C MOV R1, #8 .text:10005720 MOV R0, R4 .text:10005724 BL sub_10004BCC .text:10005728 MOVL R2, 0x808 .text:10005730 MOV R1, #0x12 .text:10005734 .text:10005734 loc_10005734 ; CODE XREF: sub_100056B0+34j .text:10005734 ; sub_100056B0+44j .text:10005734 MOV R0, R4 .text:10005738 MOV R3, #2 .text:1000573C BL sub_10004BCC .text:10005740 .text:10005740 loc_10005740 ; CODE XREF: sub_100056B0+1Cj .text:10005740 LDMFD SP!, {R4,LR} .text:10005744 BX LR .text:10005744 ; End of function sub_100056B0 .text:10005744 .text:10005744 ; --------------------------------------------------------------------------- .text:10005748 off_10005748 DCD unk_1000B514 ; DATA XREF: sub_100056B0+8r .text:1000574C .text:1000574C ; =============== S U B R O U T I N E ======================================= .text:1000574C @ RJK: Wav_Init2(pointer on array of 0x124 bytes) -> return r0 .text:1000574C .text:1000574C sub_1000574C ; CODE XREF: sub_10008EBC+30p .text:1000574C ; DATA XREF: .pdata:1000C390o .text:1000574C STMFD SP!, {R4,LR} .text:10005750 MOV R4, R0 .text:10005754 ADD R0, R4, #0xA8 .text:10005758 MOV R1, #0xFF00 .text:1000575C ADD R3, R0, #4 .text:10005760 ADD R2, R0, #0x14 .text:10005764 ORR R1, R1, #0xFF .text:10005768 STR R3, [R0,#8] .text:1000576C STR R3, [R0,#4] .text:10005770 ADD R3, R2, #0x10 .text:10005774 STR R1, [R0,#0xC] .text:10005778 STR R1, [R0,#0x10] .text:1000577C .text:1000577C loc_1000577C ; CODE XREF: sub_1000574C+38j .text:1000577C STR R1, [R2],#4 .text:10005780 CMP R2, R3 .text:10005784 BNE loc_1000577C .text:10005788 LDR R3, =off_10001654 .text:1000578C ADD LR, R4, #0xCC .text:10005790 ADD R2, LR, #4 .text:10005794 STR R3, [R0] @ [r0] = sub_1000269C .text:10005798 ADD R3, LR, #0x14 .text:1000579C STR R2, [LR,#8] .text:100057A0 STR R2, [LR,#4] .text:100057A4 ADD R2, R3, #0x10 .text:100057A8 STR R1, [LR,#0xC] .text:100057AC STR R1, [LR,#0x10] .text:100057B0 .text:100057B0 loc_100057B0 ; CODE XREF: sub_1000574C+6Cj .text:100057B0 STR R1, [R3],#4 .text:100057B4 CMP R3, R2 .text:100057B8 BNE loc_100057B0 .text:100057BC LDR R3, =off_10001668 .text:100057C0 ADD R0, R4, #0x50 .text:100057C4 STR R3, [LR] @ [lr] = sub_10002718 .text:100057C8 BL InitializeCriticalSection .text:100057CC MOV R3, #0 .text:100057D0 STR R3, [R4,#0x8C] .text:100057D4 MOV R0, R4 .text:100057D8 LDMFD SP!, {R4,LR} .text:100057DC BX LR .text:100057DC ; End of function sub_1000574C .text:100057DC .text:100057DC ; --------------------------------------------------------------------------- .text:100057E0 off_100057E0 DCD off_10001668 ; DATA XREF: sub_1000574C+70r .text:100057E4 off_100057E4 DCD off_10001654 ; DATA XREF: sub_1000574C+3Cr .text:100057E8 .text:100057E8 ; =============== S U B R O U T I N E ======================================= .text:100057E8 .text:100057E8 .text:100057E8 sub_100057E8 ; CODE XREF: WAV_Deinit+Cp .text:100057E8 ; DATA XREF: .pdata:1000C398o .text:100057E8 MOV R0, #1 .text:100057EC BX LR .text:100057EC ; End of function sub_100057E8 .text:100057EC .text:100057F0 .text:100057F0 ; =============== S U B R O U T I N E ======================================= .text:100057F0 .text:100057F0 .text:100057F0 sub_100057F0 ; CODE XREF: sub_10008BD4+5Cp .text:100057F0 ; sub_10008BD4+78p ... .text:100057F0 STMFD SP!, {R4-R6,LR} .text:100057F4 MOV R5, R2 .text:100057F8 MOV R6, R1 .text:100057FC MOV R3, #1 .text:10005800 MOV R2, #0x2000 .text:10005804 MOV R1, R5 .text:10005808 MOV R0, #0 .text:1000580C BL VirtualAlloc .text:10005810 MOVS R4, R0 .text:10005814 BEQ loc_10005834 .text:10005818 MOV R3, #0x204 .text:1000581C MOV R2, R5 .text:10005820 MOV R1, R6 .text:10005824 MOV R0, R4 .text:10005828 BL VirtualCopy .text:1000582C CMP R0, #0 .text:10005830 MOVEQ R4, #0 .text:10005834 .text:10005834 loc_10005834 ; CODE XREF: sub_100057F0+24j .text:10005834 MOV R0, R4 .text:10005838 LDMFD SP!, {R4-R6,LR} .text:1000583C BX LR .text:1000583C ; End of function sub_100057F0 .text:1000583C .text:10005840 .text:10005840 ; =============== S U B R O U T I N E ======================================= .text:10005840 .text:10005840 .text:10005840 sub_10005840 ; CODE XREF: sub_10008410+9Cp .text:10005840 ; sub_10008570+20p .text:10005840 ; DATA XREF: ... .text:10005840 .text:10005840 var_4 = -4 .text:10005840 arg_4 = 4 .text:10005840 .text:10005840 STR LR, [SP,#var_4]! .text:10005844 CMP R1, #0x1F40 .text:10005848 BEQ loc_100058A0 .text:1000584C MOVL R3, 0x2B11 .text:10005854 CMP R1, R3 .text:10005858 BEQ loc_100058A0 .text:1000585C CMP R1, #0x3E80 .text:10005860 BEQ loc_100058A0 .text:10005864 MOVL R3, 0x5622 .text:1000586C CMP R1, R3 .text:10005870 BEQ loc_100058A0 .text:10005874 CMP R1, #0x7D00 .text:10005878 BEQ loc_100058A0 .text:1000587C MOVL R3, 0xAC44 .text:10005884 CMP R1, R3 .text:10005888 MOVLNE R3, 0xBB80 .text:10005890 CMPNE R1, R3 .text:10005894 MOVNE R0, #0 .text:10005898 LDRNE LR, [SP],#arg_4 .text:1000589C BXNE LR .text:100058A0 .text:100058A0 loc_100058A0 ; CODE XREF: sub_10005840+8j .text:100058A0 ; sub_10005840+18j ... .text:100058A0 CMP R2, #0 .text:100058A4 MOV R2, R1 .text:100058A8 MOVEQ R1, #0x32 .text:100058AC MOVNE R1, #0x2C .text:100058B0 MOV R3, #2 .text:100058B4 BL sub_10004BCC .text:100058B8 LDR LR, [SP],#arg_4 .text:100058BC BX LR .text:100058BC ; End of function sub_10005840 .text:100058BC .text:100058C0 .text:100058C0 ; =============== S U B R O U T I N E ======================================= .text:100058C0 @ RJK: PowerDown(r0=ac97 base) .text:100058C0 .text:100058C0 sub_100058C0 ; CODE XREF: WAV_PowerDown+1Cp .text:100058C0 ; DATA XREF: .pdata:1000C3B0o .text:100058C0 STMFD SP!, {R4,LR} .text:100058C4 MOV R4, R0 .text:100058C8 LDR R3, [R4] .text:100058CC CMP R3, #1 .text:100058D0 BEQ loc_10005928 .text:100058D4 MOV R3, #1 .text:100058D8 STR R3, [R4] .text:100058DC MOV R3, #2 .text:100058E0 MOV R2, #0xFC00 .text:100058E4 MOV R1, #0x26 .text:100058E8 BL sub_10004BCC @ ac97.0x26 = 0xfc00 .text:100058EC MOVL R2, 0xFFFF .text:100058F4 MOV R3, #2 .text:100058F8 MOV R1, #0x3C .text:100058FC MOV R0, R4 .text:10005900 BL sub_10004BCC @ ac97.0x3c = 0xffff .text:10005904 MOVL R2, 0xFFFF .text:1000590C MOV R3, #2 .text:10005910 MOV R1, #0x3E .text:10005914 MOV R0, R4 .text:10005918 BL sub_10004BCC @ ac97.0x3e = 0xffff .text:1000591C LDR R0, [R4,#4] .text:10005920 MOV R1, #2 .text:10005924 BL sub_1000983C @ Store state in 0xa020b000 .text:10005928 .text:10005928 loc_10005928 ; CODE XREF: sub_100058C0+10j .text:10005928 LDMFD SP!, {R4,LR} .text:1000592C BX LR .text:1000592C ; End of function sub_100058C0 .text:1000592C .text:10005930 .text:10005930 ; =============== S U B R O U T I N E ======================================= .text:10005930 .text:10005930 .text:10005930 sub_10005930 ; CODE XREF: sub_10001C10+57Cp .text:10005930 ; DATA XREF: .pdata:1000C3B8o .text:10005930 .text:10005930 var_4 = -4 .text:10005930 arg_4 = 4 .text:10005930 .text:10005930 STR LR, [SP,#var_4]! .text:10005934 MOV R2, R2,LSL#16 .text:10005938 MOV R3, #2 .text:1000593C MOV R2, R2,LSR#16 .text:10005940 AND R1, R1, #0xFF .text:10005944 BL sub_10004BCC .text:10005948 MOV R3, R0,LSL#16 .text:1000594C MOV R3, R3,LSR#16 .text:10005950 CMP R3, #1 .text:10005954 MOVNE R0, #1 .text:10005958 LDRNE LR, [SP],#arg_4 .text:1000595C MOVEQ R0, #0 .text:10005960 LDREQ LR, [SP],#arg_4 .text:10005964 BX LR .text:10005964 ; End of function sub_10005930 .text:10005964 .text:10005968 .text:10005968 ; =============== S U B R O U T I N E ======================================= .text:10005968 .text:10005968 .text:10005968 sub_10005968 ; CODE XREF: sub_10001C10+568p .text:10005968 ; DATA XREF: .pdata:1000C3C0o .text:10005968 .text:10005968 var_C = -0xC .text:10005968 .text:10005968 STMFD SP!, {R4,LR} .text:1000596C SUB SP, SP, #4 .text:10005970 MOV R4, R2 .text:10005974 MOV R3, #0 .text:10005978 STRH R3, [SP,#0xC+var_C] .text:1000597C MOV R3, #2 .text:10005980 ADD R2, SP, #0xC+var_C .text:10005984 AND R1, R1, #0xFF .text:10005988 BL sub_10004C08 .text:1000598C MOV R3, R0,LSL#16 .text:10005990 MOV R3, R3,LSR#16 .text:10005994 CMP R3, #1 .text:10005998 MOVNE R0, #1 .text:1000599C BNE loc_100059B0 .text:100059A0 CMP R4, #0 .text:100059A4 LDRNEH R3, [SP,#0xC+var_C] .text:100059A8 MOV R0, #0 .text:100059AC STRNEH R3, [R4] .text:100059B0 .text:100059B0 loc_100059B0 ; CODE XREF: sub_10005968+34j .text:100059B0 ADD SP, SP, #4 .text:100059B4 LDMFD SP!, {R4,LR} .text:100059B8 BX LR .text:100059B8 ; End of function sub_10005968 .text:100059B8 .text:100059BC .text:100059BC ; =============== S U B R O U T I N E ======================================= .text:100059BC .text:100059BC .text:100059BC sub_100059BC ; CODE XREF: sub_10001C10+16Cp .text:100059BC ; sub_10007D54+1C8p .text:100059BC ; DATA XREF: ... .text:100059BC .text:100059BC var_1C = -0x1C .text:100059BC .text:100059BC STMFD SP!, {R4-R8,LR} .text:100059C0 SUB SP, SP, #4 .text:100059C4 MOV R4, R0 .text:100059C8 LDR R0, [R4,#0x10] .text:100059CC LDR R3, =aSsss .text:100059D0 CMP R0, #1 .text:100059D4 MOVEQ R0, #1 .text:100059D8 STR R1, [R3] .text:100059DC BEQ loc_10005D8C .text:100059E0 MOV R3, R1,LSL#16 .text:100059E4 MOV R2, R1,LSR#27 .text:100059E8 MOV R3, R3,LSR#27 .text:100059EC RSB R2, R2, #0x1F .text:100059F0 RSB R3, R3, #0x1F .text:100059F4 MOV R2, R2,LSL#16 .text:100059F8 MOV R3, R3,LSL#7 .text:100059FC AND R3, R3, #0xFF00 .text:10005A00 MOV R2, R2,LSR#16 .text:10005A04 MOV R8, #0x8000 .text:10005A08 ORR R3, R3, R2,LSR#1 .text:10005A0C ORR R8, R8, #0x80 .text:10005A10 ORR R2, R3, R8 .text:10005A14 ADD R3, R2, #0xA00 .text:10005A18 ADD R3, R3, #0xA .text:10005A1C MOV R7, R2 .text:10005A20 MOV R6, R3,LSL#16 .text:10005A24 CMP R1, #0 .text:10005A28 MOV R6, R6,LSR#16 .text:10005A2C BNE loc_10005A78 .text:10005A30 CMP R0, #3 .text:10005A34 BEQ loc_10005A78 .text:10005A38 MOV R3, #2 .text:10005A3C ADD R2, SP, #0x1C+var_1C .text:10005A40 MOV R1, #0xC .text:10005A44 MOV R0, R4 .text:10005A48 BL sub_10004C08 .text:10005A4C LDRH R3, [SP,#0x1C+var_1C] .text:10005A50 MOV R1, #0xC .text:10005A54 MOV R0, R4 .text:10005A58 ORR R2, R3, #0xE000 .text:10005A5C MOV R3, #2 .text:10005A60 STRH R2, [SP,#0x1C+var_1C] .text:10005A64 BL sub_10004BCC .text:10005A68 LDR R3, [R4,#0x10] .text:10005A6C CMP R3, #2 .text:10005A70 BNE loc_10005D68 .text:10005A74 B loc_10005D88 .text:10005A78 ; --------------------------------------------------------------------------- .text:10005A78 .text:10005A78 loc_10005A78 ; CODE XREF: sub_100059BC+70j .text:10005A78 ; sub_100059BC+78j .text:10005A78 LDR R3, [R4,#0xC] .text:10005A7C CMP R3, #1 .text:10005A80 BEQ loc_10005C7C .text:10005A84 LDR R5, =unk_1000B514 .text:10005A88 CMP R3, #3 .text:10005A8C BEQ loc_10005AB4 .text:10005A90 CMP R3, #4 .text:10005A94 BEQ loc_10005C7C .text:10005A98 CMP R3, #5 .text:10005A9C BEQ loc_10005B7C .text:10005AA0 CMP R3, #6 .text:10005AA4 BEQ loc_10005B18 .text:10005AA8 CMP R3, #7 .text:10005AAC BEQ loc_10005BF8 .text:10005AB0 B loc_10005D68 .text:10005AB4 ; --------------------------------------------------------------------------- .text:10005AB4 .text:10005AB4 loc_10005AB4 ; CODE XREF: sub_100059BC+D0j .text:10005AB4 LDR R3, [R5] .text:10005AB8 CMP R3, #4 .text:10005ABC BNE loc_10005AE4 .text:10005AC0 MOV R3, #2 .text:10005AC4 MOV R2, #0 .text:10005AC8 MOV R1, #2 .text:10005ACC MOV R0, R4 .text:10005AD0 BL sub_10004BCC .text:10005AD4 MOV R1, #1 .text:10005AD8 MOV R0, R4 .text:10005ADC BL sub_10005448 .text:10005AE0 B loc_10005B18 .text:10005AE4 ; --------------------------------------------------------------------------- .text:10005AE4 .text:10005AE4 loc_10005AE4 ; CODE XREF: sub_100059BC+100j .text:10005AE4 LDR R3, [R5] .text:10005AE8 CMP R3, #1 .text:10005AEC MOVLEQ R2, 0x707 .text:10005AF4 BEQ loc_10005B08 .text:10005AF8 LDR R3, [R5] .text:10005AFC CMP R3, #0 .text:10005B00 BNE loc_10005B18 .text:10005B04 MOV R2, #0x480 .text:10005B08 .text:10005B08 loc_10005B08 ; CODE XREF: sub_100059BC+138j .text:10005B08 MOV R3, #2 .text:10005B0C MOV R1, #4 .text:10005B10 MOV R0, R4 .text:10005B14 BL sub_10004BCC .text:10005B18 .text:10005B18 loc_10005B18 ; CODE XREF: sub_100059BC+E8j .text:10005B18 ; sub_100059BC+124j ... .text:10005B18 LDR R3, [R5] .text:10005B1C CMP R3, #4 .text:10005B20 BNE loc_10005B48 .text:10005B24 MOV R3, #2 .text:10005B28 MOV R2, #0 .text:10005B2C MOV R1, #2 .text:10005B30 MOV R0, R4 .text:10005B34 BL sub_10004BCC .text:10005B38 MOV R1, #1 .text:10005B3C MOV R0, R4 .text:10005B40 BL sub_10005448 .text:10005B44 B loc_10005B7C .text:10005B48 ; --------------------------------------------------------------------------- .text:10005B48 .text:10005B48 loc_10005B48 ; CODE XREF: sub_100059BC+164j .text:10005B48 LDR R3, [R5] .text:10005B4C CMP R3, #1 .text:10005B50 MOVLEQ R2, 0x707 .text:10005B58 BEQ loc_10005B6C .text:10005B5C LDR R3, [R5] .text:10005B60 CMP R3, #0 .text:10005B64 BNE loc_10005B7C .text:10005B68 MOV R2, #0x480 .text:10005B6C .text:10005B6C loc_10005B6C ; CODE XREF: sub_100059BC+19Cj .text:10005B6C MOV R3, #2 .text:10005B70 MOV R1, #4 .text:10005B74 MOV R0, R4 .text:10005B78 BL sub_10004BCC .text:10005B7C .text:10005B7C loc_10005B7C ; CODE XREF: sub_100059BC+E0j .text:10005B7C ; sub_100059BC+188j ... .text:10005B7C LDR R3, [R5] .text:10005B80 CMP R3, #4 .text:10005B84 MOVEQ R2, #0 .text:10005B88 MOVEQ R1, #2 .text:10005B8C BEQ loc_10005BE0 .text:10005B90 LDR R3, [R5] .text:10005B94 CMP R3, #1 .text:10005B98 BNE loc_10005BB8 .text:10005B9C MOVL R2, 0x707 .text:10005BA4 MOV R3, #2 .text:10005BA8 MOV R1, #4 .text:10005BAC MOV R0, R4 .text:10005BB0 BL sub_10004BCC .text:10005BB4 B loc_10005BF8 .text:10005BB8 ; --------------------------------------------------------------------------- .text:10005BB8 .text:10005BB8 loc_10005BB8 ; CODE XREF: sub_100059BC+1DCj .text:10005BB8 LDR R3, [R5] .text:10005BBC CMP R3, #0 .text:10005BC0 BNE loc_10005BF8 .text:10005BC4 MOV R3, #2 .text:10005BC8 MOV R2, #0 .text:10005BCC MOV R1, #2 .text:10005BD0 MOV R0, R4 .text:10005BD4 BL sub_10004BCC .text:10005BD8 MOV R2, #0x480 .text:10005BDC MOV R1, #4 .text:10005BE0 .text:10005BE0 loc_10005BE0 ; CODE XREF: sub_100059BC+1D0j .text:10005BE0 MOV R3, #2 .text:10005BE4 MOV R0, R4 .text:10005BE8 BL sub_10004BCC .text:10005BEC MOV R1, #1 .text:10005BF0 MOV R0, R4 .text:10005BF4 BL sub_10005448 .text:10005BF8 .text:10005BF8 loc_10005BF8 ; CODE XREF: sub_100059BC+F0j .text:10005BF8 ; sub_100059BC+1F8j ... .text:10005BF8 LDR R3, [R5] .text:10005BFC CMP R3, #4 .text:10005C00 BNE loc_10005C28 .text:10005C04 MOV R2, #0 .text:10005C08 MOV R1, #2 .text:10005C0C .text:10005C0C loc_10005C0C ; CODE XREF: sub_100059BC+2BCj .text:10005C0C MOV R3, #2 .text:10005C10 MOV R0, R4 .text:10005C14 BL sub_10004BCC .text:10005C18 MOV R1, #1 .text:10005C1C MOV R0, R4 .text:10005C20 BL sub_10005448 .text:10005C24 B loc_10005D88 .text:10005C28 ; --------------------------------------------------------------------------- .text:10005C28 .text:10005C28 loc_10005C28 ; CODE XREF: sub_100059BC+244j .text:10005C28 LDR R3, [R5] .text:10005C2C CMP R3, #1 .text:10005C30 BNE loc_10005C50 .text:10005C34 MOVL R2, 0x707 .text:10005C3C MOV R3, #2 .text:10005C40 MOV R1, #4 .text:10005C44 MOV R0, R4 .text:10005C48 BL sub_10004BCC .text:10005C4C B loc_10005D88 .text:10005C50 ; --------------------------------------------------------------------------- .text:10005C50 .text:10005C50 loc_10005C50 ; CODE XREF: sub_100059BC+274j .text:10005C50 LDR R3, [R5] .text:10005C54 CMP R3, #0 .text:10005C58 BNE loc_10005D88 .text:10005C5C MOV R3, #2 .text:10005C60 MOV R2, #0 .text:10005C64 MOV R1, #2 .text:10005C68 MOV R0, R4 .text:10005C6C BL sub_10004BCC .text:10005C70 MOV R2, #0x480 .text:10005C74 MOV R1, #4 .text:10005C78 B loc_10005C0C .text:10005C7C ; --------------------------------------------------------------------------- .text:10005C7C .text:10005C7C loc_10005C7C ; CODE XREF: sub_100059BC+C4j .text:10005C7C ; sub_100059BC+D8j .text:10005C7C LDR R3, =unk_1000B514 .text:10005C80 LDR R3, [R3] .text:10005C84 CMP R3, #0 .text:10005C88 BEQ loc_10005CDC .text:10005C8C CMP R3, #1 .text:10005C90 BEQ loc_10005CA4 .text:10005C94 CMP R3, #2 .text:10005C98 BNE loc_10005D68 .text:10005C9C ORR R6, R6, R8 .text:10005CA0 B loc_10005CB0 .text:10005CA4 ; --------------------------------------------------------------------------- .text:10005CA4 .text:10005CA4 loc_10005CA4 ; CODE XREF: sub_100059BC+2D4j .text:10005CA4 MOVL R3, 0x7F7F .text:10005CAC AND R6, R6, R3 .text:10005CB0 .text:10005CB0 loc_10005CB0 ; CODE XREF: sub_100059BC+2E4j .text:10005CB0 MOV R0, R4 .text:10005CB4 MOV R1, #0xC .text:10005CB8 ADD R2, SP, #0x1C+var_1C .text:10005CBC MOV R3, #2 .text:10005CC0 ORR R7, R7, R8 .text:10005CC4 BL sub_10004C08 .text:10005CC8 LDRH R3, [SP,#0x1C+var_1C] .text:10005CCC MOVL R2, 0x7FFF .text:10005CD4 AND R2, R3, R2 .text:10005CD8 B loc_10005D54 .text:10005CDC ; --------------------------------------------------------------------------- .text:10005CDC .text:10005CDC loc_10005CDC ; CODE XREF: sub_100059BC+2CCj .text:10005CDC MOVL R3, 0x7F7F .text:10005CE4 AND R7, R7, R3 .text:10005CE8 MOV R3, #2 .text:10005CEC ADD R2, SP, #0x1C+var_1C .text:10005CF0 MOV R1, #0xC .text:10005CF4 MOV R0, R4 .text:10005CF8 ORR R6, R6, R8 .text:10005CFC BL sub_10004C08 .text:10005D00 LDRH R3, [SP,#0x1C+var_1C] .text:10005D04 MOVL R5, 0xBFFF .text:10005D0C AND R2, R3, R5 .text:10005D10 MOV R3, #2 .text:10005D14 MOV R1, #0xC .text:10005D18 MOV R0, R4 .text:10005D1C STRH R2, [SP,#0x1C+var_1C] .text:10005D20 BL sub_10004BCC .text:10005D24 LDR R3, [R4,#0x28] .text:10005D28 CMP R3, #1 .text:10005D2C BNE loc_10005D68 .text:10005D30 MOV R3, #2 .text:10005D34 ADD R2, SP, #0x1C+var_1C .text:10005D38 MOV R1, #0xC .text:10005D3C MOV R0, R4 .text:10005D40 MOV R6, #0x480 .text:10005D44 MOV R7, R8 .text:10005D48 BL sub_10004C08 .text:10005D4C LDRH R3, [SP,#0x1C+var_1C] .text:10005D50 AND R2, R3, R5 .text:10005D54 .text:10005D54 loc_10005D54 ; CODE XREF: sub_100059BC+31Cj .text:10005D54 MOV R3, #2 .text:10005D58 MOV R1, #0xC .text:10005D5C MOV R0, R4 .text:10005D60 STRH R2, [SP,#0x1C+var_1C] .text:10005D64 BL sub_10004BCC .text:10005D68 .text:10005D68 loc_10005D68 ; CODE XREF: sub_100059BC+B4j .text:10005D68 ; sub_100059BC+F4j ... .text:10005D68 MOV R2, #2 .text:10005D6C MOV R1, R7 .text:10005D70 MOV R0, #2 .text:10005D74 BL sub_100098D0 .text:10005D78 MOV R2, #2 .text:10005D7C MOV R1, R6 .text:10005D80 MOV R0, #4 .text:10005D84 BL sub_100098D0 .text:10005D88 .text:10005D88 loc_10005D88 ; CODE XREF: sub_100059BC+B8j .text:10005D88 ; sub_100059BC+268j ... .text:10005D88 MOV R0, #0 .text:10005D8C .text:10005D8C loc_10005D8C ; CODE XREF: sub_100059BC+20j .text:10005D8C ADD SP, SP, #4 .text:10005D90 LDMFD SP!, {R4-R8,LR} .text:10005D94 BX LR .text:10005D94 ; End of function sub_100059BC .text:10005D94 .text:10005D94 ; --------------------------------------------------------------------------- .text:10005D98 off_10005D98 DCD unk_1000B514 ; DATA XREF: sub_100059BC+C8r .text:10005D98 ; sub_100059BC:loc_10005C7Cr .text:10005D9C off_10005D9C DCD aSsss ; DATA XREF: sub_100059BC+10r .text:10005D9C ; "ÖÖÖÖ" .text:10005DA0 .text:10005DA0 ; =============== S U B R O U T I N E ======================================= .text:10005DA0 @ RJK: InitialWM9713Setup() .text:10005DA0 .text:10005DA0 sub_10005DA0 ; CODE XREF: sub_10001C10+45Cp .text:10005DA0 ; WAV_IOControl+2C8p ... .text:10005DA0 .text:10005DA0 var_10 = -0x10 .text:10005DA0 .text:10005DA0 STMFD SP!, {R4,R5,LR} .text:10005DA4 SUB SP, SP, #4 .text:10005DA8 MOV R5, R0 .text:10005DAC MOV R3, #2 .text:10005DB0 ADD R2, SP, #0x10+var_10 .text:10005DB4 MOV R1, #2 .text:10005DB8 BL sub_10004C08 .text:10005DBC LDRH R3, [SP,#0x10+var_10] .text:10005DC0 MOVL R4, 0x8080 .text:10005DC8 ORR R2, R3, R4 .text:10005DCC MOV R3, #2 .text:10005DD0 MOV R1, #2 .text:10005DD4 MOV R0, R5 .text:10005DD8 STRH R2, [SP,#0x10+var_10] .text:10005DDC BL sub_10004BCC .text:10005DE0 MOV R3, #2 .text:10005DE4 ADD R2, SP, #0x10+var_10 .text:10005DE8 MOV R1, #4 .text:10005DEC MOV R0, R5 .text:10005DF0 BL sub_10004C08 .text:10005DF4 LDRH R3, [SP,#0x10+var_10] .text:10005DF8 MOV R1, #4 .text:10005DFC MOV R0, R5 .text:10005E00 ORR R2, R3, R4 .text:10005E04 MOV R3, #2 .text:10005E08 STRH R2, [SP,#0x10+var_10] .text:10005E0C BL sub_10004BCC .text:10005E10 MOV R3, #2 .text:10005E14 ADD R2, SP, #0x10+var_10 .text:10005E18 MOV R1, #6 .text:10005E1C MOV R0, R5 .text:10005E20 BL sub_10004C08 .text:10005E24 LDRH R3, [SP,#0x10+var_10] .text:10005E28 MOV R1, #6 .text:10005E2C MOV R0, R5 .text:10005E30 ORR R2, R3, R4 .text:10005E34 MOV R3, #2 .text:10005E38 STRH R2, [SP,#0x10+var_10] .text:10005E3C BL sub_10004BCC .text:10005E40 MOV R3, #2 .text:10005E44 ADD R2, SP, #0x10+var_10 .text:10005E48 MOV R1, #8 .text:10005E4C MOV R0, R5 .text:10005E50 BL sub_10004C08 .text:10005E54 LDRH R3, [SP,#0x10+var_10] .text:10005E58 MOVL R2, 0xC080 .text:10005E60 ORR R2, R3, R2 .text:10005E64 MOV R3, #2 .text:10005E68 MOV R1, #8 .text:10005E6C MOV R0, R5 .text:10005E70 STRH R2, [SP,#0x10+var_10] .text:10005E74 BL sub_10004BCC .text:10005E78 MOV R3, #2 .text:10005E7C ADD R2, SP, #0x10+var_10 .text:10005E80 MOV R1, #0xC .text:10005E84 MOV R0, R5 .text:10005E88 BL sub_10004C08 .text:10005E8C LDRH R3, [SP,#0x10+var_10] .text:10005E90 MOV R1, #0xC .text:10005E94 MOV R0, R5 .text:10005E98 ORR R2, R3, #0xE000 .text:10005E9C MOV R3, #2 .text:10005EA0 STRH R2, [SP,#0x10+var_10] .text:10005EA4 BL sub_10004BCC .text:10005EA8 MOV R3, #2 .text:10005EAC ADD R2, SP, #0x10+var_10 .text:10005EB0 MOV R1, #0x10 .text:10005EB4 MOV R0, R5 .text:10005EB8 BL sub_10004C08 .text:10005EBC LDRH R3, [SP,#0x10+var_10] .text:10005EC0 MOV R1, #0x10 .text:10005EC4 MOV R0, R5 .text:10005EC8 ORR R2, R3, #0xC0 .text:10005ECC MOV R3, #2 .text:10005ED0 STRH R2, [SP,#0x10+var_10] .text:10005ED4 BL sub_10004BCC .text:10005ED8 MOV R3, #2 .text:10005EDC ADD R2, SP, #0x10+var_10 .text:10005EE0 MOV R1, #0x22 .text:10005EE4 MOV R0, R5 .text:10005EE8 BL sub_10004C08 .text:10005EEC LDRH R3, [SP,#0x10+var_10] .text:10005EF0 MOVL R2, 0xF040 .text:10005EF8 ORR R2, R3, R2 .text:10005EFC MOV R3, #2 .text:10005F00 MOV R1, #0x22 .text:10005F04 MOV R0, R5 .text:10005F08 STRH R2, [SP,#0x10+var_10] .text:10005F0C BL sub_10004BCC .text:10005F10 MOV R3, #2 .text:10005F14 ADD R2, SP, #0x10+var_10 .text:10005F18 MOV R1, #0xA .text:10005F1C MOV R0, R5 .text:10005F20 BL sub_10004C08 .text:10005F24 LDRH R3, [SP,#0x10+var_10] .text:10005F28 MOV R1, #0xA .text:10005F2C MOV R0, R5 .text:10005F30 ORR R2, R3, #0xE000 .text:10005F34 MOV R3, #2 .text:10005F38 STRH R2, [SP,#0x10+var_10] .text:10005F3C BL sub_10004BCC .text:10005F40 MOV R1, #0 .text:10005F44 MOV R0, R5 .text:10005F48 BL sub_10005448 .text:10005F4C MOV R0, #1 .text:10005F50 ADD SP, SP, #4 .text:10005F54 LDMFD SP!, {R4,R5,LR} .text:10005F58 BX LR .text:10005F58 ; End of function sub_10005DA0 .text:10005F58 .text:10005F5C .text:10005F5C ; =============== S U B R O U T I N E ======================================= .text:10005F5C .text:10005F5C .text:10005F5C sub_10005F5C ; CODE XREF: sub_10007D54+158p .text:10005F5C ; DATA XREF: .pdata:1000C3D8o .text:10005F5C .text:10005F5C var_C = -0xC .text:10005F5C .text:10005F5C STMFD SP!, {R4,LR} .text:10005F60 SUB SP, SP, #4 .text:10005F64 CMP R1, #0 .text:10005F68 MOV R4, R0 .text:10005F6C BNE loc_100061D8 .text:10005F70 LDR R3, =unk_1000B514 .text:10005F74 LDR R3, [R3] .text:10005F78 CMP R3, #0 .text:10005F7C BEQ loc_100060D8 .text:10005F80 CMP R3, #1 .text:10005F84 BEQ loc_10006078 .text:10005F88 CMP R3, #2 .text:10005F8C BNE loc_100061D8 .text:10005F90 MOVL R2, 0xC183 .text:10005F98 MOV R3, #2 .text:10005F9C MOV R1, #0x36 .text:10005FA0 BL sub_10004BCC .text:10005FA4 MOV R1, #2 .text:10005FA8 MOV R0, R4 .text:10005FAC BL sub_10005654 .text:10005FB0 MOV R3, #2 .text:10005FB4 MOV R2, #0xB80 .text:10005FB8 MOV R1, #0x44 .text:10005FBC MOV R0, R4 .text:10005FC0 BL sub_10004BCC .text:10005FC4 MOVL R2, 0x404 .text:10005FCC MOV R3, #2 .text:10005FD0 MOV R1, #0x12 .text:10005FD4 MOV R0, R4 .text:10005FD8 BL sub_10004BCC .text:10005FDC MOVL R2, 0xD627 .text:10005FE4 MOV R3, #2 .text:10005FE8 MOV R1, #0x14 .text:10005FEC MOV R0, R4 .text:10005FF0 BL sub_10004BCC .text:10005FF4 MOVL R2, 0x6F0F .text:10005FFC MOV R3, #2 .text:10006000 MOV R1, #0xC .text:10006004 MOV R0, R4 .text:10006008 BL sub_10004BCC .text:1000600C MOV R3, #2 .text:10006010 MOV R2, #0x2000 .text:10006014 MOV R1, #0x40 .text:10006018 MOV R0, R4 .text:1000601C BL sub_10004BCC .text:10006020 MOVL R2, 0x841E .text:10006028 MOV R3, #2 .text:1000602C MOV R1, #0x20 .text:10006030 MOV R0, R4 .text:10006034 BL sub_10004BCC .text:10006038 MOVL R2, 0xC680 .text:10006040 MOV R3, #2 .text:10006044 MOV R1, #0x62 .text:10006048 MOV R0, R4 .text:1000604C BL sub_10004BCC .text:10006050 MOV R3, #2 .text:10006054 ADD R2, SP, #0xC+var_C .text:10006058 MOV R1, #0x22 .text:1000605C MOV R0, R4 .text:10006060 BL sub_10004C08 .text:10006064 LDRH R3, [SP,#0xC+var_C] .text:10006068 MOV R1, #0x22 .text:1000606C ORR R2, R3, #0xF000 .text:10006070 STRH R2, [SP,#0xC+var_C] .text:10006074 B loc_100061CC .text:10006078 ; --------------------------------------------------------------------------- .text:10006078 .text:10006078 loc_10006078 ; CODE XREF: sub_10005F5C+28j .text:10006078 MOVL R2, 0x6707 .text:10006080 MOV R3, #2 .text:10006084 MOV R1, #0xC .text:10006088 MOV R0, R4 .text:1000608C BL sub_10004BCC .text:10006090 MOV R3, #2 .text:10006094 MOV R2, #0xA0 .text:10006098 MOV R1, #0x1C .text:1000609C MOV R0, R4 .text:100060A0 BL sub_10004BCC .text:100060A4 MOV R3, #2 .text:100060A8 MOV R2, #0x2000 .text:100060AC MOV R1, #0x40 .text:100060B0 MOV R0, R4 .text:100060B4 BL sub_10004BCC .text:100060B8 MOVL R2, 0x841E .text:100060C0 MOV R3, #2 .text:100060C4 MOV R1, #0x20 .text:100060C8 MOV R0, R4 .text:100060CC BL sub_10004BCC .text:100060D0 MOV R2, #9 .text:100060D4 B loc_100061C8 .text:100060D8 ; --------------------------------------------------------------------------- .text:100060D8 .text:100060D8 loc_100060D8 ; CODE XREF: sub_10005F5C+20j .text:100060D8 MOV R1, #1 .text:100060DC MOV R0, R4 .text:100060E0 BL sub_10005448 .text:100060E4 LDR R3, [R4,#0x28] .text:100060E8 MOV R0, R4 .text:100060EC CMP R3, #1 .text:100060F0 MOV R3, #2 .text:100060F4 BNE loc_10006170 .text:100060F8 MOV R2, #0x2000 .text:100060FC MOV R1, #0x40 .text:10006100 BL sub_10004BCC .text:10006104 MOVL R2, 0x841E .text:1000610C MOV R3, #2 .text:10006110 MOV R1, #0x20 .text:10006114 MOV R0, R4 .text:10006118 BL sub_10004BCC .text:1000611C MOVL R2, 0x9C09 .text:10006124 MOV R3, #2 .text:10006128 MOV R1, #0x1E .text:1000612C MOV R0, R4 .text:10006130 BL sub_10004BCC .text:10006134 MOVL R2, 0x6303 .text:1000613C MOV R3, #2 .text:10006140 MOV R1, #0xC .text:10006144 MOV R0, R4 .text:10006148 BL sub_10004BCC .text:1000614C MOV R3, #2 .text:10006150 MOV R2, #0x88 .text:10006154 MOV R1, #0x1C .text:10006158 MOV R0, R4 .text:1000615C BL sub_10004BCC .text:10006160 MOVL R2, 0x8004 .text:10006168 MOV R1, #6 .text:1000616C B loc_100061CC .text:10006170 ; --------------------------------------------------------------------------- .text:10006170 .text:10006170 loc_10006170 ; CODE XREF: sub_10005F5C+198j .text:10006170 MOVL R2, 0xA808 .text:10006178 MOV R1, #0xC .text:1000617C BL sub_10004BCC .text:10006180 MOV R3, #2 .text:10006184 MOV R2, #0x2300 .text:10006188 MOV R1, #0x1C .text:1000618C MOV R0, R4 .text:10006190 BL sub_10004BCC .text:10006194 MOV R3, #2 .text:10006198 MOV R2, #0x2000 .text:1000619C MOV R1, #0x40 .text:100061A0 MOV R0, R4 .text:100061A4 BL sub_10004BCC .text:100061A8 MOVL R2, 0x841E .text:100061B0 MOV R3, #2 .text:100061B4 MOV R1, #0x20 .text:100061B8 MOV R0, R4 .text:100061BC BL sub_10004BCC .text:100061C0 MOVL R2, 0x4009 .text:100061C8 .text:100061C8 loc_100061C8 ; CODE XREF: sub_10005F5C+178j .text:100061C8 MOV R1, #0x1E .text:100061CC .text:100061CC loc_100061CC ; CODE XREF: sub_10005F5C+118j .text:100061CC ; sub_10005F5C+210j .text:100061CC MOV R3, #2 .text:100061D0 MOV R0, R4 .text:100061D4 BL sub_10004BCC .text:100061D8 .text:100061D8 loc_100061D8 ; CODE XREF: sub_10005F5C+10j .text:100061D8 ; sub_10005F5C+30j .text:100061D8 MOV R0, #1 .text:100061DC ADD SP, SP, #4 .text:100061E0 LDMFD SP!, {R4,LR} .text:100061E4 BX LR .text:100061E4 ; End of function sub_10005F5C .text:100061E4 .text:100061E4 ; --------------------------------------------------------------------------- .text:100061E8 off_100061E8 DCD unk_1000B514 ; DATA XREF: sub_10005F5C+14r .text:100061EC .text:100061EC ; =============== S U B R O U T I N E ======================================= .text:100061EC .text:100061EC .text:100061EC sub_100061EC ; CODE XREF: sub_10007D54+168p .text:100061EC ; DATA XREF: .pdata:1000C3E0o .text:100061EC STMFD SP!, {R4,LR} .text:100061F0 CMP R1, #0 .text:100061F4 MOV R4, R0 .text:100061F8 BNE loc_10006410 .text:100061FC LDR R3, =unk_1000B514 .text:10006200 LDR R3, [R3] .text:10006204 CMP R3, #0 .text:10006208 BEQ loc_10006360 .text:1000620C CMP R3, #1 .text:10006210 BEQ loc_100062F8 .text:10006214 CMP R3, #2 .text:10006218 BNE loc_10006410 .text:1000621C MOVL R2, 0xF040 .text:10006224 MOV R3, #2 .text:10006228 MOV R1, #0x22 .text:1000622C BL sub_10004BCC .text:10006230 MOVL R2, 0xC183 .text:10006238 MOV R3, #2 .text:1000623C MOV R1, #0x36 .text:10006240 MOV R0, R4 .text:10006244 BL sub_10004BCC .text:10006248 MOV R1, #2 .text:1000624C MOV R0, R4 .text:10006250 BL sub_10005654 .text:10006254 MOV R3, #2 .text:10006258 MOV R2, #0xB80 .text:1000625C MOV R1, #0x44 .text:10006260 MOV R0, R4 .text:10006264 BL sub_10004BCC .text:10006268 MOV R3, #2 .text:1000626C MOV R2, #0xAA00 .text:10006270 MOV R1, #0x18 .text:10006274 MOV R0, R4 .text:10006278 BL sub_10004BCC .text:1000627C MOVL R2, 0xD636 .text:10006284 MOV R3, #2 .text:10006288 MOV R1, #0x14 .text:1000628C MOV R0, R4 .text:10006290 BL sub_10004BCC .text:10006294 MOVL R2, 0x7F7F .text:1000629C MOV R3, #2 .text:100062A0 MOV R1, #0x12 .text:100062A4 MOV R0, R4 .text:100062A8 BL sub_10004BCC .text:100062AC MOV R3, #2 .text:100062B0 MOV R2, #0xDA .text:100062B4 MOV R1, #0x10 .text:100062B8 MOV R0, R4 .text:100062BC BL sub_10004BCC .text:100062C0 MOVL R2, 0xFF1F .text:100062C8 MOV R3, #2 .text:100062CC MOV R1, #0xA .text:100062D0 MOV R0, R4 .text:100062D4 BL sub_10004BCC .text:100062D8 MOV R3, #2 .text:100062DC MOV R2, #0 .text:100062E0 MOV R1, #0x5C .text:100062E4 MOV R0, R4 .text:100062E8 BL sub_10004BCC .text:100062EC MOVL R2, 0xC680 .text:100062F4 B loc_10006400 .text:100062F8 ; --------------------------------------------------------------------------- .text:100062F8 .text:100062F8 loc_100062F8 ; CODE XREF: sub_100061EC+24j .text:100062F8 MOVL R2, 0xF040 .text:10006300 MOV R3, #2 .text:10006304 MOV R1, #0x22 .text:10006308 MOV R0, R4 .text:1000630C BL sub_10004BCC .text:10006310 MOVL R2, 0xD67A .text:10006318 MOV R3, #2 .text:1000631C MOV R1, #0x14 .text:10006320 MOV R0, R4 .text:10006324 BL sub_10004BCC .text:10006328 MOVL R2, 0x7F7F .text:10006330 MOV R3, #2 .text:10006334 MOV R1, #0x12 .text:10006338 MOV R0, R4 .text:1000633C BL sub_10004BCC .text:10006340 MOVL R2, 0xFF1F .text:10006348 MOV R3, #2 .text:1000634C MOV R1, #0xA .text:10006350 MOV R0, R4 .text:10006354 BL sub_10004BCC .text:10006358 MOV R2, #8 .text:1000635C B loc_100063EC .text:10006360 ; --------------------------------------------------------------------------- .text:10006360 .text:10006360 loc_10006360 ; CODE XREF: sub_100061EC+1Cj .text:10006360 MOVL R2, 0xC040 .text:10006368 MOV R3, #2 .text:1000636C MOV R1, #0x22 .text:10006370 MOV R0, R4 .text:10006374 BL sub_10004BCC .text:10006378 MOVL R2, 0xD640 .text:10006380 MOV R3, #2 .text:10006384 MOV R1, #0x14 .text:10006388 MOV R0, R4 .text:1000638C BL sub_10004BCC .text:10006390 MOVL R2, 0xF0F .text:10006398 MOV R3, #2 .text:1000639C MOV R1, #0x12 .text:100063A0 MOV R0, R4 .text:100063A4 BL sub_10004BCC .text:100063A8 MOV R3, #2 .text:100063AC MOV R2, #0xDA .text:100063B0 MOV R1, #0x10 .text:100063B4 MOV R0, R4 .text:100063B8 BL sub_10004BCC .text:100063BC MOVL R2, 0xFF1F .text:100063C4 MOV R3, #2 .text:100063C8 MOV R1, #0xA .text:100063CC MOV R0, R4 .text:100063D0 BL sub_10004BCC .text:100063D4 MOV R3, #2 .text:100063D8 MOV R2, #0x130 .text:100063DC MOV R1, #0x5A .text:100063E0 MOV R0, R4 .text:100063E4 BL sub_10004BCC .text:100063E8 MOV R2, #0 .text:100063EC .text:100063EC loc_100063EC ; CODE XREF: sub_100061EC+170j .text:100063EC MOV R3, #2 .text:100063F0 MOV R1, #0x5C .text:100063F4 MOV R0, R4 .text:100063F8 BL sub_10004BCC .text:100063FC MOV R2, #0x3E80 .text:10006400 .text:10006400 loc_10006400 ; CODE XREF: sub_100061EC+108j .text:10006400 MOV R3, #2 .text:10006404 MOV R1, #0x62 .text:10006408 MOV R0, R4 .text:1000640C BL sub_10004BCC .text:10006410 .text:10006410 loc_10006410 ; CODE XREF: sub_100061EC+Cj .text:10006410 ; sub_100061EC+2Cj .text:10006410 MOV R0, #1 .text:10006414 LDMFD SP!, {R4,LR} .text:10006418 BX LR .text:10006418 ; End of function sub_100061EC .text:10006418 .text:10006418 ; --------------------------------------------------------------------------- .text:1000641C off_1000641C DCD unk_1000B514 ; DATA XREF: sub_100061EC+10r .text:10006420 .text:10006420 ; =============== S U B R O U T I N E ======================================= .text:10006420 .text:10006420 .text:10006420 sub_10006420 ; CODE XREF: sub_10007D54+178p .text:10006420 ; DATA XREF: .pdata:1000C3E8o .text:10006420 STMFD SP!, {R4,LR} .text:10006424 CMP R1, #0 .text:10006428 MOV R4, R0 .text:1000642C BNE loc_10006754 .text:10006430 LDR R3, =unk_1000B514 .text:10006434 LDR R3, [R3] .text:10006438 CMP R3, #0 .text:1000643C BEQ loc_10006688 .text:10006440 CMP R3, #1 .text:10006444 BEQ loc_100065FC .text:10006448 CMP R3, #2 .text:1000644C BEQ loc_10006514 .text:10006450 CMP R3, #4 .text:10006454 BNE loc_10006754 .text:10006458 MOVL R2, 0xC040 .text:10006460 MOV R3, #2 .text:10006464 MOV R1, #0x22 .text:10006468 BL sub_10004BCC .text:1000646C MOV R0, R4 .text:10006470 BL sub_100056B0 .text:10006474 MOV R3, #2 .text:10006478 MOV R2, #0x5A .text:1000647C MOV R1, #0x10 .text:10006480 MOV R0, R4 .text:10006484 BL sub_10004BCC .text:10006488 MOV R3, #2 .text:1000648C MOV R2, #0x8400 .text:10006490 MOV R1, #8 .text:10006494 MOV R0, R4 .text:10006498 BL sub_10004BCC .text:1000649C MOV R3, #2 .text:100064A0 MOV R2, #0xAA0 .text:100064A4 MOV R1, #0x16 .text:100064A8 MOV R0, R4 .text:100064AC BL sub_10004BCC .text:100064B0 MOV R3, #2 .text:100064B4 MOV R2, #0x4400 .text:100064B8 MOV R1, #0x1E .text:100064BC MOV R0, R4 .text:100064C0 BL sub_10004BCC .text:100064C4 MOVL R2, 0xA202 .text:100064CC MOV R3, #2 .text:100064D0 MOV R1, #0x1C .text:100064D4 MOV R0, R4 .text:100064D8 BL sub_10004BCC .text:100064DC MOV R3, #2 .text:100064E0 MOV R2, #0x80 .text:100064E4 MOV R1, #6 .text:100064E8 MOV R0, R4 .text:100064EC BL sub_10004BCC .text:100064F0 MOV R3, #2 .text:100064F4 MOV R2, #0 .text:100064F8 MOV R1, #2 .text:100064FC MOV R0, R4 .text:10006500 BL sub_10004BCC .text:10006504 MOV R1, #1 .text:10006508 MOV R0, R4 .text:1000650C BL sub_10005448 .text:10006510 B loc_10006754 .text:10006514 ; --------------------------------------------------------------------------- .text:10006514 .text:10006514 loc_10006514 ; CODE XREF: sub_10006420+2Cj .text:10006514 MOVL R2, 0xC183 .text:1000651C MOV R3, #2 .text:10006520 MOV R1, #0x36 .text:10006524 MOV R0, R4 .text:10006528 BL sub_10004BCC .text:1000652C MOV R1, #2 .text:10006530 MOV R0, R4 .text:10006534 BL sub_10005654 .text:10006538 MOV R3, #2 .text:1000653C MOV R2, #0xB80 .text:10006540 MOV R1, #0x44 .text:10006544 MOV R0, R4 .text:10006548 BL sub_10004BCC .text:1000654C MOV R0, R4 .text:10006550 BL sub_100056B0 .text:10006554 MOVL R2, 0x8002 .text:1000655C MOV R3, #2 .text:10006560 MOV R1, #0x1C .text:10006564 MOV R0, R4 .text:10006568 BL sub_10004BCC .text:1000656C MOV R3, #2 .text:10006570 MOV R2, #0x400 .text:10006574 MOV R1, #0x1E .text:10006578 MOV R0, R4 .text:1000657C BL sub_10004BCC .text:10006580 MOV R3, #2 .text:10006584 MOV R2, #0xA80 .text:10006588 MOV R1, #6 .text:1000658C MOV R0, R4 .text:10006590 BL sub_10004BCC .text:10006594 MOV R3, #2 .text:10006598 MOV R2, #0xA80 .text:1000659C MOV R1, #0x16 .text:100065A0 MOV R0, R4 .text:100065A4 BL sub_10004BCC .text:100065A8 MOVL R2, 0xD627 .text:100065B0 MOV R3, #2 .text:100065B4 MOV R1, #0x14 .text:100065B8 MOV R0, R4 .text:100065BC BL sub_10004BCC .text:100065C0 MOV R3, #2 .text:100065C4 MOV R2, #0x130 .text:100065C8 MOV R1, #0x5A .text:100065CC MOV R0, R4 .text:100065D0 BL sub_10004BCC .text:100065D4 MOVL R2, 0x8080 .text:100065DC MOV R3, #2 .text:100065E0 MOV R1, #4 .text:100065E4 MOV R0, R4 .text:100065E8 BL sub_10004BCC .text:100065EC MOVL R2, 0x8080 .text:100065F4 MOV R1, #2 .text:100065F8 B loc_10006748 .text:100065FC ; --------------------------------------------------------------------------- .text:100065FC .text:100065FC loc_100065FC ; CODE XREF: sub_10006420+24j .text:100065FC MOV R3, #2 .text:10006600 MOV R2, #0x4800 .text:10006604 MOV R1, #8 .text:10006608 MOV R0, R4 .text:1000660C BL sub_10004BCC .text:10006610 MOV R3, #2 .text:10006614 MOV R2, #0x80 .text:10006618 MOV R1, #6 .text:1000661C MOV R0, R4 .text:10006620 BL sub_10004BCC .text:10006624 MOV R3, #2 .text:10006628 MOV R2, #0x400 .text:1000662C MOV R1, #0x1E .text:10006630 MOV R0, R4 .text:10006634 BL sub_10004BCC .text:10006638 MOVL R2, 0x2AA0 .text:10006640 MOV R3, #2 .text:10006644 MOV R1, #0x16 .text:10006648 MOV R0, R4 .text:1000664C BL sub_10004BCC .text:10006650 MOV R3, #2 .text:10006654 MOV R2, #0xC000 .text:10006658 MOV R1, #0xA .text:1000665C MOV R0, R4 .text:10006660 BL sub_10004BCC .text:10006664 MOVL R2, 0x80A2 .text:1000666C MOV R3, #2 .text:10006670 MOV R1, #0x1C .text:10006674 MOV R0, R4 .text:10006678 BL sub_10004BCC .text:1000667C MOVL R2, 0x707 .text:10006684 B loc_10006744 .text:10006688 ; --------------------------------------------------------------------------- .text:10006688 .text:10006688 loc_10006688 ; CODE XREF: sub_10006420+1Cj .text:10006688 MOVL R2, 0xC040 .text:10006690 MOV R3, #2 .text:10006694 MOV R1, #0x22 .text:10006698 MOV R0, R4 .text:1000669C BL sub_10004BCC .text:100066A0 MOVL R2, 0x303 .text:100066A8 MOV R3, #2 .text:100066AC MOV R1, #0xE .text:100066B0 MOV R0, R4 .text:100066B4 BL sub_10004BCC .text:100066B8 MOV R3, #2 .text:100066BC MOV R2, #0x5A .text:100066C0 MOV R1, #0x10 .text:100066C4 MOV R0, R4 .text:100066C8 BL sub_10004BCC .text:100066CC MOVL R2, 0x8804 .text:100066D4 MOV R3, #2 .text:100066D8 MOV R1, #8 .text:100066DC MOV R0, R4 .text:100066E0 BL sub_10004BCC .text:100066E4 MOVL R2, 0x2AA0 .text:100066EC MOV R3, #2 .text:100066F0 MOV R1, #0x16 .text:100066F4 MOV R0, R4 .text:100066F8 BL sub_10004BCC .text:100066FC MOV R3, #2 .text:10006700 MOV R2, #0x4400 .text:10006704 MOV R1, #0x1E .text:10006708 MOV R0, R4 .text:1000670C BL sub_10004BCC .text:10006710 MOVL R2, 0x808A .text:10006718 MOV R3, #2 .text:1000671C MOV R1, #0x1C .text:10006720 MOV R0, R4 .text:10006724 BL sub_10004BCC .text:10006728 MOVL R2, 0x404 .text:10006730 MOV R3, #2 .text:10006734 MOV R1, #6 .text:10006738 MOV R0, R4 .text:1000673C BL sub_10004BCC .text:10006740 MOV R2, #0x480 .text:10006744 .text:10006744 loc_10006744 ; CODE XREF: sub_10006420+264j .text:10006744 MOV R1, #4 .text:10006748 .text:10006748 loc_10006748 ; CODE XREF: sub_10006420+1D8j .text:10006748 MOV R3, #2 .text:1000674C MOV R0, R4 .text:10006750 BL sub_10004BCC .text:10006754 .text:10006754 loc_10006754 ; CODE XREF: sub_10006420+Cj .text:10006754 ; sub_10006420+34j ... .text:10006754 MOV R0, #1 .text:10006758 LDMFD SP!, {R4,LR} .text:1000675C BX LR .text:1000675C ; End of function sub_10006420 .text:1000675C .text:1000675C ; --------------------------------------------------------------------------- .text:10006760 off_10006760 DCD unk_1000B514 ; DATA XREF: sub_10006420+10r .text:10006764 .text:10006764 ; =============== S U B R O U T I N E ======================================= .text:10006764 .text:10006764 .text:10006764 sub_10006764 ; CODE XREF: sub_10007D54+198p .text:10006764 ; DATA XREF: .pdata:1000C3F0o .text:10006764 STMFD SP!, {R4,LR} .text:10006768 CMP R1, #0 .text:1000676C MOV R4, R0 .text:10006770 BNE loc_10006BAC .text:10006774 LDR R3, =unk_1000B514 .text:10006778 LDR R3, [R3] .text:1000677C CMP R3, #0 .text:10006780 BEQ loc_10006A88 .text:10006784 CMP R3, #1 .text:10006788 BEQ loc_100069B4 .text:1000678C CMP R3, #2 .text:10006790 BEQ loc_1000689C .text:10006794 CMP R3, #4 .text:10006798 BNE loc_10006BAC .text:1000679C MOVL R2, 0xC840 .text:100067A4 MOV R3, #2 .text:100067A8 MOV R1, #0x22 .text:100067AC BL sub_10004BCC .text:100067B0 MOV R3, #2 .text:100067B4 MOV R2, #0x6000 .text:100067B8 MOV R1, #0xC .text:100067BC MOV R0, R4 .text:100067C0 BL sub_10004BCC .text:100067C4 MOV R0, R4 .text:100067C8 BL sub_100056B0 .text:100067CC MOV R3, #2 .text:100067D0 MOV R2, #0x7A .text:100067D4 MOV R1, #0x10 .text:100067D8 MOV R0, R4 .text:100067DC BL sub_10004BCC .text:100067E0 MOV R3, #2 .text:100067E4 MOV R2, #0x8400 .text:100067E8 MOV R1, #8 .text:100067EC MOV R0, R4 .text:100067F0 BL sub_10004BCC .text:100067F4 MOV R3, #2 .text:100067F8 MOV R2, #0xAA0 .text:100067FC MOV R1, #0x16 .text:10006800 MOV R0, R4 .text:10006804 BL sub_10004BCC .text:10006808 MOV R3, #2 .text:1000680C MOV R2, #0x2000 .text:10006810 MOV R1, #0x40 .text:10006814 MOV R0, R4 .text:10006818 BL sub_10004BCC .text:1000681C MOVL R2, 0x841E .text:10006824 MOV R3, #2 .text:10006828 MOV R1, #0x20 .text:1000682C MOV R0, R4 .text:10006830 BL sub_10004BCC .text:10006834 MOVL R2, 0x4409 .text:1000683C MOV R3, #2 .text:10006840 MOV R1, #0x1E .text:10006844 MOV R0, R4 .text:10006848 BL sub_10004BCC .text:1000684C MOVL R2, 0xA202 .text:10006854 MOV R3, #2 .text:10006858 MOV R1, #0x1C .text:1000685C MOV R0, R4 .text:10006860 BL sub_10004BCC .text:10006864 MOV R3, #2 .text:10006868 MOV R2, #0x80 .text:1000686C MOV R1, #6 .text:10006870 MOV R0, R4 .text:10006874 BL sub_10004BCC .text:10006878 MOV R3, #2 .text:1000687C MOV R2, #0 .text:10006880 MOV R1, #2 .text:10006884 MOV R0, R4 .text:10006888 BL sub_10004BCC .text:1000688C MOV R1, #1 .text:10006890 MOV R0, R4 .text:10006894 BL sub_10005448 .text:10006898 B loc_10006BAC .text:1000689C ; --------------------------------------------------------------------------- .text:1000689C .text:1000689C loc_1000689C ; CODE XREF: sub_10006764+2Cj .text:1000689C MOVL R2, 0xC183 .text:100068A4 MOV R3, #2 .text:100068A8 MOV R1, #0x36 .text:100068AC MOV R0, R4 .text:100068B0 BL sub_10004BCC .text:100068B4 MOV R1, #2 .text:100068B8 MOV R0, R4 .text:100068BC BL sub_10005654 .text:100068C0 MOV R3, #2 .text:100068C4 MOV R2, #0xB80 .text:100068C8 MOV R1, #0x44 .text:100068CC MOV R0, R4 .text:100068D0 BL sub_10004BCC .text:100068D4 MOV R0, R4 .text:100068D8 BL sub_100056B0 .text:100068DC MOV R3, #2 .text:100068E0 MOV R2, #0x2000 .text:100068E4 MOV R1, #0x40 .text:100068E8 MOV R0, R4 .text:100068EC BL sub_10004BCC .text:100068F0 MOVL R2, 0x841E .text:100068F8 MOV R3, #2 .text:100068FC MOV R1, #0x20 .text:10006900 MOV R0, R4 .text:10006904 BL sub_10004BCC .text:10006908 MOVL R2, 0x409 .text:10006910 MOV R3, #2 .text:10006914 MOV R1, #0x1E .text:10006918 MOV R0, R4 .text:1000691C BL sub_10004BCC .text:10006920 MOV R3, #2 .text:10006924 MOV R2, #0xA80 .text:10006928 MOV R1, #6 .text:1000692C MOV R0, R4 .text:10006930 BL sub_10004BCC .text:10006934 MOV R3, #2 .text:10006938 MOV R2, #0x130 .text:1000693C MOV R1, #0x5A .text:10006940 MOV R0, R4 .text:10006944 BL sub_10004BCC .text:10006948 MOV R3, #2 .text:1000694C MOV R2, #0xAA0 .text:10006950 MOV R1, #0x16 .text:10006954 MOV R0, R4 .text:10006958 BL sub_10004BCC .text:1000695C MOVL R2, 0xD620 .text:10006964 MOV R3, #2 .text:10006968 MOV R1, #0x14 .text:1000696C MOV R0, R4 .text:10006970 BL sub_10004BCC .text:10006974 MOVL R2, 0x6F0F .text:1000697C MOV R3, #2 .text:10006980 MOV R1, #0xC .text:10006984 MOV R0, R4 .text:10006988 BL sub_10004BCC .text:1000698C MOVL R2, 0xA302 .text:10006994 MOV R3, #2 .text:10006998 MOV R1, #0x1C .text:1000699C MOV R0, R4 .text:100069A0 BL sub_10004BCC .text:100069A4 MOVL R2, 0x8080 .text:100069AC MOV R1, #4 .text:100069B0 B loc_10006BA0 .text:100069B4 ; --------------------------------------------------------------------------- .text:100069B4 .text:100069B4 loc_100069B4 ; CODE XREF: sub_10006764+24j .text:100069B4 MOV R3, #2 .text:100069B8 MOV R2, #0x4800 .text:100069BC MOV R1, #8 .text:100069C0 MOV R0, R4 .text:100069C4 BL sub_10004BCC .text:100069C8 MOV R3, #2 .text:100069CC MOV R2, #0x80 .text:100069D0 MOV R1, #6 .text:100069D4 MOV R0, R4 .text:100069D8 BL sub_10004BCC .text:100069DC MOVL R2, 0x6707 .text:100069E4 MOV R3, #2 .text:100069E8 MOV R1, #0xC .text:100069EC MOV R0, R4 .text:100069F0 BL sub_10004BCC .text:100069F4 MOV R3, #2 .text:100069F8 MOV R2, #0x2000 .text:100069FC MOV R1, #0x40 .text:10006A00 MOV R0, R4 .text:10006A04 BL sub_10004BCC .text:10006A08 MOVL R2, 0x841E .text:10006A10 MOV R3, #2 .text:10006A14 MOV R1, #0x20 .text:10006A18 MOV R0, R4 .text:10006A1C BL sub_10004BCC .text:10006A20 MOV R3, #2 .text:10006A24 MOV R2, #0x400 .text:10006A28 MOV R1, #0x1E .text:10006A2C MOV R0, R4 .text:10006A30 BL sub_10004BCC .text:10006A34 MOVL R2, 0x2AA0 .text:10006A3C MOV R3, #2 .text:10006A40 MOV R1, #0x16 .text:10006A44 MOV R0, R4 .text:10006A48 BL sub_10004BCC .text:10006A4C MOV R3, #2 .text:10006A50 MOV R2, #0xC000 .text:10006A54 MOV R1, #0xA .text:10006A58 MOV R0, R4 .text:10006A5C BL sub_10004BCC .text:10006A60 MOVL R2, 0x80A2 .text:10006A68 MOV R3, #2 .text:10006A6C MOV R1, #0x1C .text:10006A70 MOV R0, R4 .text:10006A74 BL sub_10004BCC .text:10006A78 MOVL R2, 0x707 .text:10006A80 MOV R1, #4 .text:10006A84 B loc_10006BA0 .text:10006A88 ; --------------------------------------------------------------------------- .text:10006A88 .text:10006A88 loc_10006A88 ; CODE XREF: sub_10006764+1Cj .text:10006A88 MOVL R2, 0xC040 .text:10006A90 MOV R3, #2 .text:10006A94 MOV R1, #0x22 .text:10006A98 MOV R0, R4 .text:10006A9C BL sub_10004BCC .text:10006AA0 MOV R3, #2 .text:10006AA4 MOV R2, #0xA000 .text:10006AA8 MOV R1, #0xC .text:10006AAC MOV R0, R4 .text:10006AB0 BL sub_10004BCC .text:10006AB4 MOVL R2, 0x303 .text:10006ABC MOV R3, #2 .text:10006AC0 MOV R1, #0xE .text:10006AC4 MOV R0, R4 .text:10006AC8 BL sub_10004BCC .text:10006ACC MOV R3, #2 .text:10006AD0 MOV R2, #0x5A .text:10006AD4 MOV R1, #0x10 .text:10006AD8 MOV R0, R4 .text:10006ADC BL sub_10004BCC .text:10006AE0 MOVL R2, 0x8804 .text:10006AE8 MOV R3, #2 .text:10006AEC MOV R1, #8 .text:10006AF0 MOV R0, R4 .text:10006AF4 BL sub_10004BCC .text:10006AF8 MOVL R2, 0x2AA0 .text:10006B00 MOV R3, #2 .text:10006B04 MOV R1, #0x16 .text:10006B08 MOV R0, R4 .text:10006B0C BL sub_10004BCC .text:10006B10 MOV R3, #2 .text:10006B14 MOV R2, #0x2000 .text:10006B18 MOV R1, #0x40 .text:10006B1C MOV R0, R4 .text:10006B20 BL sub_10004BCC .text:10006B24 MOVL R2, 0x841E .text:10006B2C MOV R3, #2 .text:10006B30 MOV R1, #0x20 .text:10006B34 MOV R0, R4 .text:10006B38 BL sub_10004BCC .text:10006B3C MOVL R2, 0x4409 .text:10006B44 MOV R3, #2 .text:10006B48 MOV R1, #0x1E .text:10006B4C MOV R0, R4 .text:10006B50 BL sub_10004BCC .text:10006B54 MOVL R2, 0x808A .text:10006B5C MOV R3, #2 .text:10006B60 MOV R1, #0x1C .text:10006B64 MOV R0, R4 .text:10006B68 BL sub_10004BCC .text:10006B6C MOVL R2, 0x404 .text:10006B74 MOV R3, #2 .text:10006B78 MOV R1, #6 .text:10006B7C MOV R0, R4 .text:10006B80 BL sub_10004BCC .text:10006B84 MOV R3, #2 .text:10006B88 MOV R2, #0x480 .text:10006B8C MOV R1, #4 .text:10006B90 MOV R0, R4 .text:10006B94 BL sub_10004BCC .text:10006B98 MOV R2, #0 .text:10006B9C MOV R1, #2 .text:10006BA0 .text:10006BA0 loc_10006BA0 ; CODE XREF: sub_10006764+24Cj .text:10006BA0 ; sub_10006764+320j .text:10006BA0 MOV R3, #2 .text:10006BA4 MOV R0, R4 .text:10006BA8 BL sub_10004BCC .text:10006BAC .text:10006BAC loc_10006BAC ; CODE XREF: sub_10006764+Cj .text:10006BAC ; sub_10006764+34j ... .text:10006BAC MOV R0, #1 .text:10006BB0 LDMFD SP!, {R4,LR} .text:10006BB4 BX LR .text:10006BB4 ; End of function sub_10006764 .text:10006BB4 .text:10006BB4 ; --------------------------------------------------------------------------- .text:10006BB8 off_10006BB8 DCD unk_1000B514 ; DATA XREF: sub_10006764+10r .text:10006BBC .text:10006BBC ; =============== S U B R O U T I N E ======================================= .text:10006BBC .text:10006BBC .text:10006BBC sub_10006BBC ; CODE XREF: sub_10007D54+188p .text:10006BBC ; DATA XREF: .pdata:1000C3F8o .text:10006BBC STMFD SP!, {R4,LR} .text:10006BC0 CMP R1, #0 .text:10006BC4 MOV R4, R0 .text:10006BC8 BNE loc_10006F08 .text:10006BCC LDR R3, =unk_1000B514 .text:10006BD0 LDR R3, [R3] .text:10006BD4 CMP R3, #0 .text:10006BD8 BEQ loc_10006DE0 .text:10006BDC CMP R3, #1 .text:10006BE0 BEQ loc_10006D0C .text:10006BE4 CMP R3, #2 .text:10006BE8 BNE loc_10006F08 .text:10006BEC MOVL R2, 0xC183 .text:10006BF4 MOV R3, #2 .text:10006BF8 MOV R1, #0x36 .text:10006BFC BL sub_10004BCC .text:10006C00 MOV R1, #2 .text:10006C04 MOV R0, R4 .text:10006C08 BL sub_10005654 .text:10006C0C MOV R3, #2 .text:10006C10 MOV R2, #0xB80 .text:10006C14 MOV R1, #0x44 .text:10006C18 MOV R0, R4 .text:10006C1C BL sub_10004BCC .text:10006C20 MOVL R2, 0x404 .text:10006C28 MOV R3, #2 .text:10006C2C MOV R1, #0x12 .text:10006C30 MOV R0, R4 .text:10006C34 BL sub_10004BCC .text:10006C38 MOV R3, #2 .text:10006C3C MOV R2, #0xAA00 .text:10006C40 MOV R1, #0x18 .text:10006C44 MOV R0, R4 .text:10006C48 BL sub_10004BCC .text:10006C4C MOVL R2, 0xD626 .text:10006C54 MOV R3, #2 .text:10006C58 MOV R1, #0x14 .text:10006C5C MOV R0, R4 .text:10006C60 BL sub_10004BCC .text:10006C64 MOVL R2, 0x6F0F .text:10006C6C MOV R3, #2 .text:10006C70 MOV R1, #0xC .text:10006C74 MOV R0, R4 .text:10006C78 BL sub_10004BCC .text:10006C7C MOV R3, #2 .text:10006C80 MOV R2, #0x2000 .text:10006C84 MOV R1, #0x40 .text:10006C88 MOV R0, R4 .text:10006C8C BL sub_10004BCC .text:10006C90 MOVL R2, 0x841E .text:10006C98 MOV R3, #2 .text:10006C9C MOV R1, #0x20 .text:10006CA0 MOV R0, R4 .text:10006CA4 BL sub_10004BCC .text:10006CA8 MOVL R2, 0xF040 .text:10006CB0 MOV R3, #2 .text:10006CB4 MOV R1, #0x22 .text:10006CB8 MOV R0, R4 .text:10006CBC BL sub_10004BCC .text:10006CC0 MOV R3, #2 .text:10006CC4 MOV R2, #0xCA .text:10006CC8 MOV R1, #0x10 .text:10006CCC MOV R0, R4 .text:10006CD0 BL sub_10004BCC .text:10006CD4 MOVL R2, 0xFF1F .text:10006CDC MOV R3, #2 .text:10006CE0 MOV R1, #0xA .text:10006CE4 MOV R0, R4 .text:10006CE8 BL sub_10004BCC .text:10006CEC MOV R3, #2 .text:10006CF0 MOV R2, #0x18 .text:10006CF4 MOV R1, #0x5C .text:10006CF8 MOV R0, R4 .text:10006CFC BL sub_10004BCC .text:10006D00 MOVL R2, 0xC680 .text:10006D08 B loc_10006EF8 .text:10006D0C ; --------------------------------------------------------------------------- .text:10006D0C .text:10006D0C loc_10006D0C ; CODE XREF: sub_10006BBC+24j .text:10006D0C MOVL R2, 0x6707 .text:10006D14 MOV R3, #2 .text:10006D18 MOV R1, #0xC .text:10006D1C MOV R0, R4 .text:10006D20 BL sub_10004BCC .text:10006D24 MOV R3, #2 .text:10006D28 MOV R2, #0xA0 .text:10006D2C MOV R1, #0x1C .text:10006D30 MOV R0, R4 .text:10006D34 BL sub_10004BCC .text:10006D38 MOV R3, #2 .text:10006D3C MOV R2, #0x2000 .text:10006D40 MOV R1, #0x40 .text:10006D44 MOV R0, R4 .text:10006D48 BL sub_10004BCC .text:10006D4C MOVL R2, 0x841E .text:10006D54 MOV R3, #2 .text:10006D58 MOV R1, #0x20 .text:10006D5C MOV R0, R4 .text:10006D60 BL sub_10004BCC .text:10006D64 MOV R3, #2 .text:10006D68 MOV R2, #0 .text:10006D6C MOV R1, #0x1E .text:10006D70 MOV R0, R4 .text:10006D74 BL sub_10004BCC .text:10006D78 MOVL R2, 0xF040 .text:10006D80 MOV R3, #2 .text:10006D84 MOV R1, #0x22 .text:10006D88 MOV R0, R4 .text:10006D8C BL sub_10004BCC .text:10006D90 MOVL R2, 0xD67A .text:10006D98 MOV R3, #2 .text:10006D9C MOV R1, #0x14 .text:10006DA0 MOV R0, R4 .text:10006DA4 BL sub_10004BCC .text:10006DA8 MOVL R2, 0x7F7F .text:10006DB0 MOV R3, #2 .text:10006DB4 MOV R1, #0x12 .text:10006DB8 MOV R0, R4 .text:10006DBC BL sub_10004BCC .text:10006DC0 MOVL R2, 0xFF1F .text:10006DC8 MOV R3, #2 .text:10006DCC MOV R1, #0xA .text:10006DD0 MOV R0, R4 .text:10006DD4 BL sub_10004BCC .text:10006DD8 MOV R2, #8 .text:10006DDC B loc_10006EE4 .text:10006DE0 ; --------------------------------------------------------------------------- .text:10006DE0 .text:10006DE0 loc_10006DE0 ; CODE XREF: sub_10006BBC+1Cj .text:10006DE0 MOV R1, #1 .text:10006DE4 MOV R0, R4 .text:10006DE8 BL sub_10005448 .text:10006DEC MOVL R2, 0xA808 .text:10006DF4 MOV R3, #2 .text:10006DF8 MOV R1, #0xC .text:10006DFC MOV R0, R4 .text:10006E00 BL sub_10004BCC .text:10006E04 MOV R3, #2 .text:10006E08 MOV R2, #0x2300 .text:10006E0C MOV R1, #0x1C .text:10006E10 MOV R0, R4 .text:10006E14 BL sub_10004BCC .text:10006E18 MOV R3, #2 .text:10006E1C MOV R2, #0x2000 .text:10006E20 MOV R1, #0x40 .text:10006E24 MOV R0, R4 .text:10006E28 BL sub_10004BCC .text:10006E2C MOVL R2, 0x841E .text:10006E34 MOV R3, #2 .text:10006E38 MOV R1, #0x20 .text:10006E3C MOV R0, R4 .text:10006E40 BL sub_10004BCC .text:10006E44 MOV R3, #2 .text:10006E48 MOV R2, #0x4000 .text:10006E4C MOV R1, #0x1E .text:10006E50 MOV R0, R4 .text:10006E54 BL sub_10004BCC .text:10006E58 MOVL R2, 0xCC40 .text:10006E60 MOV R3, #2 .text:10006E64 MOV R1, #0x22 .text:10006E68 MOV R0, R4 .text:10006E6C BL sub_10004BCC .text:10006E70 MOVL R2, 0xD640 .text:10006E78 MOV R3, #2 .text:10006E7C MOV R1, #0x14 .text:10006E80 MOV R0, R4 .text:10006E84 BL sub_10004BCC .text:10006E88 MOVL R2, 0xF0F .text:10006E90 MOV R3, #2 .text:10006E94 MOV R1, #0x12 .text:10006E98 MOV R0, R4 .text:10006E9C BL sub_10004BCC .text:10006EA0 MOV R3, #2 .text:10006EA4 MOV R2, #0xDA .text:10006EA8 MOV R1, #0x10 .text:10006EAC MOV R0, R4 .text:10006EB0 BL sub_10004BCC .text:10006EB4 MOVL R2, 0xFF1F .text:10006EBC MOV R3, #2 .text:10006EC0 MOV R1, #0xA .text:10006EC4 MOV R0, R4 .text:10006EC8 BL sub_10004BCC .text:10006ECC MOV R3, #2 .text:10006ED0 MOV R2, #0x130 .text:10006ED4 MOV R1, #0x5A .text:10006ED8 MOV R0, R4 .text:10006EDC BL sub_10004BCC .text:10006EE0 MOV R2, #0 .text:10006EE4 .text:10006EE4 loc_10006EE4 ; CODE XREF: sub_10006BBC+220j .text:10006EE4 MOV R3, #2 .text:10006EE8 MOV R1, #0x5C .text:10006EEC MOV R0, R4 .text:10006EF0 BL sub_10004BCC .text:10006EF4 MOV R2, #0x3E80 .text:10006EF8 .text:10006EF8 loc_10006EF8 ; CODE XREF: sub_10006BBC+14Cj .text:10006EF8 MOV R3, #2 .text:10006EFC MOV R1, #0x62 .text:10006F00 MOV R0, R4 .text:10006F04 BL sub_10004BCC .text:10006F08 .text:10006F08 loc_10006F08 ; CODE XREF: sub_10006BBC+Cj .text:10006F08 ; sub_10006BBC+2Cj .text:10006F08 MOV R0, #1 .text:10006F0C LDMFD SP!, {R4,LR} .text:10006F10 BX LR .text:10006F10 ; End of function sub_10006BBC .text:10006F10 .text:10006F10 ; --------------------------------------------------------------------------- .text:10006F14 off_10006F14 DCD unk_1000B514 ; DATA XREF: sub_10006BBC+10r .text:10006F18 .text:10006F18 ; =============== S U B R O U T I N E ======================================= .text:10006F18 .text:10006F18 .text:10006F18 sub_10006F18 ; CODE XREF: sub_10007D54+1A8p .text:10006F18 ; DATA XREF: .pdata:1000C400o .text:10006F18 .text:10006F18 var_C = -0xC .text:10006F18 .text:10006F18 STMFD SP!, {R4,LR} .text:10006F1C SUB SP, SP, #4 .text:10006F20 CMP R1, #0 .text:10006F24 MOV R4, R0 .text:10006F28 BNE loc_100073E8 .text:10006F2C LDR R3, =unk_1000B514 .text:10006F30 LDR R3, [R3] .text:10006F34 CMP R3, #0 .text:10006F38 BEQ loc_100072AC .text:10006F3C CMP R3, #1 .text:10006F40 BEQ loc_100071B0 .text:10006F44 CMP R3, #2 .text:10006F48 BEQ loc_10007090 .text:10006F4C CMP R3, #4 .text:10006F50 BNE loc_100073E8 .text:10006F54 MOVL R2, 0xC840 .text:10006F5C MOV R3, #2 .text:10006F60 MOV R1, #0x22 .text:10006F64 BL sub_10004BCC .text:10006F68 MOVL R2, 0xD658 .text:10006F70 MOV R3, #2 .text:10006F74 MOV R1, #0x14 .text:10006F78 MOV R0, R4 .text:10006F7C BL sub_10004BCC .text:10006F80 MOVL R2, 0x3838 .text:10006F88 MOV R3, #2 .text:10006F8C MOV R1, #0x12 .text:10006F90 MOV R0, R4 .text:10006F94 BL sub_10004BCC .text:10006F98 MOVL R2, 0xFF1F .text:10006FA0 MOV R3, #2 .text:10006FA4 MOV R1, #0xA .text:10006FA8 MOV R0, R4 .text:10006FAC BL sub_10004BCC .text:10006FB0 MOV R3, #2 .text:10006FB4 MOV R2, #0x18 .text:10006FB8 MOV R1, #0x5C .text:10006FBC MOV R0, R4 .text:10006FC0 BL sub_10004BCC .text:10006FC4 MOV R3, #2 .text:10006FC8 MOV R2, #0x3E80 .text:10006FCC MOV R1, #0x62 .text:10006FD0 MOV R0, R4 .text:10006FD4 BL sub_10004BCC .text:10006FD8 MOVL R2, 0x808 .text:10006FE0 MOV R3, #2 .text:10006FE4 MOV R1, #0xE .text:10006FE8 MOV R0, R4 .text:10006FEC BL sub_10004BCC .text:10006FF0 MOV R3, #2 .text:10006FF4 MOV R2, #0x7A .text:10006FF8 MOV R1, #0x10 .text:10006FFC MOV R0, R4 .text:10007000 BL sub_10004BCC .text:10007004 MOV R3, #2 .text:10007008 MOV R2, #0x8400 .text:1000700C MOV R1, #8 .text:10007010 MOV R0, R4 .text:10007014 BL sub_10004BCC .text:10007018 MOV R3, #2 .text:1000701C MOV R2, #0xAA0 .text:10007020 MOV R1, #0x16 .text:10007024 MOV R0, R4 .text:10007028 BL sub_10004BCC .text:1000702C MOV R3, #2 .text:10007030 MOV R2, #0x4400 .text:10007034 MOV R1, #0x1E .text:10007038 MOV R0, R4 .text:1000703C BL sub_10004BCC .text:10007040 MOVL R2, 0xA202 .text:10007048 MOV R3, #2 .text:1000704C MOV R1, #0x1C .text:10007050 MOV R0, R4 .text:10007054 BL sub_10004BCC .text:10007058 MOV R3, #2 .text:1000705C MOV R2, #0x80 .text:10007060 MOV R1, #6 .text:10007064 MOV R0, R4 .text:10007068 BL sub_10004BCC .text:1000706C MOV R3, #2 .text:10007070 MOV R2, #0 .text:10007074 MOV R1, #2 .text:10007078 MOV R0, R4 .text:1000707C BL sub_10004BCC .text:10007080 MOV R1, #1 .text:10007084 MOV R0, R4 .text:10007088 BL sub_10005448 .text:1000708C B loc_100073E8 .text:10007090 ; --------------------------------------------------------------------------- .text:10007090 .text:10007090 loc_10007090 ; CODE XREF: sub_10006F18+30j .text:10007090 MOVL R2, 0xC183 .text:10007098 MOV R3, #2 .text:1000709C MOV R1, #0x36 .text:100070A0 MOV R0, R4 .text:100070A4 BL sub_10004BCC .text:100070A8 MOV R1, #2 .text:100070AC MOV R0, R4 .text:100070B0 BL sub_10005654 .text:100070B4 MOV R3, #2 .text:100070B8 MOV R2, #0xB80 .text:100070BC MOV R1, #0x44 .text:100070C0 MOV R0, R4 .text:100070C4 BL sub_10004BCC .text:100070C8 MOVL R2, 0x8002 .text:100070D0 MOV R3, #2 .text:100070D4 MOV R1, #0x1C .text:100070D8 MOV R0, R4 .text:100070DC BL sub_10004BCC .text:100070E0 MOV R3, #2 .text:100070E4 MOV R2, #0x400 .text:100070E8 MOV R1, #0x1E .text:100070EC MOV R0, R4 .text:100070F0 BL sub_10004BCC .text:100070F4 MOV R3, #2 .text:100070F8 MOV R2, #0xA80 .text:100070FC MOV R1, #6 .text:10007100 MOV R0, R4 .text:10007104 BL sub_10004BCC .text:10007108 MOV R3, #2 .text:1000710C MOV R2, #0x130 .text:10007110 MOV R1, #0x5A .text:10007114 MOV R0, R4 .text:10007118 BL sub_10004BCC .text:1000711C MOV R0, R4 .text:10007120 BL sub_100056B0 .text:10007124 MOV R3, #2 .text:10007128 ADD R2, SP, #0xC+var_C .text:1000712C MOV R1, #8 .text:10007130 MOV R0, R4 .text:10007134 BL sub_10004C08 .text:10007138 LDRH R3, [SP,#0xC+var_C] .text:1000713C MOVL R2, 0x7FFF .text:10007144 AND R2, R3, R2 .text:10007148 MOV R3, #2 .text:1000714C MOV R1, #8 .text:10007150 MOV R0, R4 .text:10007154 STRH R2, [SP,#0xC+var_C] .text:10007158 BL sub_10004BCC .text:1000715C MOV R3, #2 .text:10007160 MOV R2, #0xAA0 .text:10007164 MOV R1, #0x16 .text:10007168 MOV R0, R4 .text:1000716C BL sub_10004BCC .text:10007170 MOVL R2, 0xD61E .text:10007178 MOV R3, #2 .text:1000717C MOV R1, #0x14 .text:10007180 MOV R0, R4 .text:10007184 BL sub_10004BCC .text:10007188 MOVL R2, 0x8080 .text:10007190 MOV R3, #2 .text:10007194 MOV R1, #4 .text:10007198 MOV R0, R4 .text:1000719C BL sub_10004BCC .text:100071A0 MOVL R2, 0x8080 .text:100071A8 MOV R1, #2 .text:100071AC B loc_100073DC .text:100071B0 ; --------------------------------------------------------------------------- .text:100071B0 .text:100071B0 loc_100071B0 ; CODE XREF: sub_10006F18+28j .text:100071B0 MOVL R2, 0xF040 .text:100071B8 MOV R3, #2 .text:100071BC MOV R1, #0x22 .text:100071C0 MOV R0, R4 .text:100071C4 BL sub_10004BCC .text:100071C8 MOVL R2, 0xD65A .text:100071D0 MOV R3, #2 .text:100071D4 MOV R1, #0x14 .text:100071D8 MOV R0, R4 .text:100071DC BL sub_10004BCC .text:100071E0 MOVL R2, 0x7F7F .text:100071E8 MOV R3, #2 .text:100071EC MOV R1, #0x12 .text:100071F0 MOV R0, R4 .text:100071F4 BL sub_10004BCC .text:100071F8 MOV R3, #2 .text:100071FC MOV R2, #8 .text:10007200 MOV R1, #0x5C .text:10007204 MOV R0, R4 .text:10007208 BL sub_10004BCC .text:1000720C MOV R3, #2 .text:10007210 MOV R2, #0x3E80 .text:10007214 MOV R1, #0x62 .text:10007218 MOV R0, R4 .text:1000721C BL sub_10004BCC .text:10007220 MOV R3, #2 .text:10007224 MOV R2, #0x4800 .text:10007228 MOV R1, #8 .text:1000722C MOV R0, R4 .text:10007230 BL sub_10004BCC .text:10007234 MOV R3, #2 .text:10007238 MOV R2, #0x80 .text:1000723C MOV R1, #6 .text:10007240 MOV R0, R4 .text:10007244 BL sub_10004BCC .text:10007248 MOV R3, #2 .text:1000724C MOV R2, #0x400 .text:10007250 MOV R1, #0x1E .text:10007254 MOV R0, R4 .text:10007258 BL sub_10004BCC .text:1000725C MOVL R2, 0x2AA0 .text:10007264 MOV R3, #2 .text:10007268 MOV R1, #0x16 .text:1000726C MOV R0, R4 .text:10007270 BL sub_10004BCC .text:10007274 MOV R3, #2 .text:10007278 MOV R2, #0xC000 .text:1000727C MOV R1, #0xA .text:10007280 MOV R0, R4 .text:10007284 BL sub_10004BCC .text:10007288 MOVL R2, 0x80A2 .text:10007290 MOV R3, #2 .text:10007294 MOV R1, #0x1C .text:10007298 MOV R0, R4 .text:1000729C BL sub_10004BCC .text:100072A0 MOVL R2, 0x707 .text:100072A8 B loc_100073D8 .text:100072AC ; --------------------------------------------------------------------------- .text:100072AC .text:100072AC loc_100072AC ; CODE XREF: sub_10006F18+20j .text:100072AC MOVL R2, 0xCC40 .text:100072B4 MOV R3, #2 .text:100072B8 MOV R1, #0x22 .text:100072BC MOV R0, R4 .text:100072C0 BL sub_10004BCC .text:100072C4 MOVL R2, 0xD643 .text:100072CC MOV R3, #2 .text:100072D0 MOV R1, #0x14 .text:100072D4 MOV R0, R4 .text:100072D8 BL sub_10004BCC .text:100072DC MOVL R2, 0xF0F .text:100072E4 MOV R3, #2 .text:100072E8 MOV R1, #0x12 .text:100072EC MOV R0, R4 .text:100072F0 BL sub_10004BCC .text:100072F4 MOVL R2, 0xFF1F .text:100072FC MOV R3, #2 .text:10007300 MOV R1, #0xA .text:10007304 MOV R0, R4 .text:10007308 BL sub_10004BCC .text:1000730C MOV R3, #2 .text:10007310 MOV R2, #0 .text:10007314 MOV R1, #0x5C .text:10007318 MOV R0, R4 .text:1000731C BL sub_10004BCC .text:10007320 MOV R3, #2 .text:10007324 MOV R2, #0x3E80 .text:10007328 MOV R1, #0x62 .text:1000732C MOV R0, R4 .text:10007330 BL sub_10004BCC .text:10007334 MOVL R2, 0x404 .text:1000733C MOV R3, #2 .text:10007340 MOV R1, #0xE .text:10007344 MOV R0, R4 .text:10007348 BL sub_10004BCC .text:1000734C MOV R3, #2 .text:10007350 MOV R2, #0x5A .text:10007354 MOV R1, #0x10 .text:10007358 MOV R0, R4 .text:1000735C BL sub_10004BCC .text:10007360 MOVL R2, 0x8804 .text:10007368 MOV R3, #2 .text:1000736C MOV R1, #8 .text:10007370 MOV R0, R4 .text:10007374 BL sub_10004BCC .text:10007378 MOVL R2, 0x2AA0 .text:10007380 MOV R3, #2 .text:10007384 MOV R1, #0x16 .text:10007388 MOV R0, R4 .text:1000738C BL sub_10004BCC .text:10007390 MOV R3, #2 .text:10007394 MOV R2, #0x4400 .text:10007398 MOV R1, #0x1E .text:1000739C MOV R0, R4 .text:100073A0 BL sub_10004BCC .text:100073A4 MOVL R2, 0x808A .text:100073AC MOV R3, #2 .text:100073B0 MOV R1, #0x1C .text:100073B4 MOV R0, R4 .text:100073B8 BL sub_10004BCC .text:100073BC MOVL R2, 0x404 .text:100073C4 MOV R3, #2 .text:100073C8 MOV R1, #6 .text:100073CC MOV R0, R4 .text:100073D0 BL sub_10004BCC .text:100073D4 MOV R2, #0x480 .text:100073D8 .text:100073D8 loc_100073D8 ; CODE XREF: sub_10006F18+390j .text:100073D8 MOV R1, #4 .text:100073DC .text:100073DC loc_100073DC ; CODE XREF: sub_10006F18+294j .text:100073DC MOV R3, #2 .text:100073E0 MOV R0, R4 .text:100073E4 BL sub_10004BCC .text:100073E8 .text:100073E8 loc_100073E8 ; CODE XREF: sub_10006F18+10j .text:100073E8 ; sub_10006F18+38j ... .text:100073E8 MOV R0, #1 .text:100073EC ADD SP, SP, #4 .text:100073F0 LDMFD SP!, {R4,LR} .text:100073F4 BX LR .text:100073F4 ; End of function sub_10006F18 .text:100073F4 .text:100073F4 ; --------------------------------------------------------------------------- .text:100073F8 off_100073F8 DCD unk_1000B514 ; DATA XREF: sub_10006F18+14r .text:100073FC .text:100073FC ; =============== S U B R O U T I N E ======================================= .text:100073FC .text:100073FC .text:100073FC sub_100073FC ; CODE XREF: sub_10007D54+1B8p .text:100073FC ; DATA XREF: .pdata:1000C408o .text:100073FC STMFD SP!, {R4,LR} .text:10007400 CMP R1, #0 .text:10007404 MOV R4, R0 .text:10007408 BNE loc_10007940 .text:1000740C LDR R3, =unk_1000B514 .text:10007410 LDR R3, [R3] .text:10007414 CMP R3, #0 .text:10007418 BEQ loc_100077D4 .text:1000741C CMP R3, #1 .text:10007420 BEQ loc_100076A8 .text:10007424 CMP R3, #2 .text:10007428 BEQ loc_10007590 .text:1000742C CMP R3, #4 .text:10007430 BNE loc_10007940 .text:10007434 MOVL R2, 0xC840 .text:1000743C MOV R3, #2 .text:10007440 MOV R1, #0x22 .text:10007444 BL sub_10004BCC .text:10007448 MOVL R2, 0xD658 .text:10007450 MOV R3, #2 .text:10007454 MOV R1, #0x14 .text:10007458 MOV R0, R4 .text:1000745C BL sub_10004BCC .text:10007460 MOVL R2, 0x3838 .text:10007468 MOV R3, #2 .text:1000746C MOV R1, #0x12 .text:10007470 MOV R0, R4 .text:10007474 BL sub_10004BCC .text:10007478 MOVL R2, 0xFF1F .text:10007480 MOV R3, #2 .text:10007484 MOV R1, #0xA .text:10007488 MOV R0, R4 .text:1000748C BL sub_10004BCC .text:10007490 MOV R3, #2 .text:10007494 MOV R2, #0x18 .text:10007498 MOV R1, #0x5C .text:1000749C MOV R0, R4 .text:100074A0 BL sub_10004BCC .text:100074A4 MOV R3, #2 .text:100074A8 MOV R2, #0x3E80 .text:100074AC MOV R1, #0x62 .text:100074B0 MOV R0, R4 .text:100074B4 BL sub_10004BCC .text:100074B8 MOV R0, R4 .text:100074BC BL sub_100056B0 .text:100074C0 MOV R3, #2 .text:100074C4 MOV R2, #0x7A .text:100074C8 MOV R1, #0x10 .text:100074CC MOV R0, R4 .text:100074D0 BL sub_10004BCC .text:100074D4 MOV R3, #2 .text:100074D8 MOV R2, #0x8400 .text:100074DC MOV R1, #8 .text:100074E0 MOV R0, R4 .text:100074E4 BL sub_10004BCC .text:100074E8 MOV R3, #2 .text:100074EC MOV R2, #0xAA0 .text:100074F0 MOV R1, #0x16 .text:100074F4 MOV R0, R4 .text:100074F8 BL sub_10004BCC .text:100074FC MOV R3, #2 .text:10007500 MOV R2, #0x2000 .text:10007504 MOV R1, #0x40 .text:10007508 MOV R0, R4 .text:1000750C BL sub_10004BCC .text:10007510 MOVL R2, 0x841E .text:10007518 MOV R3, #2 .text:1000751C MOV R1, #0x20 .text:10007520 MOV R0, R4 .text:10007524 BL sub_10004BCC .text:10007528 MOVL R2, 0x4409 .text:10007530 MOV R3, #2 .text:10007534 MOV R1, #0x1E .text:10007538 MOV R0, R4 .text:1000753C BL sub_10004BCC .text:10007540 MOVL R2, 0xA202 .text:10007548 MOV R3, #2 .text:1000754C MOV R1, #0x1C .text:10007550 MOV R0, R4 .text:10007554 BL sub_10004BCC .text:10007558 MOV R3, #2 .text:1000755C MOV R2, #0x80 .text:10007560 MOV R1, #6 .text:10007564 MOV R0, R4 .text:10007568 BL sub_10004BCC .text:1000756C MOV R3, #2 .text:10007570 MOV R2, #0 .text:10007574 MOV R1, #2 .text:10007578 MOV R0, R4 .text:1000757C BL sub_10004BCC .text:10007580 MOV R1, #1 .text:10007584 MOV R0, R4 .text:10007588 BL sub_10005448 .text:1000758C B loc_10007940 .text:10007590 ; --------------------------------------------------------------------------- .text:10007590 .text:10007590 loc_10007590 ; CODE XREF: sub_100073FC+2Cj .text:10007590 MOVL R2, 0xC183 .text:10007598 MOV R3, #2 .text:1000759C MOV R1, #0x36 .text:100075A0 MOV R0, R4 .text:100075A4 BL sub_10004BCC .text:100075A8 MOV R1, #2 .text:100075AC MOV R0, R4 .text:100075B0 BL sub_10005654 .text:100075B4 MOV R3, #2 .text:100075B8 MOV R2, #0xB80 .text:100075BC MOV R1, #0x44 .text:100075C0 MOV R0, R4 .text:100075C4 BL sub_10004BCC .text:100075C8 MOV R0, R4 .text:100075CC BL sub_100056B0 .text:100075D0 MOVL R2, 0x8002 .text:100075D8 MOV R3, #2 .text:100075DC MOV R1, #0x1C .text:100075E0 MOV R0, R4 .text:100075E4 BL sub_10004BCC .text:100075E8 MOV R3, #2 .text:100075EC MOV R2, #0x2000 .text:100075F0 MOV R1, #0x40 .text:100075F4 MOV R0, R4 .text:100075F8 BL sub_10004BCC .text:100075FC MOVL R2, 0x841E .text:10007604 MOV R3, #2 .text:10007608 MOV R1, #0x20 .text:1000760C MOV R0, R4 .text:10007610 BL sub_10004BCC .text:10007614 MOVL R2, 0x409 .text:1000761C MOV R3, #2 .text:10007620 MOV R1, #0x1E .text:10007624 MOV R0, R4 .text:10007628 BL sub_10004BCC .text:1000762C MOV R3, #2 .text:10007630 MOV R2, #0xA80 .text:10007634 MOV R1, #6 .text:10007638 MOV R0, R4 .text:1000763C BL sub_10004BCC .text:10007640 MOV R3, #2 .text:10007644 MOV R2, #0xAA0 .text:10007648 MOV R1, #0x16 .text:1000764C MOV R0, R4 .text:10007650 BL sub_10004BCC .text:10007654 MOVL R2, 0xD61E .text:1000765C MOV R3, #2 .text:10007660 MOV R1, #0x14 .text:10007664 MOV R0, R4 .text:10007668 BL sub_10004BCC .text:1000766C MOV R3, #2 .text:10007670 MOV R2, #0x130 .text:10007674 MOV R1, #0x5A .text:10007678 MOV R0, R4 .text:1000767C BL sub_10004BCC .text:10007680 MOVL R2, 0x8080 .text:10007688 MOV R3, #2 .text:1000768C MOV R1, #4 .text:10007690 MOV R0, R4 .text:10007694 BL sub_10004BCC .text:10007698 MOVL R2, 0x8080 .text:100076A0 MOV R1, #2 .text:100076A4 B loc_10007934 .text:100076A8 ; --------------------------------------------------------------------------- .text:100076A8 .text:100076A8 loc_100076A8 ; CODE XREF: sub_100073FC+24j .text:100076A8 MOVL R2, 0xF040 .text:100076B0 MOV R3, #2 .text:100076B4 MOV R1, #0x22 .text:100076B8 MOV R0, R4 .text:100076BC BL sub_10004BCC .text:100076C0 MOVL R2, 0xD65A .text:100076C8 MOV R3, #2 .text:100076CC MOV R1, #0x14 .text:100076D0 MOV R0, R4 .text:100076D4 BL sub_10004BCC .text:100076D8 MOVL R2, 0x7F7F .text:100076E0 MOV R3, #2 .text:100076E4 MOV R1, #0x12 .text:100076E8 MOV R0, R4 .text:100076EC BL sub_10004BCC .text:100076F0 MOV R3, #2 .text:100076F4 MOV R2, #8 .text:100076F8 MOV R1, #0x5C .text:100076FC MOV R0, R4 .text:10007700 BL sub_10004BCC .text:10007704 MOV R3, #2 .text:10007708 MOV R2, #0x3E80 .text:1000770C MOV R1, #0x62 .text:10007710 MOV R0, R4 .text:10007714 BL sub_10004BCC .text:10007718 MOV R3, #2 .text:1000771C MOV R2, #0x4800 .text:10007720 MOV R1, #8 .text:10007724 MOV R0, R4 .text:10007728 BL sub_10004BCC .text:1000772C MOV R3, #2 .text:10007730 MOV R2, #0x80 .text:10007734 MOV R1, #6 .text:10007738 MOV R0, R4 .text:1000773C BL sub_10004BCC .text:10007740 MOV R3, #2 .text:10007744 MOV R2, #0x2000 .text:10007748 MOV R1, #0x40 .text:1000774C MOV R0, R4 .text:10007750 BL sub_10004BCC .text:10007754 MOVL R2, 0x841E .text:1000775C MOV R3, #2 .text:10007760 MOV R1, #0x20 .text:10007764 MOV R0, R4 .text:10007768 BL sub_10004BCC .text:1000776C MOVL R2, 0x409 .text:10007774 MOV R3, #2 .text:10007778 MOV R1, #0x1E .text:1000777C MOV R0, R4 .text:10007780 BL sub_10004BCC .text:10007784 MOVL R2, 0x2AA0 .text:1000778C MOV R3, #2 .text:10007790 MOV R1, #0x16 .text:10007794 MOV R0, R4 .text:10007798 BL sub_10004BCC .text:1000779C MOV R3, #2 .text:100077A0 MOV R2, #0xC000 .text:100077A4 MOV R1, #0xA .text:100077A8 MOV R0, R4 .text:100077AC BL sub_10004BCC .text:100077B0 MOVL R2, 0x80A2 .text:100077B8 MOV R3, #2 .text:100077BC MOV R1, #0x1C .text:100077C0 MOV R0, R4 .text:100077C4 BL sub_10004BCC .text:100077C8 MOVL R2, 0x707 .text:100077D0 B loc_10007930 .text:100077D4 ; --------------------------------------------------------------------------- .text:100077D4 .text:100077D4 loc_100077D4 ; CODE XREF: sub_100073FC+1Cj .text:100077D4 MOVL R2, 0xCC40 .text:100077DC MOV R3, #2 .text:100077E0 MOV R1, #0x22 .text:100077E4 MOV R0, R4 .text:100077E8 BL sub_10004BCC .text:100077EC MOVL R2, 0xD643 .text:100077F4 MOV R3, #2 .text:100077F8 MOV R1, #0x14 .text:100077FC MOV R0, R4 .text:10007800 BL sub_10004BCC .text:10007804 MOVL R2, 0xF0F .text:1000780C MOV R3, #2 .text:10007810 MOV R1, #0x12 .text:10007814 MOV R0, R4 .text:10007818 BL sub_10004BCC .text:1000781C MOVL R2, 0xFF1F .text:10007824 MOV R3, #2 .text:10007828 MOV R1, #0xA .text:1000782C MOV R0, R4 .text:10007830 BL sub_10004BCC .text:10007834 MOV R3, #2 .text:10007838 MOV R2, #0 .text:1000783C MOV R1, #0x5C .text:10007840 MOV R0, R4 .text:10007844 BL sub_10004BCC .text:10007848 MOV R3, #2 .text:1000784C MOV R2, #0x3E80 .text:10007850 MOV R1, #0x62 .text:10007854 MOV R0, R4 .text:10007858 BL sub_10004BCC .text:1000785C MOVL R2, 0x303 .text:10007864 MOV R3, #2 .text:10007868 MOV R1, #0xE .text:1000786C MOV R0, R4 .text:10007870 BL sub_10004BCC .text:10007874 MOV R3, #2 .text:10007878 MOV R2, #0x5A .text:1000787C MOV R1, #0x10 .text:10007880 MOV R0, R4 .text:10007884 BL sub_10004BCC .text:10007888 MOVL R2, 0x4809 .text:10007890 MOV R3, #2 .text:10007894 MOV R1, #8 .text:10007898 MOV R0, R4 .text:1000789C BL sub_10004BCC .text:100078A0 MOVL R2, 0x2AA0 .text:100078A8 MOV R3, #2 .text:100078AC MOV R1, #0x16 .text:100078B0 MOV R0, R4 .text:100078B4 BL sub_10004BCC .text:100078B8 MOV R3, #2 .text:100078BC MOV R2, #0x2000 .text:100078C0 MOV R1, #0x40 .text:100078C4 MOV R0, R4 .text:100078C8 BL sub_10004BCC .text:100078CC MOVL R2, 0x841E .text:100078D4 MOV R3, #2 .text:100078D8 MOV R1, #0x20 .text:100078DC MOV R0, R4 .text:100078E0 BL sub_10004BCC .text:100078E4 MOVL R2, 0x4409 .text:100078EC MOV R3, #2 .text:100078F0 MOV R1, #0x1E .text:100078F4 MOV R0, R4 .text:100078F8 BL sub_10004BCC .text:100078FC MOVL R2, 0x808A .text:10007904 MOV R3, #2 .text:10007908 MOV R1, #0x1C .text:1000790C MOV R0, R4 .text:10007910 BL sub_10004BCC .text:10007914 MOV R3, #2 .text:10007918 MOVL R2, 0x404 .text:10007920 MOV R1, #6 .text:10007924 MOV R0, R4 .text:10007928 BL sub_10004BCC .text:1000792C MOV R2, #0x480 .text:10007930 .text:10007930 loc_10007930 ; CODE XREF: sub_100073FC+3D4j .text:10007930 MOV R1, #4 .text:10007934 .text:10007934 loc_10007934 ; CODE XREF: sub_100073FC+2A8j .text:10007934 MOV R3, #2 .text:10007938 MOV R0, R4 .text:1000793C BL sub_10004BCC .text:10007940 .text:10007940 loc_10007940 ; CODE XREF: sub_100073FC+Cj .text:10007940 ; sub_100073FC+34j ... .text:10007940 MOV R0, #1 .text:10007944 LDMFD SP!, {R4,LR} .text:10007948 BX LR .text:10007948 ; End of function sub_100073FC .text:10007948 .text:10007948 ; --------------------------------------------------------------------------- .text:1000794C off_1000794C DCD unk_1000B514 ; DATA XREF: sub_100073FC+10r .text:10007950 .text:10007950 ; =============== S U B R O U T I N E ======================================= .text:10007950 .text:10007950 .text:10007950 sub_10007950 ; CODE XREF: sub_10008BD4+298p .text:10007950 ; DATA XREF: .pdata:1000C410o .text:10007950 .text:10007950 var_10 = -0x10 .text:10007950 var_C = -0xC .text:10007950 .text:10007950 STMFD SP!, {R4,LR} .text:10007954 SUB SP, SP, #8 .text:10007958 MOV R3, #0 .text:1000795C MOV R2, #0 .text:10007960 MOV R1, #0 .text:10007964 MOV R0, #0 .text:10007968 BL CreateEventW .text:1000796C LDR R4, =unk_1000B50C .text:10007970 MOV R3, #0 .text:10007974 MOV R2, #0 .text:10007978 STR R0, [R4] .text:1000797C MOV R0, #0 .text:10007980 MOV R1, #0 .text:10007984 BL CreateEventW .text:10007988 LDR R2, =sub_10005368 .text:1000798C MOV R3, R0 .text:10007990 STR R3, [R4,#4] .text:10007994 MOV LR, #0 .text:10007998 MOV R3, #0 .text:1000799C MOV R0, #0 .text:100079A0 MOV R1, #0 .text:100079A4 STR LR, [SP,#0x10+var_C] .text:100079A8 STR LR, [SP,#0x10+var_10] .text:100079AC BL CreateThread .text:100079B0 CMP R0, #0 .text:100079B4 BLNE CloseHandle .text:100079B8 MOV R0, #1 .text:100079BC ADD SP, SP, #8 .text:100079C0 LDMFD SP!, {R4,LR} .text:100079C4 BX LR .text:100079C4 ; End of function sub_10007950 .text:100079C4 .text:100079C4 ; --------------------------------------------------------------------------- .text:100079C8 off_100079C8 DCD sub_10005368 ; DATA XREF: sub_10007950+38r .text:100079CC off_100079CC DCD unk_1000B50C ; DATA XREF: sub_10007950+1Cr .text:100079D0 .text:100079D0 ; =============== S U B R O U T I N E ======================================= .text:100079D0 .text:100079D0 .text:100079D0 sub_100079D0 ; CODE XREF: sub_1000812C+18p .text:100079D0 ; sub_10008878+8Cp ... .text:100079D0 STMFD SP!, {R4,LR} .text:100079D4 MOV R4, R0 .text:100079D8 LDR R3, =unk_1000B514 .text:100079DC LDR R3, [R3] .text:100079E0 CMP R3, #0 .text:100079E4 BEQ loc_10007BB0 .text:100079E8 CMP R3, #1 .text:100079EC BEQ loc_10007AE0 .text:100079F0 CMP R3, #2 .text:100079F4 BNE loc_10007C88 .text:100079F8 MOV R1, #1 .text:100079FC BL sub_10005448 .text:10007A00 MOVL R2, 0xC183 .text:10007A08 MOV R3, #2 .text:10007A0C MOV R1, #0x36 .text:10007A10 MOV R0, R4 .text:10007A14 BL sub_10004BCC .text:10007A18 MOV R1, #2 .text:10007A1C MOV R0, R4 .text:10007A20 BL sub_10005654 .text:10007A24 MOV R3, #2 .text:10007A28 MOV R2, #0xB80 .text:10007A2C MOV R1, #0x44 .text:10007A30 MOV R0, R4 .text:10007A34 BL sub_10004BCC .text:10007A38 MOVL R2, 0xA707 .text:10007A40 MOV R3, #2 .text:10007A44 MOV R1, #0xC .text:10007A48 MOV R0, R4 .text:10007A4C BL sub_10004BCC .text:10007A50 MOV R3, #2 .text:10007A54 MOV R2, #0x2300 .text:10007A58 MOV R1, #0x1C .text:10007A5C MOV R0, R4 .text:10007A60 BL sub_10004BCC .text:10007A64 MOV R3, #2 .text:10007A68 MOV R2, #0x2000 .text:10007A6C MOV R1, #0x40 .text:10007A70 MOV R0, R4 .text:10007A74 BL sub_10004BCC .text:10007A78 MOVL R2, 0x841E .text:10007A80 MOV R3, #2 .text:10007A84 MOV R1, #0x20 .text:10007A88 MOV R0, R4 .text:10007A8C BL sub_10004BCC .text:10007A90 MOVL R2, 0x4009 .text:10007A98 MOV R3, #2 .text:10007A9C MOV R1, #0x1E .text:10007AA0 MOV R0, R4 .text:10007AA4 BL sub_10004BCC .text:10007AA8 MOVL R2, 0x8080 .text:10007AB0 MOV R3, #2 .text:10007AB4 MOV R1, #4 .text:10007AB8 MOV R0, R4 .text:10007ABC BL sub_10004BCC .text:10007AC0 MOVL R2, 0x101 .text:10007AC8 MOV R3, #2 .text:10007ACC MOV R1, #2 .text:10007AD0 MOV R0, R4 .text:10007AD4 BL sub_10004BCC .text:10007AD8 MOV R2, #0x2B00 .text:10007ADC B loc_10007C5C .text:10007AE0 ; --------------------------------------------------------------------------- .text:10007AE0 .text:10007AE0 loc_10007AE0 ; CODE XREF: sub_100079D0+1Cj .text:10007AE0 MOV R1, #1 .text:10007AE4 MOV R0, R4 .text:10007AE8 BL sub_10005448 .text:10007AEC MOVL R2, 0x6707 .text:10007AF4 MOV R3, #2 .text:10007AF8 MOV R1, #0xC .text:10007AFC MOV R0, R4 .text:10007B00 BL sub_10004BCC .text:10007B04 MOVL R2, 0x8009 .text:10007B0C MOV R3, #2 .text:10007B10 MOV R1, #0x1E .text:10007B14 MOV R0, R4 .text:10007B18 BL sub_10004BCC .text:10007B1C MOVL R2, 0x22A0 .text:10007B24 MOV R3, #2 .text:10007B28 MOV R1, #0x1C .text:10007B2C MOV R0, R4 .text:10007B30 BL sub_10004BCC .text:10007B34 MOV R3, #2 .text:10007B38 MOV R2, #0x2000 .text:10007B3C MOV R1, #0x40 .text:10007B40 MOV R0, R4 .text:10007B44 BL sub_10004BCC .text:10007B48 MOVL R2, 0x841E .text:10007B50 MOV R3, #2 .text:10007B54 MOV R1, #0x20 .text:10007B58 MOV R0, R4 .text:10007B5C BL sub_10004BCC .text:10007B60 MOVL R2, 0xA0A .text:10007B68 MOV R3, #2 .text:10007B6C MOV R1, #4 .text:10007B70 MOV R0, R4 .text:10007B74 BL sub_10004BCC .text:10007B78 MOVL R2, 0x101 .text:10007B80 MOV R3, #2 .text:10007B84 MOV R1, #2 .text:10007B88 MOV R0, R4 .text:10007B8C BL sub_10004BCC .text:10007B90 MOVL R2, 0x3B33 .text:10007B98 MOV R3, #2 .text:10007B9C MOV R1, #0x3C .text:10007BA0 MOV R0, R4 .text:10007BA4 BL sub_10004BCC .text:10007BA8 MOV R2, #0xB800 .text:10007BAC B loc_10007C74 .text:10007BB0 ; --------------------------------------------------------------------------- .text:10007BB0 .text:10007BB0 loc_10007BB0 ; CODE XREF: sub_100079D0+14j .text:10007BB0 MOV R1, #1 .text:10007BB4 MOV R0, R4 .text:10007BB8 BL sub_10005448 .text:10007BBC MOVL R2, 0xA808 .text:10007BC4 MOV R3, #2 .text:10007BC8 MOV R1, #0xC .text:10007BCC MOV R0, R4 .text:10007BD0 BL sub_10004BCC .text:10007BD4 MOV R3, #2 .text:10007BD8 MOV R2, #0x2300 .text:10007BDC MOV R1, #0x1C .text:10007BE0 MOV R0, R4 .text:10007BE4 BL sub_10004BCC .text:10007BE8 MOV R3, #2 .text:10007BEC MOV R2, #0x2000 .text:10007BF0 MOV R1, #0x40 .text:10007BF4 MOV R0, R4 .text:10007BF8 BL sub_10004BCC .text:10007BFC MOVL R2, 0x841E .text:10007C04 MOV R3, #2 .text:10007C08 MOV R1, #0x20 .text:10007C0C MOV R0, R4 .text:10007C10 BL sub_10004BCC .text:10007C14 MOVL R2, 0x4009 .text:10007C1C MOV R3, #2 .text:10007C20 MOV R1, #0x1E .text:10007C24 MOV R0, R4 .text:10007C28 BL sub_10004BCC .text:10007C2C MOVL R2, 0x8080 .text:10007C34 MOV R3, #2 .text:10007C38 MOV R1, #4 .text:10007C3C MOV R0, R4 .text:10007C40 BL sub_10004BCC .text:10007C44 MOV R3, #2 .text:10007C48 MOV R2, #0 .text:10007C4C MOV R1, #2 .text:10007C50 MOV R0, R4 .text:10007C54 BL sub_10004BCC .text:10007C58 MOV R2, #0x3B00 .text:10007C5C .text:10007C5C loc_10007C5C ; CODE XREF: sub_100079D0+10Cj .text:10007C5C MOV R3, #2 .text:10007C60 ORR R2, R2, #0x3D .text:10007C64 MOV R1, #0x3C .text:10007C68 MOV R0, R4 .text:10007C6C BL sub_10004BCC .text:10007C70 MOV R2, #0xFE00 .text:10007C74 .text:10007C74 loc_10007C74 ; CODE XREF: sub_100079D0+1DCj .text:10007C74 MOV R3, #2 .text:10007C78 ORR R2, R2, #0x7F .text:10007C7C MOV R1, #0x3E .text:10007C80 MOV R0, R4 .text:10007C84 BL sub_10004BCC .text:10007C88 .text:10007C88 loc_10007C88 ; CODE XREF: sub_100079D0+24j .text:10007C88 LDMFD SP!, {R4,LR} .text:10007C8C BX LR .text:10007C8C ; End of function sub_100079D0 .text:10007C8C .text:10007C8C ; --------------------------------------------------------------------------- .text:10007C90 off_10007C90 DCD unk_1000B514 ; DATA XREF: sub_100079D0+8r .text:10007C94 .text:10007C94 ; =============== S U B R O U T I N E ======================================= .text:10007C94 @ RJK: resume(ac97 base) .text:10007C94 .text:10007C94 sub_10007C94 ; CODE XREF: WAV_PowerUp+1Cp .text:10007C94 ; sub_10008410+14p ... .text:10007C94 STMFD SP!, {R4,R5,LR} .text:10007C98 MOV R4, R0 .text:10007C9C LDR R3, [R4] @ r3 = ac97.POCR .text:10007CA0 CMP R3, #0 .text:10007CA4 BEQ loc_10007D48 @ if (ac97.POCR == 0) goto out .text:10007CA8 LDR R3, [R4,#0x18] @ r3 = ac97.MCSR .text:10007CAC MOV R1, #1 .text:10007CB0 STR R1, [R4,#4] @ ac97.PCMICR = 1 .text:10007CB4 CMP R3, #0 .text:10007CB8 LDRNE R3, =unk_1000B514 .text:10007CBC MOVNE R2, #2 .text:10007CC0 MOV R5, #0 .text:10007CC4 STRNE R2, [R3] .text:10007CC8 BNE loc_10007CF0 .text:10007CCC LDR R2, =unk_1000B514 .text:10007CD0 LDR R3, [R2,#0x14] .text:10007CD4 LDR R3, [R3] .text:10007CD8 TST R3, #0x1000 .text:10007CDC MOVNE R3, #1 .text:10007CE0 MOVEQ R3, #0 .text:10007CE4 STRNE R1, [R4,#0x1C] .text:10007CE8 STREQ R5, [R4,#0x1C] .text:10007CEC STR R3, [R2] .text:10007CF0 .text:10007CF0 loc_10007CF0 ; CODE XREF: sub_10007C94+34j .text:10007CF0 BL sub_10009B8C ; [0xb590] = OS Timers .text:10007CF4 MOV R1, #2 .text:10007CF8 MOV R0, #0 .text:10007CFC BL sub_10009AEC @ call Init_Mem_Bases_0xb5a0_and_AC97init() .text:10007D00 LDR R0, [R4,#4] .text:10007D04 MOV R1, #2 .text:10007D08 BL sub_100097AC @ call AC97_double_init() .text:10007D0C MOVL R2, 0x411 .text:10007D14 MOV R3, #2 .text:10007D18 MOV R1, #0x2A .text:10007D1C MOV R0, R4 .text:10007D20 BL sub_10004BCC @ ac97.0x2a = 0x0411 .text:10007D24 MOV R0, R4 .text:10007D28 BL sub_10005088 @ call powerdown wm9713 widgets .text:10007D2C MOV R0, R4 .text:10007D30 BL sub_100050E4 .text:10007D34 MOV R0, R4 .text:10007D38 BL sub_10005DA0 @ InitialWM9713Setup() .text:10007D3C STR R5, [R4,#0x3C] .text:10007D40 STR R5, [R4] .text:10007D44 STR R5, [R4,#4] .text:10007D48 .text:10007D48 loc_10007D48 ; CODE XREF: sub_10007C94+10j .text:10007D48 LDMFD SP!, {R4,R5,LR} .text:10007D4C BX LR .text:10007D4C ; End of function sub_10007C94 .text:10007D4C .text:10007D4C ; --------------------------------------------------------------------------- .text:10007D50 off_10007D50 DCD unk_1000B514 ; DATA XREF: sub_10007C94+24r .text:10007D50 ; sub_10007C94+38r .text:10007D54 .text:10007D54 ; =============== S U B R O U T I N E ======================================= .text:10007D54 .text:10007D54 .text:10007D54 sub_10007D54 ; CODE XREF: sub_10007F50+70p .text:10007D54 ; sub_10007FD0+64p ... .text:10007D54 .text:10007D54 var_18 = -0x18 .text:10007D54 .text:10007D54 STMFD SP!, {R4-R7,LR} .text:10007D58 SUB SP, SP, #4 .text:10007D5C MOV R7, R1 .text:10007D60 MOV R4, R0 .text:10007D64 LDR R0, =unk_1000B558 .text:10007D68 LDR R5, =unk_1000B514 .text:10007D6C LDR R6, =unk_1000B554 .text:10007D70 LDR R3, [R0] .text:10007D74 MOVL R1, 0xBB8 .text:10007D7C TST R3, #1 .text:10007D80 ORREQ R3, R3, #1 .text:10007D84 LDREQ R2, [R4,#0xC] .text:10007D88 STREQ R3, [R0] .text:10007D8C LDR R0, [R5,#4] .text:10007D90 STREQ R2, [R6] .text:10007D94 BL WaitForSingleObject .text:10007D98 LDR R3, [R5] .text:10007D9C CMP R3, #2 .text:10007DA0 BNE loc_10007E1C .text:10007DA4 LDR R3, [R4,#0xC] .text:10007DA8 CMP R3, #0 .text:10007DAC BNE loc_10007E54 .text:10007DB0 MOVL R2, 0xC183 .text:10007DB8 MOV R3, #2 .text:10007DBC MOV R1, #0x36 .text:10007DC0 MOV R0, R4 .text:10007DC4 BL sub_10004BCC .text:10007DC8 MOV R1, #2 .text:10007DCC MOV R0, R4 .text:10007DD0 BL sub_10005654 .text:10007DD4 MOV R3, #2 .text:10007DD8 MOV R2, #0xB80 .text:10007DDC MOV R1, #0x44 .text:10007DE0 MOV R0, R4 .text:10007DE4 BL sub_10004BCC .text:10007DE8 MOVL R2, 0x3BFF .text:10007DF0 MOV R3, #2 .text:10007DF4 MOV R1, #0x3C .text:10007DF8 MOV R0, R4 .text:10007DFC BL sub_10004BCC .text:10007E00 MOVL R2, 0x3FFF .text:10007E08 MOV R3, #2 .text:10007E0C MOV R1, #0x3E .text:10007E10 MOV R0, R4 .text:10007E14 BL sub_10004BCC .text:10007E18 B loc_10007F28 .text:10007E1C ; --------------------------------------------------------------------------- .text:10007E1C .text:10007E1C loc_10007E1C ; CODE XREF: sub_10007D54+4Cj .text:10007E1C MOV R3, #2 .text:10007E20 ADD R2, SP, #0x18+var_18 .text:10007E24 MOV R1, #0x36 .text:10007E28 MOV R0, R4 .text:10007E2C BL sub_10004C08 .text:10007E30 LDRH R3, [SP,#0x18+var_18] .text:10007E34 MOVL R2, 0x7FFF .text:10007E3C AND R2, R3, R2 .text:10007E40 MOV R3, #2 .text:10007E44 MOV R1, #0x36 .text:10007E48 MOV R0, R4 .text:10007E4C STRH R2, [SP,#0x18+var_18] .text:10007E50 BL sub_10004BCC .text:10007E54 .text:10007E54 loc_10007E54 ; CODE XREF: sub_10007D54+58j .text:10007E54 MOV R0, R4 .text:10007E58 BL sub_10005DA0 .text:10007E5C LDR R3, [R4,#0xC] .text:10007E60 CMP R3, #0 .text:10007E64 BEQ loc_10007F20 .text:10007E68 MOV R0, R4 .text:10007E6C BL sub_100050E4 .text:10007E70 CMP R7, #0 .text:10007E74 BNE loc_10007F20 .text:10007E78 LDR R2, [R4,#0xC] .text:10007E7C CMP R2, #7 ; switch 8 cases .text:10007E80 BHI loc_10007F10 ; default .text:10007E84 ADR R3, off_10007E90 .text:10007E88 LDRB R3, [R3,R2] .text:10007E8C ADD PC, PC, R3 ; switch jump .text:10007E8C ; --------------------------------------------------------------------------- .text:10007E90 off_10007E90 DCB loc_10007E98 - off_10007E94 .text:10007E90 ; DATA XREF: sub_10007D54+130o .text:10007E90 ; jump table for switch statement .text:10007E91 DCB loc_10007EA4 - off_10007E94 ; jumptable 10007E8C case 1 .text:10007E92 DCB loc_10007EB4 - off_10007E94 ; jumptable 10007E8C case 2 .text:10007E93 DCB loc_10007EC4 - off_10007E94 ; jumptable 10007E8C case 3 .text:10007E94 off_10007E94 DCB loc_10007ED4 - off_10007E94 .text:10007E94 ; DATA XREF: sub_10007D54:off_10007E90o .text:10007E94 ; sub_10007D54+13Do ... .text:10007E94 ; jumptable 10007E8C case 4 .text:10007E95 DCB loc_10007EE4 - off_10007E94 ; jumptable 10007E8C case 5 .text:10007E96 DCB loc_10007EF4 - off_10007E94 ; jumptable 10007E8C case 6 .text:10007E97 DCB loc_10007F04 - off_10007E94 ; jumptable 10007E8C case 7 .text:10007E98 ; --------------------------------------------------------------------------- .text:10007E98 .text:10007E98 loc_10007E98 ; CODE XREF: sub_10007D54+138j .text:10007E98 ; DATA XREF: sub_10007D54:off_10007E90o .text:10007E98 MOV R0, R4 ; jumptable 10007E8C case 0 .text:10007E9C BL sub_10005DA0 .text:10007EA0 B loc_10007F10 ; default .text:10007EA4 ; --------------------------------------------------------------------------- .text:10007EA4 .text:10007EA4 loc_10007EA4 ; CODE XREF: sub_10007D54+138j .text:10007EA4 ; DATA XREF: sub_10007D54+13Do .text:10007EA4 MOV R1, #0 ; jumptable 10007E8C case 1 .text:10007EA8 MOV R0, R4 .text:10007EAC BL sub_10005F5C .text:10007EB0 B loc_10007F10 ; default .text:10007EB4 ; --------------------------------------------------------------------------- .text:10007EB4 .text:10007EB4 loc_10007EB4 ; CODE XREF: sub_10007D54+138j .text:10007EB4 ; DATA XREF: sub_10007D54+13Eo .text:10007EB4 MOV R1, #0 ; jumptable 10007E8C case 2 .text:10007EB8 MOV R0, R4 .text:10007EBC BL sub_100061EC .text:10007EC0 B loc_10007F10 ; default .text:10007EC4 ; --------------------------------------------------------------------------- .text:10007EC4 .text:10007EC4 loc_10007EC4 ; CODE XREF: sub_10007D54+138j .text:10007EC4 ; DATA XREF: sub_10007D54+13Fo .text:10007EC4 MOV R1, #0 ; jumptable 10007E8C case 3 .text:10007EC8 MOV R0, R4 .text:10007ECC BL sub_10006420 .text:10007ED0 B loc_10007F10 ; default .text:10007ED4 ; --------------------------------------------------------------------------- .text:10007ED4 .text:10007ED4 loc_10007ED4 ; CODE XREF: sub_10007D54+138j .text:10007ED4 ; DATA XREF: sub_10007D54:off_10007E94o .text:10007ED4 MOV R1, #0 ; jumptable 10007E8C case 4 .text:10007ED8 MOV R0, R4 .text:10007EDC BL sub_10006BBC .text:10007EE0 B loc_10007F10 ; default .text:10007EE4 ; --------------------------------------------------------------------------- .text:10007EE4 .text:10007EE4 loc_10007EE4 ; CODE XREF: sub_10007D54+138j .text:10007EE4 ; DATA XREF: sub_10007D54+141o .text:10007EE4 MOV R1, #0 ; jumptable 10007E8C case 5 .text:10007EE8 MOV R0, R4 .text:10007EEC BL sub_10006764 .text:10007EF0 B loc_10007F10 ; default .text:10007EF4 ; --------------------------------------------------------------------------- .text:10007EF4 .text:10007EF4 loc_10007EF4 ; CODE XREF: sub_10007D54+138j .text:10007EF4 ; DATA XREF: sub_10007D54+142o .text:10007EF4 MOV R1, #0 ; jumptable 10007E8C case 6 .text:10007EF8 MOV R0, R4 .text:10007EFC BL sub_10006F18 .text:10007F00 B loc_10007F10 ; default .text:10007F04 ; --------------------------------------------------------------------------- .text:10007F04 .text:10007F04 loc_10007F04 ; CODE XREF: sub_10007D54+138j .text:10007F04 ; DATA XREF: sub_10007D54+143o .text:10007F04 MOV R1, #0 ; jumptable 10007E8C case 7 .text:10007F08 MOV R0, R4 .text:10007F0C BL sub_100073FC .text:10007F10 .text:10007F10 loc_10007F10 ; CODE XREF: sub_10007D54+12Cj .text:10007F10 ; sub_10007D54+14Cj ... .text:10007F10 LDR R3, =aSsss ; default .text:10007F14 MOV R0, R4 .text:10007F18 LDR R1, [R3] .text:10007F1C BL sub_100059BC .text:10007F20 .text:10007F20 loc_10007F20 ; CODE XREF: sub_10007D54+110j .text:10007F20 ; sub_10007D54+120j .text:10007F20 LDR R3, [R4,#0xC] .text:10007F24 STR R3, [R6] .text:10007F28 .text:10007F28 loc_10007F28 ; CODE XREF: sub_10007D54+C4j .text:10007F28 LDR R0, [R5,#4] .text:10007F2C BL ReleaseMutex .text:10007F30 MOV R0, #1 .text:10007F34 ADD SP, SP, #4 .text:10007F38 LDMFD SP!, {R4-R7,LR} .text:10007F3C BX LR .text:10007F3C ; End of function sub_10007D54 .text:10007F3C .text:10007F3C ; --------------------------------------------------------------------------- .text:10007F40 off_10007F40 DCD aSsss ; DATA XREF: sub_10007D54:loc_10007F10r .text:10007F40 ; "ÖÖÖÖ" .text:10007F44 off_10007F44 DCD unk_1000B554 ; DATA XREF: sub_10007D54+18r .text:10007F48 off_10007F48 DCD unk_1000B514 ; DATA XREF: sub_10007D54+14r .text:10007F4C off_10007F4C DCD unk_1000B558 ; DATA XREF: sub_10007D54+10r .text:10007F50 .text:10007F50 ; =============== S U B R O U T I N E ======================================= .text:10007F50 .text:10007F50 .text:10007F50 sub_10007F50 ; CODE XREF: sub_10008410+A4p .text:10007F50 ; DATA XREF: .pdata:1000C430o .text:10007F50 .text:10007F50 var_4 = -4 .text:10007F50 arg_4 = 4 .text:10007F50 .text:10007F50 STR LR, [SP,#var_4]! .text:10007F54 LDR R3, [R0,#0x10] .text:10007F58 MOV R1, #1 .text:10007F5C CMP R3, #1 .text:10007F60 BEQ loc_10007FC4 .text:10007F64 LDR R2, [R0,#0xC] .text:10007F68 CMP R2, #7 ; switch 8 cases .text:10007F6C BHI loc_10007FB8 ; default .text:10007F70 ADR R3, off_10007F7C .text:10007F74 LDRB R3, [R3,R2] .text:10007F78 ADD PC, PC, R3 ; switch jump .text:10007F78 ; --------------------------------------------------------------------------- .text:10007F7C off_10007F7C DCB loc_10007F84 - off_10007F80 ; DATA XREF: sub_10007F50+20o .text:10007F7C ; jump table for switch statement .text:10007F7D DCB loc_10007FB4 - off_10007F80 ; jumptable 10007F78 cases 1,4,5,7 .text:10007F7E DCB loc_10007F90 - off_10007F80 ; jumptable 10007F78 case 2 .text:10007F7F DCB loc_10007F9C - off_10007F80 ; jumptable 10007F78 case 3 .text:10007F80 off_10007F80 DCB loc_10007FB4 - off_10007F80 .text:10007F80 ; DATA XREF: sub_10007F50:off_10007F7Co .text:10007F80 ; sub_10007F50+2Do ... .text:10007F80 ; jumptable 10007F78 cases 1,4,5,7 .text:10007F81 DCB loc_10007FB4 - off_10007F80 ; jumptable 10007F78 cases 1,4,5,7 .text:10007F82 DCB loc_10007FA8 - off_10007F80 ; jumptable 10007F78 case 6 .text:10007F83 DCB loc_10007FB4 - off_10007F80 ; jumptable 10007F78 cases 1,4,5,7 .text:10007F84 ; --------------------------------------------------------------------------- .text:10007F84 .text:10007F84 loc_10007F84 ; CODE XREF: sub_10007F50+28j .text:10007F84 ; DATA XREF: sub_10007F50:off_10007F7Co .text:10007F84 MOV R3, #1 ; jumptable 10007F78 case 0 .text:10007F88 STR R3, [R0,#0xC] .text:10007F8C B loc_10007FB8 ; default .text:10007F90 ; --------------------------------------------------------------------------- .text:10007F90 .text:10007F90 loc_10007F90 ; CODE XREF: sub_10007F50+28j .text:10007F90 ; DATA XREF: sub_10007F50+2Eo .text:10007F90 MOV R3, #4 ; jumptable 10007F78 case 2 .text:10007F94 STR R3, [R0,#0xC] .text:10007F98 B loc_10007FB8 ; default .text:10007F9C ; --------------------------------------------------------------------------- .text:10007F9C .text:10007F9C loc_10007F9C ; CODE XREF: sub_10007F50+28j .text:10007F9C ; DATA XREF: sub_10007F50+2Fo .text:10007F9C MOV R3, #5 ; jumptable 10007F78 case 3 .text:10007FA0 STR R3, [R0,#0xC] .text:10007FA4 B loc_10007FB8 ; default .text:10007FA8 ; --------------------------------------------------------------------------- .text:10007FA8 .text:10007FA8 loc_10007FA8 ; CODE XREF: sub_10007F50+28j .text:10007FA8 ; DATA XREF: sub_10007F50+32o .text:10007FA8 MOV R3, #7 ; jumptable 10007F78 case 6 .text:10007FAC STR R3, [R0,#0xC] .text:10007FB0 B loc_10007FB8 ; default .text:10007FB4 ; --------------------------------------------------------------------------- .text:10007FB4 .text:10007FB4 loc_10007FB4 ; CODE XREF: sub_10007F50+28j .text:10007FB4 ; DATA XREF: sub_10007F50+2Do ... .text:10007FB4 MOV R1, #0 ; jumptable 10007F78 cases 1,4,5,7 .text:10007FB8 .text:10007FB8 loc_10007FB8 ; CODE XREF: sub_10007F50+1Cj .text:10007FB8 ; sub_10007F50+3Cj ... .text:10007FB8 CMP R1, #0 ; default .text:10007FBC MOVNE R1, #0 .text:10007FC0 BLNE sub_10007D54 .text:10007FC4 .text:10007FC4 loc_10007FC4 ; CODE XREF: sub_10007F50+10j .text:10007FC4 MOV R0, #1 .text:10007FC8 LDR LR, [SP],#arg_4 .text:10007FCC BX LR .text:10007FCC ; End of function sub_10007F50 .text:10007FCC .text:10007FD0 .text:10007FD0 ; =============== S U B R O U T I N E ======================================= .text:10007FD0 .text:10007FD0 .text:10007FD0 sub_10007FD0 ; CODE XREF: sub_10008514+2Cp .text:10007FD0 ; DATA XREF: .pdata:1000C438o .text:10007FD0 .text:10007FD0 var_4 = -4 .text:10007FD0 arg_4 = 4 .text:10007FD0 .text:10007FD0 STR LR, [SP,#var_4]! .text:10007FD4 LDR R3, [R0,#0x10] .text:10007FD8 MOV R1, #1 .text:10007FDC CMP R3, #1 .text:10007FE0 BEQ loc_10008038 .text:10007FE4 LDR R2, [R0,#0xC] .text:10007FE8 CMP R2, #7 ; switch 8 cases .text:10007FEC BHI loc_1000802C ; default .text:10007FF0 ADR R3, off_10007FFC .text:10007FF4 LDRB R3, [R3,R2] .text:10007FF8 ADD PC, PC, R3 ; switch jump .text:10007FF8 ; --------------------------------------------------------------------------- .text:10007FFC off_10007FFC DCB loc_10008004 - off_10008000 ; DATA XREF: sub_10007FD0+20o .text:10007FFC ; jump table for switch statement .text:10007FFD DCB loc_1000800C - off_10008000 ; jumptable 10007FF8 case 1 .text:10007FFE DCB loc_10008004 - off_10008000 ; jumptable 10007FF8 cases 0,2,3,6 .text:10007FFF DCB loc_10008004 - off_10008000 ; jumptable 10007FF8 cases 0,2,3,6 .text:10008000 off_10008000 DCB loc_10008014 - off_10008000 .text:10008000 ; DATA XREF: sub_10007FD0:off_10007FFCo .text:10008000 ; sub_10007FD0+2Do ... .text:10008000 ; jumptable 10007FF8 case 4 .text:10008001 DCB loc_1000801C - off_10008000 ; jumptable 10007FF8 case 5 .text:10008002 DCB loc_10008004 - off_10008000 ; jumptable 10007FF8 cases 0,2,3,6 .text:10008003 DCB loc_10008024 - off_10008000 ; jumptable 10007FF8 case 7 .text:10008004 ; --------------------------------------------------------------------------- .text:10008004 .text:10008004 loc_10008004 ; CODE XREF: sub_10007FD0+28j .text:10008004 ; DATA XREF: sub_10007FD0:off_10007FFCo ... .text:10008004 MOV R1, #0 ; jumptable 10007FF8 cases 0,2,3,6 .text:10008008 B loc_1000802C ; default .text:1000800C ; --------------------------------------------------------------------------- .text:1000800C .text:1000800C loc_1000800C ; CODE XREF: sub_10007FD0+28j .text:1000800C ; DATA XREF: sub_10007FD0+2Do .text:1000800C MOV R3, #0 ; jumptable 10007FF8 case 1 .text:10008010 B loc_10008028 .text:10008014 ; --------------------------------------------------------------------------- .text:10008014 .text:10008014 loc_10008014 ; CODE XREF: sub_10007FD0+28j .text:10008014 ; DATA XREF: sub_10007FD0:off_10008000o .text:10008014 MOV R3, #2 ; jumptable 10007FF8 case 4 .text:10008018 B loc_10008028 .text:1000801C ; --------------------------------------------------------------------------- .text:1000801C .text:1000801C loc_1000801C ; CODE XREF: sub_10007FD0+28j .text:1000801C ; DATA XREF: sub_10007FD0+31o .text:1000801C MOV R3, #3 ; jumptable 10007FF8 case 5 .text:10008020 B loc_10008028 .text:10008024 ; --------------------------------------------------------------------------- .text:10008024 .text:10008024 loc_10008024 ; CODE XREF: sub_10007FD0+28j .text:10008024 ; DATA XREF: sub_10007FD0+33o .text:10008024 MOV R3, #6 ; jumptable 10007FF8 case 7 .text:10008028 .text:10008028 loc_10008028 ; CODE XREF: sub_10007FD0+40j .text:10008028 ; sub_10007FD0+48j ... .text:10008028 STR R3, [R0,#0xC] .text:1000802C .text:1000802C loc_1000802C ; CODE XREF: sub_10007FD0+1Cj .text:1000802C ; sub_10007FD0+38j .text:1000802C CMP R1, #0 ; default .text:10008030 MOVNE R1, #0 .text:10008034 BLNE sub_10007D54 .text:10008038 .text:10008038 loc_10008038 ; CODE XREF: sub_10007FD0+10j .text:10008038 MOV R0, #1 .text:1000803C LDR LR, [SP],#arg_4 .text:10008040 BX LR .text:10008040 ; End of function sub_10007FD0 .text:10008040 .text:10008044 .text:10008044 ; =============== S U B R O U T I N E ======================================= .text:10008044 .text:10008044 .text:10008044 sub_10008044 ; CODE XREF: sub_10008570+8Cp .text:10008044 ; DATA XREF: .pdata:1000C440o .text:10008044 .text:10008044 var_4 = -4 .text:10008044 arg_4 = 4 .text:10008044 .text:10008044 STR LR, [SP,#var_4]! .text:10008048 LDR R3, [R0,#0x10] .text:1000804C MOV R2, #1 .text:10008050 CMP R3, #1 .text:10008054 BEQ loc_100080AC .text:10008058 LDR R3, [R0,#0xC] .text:1000805C CMP R3, #0 .text:10008060 BEQ loc_10008098 .text:10008064 CMP R3, #1 .text:10008068 BEQ loc_10008090 .text:1000806C CMP R3, #3 .text:10008070 BEQ loc_10008084 .text:10008074 CMP R3, #5 .text:10008078 BNE loc_100080A0 .text:1000807C MOV R3, #7 .text:10008080 B loc_1000809C .text:10008084 ; --------------------------------------------------------------------------- .text:10008084 .text:10008084 loc_10008084 ; CODE XREF: sub_10008044+2Cj .text:10008084 MOV R3, #6 .text:10008088 MOV R2, #0 .text:1000808C B loc_1000809C .text:10008090 ; --------------------------------------------------------------------------- .text:10008090 .text:10008090 loc_10008090 ; CODE XREF: sub_10008044+24j .text:10008090 MOV R3, #4 .text:10008094 B loc_1000809C .text:10008098 ; --------------------------------------------------------------------------- .text:10008098 .text:10008098 loc_10008098 ; CODE XREF: sub_10008044+1Cj .text:10008098 MOV R3, #2 .text:1000809C .text:1000809C loc_1000809C ; CODE XREF: sub_10008044+3Cj .text:1000809C ; sub_10008044+48j ... .text:1000809C STR R3, [R0,#0xC] .text:100080A0 .text:100080A0 loc_100080A0 ; CODE XREF: sub_10008044+34j .text:100080A0 CMP R2, #0 .text:100080A4 MOVNE R1, #0 .text:100080A8 BLNE sub_10007D54 .text:100080AC .text:100080AC loc_100080AC ; CODE XREF: sub_10008044+10j .text:100080AC MOV R0, #1 .text:100080B0 LDR LR, [SP],#arg_4 .text:100080B4 BX LR .text:100080B4 ; End of function sub_10008044 .text:100080B4 .text:100080B8 .text:100080B8 ; =============== S U B R O U T I N E ======================================= .text:100080B8 .text:100080B8 .text:100080B8 sub_100080B8 ; CODE XREF: sub_10008610+2Cp .text:100080B8 ; DATA XREF: .pdata:1000C448o .text:100080B8 .text:100080B8 var_4 = -4 .text:100080B8 arg_4 = 4 .text:100080B8 .text:100080B8 STR LR, [SP,#var_4]! .text:100080BC LDR R3, [R0,#0x10] .text:100080C0 MOV R1, #1 .text:100080C4 CMP R3, #1 .text:100080C8 BEQ loc_10008120 .text:100080CC LDR R2, [R0,#0xC] .text:100080D0 CMP R2, #7 ; switch 8 cases .text:100080D4 BHI loc_10008114 ; default .text:100080D8 ADR R3, off_100080E4 .text:100080DC LDRB R3, [R3,R2] .text:100080E0 ADD PC, PC, R3 ; switch jump .text:100080E0 ; --------------------------------------------------------------------------- .text:100080E4 off_100080E4 DCB loc_100080EC - off_100080E8 ; DATA XREF: sub_100080B8+20o .text:100080E4 ; jump table for switch statement .text:100080E5 DCB loc_100080EC - off_100080E8 ; jumptable 100080E0 cases 0,1,3,5 .text:100080E6 DCB loc_100080F4 - off_100080E8 ; jumptable 100080E0 case 2 .text:100080E7 DCB loc_100080EC - off_100080E8 ; jumptable 100080E0 cases 0,1,3,5 .text:100080E8 off_100080E8 DCB loc_100080FC - off_100080E8 .text:100080E8 ; DATA XREF: sub_100080B8:off_100080E4o .text:100080E8 ; sub_100080B8+2Do ... .text:100080E8 ; jumptable 100080E0 case 4 .text:100080E9 DCB loc_100080EC - off_100080E8 ; jumptable 100080E0 cases 0,1,3,5 .text:100080EA DCB loc_10008104 - off_100080E8 ; jumptable 100080E0 case 6 .text:100080EB DCB loc_1000810C - off_100080E8 ; jumptable 100080E0 case 7 .text:100080EC ; --------------------------------------------------------------------------- .text:100080EC .text:100080EC loc_100080EC ; CODE XREF: sub_100080B8+28j .text:100080EC ; DATA XREF: sub_100080B8:off_100080E4o ... .text:100080EC MOV R1, #0 ; jumptable 100080E0 cases 0,1,3,5 .text:100080F0 B loc_10008114 ; default .text:100080F4 ; --------------------------------------------------------------------------- .text:100080F4 .text:100080F4 loc_100080F4 ; CODE XREF: sub_100080B8+28j .text:100080F4 ; DATA XREF: sub_100080B8+2Eo .text:100080F4 MOV R3, #0 ; jumptable 100080E0 case 2 .text:100080F8 B loc_10008110 .text:100080FC ; --------------------------------------------------------------------------- .text:100080FC .text:100080FC loc_100080FC ; CODE XREF: sub_100080B8+28j .text:100080FC ; DATA XREF: sub_100080B8:off_100080E8o .text:100080FC MOV R3, #1 ; jumptable 100080E0 case 4 .text:10008100 B loc_10008110 .text:10008104 ; --------------------------------------------------------------------------- .text:10008104 .text:10008104 loc_10008104 ; CODE XREF: sub_100080B8+28j .text:10008104 ; DATA XREF: sub_100080B8+32o .text:10008104 MOV R3, #3 ; jumptable 100080E0 case 6 .text:10008108 B loc_10008110 .text:1000810C ; --------------------------------------------------------------------------- .text:1000810C .text:1000810C loc_1000810C ; CODE XREF: sub_100080B8+28j .text:1000810C ; DATA XREF: sub_100080B8+33o .text:1000810C MOV R3, #5 ; jumptable 100080E0 case 7 .text:10008110 .text:10008110 loc_10008110 ; CODE XREF: sub_100080B8+40j .text:10008110 ; sub_100080B8+48j ... .text:10008110 STR R3, [R0,#0xC] .text:10008114 .text:10008114 loc_10008114 ; CODE XREF: sub_100080B8+1Cj .text:10008114 ; sub_100080B8+38j .text:10008114 CMP R1, #0 ; default .text:10008118 MOVNE R1, #0 .text:1000811C BLNE sub_10007D54 .text:10008120 .text:10008120 loc_10008120 ; CODE XREF: sub_100080B8+10j .text:10008120 MOV R0, #1 .text:10008124 LDR LR, [SP],#arg_4 .text:10008128 BX LR .text:10008128 ; End of function sub_100080B8 .text:10008128 .text:1000812C .text:1000812C ; =============== S U B R O U T I N E ======================================= .text:1000812C .text:1000812C .text:1000812C sub_1000812C ; CODE XREF: sub_100087C4+84p .text:1000812C ; DATA XREF: .pdata:1000C450o .text:1000812C .text:1000812C var_4 = -4 .text:1000812C arg_4 = 4 .text:1000812C .text:1000812C STR LR, [SP,#var_4]! .text:10008130 LDR R3, [R0,#0x10] .text:10008134 CMP R3, #1 .text:10008138 BNE loc_1000814C .text:1000813C LDR R3, =unk_1000B514 .text:10008140 STR R1, [R3] .text:10008144 BL sub_100079D0 .text:10008148 B loc_10008198 .text:1000814C ; --------------------------------------------------------------------------- .text:1000814C .text:1000814C loc_1000814C ; CODE XREF: sub_1000812C+Cj .text:1000814C CMP R1, #0 .text:10008150 BEQ loc_10008184 .text:10008154 CMP R1, #1 .text:10008158 BEQ loc_1000817C .text:1000815C CMP R1, #2 .text:10008160 BEQ loc_10008174 .text:10008164 CMP R1, #4 .text:10008168 BNE loc_10008198 .text:1000816C MOV R2, #4 .text:10008170 B loc_10008188 .text:10008174 ; --------------------------------------------------------------------------- .text:10008174 .text:10008174 loc_10008174 ; CODE XREF: sub_1000812C+34j .text:10008174 MOV R2, #2 .text:10008178 B loc_10008188 .text:1000817C ; --------------------------------------------------------------------------- .text:1000817C .text:1000817C loc_1000817C ; CODE XREF: sub_1000812C+2Cj .text:1000817C MOV R2, #1 .text:10008180 B loc_10008188 .text:10008184 ; --------------------------------------------------------------------------- .text:10008184 .text:10008184 loc_10008184 ; CODE XREF: sub_1000812C+24j .text:10008184 MOV R2, #0 .text:10008188 .text:10008188 loc_10008188 ; CODE XREF: sub_1000812C+44j .text:10008188 ; sub_1000812C+4Cj ... .text:10008188 LDR R3, =unk_1000B514 .text:1000818C MOV R1, #0 .text:10008190 STR R2, [R3] .text:10008194 BL sub_10007D54 .text:10008198 .text:10008198 loc_10008198 ; CODE XREF: sub_1000812C+1Cj .text:10008198 ; sub_1000812C+3Cj .text:10008198 MOV R0, #1 .text:1000819C LDR LR, [SP],#arg_4 .text:100081A0 BX LR .text:100081A0 ; End of function sub_1000812C .text:100081A0 .text:100081A0 ; --------------------------------------------------------------------------- .text:100081A4 off_100081A4 DCD unk_1000B514 ; DATA XREF: sub_1000812C+10r .text:100081A4 ; sub_1000812C:loc_10008188r .text:100081A8 .text:100081A8 ; =============== S U B R O U T I N E ======================================= .text:100081A8 .text:100081A8 .text:100081A8 sub_100081A8 ; CODE XREF: sub_10008878+58p .text:100081A8 ; DATA XREF: .pdata:1000C458o .text:100081A8 .text:100081A8 var_10 = -0x10 .text:100081A8 .text:100081A8 STMFD SP!, {R4,R5,LR} .text:100081AC SUB SP, SP, #4 .text:100081B0 MOV R4, R0 .text:100081B4 LDR LR, [R4,#0x14] .text:100081B8 LDR R2, [R4,#0x10] .text:100081BC MOV R1, #1 .text:100081C0 CMP LR, R2 .text:100081C4 BEQ loc_100083FC .text:100081C8 LDR R0, [R4,#0xC] .text:100081CC CMP R0, #7 ; switch 8 cases .text:100081D0 BHI loc_100082C4 ; default .text:100081D4 ADR R3, off_100081E0 .text:100081D8 LDRB R3, [R3,R0] .text:100081DC ADD PC, PC, R3 ; switch jump .text:100081DC ; --------------------------------------------------------------------------- .text:100081E0 off_100081E0 DCB loc_100081E8 - off_100081E4 ; DATA XREF: sub_100081A8+2Co .text:100081E0 ; jump table for switch statement .text:100081E1 DCB loc_10008204 - off_100081E4 ; jumptable 100081DC case 1 .text:100081E2 DCB loc_1000823C - off_100081E4 ; jumptable 100081DC case 2 .text:100081E3 DCB loc_10008274 - off_100081E4 ; jumptable 100081DC case 3 .text:100081E4 off_100081E4 DCB loc_10008258 - off_100081E4 .text:100081E4 ; DATA XREF: sub_100081A8:off_100081E0o .text:100081E4 ; sub_100081A8+39o ... .text:100081E4 ; jumptable 100081DC case 4 .text:100081E5 DCB loc_10008288 - off_100081E4 ; jumptable 100081DC case 5 .text:100081E6 DCB loc_1000829C - off_100081E4 ; jumptable 100081DC case 6 .text:100081E7 DCB loc_100082B0 - off_100081E4 ; jumptable 100081DC case 7 .text:100081E8 ; --------------------------------------------------------------------------- .text:100081E8 .text:100081E8 loc_100081E8 ; CODE XREF: sub_100081A8+34j .text:100081E8 ; DATA XREF: sub_100081A8:off_100081E0o .text:100081E8 CMP R2, #2 ; jumptable 100081DC case 0 .text:100081EC BEQ loc_100081F8 .text:100081F0 CMP R2, #3 .text:100081F4 .text:100081F4 loc_100081F4 ; CODE XREF: sub_100081A8+90j .text:100081F4 BNE loc_100082C4 ; default .text:100081F8 .text:100081F8 loc_100081F8 ; CODE XREF: sub_100081A8+44j .text:100081F8 ; sub_100081A8+7Cj .text:100081F8 MOV R3, #3 .text:100081FC STR R3, [R4,#0xC] .text:10008200 B loc_100082C4 ; default .text:10008204 ; --------------------------------------------------------------------------- .text:10008204 .text:10008204 loc_10008204 ; CODE XREF: sub_100081A8+34j .text:10008204 ; DATA XREF: sub_100081A8+39o .text:10008204 LDR R3, [R4,#0x3C] ; jumptable 100081DC case 1 .text:10008208 CMP R3, #0 .text:1000820C BNE loc_10008218 .text:10008210 CMP R2, #5 .text:10008214 BEQ loc_1000827C .text:10008218 .text:10008218 loc_10008218 ; CODE XREF: sub_100081A8+64j .text:10008218 CMP R2, #3 .text:1000821C BNE loc_10008234 .text:10008220 CMP LR, #1 .text:10008224 BEQ loc_100081F8 .text:10008228 MOV R3, #5 .text:1000822C STR R3, [R4,#0xC] .text:10008230 B loc_100082C4 ; default .text:10008234 ; --------------------------------------------------------------------------- .text:10008234 .text:10008234 loc_10008234 ; CODE XREF: sub_100081A8+74j .text:10008234 CMP R2, #2 .text:10008238 B loc_100081F4 .text:1000823C ; --------------------------------------------------------------------------- .text:1000823C .text:1000823C loc_1000823C ; CODE XREF: sub_100081A8+34j .text:1000823C ; DATA XREF: sub_100081A8+3Ao .text:1000823C CMP R2, #2 ; jumptable 100081DC case 2 .text:10008240 BEQ loc_1000824C .text:10008244 CMP R2, #3 .text:10008248 BNE loc_100082C0 .text:1000824C .text:1000824C loc_1000824C ; CODE XREF: sub_100081A8+98j .text:1000824C MOV R3, #6 .text:10008250 STR R3, [R4,#0xC] .text:10008254 B loc_100082C4 ; default .text:10008258 ; --------------------------------------------------------------------------- .text:10008258 .text:10008258 loc_10008258 ; CODE XREF: sub_100081A8+34j .text:10008258 ; DATA XREF: sub_100081A8:off_100081E4o .text:10008258 CMP R2, #2 ; jumptable 100081DC case 4 .text:1000825C BEQ loc_10008268 .text:10008260 CMP R2, #3 .text:10008264 BNE loc_100082C0 .text:10008268 .text:10008268 loc_10008268 ; CODE XREF: sub_100081A8+B4j .text:10008268 MOV R3, #7 .text:1000826C STR R3, [R4,#0xC] .text:10008270 B loc_100082C4 ; default .text:10008274 ; --------------------------------------------------------------------------- .text:10008274 .text:10008274 loc_10008274 ; CODE XREF: sub_100081A8+34j .text:10008274 ; DATA XREF: sub_100081A8+3Bo .text:10008274 CMP R2, #5 ; jumptable 100081DC case 3 .text:10008278 BNE loc_100082C4 ; default .text:1000827C .text:1000827C loc_1000827C ; CODE XREF: sub_100081A8+6Cj .text:1000827C MOV R3, #0 .text:10008280 STR R3, [R4,#0xC] .text:10008284 B loc_100082C4 ; default .text:10008288 ; --------------------------------------------------------------------------- .text:10008288 .text:10008288 loc_10008288 ; CODE XREF: sub_100081A8+34j .text:10008288 ; DATA XREF: sub_100081A8+3Do .text:10008288 CMP R2, #5 ; jumptable 100081DC case 5 .text:1000828C BNE loc_100082C4 ; default .text:10008290 MOV R3, #1 .text:10008294 STR R3, [R4,#0xC] .text:10008298 B loc_100082C4 ; default .text:1000829C ; --------------------------------------------------------------------------- .text:1000829C .text:1000829C loc_1000829C ; CODE XREF: sub_100081A8+34j .text:1000829C ; DATA XREF: sub_100081A8+3Eo .text:1000829C CMP R2, #5 ; jumptable 100081DC case 6 .text:100082A0 BNE loc_100082C0 .text:100082A4 MOV R3, #2 .text:100082A8 STR R3, [R4,#0xC] .text:100082AC B loc_100082C4 ; default .text:100082B0 ; --------------------------------------------------------------------------- .text:100082B0 .text:100082B0 loc_100082B0 ; CODE XREF: sub_100081A8+34j .text:100082B0 ; DATA XREF: sub_100081A8+3Fo .text:100082B0 CMP R2, #5 ; jumptable 100081DC case 7 .text:100082B4 MOVEQ R3, #4 .text:100082B8 STREQ R3, [R4,#0xC] .text:100082BC BEQ loc_100082C4 ; default .text:100082C0 .text:100082C0 loc_100082C0 ; CODE XREF: sub_100081A8+A0j .text:100082C0 ; sub_100081A8+BCj ... .text:100082C0 MOV R1, #0 .text:100082C4 .text:100082C4 loc_100082C4 ; CODE XREF: sub_100081A8+28j .text:100082C4 ; sub_100081A8:loc_100081F4j ... .text:100082C4 CMP R1, #0 ; default .text:100082C8 BEQ loc_100083FC .text:100082CC CMP R2, #2 .text:100082D0 BNE loc_10008368 .text:100082D4 MOV R1, #0 .text:100082D8 MOV R0, R4 .text:100082DC BL sub_10007D54 .text:100082E0 LDR R5, =unk_1000B50C .text:100082E4 LDR R3, [R5,#8] .text:100082E8 CMP R3, #2 .text:100082EC BNE loc_10008358 .text:100082F0 MOV R3, #2 .text:100082F4 ADD R2, SP, #0x10+var_10 .text:100082F8 MOV R1, #6 .text:100082FC MOV R0, R4 .text:10008300 BL sub_10004C08 .text:10008304 LDRH R3, [SP,#0x10+var_10] .text:10008308 MOVL R2, 0x8080 .text:10008310 ORR R2, R3, R2 .text:10008314 MOV R3, #2 .text:10008318 MOV R1, #6 .text:1000831C MOV R0, R4 .text:10008320 STRH R2, [SP,#0x10+var_10] .text:10008324 BL sub_10004BCC .text:10008328 MOV R3, #2 .text:1000832C ADD R2, SP, #0x10+var_10 .text:10008330 MOV R1, #0x3C .text:10008334 MOV R0, R4 .text:10008338 BL sub_10004C08 .text:1000833C LDRH R3, [SP,#0x10+var_10] .text:10008340 MOV R1, #0x3C .text:10008344 MOV R0, R4 .text:10008348 ORR R2, R3, #0x1000 .text:1000834C MOV R3, #2 .text:10008350 STRH R2, [SP,#0x10+var_10] .text:10008354 BL sub_10004BCC .text:10008358 .text:10008358 loc_10008358 ; CODE XREF: sub_100081A8+144j .text:10008358 ; sub_100081A8+21Cj .text:10008358 LDR R0, [R5] .text:1000835C MOV R1, #3 .text:10008360 BL EventModify .text:10008364 B loc_100083FC .text:10008368 ; --------------------------------------------------------------------------- .text:10008368 .text:10008368 loc_10008368 ; CODE XREF: sub_100081A8+128j .text:10008368 CMP R2, #3 .text:1000836C BNE loc_100083C8 .text:10008370 LDR R5, =unk_1000B50C .text:10008374 LDR R3, [R5,#8] .text:10008378 CMP R3, #2 .text:1000837C BNE loc_100083B8 .text:10008380 MOV R3, #2 .text:10008384 ADD R2, SP, #0x10+var_10 .text:10008388 MOV R1, #0x3C .text:1000838C MOV R0, R4 .text:10008390 BL sub_10004C08 .text:10008394 LDRH R3, [SP,#0x10+var_10] .text:10008398 MOVL R2, 0xEFFF .text:100083A0 AND R2, R3, R2 .text:100083A4 MOV R3, #2 .text:100083A8 MOV R1, #0x3C .text:100083AC MOV R0, R4 .text:100083B0 STRH R2, [SP,#0x10+var_10] .text:100083B4 BL sub_10004BCC .text:100083B8 .text:100083B8 loc_100083B8 ; CODE XREF: sub_100081A8+1D4j .text:100083B8 MOV R1, #0 .text:100083BC MOV R0, R4 .text:100083C0 BL sub_10007D54 .text:100083C4 B loc_10008358 .text:100083C8 ; --------------------------------------------------------------------------- .text:100083C8 .text:100083C8 loc_100083C8 ; CODE XREF: sub_100081A8+1C4j .text:100083C8 CMP R2, #5 .text:100083CC BNE loc_100083FC .text:100083D0 MOV R1, #0 .text:100083D4 MOV R0, R4 .text:100083D8 BL sub_10007D54 .text:100083DC LDR R3, [R4,#0xC] .text:100083E0 CMP R3, #0 .text:100083E4 LDREQ R3, =unk_1000B50C .text:100083E8 MOVEQ R1, #3 .text:100083EC LDREQ R0, [R3,#4] .text:100083F0 BLEQ EventModify .text:100083F4 LDR R3, [R4,#0x10] .text:100083F8 STR R3, [R4,#0x14] .text:100083FC .text:100083FC loc_100083FC ; CODE XREF: sub_100081A8+1Cj .text:100083FC ; sub_100081A8+120j ... .text:100083FC MOV R0, #1 .text:10008400 ADD SP, SP, #4 .text:10008404 LDMFD SP!, {R4,R5,LR} .text:10008408 BX LR .text:10008408 ; End of function sub_100081A8 .text:10008408 .text:10008408 ; --------------------------------------------------------------------------- .text:1000840C off_1000840C DCD unk_1000B50C ; DATA XREF: sub_100081A8+138r .text:1000840C ; sub_100081A8+1C8r ... .text:10008410 .text:10008410 ; =============== S U B R O U T I N E ======================================= .text:10008410 .text:10008410 .text:10008410 sub_10008410 ; CODE XREF: sub_1000285C+Cp .text:10008410 ; sub_1000899C+1D8p .text:10008410 ; DATA XREF: ... .text:10008410 STMFD SP!, {R4,R5,LR} .text:10008414 MOV R4, R0 .text:10008418 LDR R3, [R4,#0x3C] .text:1000841C CMP R3, #0 .text:10008420 BNE loc_10008504 .text:10008424 BL sub_10007C94 .text:10008428 LDR R2, [R4,#0xA0] .text:1000842C LDR R3, [R2,#0xC] .text:10008430 ORR R3, R3, #8 .text:10008434 STR R3, [R2,#0xC] .text:10008438 LDR R2, [R4,#0xA0] .text:1000843C .text:1000843C loc_1000843C ; CODE XREF: sub_10008410+34j .text:1000843C LDR R3, [R2,#0x1C] .text:10008440 TST R3, #8 .text:10008444 BEQ loc_1000843C .text:10008448 LDR R3, [R2,#0xC] .text:1000844C MOV R1, #1 .text:10008450 MOV R5, #0 .text:10008454 BIC R3, R3, #8 .text:10008458 STR R3, [R2,#0xC] .text:1000845C STR R1, [R4,#0x3C] .text:10008460 MOV R1, #0 .text:10008464 MOV R0, R4 .text:10008468 STR R5, [R4,#0x104] .text:1000846C STR R5, [R4,#0x100] .text:10008470 STR R5, [R4,#0x120] .text:10008474 BL sub_100048F8 .text:10008478 MOV R3, R0 .text:1000847C MOV R0, R4 .text:10008480 MOV R1, #1 .text:10008484 STR R3, [R4,#0x100] .text:10008488 BL sub_100048F8 .text:1000848C LDR R3, [R4,#0x100] .text:10008490 STR R0, [R4,#0x104] .text:10008494 ADDS R3, R0, R3 .text:10008498 BEQ loc_100084F0 .text:1000849C MOVL R1, 0xAC44 .text:100084A4 MOV R2, #1 .text:100084A8 MOV R0, R4 .text:100084AC BL sub_10005840 .text:100084B0 MOV R0, R4 .text:100084B4 BL sub_10007F50 .text:100084B8 LDR R2, [R4,#0x98] .text:100084BC LDR R3, =0xA020A800 .text:100084C0 MOV R1, #0x82 .text:100084C4 STR R3, [R2,#0x220] .text:100084C8 LDR R3, [R4,#0x98] .text:100084CC MOV R2, #0x10 .text:100084D0 STR R1, [R3,#0x130] .text:100084D4 LDR R3, [R4,#0xA0] .text:100084D8 STR R2, [R3,#0x10] .text:100084DC LDR R2, [R4,#0x98] .text:100084E0 LDR R3, [R2,#8] .text:100084E4 ORR R3, R3, #0x80000000 .text:100084E8 STR R3, [R2,#8] .text:100084EC B loc_100084F4 .text:100084F0 ; --------------------------------------------------------------------------- .text:100084F0 .text:100084F0 loc_100084F0 ; CODE XREF: sub_10008410+88j .text:100084F0 STR R5, [R4,#0x3C] .text:100084F4 .text:100084F4 loc_100084F4 ; CODE XREF: sub_10008410+DCj .text:100084F4 LDR R3, =unk_1000B50C .text:100084F8 MOV R1, #3 .text:100084FC LDR R0, [R3] .text:10008500 BL EventModify .text:10008504 .text:10008504 loc_10008504 ; CODE XREF: sub_10008410+10j .text:10008504 LDMFD SP!, {R4,R5,LR} .text:10008508 BX LR .text:10008508 ; End of function sub_10008410 .text:10008508 .text:10008508 ; --------------------------------------------------------------------------- .text:1000850C off_1000850C DCD unk_1000B50C ; DATA XREF: sub_10008410:loc_100084F4r .text:10008510 dword_10008510 DCD 0xA020A800 ; DATA XREF: sub_10008410+ACr .text:10008514 .text:10008514 ; =============== S U B R O U T I N E ======================================= .text:10008514 .text:10008514 .text:10008514 sub_10008514 ; CODE XREF: sub_1000866C+48p .text:10008514 ; sub_1000899C+12Cp .text:10008514 ; DATA XREF: ... .text:10008514 STMFD SP!, {R4,LR} .text:10008518 MOV R4, R0 .text:1000851C LDR R3, [R4,#0x3C] .text:10008520 CMP R3, #0 .text:10008524 BEQ loc_10008564 .text:10008528 LDR R2, [R4,#0x98] .text:1000852C MOV R1, #0 .text:10008530 LDR R3, [R2,#8] .text:10008534 BIC R3, R3, #0x80000000 .text:10008538 STR R3, [R2,#8] .text:1000853C STR R1, [R4,#0x3C] .text:10008540 BL sub_10007FD0 .text:10008544 LDR R3, [R4,#0xC] .text:10008548 CMP R3, #0 .text:1000854C LDREQ R3, [R4,#0x10] .text:10008550 CMPEQ R3, #5 .text:10008554 LDREQ R3, =unk_1000B50C .text:10008558 MOVEQ R1, #3 .text:1000855C LDREQ R0, [R3,#4] .text:10008560 BLEQ EventModify .text:10008564 .text:10008564 loc_10008564 ; CODE XREF: sub_10008514+10j .text:10008564 LDMFD SP!, {R4,LR} .text:10008568 BX LR .text:10008568 ; End of function sub_10008514 .text:10008568 .text:10008568 ; --------------------------------------------------------------------------- .text:1000856C off_1000856C DCD unk_1000B50C ; DATA XREF: sub_10008514+40r .text:10008570 .text:10008570 ; =============== S U B R O U T I N E ======================================= .text:10008570 .text:10008570 .text:10008570 sub_10008570 ; CODE XREF: sub_10002878+Cp .text:10008570 ; DATA XREF: .pdata:1000C470o .text:10008570 STMFD SP!, {R4,R5,LR} .text:10008574 MOV R5, R0 .text:10008578 LDR R3, [R5,#0x38] .text:1000857C CMP R3, #0 .text:10008580 BNE loc_10008600 .text:10008584 MOVL R1, 0xAC44 .text:1000858C MOV R2, #0 .text:10008590 BL sub_10005840 .text:10008594 LDR R4, =unk_1000B508 .text:10008598 MOV R1, #3 .text:1000859C LDR R0, [R4,#4] .text:100085A0 BL EventModify .text:100085A4 MOV R3, #1 .text:100085A8 STR R3, [R5,#0x38] .text:100085AC MOV R2, #0 .text:100085B0 MOV R3, #1 .text:100085B4 STR R2, [R5,#0x11C] .text:100085B8 STR R2, [R5,#0x10C] .text:100085BC STR R2, [R5,#0x108] .text:100085C0 STR R3, [R4] .text:100085C4 LDR R2, [R5,#0x98] .text:100085C8 LDR R3, =0xA020A840 .text:100085CC MOV R1, #0x80 .text:100085D0 MOV R0, R5 .text:100085D4 STR R3, [R2,#0x200] .text:100085D8 LDR R3, [R5,#0x98] .text:100085DC MOV R2, #0x10 .text:100085E0 STR R1, [R3,#0x12C] .text:100085E4 LDR R3, [R5,#0xA0] .text:100085E8 STR R2, [R3,#0x14] .text:100085EC LDR R2, [R5,#0x98] .text:100085F0 LDR R3, [R2] .text:100085F4 ORR R3, R3, #0x80000000 .text:100085F8 STR R3, [R2] .text:100085FC BL sub_10008044 .text:10008600 .text:10008600 loc_10008600 ; CODE XREF: sub_10008570+10j .text:10008600 LDMFD SP!, {R4,R5,LR} .text:10008604 BX LR .text:10008604 ; End of function sub_10008570 .text:10008604 .text:10008604 ; --------------------------------------------------------------------------- .text:10008608 dword_10008608 DCD 0xA020A840 ; DATA XREF: sub_10008570+58r .text:1000860C off_1000860C DCD unk_1000B508 ; DATA XREF: sub_10008570+24r .text:10008610 .text:10008610 ; =============== S U B R O U T I N E ======================================= .text:10008610 .text:10008610 .text:10008610 sub_10008610 ; CODE XREF: sub_10008710+90p .text:10008610 ; DATA XREF: .pdata:1000C478o .text:10008610 STMFD SP!, {R4,LR} .text:10008614 MOV R4, R0 .text:10008618 LDR R3, [R4,#0x38] .text:1000861C CMP R3, #0 .text:10008620 BEQ loc_10008660 .text:10008624 LDR R2, [R4,#0x98] .text:10008628 MOV R3, #0 .text:1000862C STR R3, [R4,#0x38] .text:10008630 LDR R3, [R2] .text:10008634 BIC R3, R3, #0x80000000 .text:10008638 STR R3, [R2] .text:1000863C BL sub_100080B8 .text:10008640 LDR R3, [R4,#0xC] .text:10008644 CMP R3, #0 .text:10008648 LDREQ R3, [R4,#0x10] .text:1000864C CMPEQ R3, #5 .text:10008650 LDREQ R3, =unk_1000B50C .text:10008654 MOVEQ R1, #3 .text:10008658 LDREQ R0, [R3,#4] .text:1000865C BLEQ EventModify .text:10008660 .text:10008660 loc_10008660 ; CODE XREF: sub_10008610+10j .text:10008660 LDMFD SP!, {R4,LR} .text:10008664 BX LR .text:10008664 ; End of function sub_10008610 .text:10008664 .text:10008664 ; --------------------------------------------------------------------------- .text:10008668 off_10008668 DCD unk_1000B50C ; DATA XREF: sub_10008610+40r .text:1000866C .text:1000866C ; =============== S U B R O U T I N E ======================================= .text:1000866C .text:1000866C .text:1000866C sub_1000866C ; CODE XREF: sub_100086C4+3Cp .text:1000866C ; DATA XREF: .pdata:1000C480o .text:1000866C STMFD SP!, {R4,R5,LR} .text:10008670 MOV R4, R0 .text:10008674 TST R1, #2 .text:10008678 MOVNE R5, #0 .text:1000867C BNE loc_100086B8 .text:10008680 LDR R1, [R4,#0x120] .text:10008684 MOV R0, R4 .text:10008688 BL sub_100048F8 .text:1000868C LDR R3, [R4,#0x120] .text:10008690 LDR R2, [R4,#0x120] .text:10008694 ADD R3, R4, R3,LSL#2 .text:10008698 LDR R5, [R3,#0x100] .text:1000869C CMP R2, #0 .text:100086A0 MOVEQ R3, #1 .text:100086A4 MOVNE R3, #0 .text:100086A8 CMP R5, #0 .text:100086AC MOVEQ R0, R4 .text:100086B0 STR R3, [R4,#0x120] .text:100086B4 BLEQ sub_10008514 .text:100086B8 .text:100086B8 loc_100086B8 ; CODE XREF: sub_1000866C+10j .text:100086B8 MOV R0, R5 .text:100086BC LDMFD SP!, {R4,R5,LR} .text:100086C0 BX LR .text:100086C0 ; End of function sub_1000866C .text:100086C0 .text:100086C4 .text:100086C4 ; =============== S U B R O U T I N E ======================================= .text:100086C4 .text:100086C4 .text:100086C4 sub_100086C4 ; CODE XREF: sub_100087B4+4p .text:100086C4 ; DATA XREF: .pdata:1000C488o .text:100086C4 STMFD SP!, {R4,R5,LR} .text:100086C8 MOV R4, R0 .text:100086CC MOVL R0, 0xFFFFFFFF .text:100086D0 BL SetProcPermissions .text:100086D4 LDR R3, [R4,#0xA4] .text:100086D8 LDR R5, [R3,#0x218] .text:100086DC .text:100086DC loc_100086DC ; CODE XREF: sub_100086C4+48j .text:100086DC MOVL R1, 0xFFFFFFFF .text:100086E0 MOV R0, R5 .text:100086E4 BL WaitForSingleObject .text:100086E8 ADD R0, R4, #0x50 .text:100086EC BL EnterCriticalSection .text:100086F0 LDR R3, [R4,#0x3C] .text:100086F4 CMP R3, #0 .text:100086F8 MOVNE R1, #0 .text:100086FC MOVNE R0, R4 .text:10008700 BLNE sub_1000866C .text:10008704 ADD R0, R4, #0x50 .text:10008708 BL LeaveCriticalSection .text:1000870C B loc_100086DC .text:1000870C ; End of function sub_100086C4 .text:1000870C .text:10008710 .text:10008710 ; =============== S U B R O U T I N E ======================================= .text:10008710 .text:10008710 .text:10008710 sub_10008710 ; CODE XREF: sub_100087B4+Cp .text:10008710 ; DATA XREF: .pdata:1000C490o .text:10008710 STMFD SP!, {R4-R7,LR} .text:10008714 MOV R4, R0 .text:10008718 MOVL R0, 0xFFFFFFFF .text:1000871C BL SetProcPermissions .text:10008720 LDR R3, [R4,#0xA4] .text:10008724 LDR R5, =unk_1000B508 .text:10008728 MOV R7, #0 .text:1000872C LDR R6, [R3,#0x210] .text:10008730 .text:10008730 loc_10008730 ; CODE XREF: sub_10008710+9Cj .text:10008730 MOVL R1, 0xFFFFFFFF .text:10008734 MOV R0, R6 .text:10008738 BL WaitForSingleObject .text:1000873C ADD R0, R4, #0x50 .text:10008740 BL EnterCriticalSection .text:10008744 LDR R3, [R5] .text:10008748 CMP R3, #0 .text:1000874C BEQ loc_10008768 .text:10008750 LDR R3, [R4,#0x3C] .text:10008754 CMP R3, #0 .text:10008758 BNE loc_10008768 .text:1000875C MOV R0, #0x96 .text:10008760 BL Sleep .text:10008764 STR R7, [R5] .text:10008768 .text:10008768 loc_10008768 ; CODE XREF: sub_10008710+3Cj .text:10008768 ; sub_10008710+48j .text:10008768 LDR R2, [R4,#0x98] .text:1000876C MOV R0, R4 .text:10008770 LDR R3, [R2] .text:10008774 ORR R3, R3, #4 .text:10008778 STR R3, [R2] .text:1000877C LDR R1, [R4,#0x11C] .text:10008780 BL sub_100048BC .text:10008784 LDR R3, [R4,#0x11C] .text:10008788 CMP R3, #0 .text:1000878C MOVEQ R3, #1 .text:10008790 MOVNE R3, #0 .text:10008794 CMP R0, #0 .text:10008798 MOVEQ R0, R4 .text:1000879C STR R3, [R4,#0x11C] .text:100087A0 BLEQ sub_10008610 .text:100087A4 ADD R0, R4, #0x50 .text:100087A8 BL LeaveCriticalSection .text:100087AC B loc_10008730 .text:100087AC ; End of function sub_10008710 .text:100087AC .text:100087AC ; --------------------------------------------------------------------------- .text:100087B0 off_100087B0 DCD unk_1000B508 ; DATA XREF: sub_10008710+14r .text:100087B4 .text:100087B4 ; =============== S U B R O U T I N E ======================================= .text:100087B4 .text:100087B4 .text:100087B4 sub_100087B4 ; DATA XREF: .text:off_10008998o .text:100087B4 ; .pdata:1000C498o .text:100087B4 .text:100087B4 var_4 = -4 .text:100087B4 .text:100087B4 STR LR, [SP,#var_4]! .text:100087B8 BL sub_100086C4 .text:100087BC .text:100087BC loc_100087BC ; DATA XREF: .text:off_10008994o .text:100087BC ; .pdata:1000C4A0o .text:100087BC STR LR, [SP,#var_4]! .text:100087C0 BL sub_10008710 .text:100087C0 ; End of function sub_100087B4 .text:100087C0 .text:100087C4 .text:100087C4 ; =============== S U B R O U T I N E ======================================= .text:100087C4 .text:100087C4 .text:100087C4 sub_100087C4 ; CODE XREF: sub_10001C10+484p .text:100087C4 ; WAV_IOControl+304p ... .text:100087C4 STMFD SP!, {R4,R5,LR} .text:100087C8 MOV R4, R0 .text:100087CC LDR R5, =unk_1000B514 .text:100087D0 LDR R3, [R5] .text:100087D4 STR R3, [R4,#0x24] .text:100087D8 LDR R3, [R5] .text:100087DC CMP R3, R1 .text:100087E0 BNE loc_100087EC .text:100087E4 CMP R2, #1 .text:100087E8 BEQ loc_10008868 .text:100087EC .text:100087EC loc_100087EC ; CODE XREF: sub_100087C4+1Cj .text:100087EC LDR R3, [R4,#0x20] .text:100087F0 CMP R3, #0 .text:100087F4 MOVNE R3, #4 .text:100087F8 BNE loc_1000881C .text:100087FC LDR R3, [R4,#0x18] .text:10008800 CMP R3, #0 .text:10008804 MOVNE R3, #2 .text:10008808 BNE loc_1000881C .text:1000880C LDR R3, [R4,#0x1C] .text:10008810 CMP R3, #0 .text:10008814 MOVNE R3, #1 .text:10008818 MOVEQ R3, #0 .text:1000881C .text:1000881C loc_1000881C ; CODE XREF: sub_100087C4+34j .text:1000881C ; sub_100087C4+44j .text:1000881C CMP R2, #0 .text:10008820 BNE loc_10008838 .text:10008824 CMP R3, R1 .text:10008828 BGT loc_10008868 .text:1000882C BEQ loc_10008868 .text:10008830 MOV R1, R3 .text:10008834 B loc_10008840 .text:10008838 ; --------------------------------------------------------------------------- .text:10008838 .text:10008838 loc_10008838 ; CODE XREF: sub_100087C4+5Cj .text:10008838 CMP R3, R1 .text:1000883C BGT loc_10008868 .text:10008840 .text:10008840 loc_10008840 ; CODE XREF: sub_100087C4+70j .text:10008840 MOV R2, #1 .text:10008844 MOV R0, R4 .text:10008848 BL sub_1000812C .text:1000884C LDR R3, [R4,#0x24] .text:10008850 LDR R2, [R5] .text:10008854 CMP R3, R2 .text:10008858 STRNE R2, [R4,#0x24] .text:1000885C LDRNE R0, [R5,#0x10] .text:10008860 MOVNE R1, #3 .text:10008864 BLNE EventModify .text:10008868 .text:10008868 loc_10008868 ; CODE XREF: sub_100087C4+24j .text:10008868 ; sub_100087C4+64j ... .text:10008868 MOV R0, #1 .text:1000886C LDMFD SP!, {R4,R5,LR} .text:10008870 BX LR .text:10008870 ; End of function sub_100087C4 .text:10008870 .text:10008870 ; --------------------------------------------------------------------------- .text:10008874 off_10008874 DCD unk_1000B514 ; DATA XREF: sub_100087C4+8r .text:10008878 .text:10008878 ; =============== S U B R O U T I N E ======================================= .text:10008878 .text:10008878 .text:10008878 sub_10008878 ; CODE XREF: sub_10001C10+550p .text:10008878 ; DATA XREF: .pdata:1000C4B0o .text:10008878 .text:10008878 var_4 = -4 .text:10008878 arg_4 = 4 .text:10008878 .text:10008878 STR LR, [SP,#var_4]! .text:1000887C MOV R2, R0 .text:10008880 LDR R3, [R2,#0x10] .text:10008884 MOV LR, #1 .text:10008888 CMP R1, #0xA .text:1000888C STR R3, [R2,#0x14] .text:10008890 BEQ loc_100088EC .text:10008894 CMP R1, #0xB .text:10008898 BEQ loc_100088E0 .text:1000889C CMP R1, #0xC .text:100088A0 BEQ loc_100088C4 .text:100088A4 CMP R1, #0xD .text:100088A8 BEQ loc_100088BC .text:100088AC CMP R1, #0xE .text:100088B0 BNE loc_100088F0 .text:100088B4 MOV R3, #5 .text:100088B8 B loc_100088C8 .text:100088BC ; --------------------------------------------------------------------------- .text:100088BC .text:100088BC loc_100088BC ; CODE XREF: sub_10008878+30j .text:100088BC MOV R3, #3 .text:100088C0 B loc_100088C8 .text:100088C4 ; --------------------------------------------------------------------------- .text:100088C4 .text:100088C4 loc_100088C4 ; CODE XREF: sub_10008878+28j .text:100088C4 MOV R3, #2 .text:100088C8 .text:100088C8 loc_100088C8 ; CODE XREF: sub_10008878+40j .text:100088C8 ; sub_10008878+48j .text:100088C8 STR R3, [R2,#0x10] .text:100088CC .text:100088CC loc_100088CC ; CODE XREF: sub_10008878+80j .text:100088CC MOV R0, R2 .text:100088D0 BL sub_100081A8 .text:100088D4 .text:100088D4 loc_100088D4 ; CODE XREF: sub_10008878+70j .text:100088D4 ; sub_10008878+90j .text:100088D4 MOV R0, #1 .text:100088D8 LDR LR, [SP],#arg_4 .text:100088DC BX LR .text:100088E0 ; --------------------------------------------------------------------------- .text:100088E0 .text:100088E0 loc_100088E0 ; CODE XREF: sub_10008878+20j .text:100088E0 MOV R3, #4 .text:100088E4 STR R3, [R2,#0x10] .text:100088E8 B loc_100088D4 .text:100088EC ; --------------------------------------------------------------------------- .text:100088EC .text:100088EC loc_100088EC ; CODE XREF: sub_10008878+18j .text:100088EC STR LR, [R2,#0x10] .text:100088F0 .text:100088F0 loc_100088F0 ; CODE XREF: sub_10008878+38j .text:100088F0 LDR R3, [R2,#0x10] .text:100088F4 CMP R3, #1 .text:100088F8 BNE loc_100088CC .text:100088FC MOV R0, R2 .text:10008900 STR LR, [R2,#0xC] .text:10008904 BL sub_100079D0 .text:10008908 B loc_100088D4 .text:10008908 ; End of function sub_10008878 .text:10008908 .text:1000890C .text:1000890C ; =============== S U B R O U T I N E ======================================= .text:1000890C .text:1000890C .text:1000890C sub_1000890C ; CODE XREF: sub_10008BD4+1D8p .text:1000890C ; DATA XREF: .pdata:1000C4B8o .text:1000890C .text:1000890C var_14 = -0x14 .text:1000890C var_10 = -0x10 .text:1000890C .text:1000890C STMFD SP!, {R4,R5,LR} .text:10008910 SUB SP, SP, #8 .text:10008914 MOV R4, R0 .text:10008918 LDR R2, =sub_100087B4 .text:1000891C MOV R5, #0 .text:10008920 MOV R3, R4 .text:10008924 MOV R1, #0 .text:10008928 MOV R0, #0