Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ROM:0003974E DMR_ID_Lookup_3974E ; CODE XREF: sub_39890+1C↓p
- ROM:0003974E
- ROM:0003974E var_68 = -0x68
- ROM:0003974E var_64 = -0x64
- ROM:0003974E var_5C = -0x5C
- ROM:0003974E var_58 = -0x58
- ROM:0003974E var_48 = -0x48
- ROM:0003974E var_44 = -0x44
- ROM:0003974E var_34 = -0x34
- ROM:0003974E var_30 = -0x30
- ROM:0003974E
- ROM:0003974E 000 PUSH.W {R4-R10,LR}
- ROM:00039752 020 SUB SP, SP, #0x48
- ROM:00039754 068 MOV R4, R0
- ROM:00039756 068 MOV R5, R2
- ROM:00039758 068 LDRB R0, [R5,#4]
- ROM:0003975A 068 CMP R0, #1
- ROM:0003975C 068 BNE loc_397DE
- ROM:0003975E 068 MOVS R3, #8
- ROM:00039760 068 ADD R2, SP, #0x68+var_64
- ROM:00039762 068 MOVS R1, #0
- ROM:00039764 068 MOVS R0, #4
- ROM:00039766 068 BL Flash_read_area_2D1D8
- ROM:0003976A 068 LDRB.W R0, [SP,#0x68+var_64]
- ROM:0003976E 068 CMP R0, #0x49
- ROM:00039770 068 BNE loc_397DE
- ROM:00039772 068 ADD R0, SP, #0x68+var_64
- ROM:00039774 068 LDRB R1, [R0,#1]
- ROM:00039776 068 CMP R1, #0x44
- ROM:00039778 068 BNE loc_397DE
- ROM:0003977A 068 LDRB R7, [R0,#3]
- ROM:0003977C 068 SUBS R7, #0x4A
- ROM:0003977E 068 NOP
- ROM:00039780 068 NOP
- ROM:00039782 068 NOP
- ROM:00039784 068 NOP
- ROM:00039786 068 NOP
- ROM:00039788 068 NOP
- ROM:0003978A 068 MOVS R3, #4
- ROM:0003978C 068 MOV R2, SP
- ROM:0003978E 068 MOVS R1, #8
- ROM:00039790 068 MOV R0, R3
- ROM:00039792 068 BL Flash_read_area_2D1D8
- ROM:00039796 068 LDR R0, [SP,#0x68+var_68]
- ROM:00039798 068 CMP R0, #0
- ROM:0003979A 068 BEQ loc_397DE
- ROM:0003979C 068 LDRB R0, [R5]
- ROM:0003979E 068 LDRB R1, [R5,#1]
- ROM:000397A0 068 LSLS R1, R1, #0x10
- ROM:000397A2 068 ORR.W R0, R1, R0,LSL#24
- ROM:000397A6 068 LDRB R1, [R5,#2]
- ROM:000397A8 068 ORR.W R0, R0, R1,LSL#8
- ROM:000397AC 068 LDRB R1, [R5,#3]
- ROM:000397AE 068 ORR.W R5, R1, R0
- ROM:000397B2 068 MOVS R6, #0
- ROM:000397B4 068 LDR R0, [SP,#0x68+var_68]
- ROM:000397B6 068 SUB.W R9, R0, #1
- ROM:000397BA 068 UXTH.W R9, R9
- ROM:000397BE 068 MOV.W R10, R9,ASR#1
- ROM:000397C2 068 MOVS R3, #0xC
- ROM:000397C4 068 ADD R2, SP, #0x68+var_5C
- ROM:000397C6 068 MOV R1, R3
- ROM:000397C8 068 MOVS R0, #4
- ROM:000397CA 068 BL Flash_read_area_2D1D8
- ROM:000397CE 068 UXTH.W R10, R10
- ROM:000397D2 068 CMP.W R10, #0
- ROM:000397D6 068 BNE loc_397E6
- ROM:000397D8 068 LDR R0, [SP,#0x68+var_5C]
- ROM:000397DA 068 CMP R5, R0
- ROM:000397DC 068 BEQ loc_39824
- ROM:000397DE
- ROM:000397DE loc_397DE ; CODE XREF: DMR_ID_Lookup_3974E+E↑j
- ROM:000397DE ; DMR_ID_Lookup_3974E+22↑j ...
- ROM:000397DE 068 MOVS R0, #0
- ROM:000397E0
- ROM:000397E0 loc_397E0 ; CODE XREF: DMR_ID_Lookup_3974E+CE↓j
- ROM:000397E0 ; DMR_ID_Lookup_3974E+E2↓j ...
- ROM:000397E0 068 ADD SP, SP, #0x48
- ROM:000397E2 020 POP.W {R4-R10,PC}
- ROM:000397E6 ; ---------------------------------------------------------------------------
- ROM:000397E6
- ROM:000397E6 loc_397E6 ; CODE XREF: DMR_ID_Lookup_3974E+88↑j
- ROM:000397E6 068 NOP
- ROM:000397E8 068 MOV R3, R7
- ROM:000397EA 068 ADD R2, SP, #0x68+var_34
- ROM:000397EC 068 MUL.W R0, R7, R9
- ROM:000397F0 068 ADD.W R1, R0, #0xC
- ROM:000397F4 068 MOVS R0, #4
- ROM:000397F6 068 BL Flash_read_area_2D1D8
- ROM:000397FA 068 LDR R0, [SP,#0x68+var_5C]
- ROM:000397FC 068 CMP R5, R0
- ROM:000397FE 068 BCC loc_397DE
- ROM:00039800 068 ADD.W R8, SP, #0x68+var_5C
- ROM:00039804 068 LDR.W R0, [SP,#0x68+var_34]
- ROM:00039808 068 CMP R0, R5
- ROM:0003980A 068 BCC loc_397DE
- ROM:0003980C 068 CMP R5, R0
- ROM:0003980E 068 BNE loc_3981E
- ROM:00039810 068 MOVS R2, R7
- ROM:00039812 068 ADD R1, SP, #0x68+var_30
- ROM:00039814 068 MOV R0, R4
- ROM:00039816 068 BL memcpy_2454C
- ROM:0003981A 068 MOVS R0, #1
- ROM:0003981C 068 B loc_397E0
- ROM:0003981E ; ---------------------------------------------------------------------------
- ROM:0003981E
- ROM:0003981E loc_3981E ; CODE XREF: DMR_ID_Lookup_3974E+C0↑j
- ROM:0003981E 068 LDR R0, [SP,#0x68+var_5C]
- ROM:00039820 068 CMP R5, R0
- ROM:00039822 068 BNE loc_3983C
- ROM:00039824
- ROM:00039824 loc_39824 ; CODE XREF: DMR_ID_Lookup_3974E+8E↑j
- ROM:00039824 068 MOVS R2, #8
- ROM:00039826 068 ADD R1, SP, #0x68+var_58
- ROM:00039828 068 MOV R0, R4
- ROM:0003982A 068 BL memcpy_2454C
- ROM:0003982E 068 MOVS R0, #1
- ROM:00039830 068 B loc_397E0
- ROM:00039832 ; ---------------------------------------------------------------------------
- ROM:00039832
- ROM:00039832 loc_39832 ; CODE XREF: DMR_ID_Lookup_3974E+10E↓j
- ROM:00039832 068 MOV R9, R10
- ROM:00039834 068 ADD.W R0, R9, R6
- ROM:00039838 068 MOV.W R10, R0,ASR#1
- ROM:0003983C
- ROM:0003983C loc_3983C ; CODE XREF: DMR_ID_Lookup_3974E+D4↑j
- ROM:0003983C ; DMR_ID_Lookup_3974E+11E↓j ...
- ROM:0003983C 068 UXTH.W R10, R10
- ROM:00039840 068 MUL.W R0, R7, R10
- ROM:00039844 068 ADD.W R1, R0, #0xC
- ROM:00039848 068 CMP R10, R6
- ROM:0003984A 068 MOV R3, R7
- ROM:0003984C 068 ADD R2, SP, #0x68+var_48
- ROM:0003984E 068 BEQ loc_39874
- ROM:00039850 068 MOVS R0, #4
- ROM:00039852 068 BL Flash_read_area_2D1D8
- ROM:00039856 068 LDR.W R0, [SP,#0x68+var_48]
- ROM:0003985A 068 CMP R5, R0
- ROM:0003985C 068 BCC loc_39832
- ROM:0003985E 068 CMP R0, R5
- ROM:00039860 068 BCS loc_3986E
- ROM:00039862 068 MOV R6, R10
- ROM:00039864 068 ADD.W R0, R9, R6
- ROM:00039868 068 MOV.W R10, R0,ASR#1
- ROM:0003986C 068 B loc_3983C
- ROM:0003986E ; ---------------------------------------------------------------------------
- ROM:0003986E
- ROM:0003986E loc_3986E ; CODE XREF: DMR_ID_Lookup_3974E+112↑j
- ROM:0003986E 068 CMP R5, R0
- ROM:00039870 068 BNE loc_3983C
- ROM:00039872 068 B loc_39882
- ROM:00039874 ; ---------------------------------------------------------------------------
- ROM:00039874
- ROM:00039874 loc_39874 ; CODE XREF: DMR_ID_Lookup_3974E+100↑j
- ROM:00039874 068 MOVS R0, #4
- ROM:00039876 068 BL Flash_read_area_2D1D8
- ROM:0003987A 068 LDR.W R0, [SP,#0x68+var_48]
- ROM:0003987E 068 CMP R5, R0
- ROM:00039880 068 BNE loc_397DE
- ROM:00039882
- ROM:00039882 loc_39882 ; CODE XREF: DMR_ID_Lookup_3974E+124↑j
- ROM:00039882 068 MOVS R2, R7
- ROM:00039884 068 ADD R1, SP, #0x68+var_44
- ROM:00039886 068 MOV R0, R4
- ROM:00039888 068 BL memcpy_2454C
- ROM:0003988C 068 MOVS R0, #1
- ROM:0003988E 068 B loc_397E0
- ROM:0003988E ; End of function DMR_ID_Lookup_3974E
- ROM:0003988E
- ROM:00039890
- ROM:00039890 ; =============== S U B R O U T I N E =======================================
- ROM:00039890
- ROM:00039890
- ROM:00039890 sub_39890 ; CODE XREF: sub_30472+86↑p
- ROM:00039890 ; sub_337CA+D6↑p ...
- ROM:00039890
- ROM:00039890 var_24 = -0x24
- ROM:00039890
- ROM:00039890 000 PUSH.W {R4-R9,LR}
- ROM:00039894 01C SUB SP, SP, #0xC
- ROM:00039896 028 MOV R4, R0
- ROM:00039898 028 MOV R8, R1
- ROM:0003989A 028 MOV R5, R2
- ROM:0003989C 028 MOVS R7, #0
- ROM:0003989E 028 CMP.W R8, #0
- ROM:000398A2 028 BEQ loc_398AA
- ROM:000398A4 028 MOVS R0, #1
- ROM:000398A6 028 STRB.W R0, [R8]
- ROM:000398AA
- ROM:000398AA loc_398AA ; CODE XREF: sub_39890+12↑j
- ROM:000398AA 028 MOV R0, R4
- ROM:000398AC 028 BL DMR_ID_Lookup_3974E
- ROM:000398B0 028 CMP R0, #0
- ROM:000398B2 028 BEQ loc_398B8
- ROM:000398B4 028 MOVS R0, #1
- ROM:000398B6 028 B locret_39948
- ROM:000398B8 ; ---------------------------------------------------------------------------
- ROM:000398B8
- ROM:000398B8 loc_398B8 ; CODE XREF: sub_39890+22↑j
- ROM:000398B8 028 LDR.W R9, =0x17620
- ROM:000398BC 028 MOV R6, R7
- ROM:000398BE 028 B loc_398C6
- ROM:000398C0 ; ---------------------------------------------------------------------------
- ROM:000398C0
- ROM:000398C0 loc_398C0 ; CODE XREF: sub_39890+46↓j
- ROM:000398C0 ; sub_39890+62↓j
- ROM:000398C0 028 ADD.W R9, R9, #0x18
- ROM:000398C4 028 ADDS R6, R6, #1
- ROM:000398C6
- ROM:000398C6 loc_398C6 ; CODE XREF: sub_39890+2E↑j
- ROM:000398C6 028 UXTH R6, R6
- ROM:000398C8 028 CMP.W R6, #0x400
- ROM:000398CC 028 BGE loc_39926
- ROM:000398CE 028 MOV R0, R9
- ROM:000398D0 028 BL some_calibration_read_18F16
- ROM:000398D4 028 CMP R0, #0xFF
- ROM:000398D6 028 BEQ loc_398C0
- ROM:000398D8 028 MOVS R2, #5
- ROM:000398DA 028 MOV R1, SP
- ROM:000398DC 028 ADD.W R0, R9, #0x10
- ROM:000398E0 028 BL spi_flash_read_18F9C
- ROM:000398E4 028 MOVS R3, #5
- ROM:000398E6 028 MOV R2, R5
- ROM:000398E8 028 MOV R1, R3
- ROM:000398EA 028 MOV R0, SP
- ROM:000398EC 028 BL sub_2471A
- ROM:000398F0 028 CMP R0, #1
- ROM:000398F2 028 BNE loc_398C0
- ROM:000398F4 028 MOVS R2, #0xF
- ROM:000398F6 028 MOV R1, R4
- ROM:000398F8 028 MOV R0, R9
- ROM:000398FA 028 BL spi_flash_read_18F9C
- ROM:000398FE 028 CMP.W R8, #0
- ROM:00039902 028 BEQ loc_3990C
- ROM:00039904 028 LDRB.W R0, [SP,#0x28+var_24]
- ROM:00039908 028 STRB.W R0, [R8]
- ROM:0003990C
- ROM:0003990C loc_3990C ; CODE XREF: sub_39890+72↑j
- ROM:0003990C 028 MOV R0, R7
- ROM:0003990E 028 B loc_3991C
- ROM:00039910 ; ---------------------------------------------------------------------------
- ROM:00039910
- ROM:00039910 loc_39910 ; CODE XREF: sub_39890+8E↓j
- ROM:00039910 028 LDRB R1, [R0,R4]
- ROM:00039912 028 CMP R1, #0xFF
- ROM:00039914 028 BNE loc_3991A
- ROM:00039916 028 MOV R1, R7
- ROM:00039918 028 STRB R1, [R0,R4]
- ROM:0003991A
- ROM:0003991A loc_3991A ; CODE XREF: sub_39890+84↑j
- ROM:0003991A 028 ADDS R0, R0, #1
- ROM:0003991C
- ROM:0003991C loc_3991C ; CODE XREF: sub_39890+7E↑j
- ROM:0003991C 028 CMP R0, #0xF
- ROM:0003991E 028 BLT loc_39910
- ROM:00039920 028 ADDS R7, R6, #1
- ROM:00039922 028 MOVS R0, #0
- ROM:00039924 028 STRB R0, [R4,#0xF]
- ROM:00039926
- ROM:00039926 loc_39926 ; CODE XREF: sub_39890+3C↑j
- ROM:00039926 028 UXTH R7, R7
- ROM:00039928 028 CMP R7, #0
- ROM:0003992A 028 BNE loc_39930
- ROM:0003992C 028 MOVS R0, #0
- ROM:0003992E 028 STRB R0, [R4]
- ROM:00039930
- ROM:00039930 loc_39930 ; CODE XREF: sub_39890+9A↑j
- ROM:00039930 028 MOVS R2, #4
- ROM:00039932 028 MOV R1, R5
- ROM:00039934 028 MOV R0, R5
- ROM:00039936 028 BL sub_24776
- ROM:0003993A 028 MOVS R3, #0
- ROM:0003993C 028 MOVS R2, #8
- ROM:0003993E 028 MOV R1, R5
- ROM:00039940 028 MOV R0, R5
- ROM:00039942 028 BL sub_39688
- ROM:00039946 028 MOV R0, R7
- ROM:00039948
- ROM:00039948 locret_39948 ; CODE XREF: sub_39890+26↑j
- ROM:00039948 028 POP.W {R1-R9,PC}
- ROM:00039948 ; End of function sub_39890
- ROM:00039948
- ROM:0003994C
- ROM:0003994C ; =============== S U B R O U T I N E =======================================
- ROM:0003994C
- ROM:0003994C
- ROM:0003994C sub_3994C ; CODE XREF: sub_36398+CA↑p
- ROM:0003994C ; sub_36778+94↑p ...
- ROM:0003994C
- ROM:0003994C arg_0 = 0
- ROM:0003994C
- ROM:0003994C 000 PUSH {R4-R6,LR}
- ROM:0003994E 010 MOVS R4, #0
- ROM:00039950 010 MOV R5, R1
- ROM:00039952 010 B loc_39958
- ROM:00039954 ; ---------------------------------------------------------------------------
- ROM:00039954
- ROM:00039954 loc_39954 ; CODE XREF: sub_3994C+18↓j
- ROM:00039954 010 ADDS R4, R4, #1
- ROM:00039956 010 UXTH R4, R4
- ROM:00039958
- ROM:00039958 loc_39958 ; CODE XREF: sub_3994C+6↑j
- ROM:00039958 010 CMP R4, R5
- ROM:0003995A 010 BGE loc_39966
- ROM:0003995C 010 LDRB R6, [R4,R0]
- ROM:0003995E 010 CMP R3, R6
- ROM:00039960 010 BCC loc_39966
- ROM:00039962 010 CMP R6, R2
- ROM:00039964 010 BCS loc_39954
- ROM:00039966
- ROM:00039966 loc_39966 ; CODE XREF: sub_3994C+E↑j
- ROM:00039966 ; sub_3994C+14↑j
- ROM:00039966 010 CMP R4, R5
- ROM:00039968 010 BGE loc_39976
- ROM:0003996A 010 SUBS R2, R1, R4
- ROM:0003996C 010 UXTH R2, R2
- ROM:0003996E 010 LDR R1, [SP,#0x10+arg_0]
- ROM:00039970 010 ADDS R0, R4, R0
- ROM:00039972 010 BL sub_24562
- ROM:00039976
- ROM:00039976 loc_39976 ; CODE XREF: sub_3994C+1C↑j
- ROM:00039976 010 MOVS R0, #1
- ROM:00039978 010 POP {R4-R6,PC}
- ROM:00039978 ; End of function sub_3994C
- ROM:00039978
- ROM:0003997A
- ROM:0003997A ; =============== S U B R O U T I N E =======================================
- ROM:0003997A
- ROM:0003997A
- ROM:0003997A sub_3997A ; CODE XREF: sub_36778+A6↑p
- ROM:0003997A ; sub_368D4+6A↑p
- ROM:0003997A 000 PUSH {R4,R5}
- ROM:0003997C 008 MOVS R3, #0
- ROM:0003997E 008 MOV R4, R3
- ROM:00039980 008 B loc_39986
- ROM:00039982 ; ---------------------------------------------------------------------------
- ROM:00039982
- ROM:00039982 loc_39982 ; CODE XREF: sub_3997A+1C↓j
- ROM:00039982 008 ADDS R3, R3, #1
- ROM:00039984
- ROM:00039984 loc_39984 ; CODE XREF: sub_3997A+16↓j
- ROM:00039984 008 ADDS R4, R4, #1
- ROM:00039986
- ROM:00039986 loc_39986 ; CODE XREF: sub_3997A+6↑j
- ROM:00039986 008 UXTH R4, R4
- ROM:00039988 008 CMP R4, R2
- ROM:0003998A 008 BCS loc_3999C
- ROM:0003998C 008 LDRB R5, [R4,R0]
- ROM:0003998E 008 CMP R5, #0
- ROM:00039990 008 BEQ loc_39984
- ROM:00039992 008 UXTB R3, R3
- ROM:00039994 008 CMP R3, R1
- ROM:00039996 008 BNE loc_39982
- ROM:00039998 008 MOV R0, R3
- ROM:0003999A 008 B loc_399A0
- ROM:0003999C ; ---------------------------------------------------------------------------
- ROM:0003999C
- ROM:0003999C loc_3999C ; CODE XREF: sub_3997A+10↑j
- ROM:0003999C 008 MOVW R0, #0xFFFF
- ROM:000399A0
- ROM:000399A0 loc_399A0 ; CODE XREF: sub_3997A+20↑j
- ROM:000399A0 008 POP {R4,R5}
- ROM:000399A2 000 BX LR
- ROM:000399A2 ; End of function sub_3997A
- ROM:000399A2
- ROM:000399A4
- ROM:000399A4 ; =============== S U B R O U T I N E =======================================
- ROM:000399A4
- ROM:000399A4
- ROM:000399A4 sub_399A4 ; CODE XREF: sub_368D4+D0↑p
- ROM:000399A4 000 PUSH {R4}
- ROM:000399A6 004 MOVS R2, #0
- ROM:000399A8 004 MOV R3, R2
- ROM:000399AA 004 B loc_399B6
- ROM:000399AC ; ---------------------------------------------------------------------------
- ROM:000399AC
- ROM:000399AC loc_399AC ; CODE XREF: sub_399A4+16↓j
- ROM:000399AC 004 LDRB R4, [R3,R0]
- ROM:000399AE 004 CMP R4, #0
- ROM:000399B0 004 BEQ loc_399B4
- ROM:000399B2 004 ADDS R2, R2, #1
- ROM:000399B4
- ROM:000399B4 loc_399B4 ; CODE XREF: sub_399A4+C↑j
- ROM:000399B4 004 ADDS R3, R3, #1
- ROM:000399B6
- ROM:000399B6 loc_399B6 ; CODE XREF: sub_399A4+6↑j
- ROM:000399B6 004 UXTH R3, R3
- ROM:000399B8 004 CMP R3, R1
- ROM:000399BA 004 BCC loc_399AC
- ROM:000399BC 004 UXTB R2, R2
- ROM:000399BE 004 MOV R0, R2
- ROM:000399C0 004 POP {R4}
- ROM:000399C2 000 BX LR
- ROM:000399C2 ; End of function sub_399A4
- ROM:000399C2
- ROM:000399C4
- ROM:000399C4 ; =============== S U B R O U T I N E =======================================
- ROM:000399C4
- ROM:000399C4
- ROM:000399C4 sub_399C4 ; CODE XREF: sub_3024C+2↑j
- ROM:000399C4 ; sub_30276+26↑j ...
- ROM:000399C4 000 PUSH {R4,LR}
- ROM:000399C6 008 MOV R4, R0
- ROM:000399C8 008 BL sub_2B8CA
- ROM:000399CC 008 MOVW R1, #0x10B
- ROM:000399D0 008 SUBS R0, R0, R1
- ROM:000399D2 008 BEQ loc_399E0
- ROM:000399D4 008 SUBS R0, R0, #5
- ROM:000399D6 008 BNE locret_399EA
- ROM:000399D8 008 POP.W {R4,LR}
- ROM:000399DC 000 B.W sub_2B9F2
- ROM:000399E0 ; ---------------------------------------------------------------------------
- ROM:000399E0
- ROM:000399E0 loc_399E0 ; CODE XREF: sub_399C4+E↑j
- ROM:000399E0 008 MOV R0, R4
- ROM:000399E2 008 POP.W {R4,LR}
- ROM:000399E6 000 B.W sub_39158
- ROM:000399EA ; ---------------------------------------------------------------------------
- ROM:000399EA
- ROM:000399EA locret_399EA ; CODE XREF: sub_399C4+12↑j
- ROM:000399EA 008 POP {R4,PC}
- ROM:000399EA ; End of function sub_399C4
- ROM:000399EA
- ROM:000399EC
- ROM:000399EC ; =============== S U B R O U T I N E =======================================
- ROM:000399EC
- ROM:000399EC
- ROM:000399EC sub_399EC ; CODE XREF: sub_34F94+10↑p
- ROM:000399EC ; sub_39A82+10↓p
- ROM:000399EC 000 MOVS R1, #1
- ROM:000399EE 000 MOVS R2, #0xA
- ROM:000399F0 000 B loc_399F8
- ROM:000399F2 ; ---------------------------------------------------------------------------
- ROM:000399F2
- ROM:000399F2 loc_399F2 ; CODE XREF: sub_399EC+10↓j
- ROM:000399F2 000 SDIV.W R0, R0, R2
- ROM:000399F6 000 ADDS R1, R1, #1
- ROM:000399F8
- ROM:000399F8 loc_399F8 ; CODE XREF: sub_399EC+4↑j
- ROM:000399F8 000 UXTH R0, R0
- ROM:000399FA 000 CMP R0, #0xA
- ROM:000399FC 000 BGE loc_399F2
- ROM:000399FE 000 MOV R0, R1
- ROM:00039A00 000 UXTB R0, R0
- ROM:00039A02 000 BX LR
- ROM:00039A02 ; End of function sub_399EC
- ROM:00039A02
- ROM:00039A04
- ROM:00039A04 ; =============== S U B R O U T I N E =======================================
- ROM:00039A04
- ROM:00039A04
- ROM:00039A04 sub_39A04 ; CODE XREF: sub_30BC6+2↑p
- ROM:00039A04 ; sub_30C10+2↑p ...
- ROM:00039A04 000 PUSH {R3-R5,LR}
- ROM:00039A06 010 LDR.W R4, =byte_1FFF2200
- ROM:00039A0A 010 LDRB R0, [R4]
- ROM:00039A0C 010 CMP R0, #0xFF
- ROM:00039A0E 010 BEQ locret_39A80
- ROM:00039A10 010 MOV.W R0, #0x110
- ROM:00039A14 010 BL sub_2EA54
- ROM:00039A18 010 MOV R5, R0
- ROM:00039A1A 010 LDRH R0, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A1C 010 CMP R0, #0
- ROM:00039A1E 010 BEQ loc_39A70
- ROM:00039A20 010 MOV R0, R5
- ROM:00039A22 010 BL sub_45ABE
- ROM:00039A26 010 LDRH R1, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A28 010 SUBS R1, R1, #1
- ROM:00039A2A 010 CMP R0, R1
- ROM:00039A2C 010 BEQ loc_39A70
- ROM:00039A2E 010 BL sub_2B8DC
- ROM:00039A32 010 LDRB R1, [R4,#(byte_1FFF2202 - byte_1FFF2200)]
- ROM:00039A34 010 CMP R0, R1
- ROM:00039A36 010 BNE loc_39A70
- ROM:00039A38 010 MOV R0, R5
- ROM:00039A3A 010 BL sub_4C57C
- ROM:00039A3E 010 LDRH R1, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A40 010 UXTH R0, R0
- ROM:00039A42 010 CMP R0, R1
- ROM:00039A44 010 BLS loc_39A48
- ROM:00039A46 010 MOV R0, R1
- ROM:00039A48
- ROM:00039A48 loc_39A48 ; CODE XREF: sub_39A04+40↑j
- ROM:00039A48 010 STRH R0, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A4A 010 LDRH R0, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A4C 010 SUBS R1, R0, #1
- ROM:00039A4E 010 MOV R0, R5
- ROM:00039A50 010 BL sub_45A14
- ROM:00039A54 010 LDRH R0, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A56 010 SUBS R0, R0, #1
- ROM:00039A58 010 UXTB R0, R0
- ROM:00039A5A 010 BL sub_2B8EC
- ROM:00039A5E 010 BL sub_2B8DC
- ROM:00039A62 010 LDRH R1, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A64 010 SUBS R1, R1, #1
- ROM:00039A66 010 UXTH R1, R1
- ROM:00039A68 010 BL sub_2BC14
- ROM:00039A6C 010 BL sub_2B950
- ROM:00039A70
- ROM:00039A70 loc_39A70 ; CODE XREF: sub_39A04+1A↑j
- ROM:00039A70 ; sub_39A04+28↑j ...
- ROM:00039A70 010 MOVS R0, #0
- ROM:00039A72 010 STRB R0, [R4,#(byte_1FFF2201 - byte_1FFF2200)]
- ROM:00039A74 010 STRH R0, [R4,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039A76 010 MOV R0, R4
- ROM:00039A78 010 POP.W {R1,R4,R5,LR}
- ROM:00039A7C 000 B.W sub_16348
- ROM:00039A80 ; ---------------------------------------------------------------------------
- ROM:00039A80
- ROM:00039A80 locret_39A80 ; CODE XREF: sub_39A04+A↑j
- ROM:00039A80 010 POP {R0,R4,R5,PC}
- ROM:00039A80 ; End of function sub_39A04
- ROM:00039A80
- ROM:00039A82
- ROM:00039A82 ; =============== S U B R O U T I N E =======================================
- ROM:00039A82
- ROM:00039A82
- ROM:00039A82 sub_39A82 ; CODE XREF: sub_39B06+26↓p
- ROM:00039A82 000 PUSH.W {R4-R8,LR}
- ROM:00039A86 018 MOV R6, R0
- ROM:00039A88 018 MOV R4, R1
- ROM:00039A8A 018 MOVW R5, #0xFFFF
- ROM:00039A8E 018 MOV R8, R5
- ROM:00039A90 018 MOV R0, R4
- ROM:00039A92 018 BL sub_399EC
- ROM:00039A96 018 SUB.W R1, R6, #0xFF
- ROM:00039A9A 018 CMP R1, #0xA
- ROM:00039A9C 018 BCS loc_39AFC
- ROM:00039A9E 018 LDR.W R7, =byte_1FFF2200
- ROM:00039AA2 018 LDRB R1, [R7,#(byte_1FFF2201 - byte_1FFF2200)]
- ROM:00039AA4 018 ADDS R1, R1, #1
- ROM:00039AA6 018 STRB R1, [R7,#(byte_1FFF2201 - byte_1FFF2200)]
- ROM:00039AA8 018 LDRH R2, [R7,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039AAA 018 ADD.W R3, R2, R2,LSL#2
- ROM:00039AAE 018 ADD.W R2, R6, R3,LSL#1
- ROM:00039AB2 018 SUB.W R8, R2, #0xFF
- ROM:00039AB6 018 STRH.W R8, [R7,#(word_1FFF2204 - byte_1FFF2200)]
- ROM:00039ABA 018 UXTH.W R8, R8
- ROM:00039ABE 018 MOV R6, R4
- ROM:00039AC0 018 UXTB R1, R1
- ROM:00039AC2 018 CMP R1, R0
- ROM:00039AC4 018 BCC loc_39AD2
- ROM:00039AC6 018 BL sub_39A04
- ROM:00039ACA 018 CMP R6, R8
- ROM:00039ACC 018 BGE loc_39AFC
- ROM:00039ACE 018 MOV R8, R4
- ROM:00039AD0 018 B loc_39AFC
- ROM:00039AD2 ; ---------------------------------------------------------------------------
- ROM:00039AD2
- ROM:00039AD2 loc_39AD2 ; CODE XREF: sub_39A82+42↑j
- ROM:00039AD2 018 CMP R6, R8
- ROM:00039AD4 018 BGE loc_39AD8
- ROM:00039AD6 018 MOV R8, R4
- ROM:00039AD8
- ROM:00039AD8 loc_39AD8 ; CODE XREF: sub_39A82+52↑j
- ROM:00039AD8 018 CMP R1, #0
- ROM:00039ADA 018 BEQ loc_39AFC
- ROM:00039ADC 018 LDRB R0, [R7]
- ROM:00039ADE 018 CMP R0, #0xFF
- ROM:00039AE0 018 BNE loc_39AEA
- ROM:00039AE2 018 LDR R0, =(sub_39A04+1)
- ROM:00039AE4 018 BL sub_162DC
- ROM:00039AE8 018 STRB R0, [R7]
- ROM:00039AEA
- ROM:00039AEA loc_39AEA ; CODE XREF: sub_39A82+5E↑j
- ROM:00039AEA 018 BL sub_2B8DC
- ROM:00039AEE 018 STRB R0, [R7,#(byte_1FFF2202 - byte_1FFF2200)]
- ROM:00039AF0 018 MOVS R3, #1
- ROM:00039AF2 018 MOV R2, R3
- ROM:00039AF4 018 MOVS R1, #2
- ROM:00039AF6 018 LDRB R0, [R7]
- ROM:00039AF8 018 BL sub_16364
- ROM:00039AFC
- ROM:00039AFC loc_39AFC ; CODE XREF: sub_39A82+1A↑j
- ROM:00039AFC ; sub_39A82+4A↑j ...
- ROM:00039AFC 018 ADD.W R0, R5, R8
- ROM:00039B00 018 UXTH R0, R0
- ROM:00039B02 018 POP.W {R4-R8,PC}
- ROM:00039B02 ; End of function sub_39A82
- ROM:00039B02
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement