.text .align 2 .code 32 .arm entry: 020000C0 E3A00012 mov r0,#0x12 020000C4 E129F000 msr cpsr_fc,r0 020000C8 E59FD028 ldr r13,=#0x3007FA0 020000CC E3A0001F mov r0,#0x1F 020000D0 E129F000 msr cpsr_fc,r0 020000D4 E59FD018 ldr r13,=#0x3007E60 020000D8 E59F101C ldr r1,=#0x3007FFC 020000DC E28F0020 add r0,=#0x2000104 020000E0 E5810000 str r0,[r1] 020000E4 E59F1014 ldr r1,=#0x2000241 020000E8 E1A0E00F mov r14,r15 020000EC E12FFF11 bx r1 020000F0 EAFFFFF2 b #0x20000C0 .pool 020000F4 03007E60 020000F8 03007FA0 020000FC 03007FFC 02000100 02000241 irq handler: 02000104 E3A03301 mov r3,#0x4000000 02000108 E2833C02 add r3,r3,#0x200 0200010C E5932000 ldr r2,[r3] 02000110 E1D310B8 ldrh r1,[r3,#0x8] 02000114 E14F0000 mrs r0,spsr 02000118 E92D400F stmfd r13!,{r0-r3,r14} 0200011C E3A00001 mov r0,#0x1 02000120 E1C300B8 strh r0,[r3,#0x8] 02000124 E0021822 and r1,r2,r2,lsr #0x10 02000128 E3A0C000 mov r12,#0x0 0200012C E2110080 ands r0,r1,#0x80 02000130 1A000027 bne #0x20001D4 02000134 E28CC004 add r12,r12,#0x4 02000138 E2110001 ands r0,r1,#0x1 0200013C 1A000024 bne #0x20001D4 02000140 E28CC004 add r12,r12,#0x4 02000144 E2110002 ands r0,r1,#0x2 02000148 1A000021 bne #0x20001D4 0200014C E28CC004 add r12,r12,#0x4 02000150 E2110004 ands r0,r1,#0x4 02000154 1A00001E bne #0x20001D4 02000158 E28CC004 add r12,r12,#0x4 0200015C E2110008 ands r0,r1,#0x8 02000160 1A00001B bne #0x20001D4 02000164 E28CC004 add r12,r12,#0x4 02000168 E2110010 ands r0,r1,#0x10 0200016C 1A000018 bne #0x20001D4 02000170 E28CC004 add r12,r12,#0x4 02000174 E2110020 ands r0,r1,#0x20 02000178 1A000015 bne #0x20001D4 0200017C E28CC004 add r12,r12,#0x4 02000180 E2110040 ands r0,r1,#0x40 02000184 1A000012 bne #0x20001D4 02000188 E28CC004 add r12,r12,#0x4 0200018C E2110C01 ands r0,r1,#0x100 02000190 1A00000F bne #0x20001D4 02000194 E28CC004 add r12,r12,#0x4 02000198 E2110C02 ands r0,r1,#0x200 0200019C 1A00000C bne #0x20001D4 020001A0 E28CC004 add r12,r12,#0x4 020001A4 E2110B01 ands r0,r1,#0x400 020001A8 1A000009 bne #0x20001D4 020001AC E28CC004 add r12,r12,#0x4 020001B0 E2110B02 ands r0,r1,#0x800 020001B4 1A000006 bne #0x20001D4 020001B8 E28CC004 add r12,r12,#0x4 020001BC E2110A01 ands r0,r1,#0x1000 020001C0 1A000003 bne #0x20001D4 020001C4 E28CC004 add r12,r12,#0x4 020001C8 E2110A02 ands r0,r1,#0x2000 020001CC 1543017C strneb r0,[r3,-#0x17C] 020001D0 1AFFFFFE bne #0x20001D0 020001D4 E1C300B2 strh r0,[r3,#0x2] 020001D8 E3A01D83 mov r1,#0x20C0 020001DC E1C22000 bic r2,r2,r0 020001E0 E0011002 and r1,r1,r2 020001E4 E1C310B0 strh r1,[r3] 020001E8 E10F3000 mrs r3,cpsr 020001EC E3C330DF bic r3,r3,#0xDF 020001F0 E383301F orr r3,r3,#0x1F 020001F4 E129F003 msr cpsr_fc,r3 020001F8 E59F1038 ldr r1,=#0x2014390 020001FC E081100C add r1,r1,r12 02000200 E5910000 ldr r0,[r1] 02000204 E92D4000 stmfd r13!,{r14} 02000208 E28FE000 add r14,=#0x2000210 0200020C E12FFF10 bx r0 02000210 E8BD4000 ldmfd r13!,{r14} 02000214 E10F3000 mrs r3,cpsr 02000218 E3C330DF bic r3,r3,#0xDF 0200021C E3833092 orr r3,r3,#0x92 02000220 E129F003 msr cpsr_fc,r3 02000224 E8BD400F ldmfd r13!,{r0-r3,r14} 02000228 E1C320B0 strh r2,[r3] 0200022C E1C310B8 strh r1,[r3,#0x8] 02000230 E169F000 msr spsr_fc,r0 02000234 E12FFF1E bx r14 .pool 02000238 02014390 .text .align 2 .code 16 .thumb 0200023C 4770 bx r14 0200023E 0000 lsl r0,r0,#0x0(padding) agbMain: 02000240 B510 push {r4,r14} 02000242 4C0F ldr r4,=#0x3000130 02000244 490F ldr r1,=#0x4000208 // IME 02000246 2000 mov r0,#0x0 02000248 8008 strh r0,[r1] // IME = 0, turn off interrupts 0200024A 20FC mov r0,#0xFC // pass 0xFC to 0x20002A0 as an argument 0200024C F000F828 bl #0x20002A0 02000250 490D ldr r1,=#0x4000204 // cart waitstate control 02000252 4A0E ldr r2,=#0x45B4 02000254 1C10 mov r0,r2 // waitstate control = 0x45b4 02000256 8008 strh r0,[r1] // set waitstates, prefetch buffer 02000258 4A0D ldr r2,=#0x40000D4 // DMA3 source 0200025A 480E ldr r0,=#0x20143C8 // use this as DMA3 source 0200025C 6010 str r0,[r2] // set DMA3 src 0200025E 20C0 mov r0,#0xC0 // r0 = 0xC 02000260 0480 lsl r0,r0,#0x12 // r0 = 0x3000000 02000262 6050 str r0,[r2,#0x4] // DMA3 dest = 0x3000000 02000264 480C ldr r0,=#0x30001C4 02000266 490D ldr r1,=#0x3000000 02000268 1A40 sub r0,r0,r1 // r0 = r0-r1 = 0x1C4 0200026A 0FC1 lsr r1,r0,#0x1F // r1 = 0 0200026C 1840 add r0,r0,r1 0200026E 1040 asr r0,r0,#0x1 02000270 2180 mov r1,#0x80 02000272 0609 lsl r1,r1,#0x18 02000274 4308 orr r0,r1 02000276 6090 str r0,[r2,#0x8] 02000278 6890 ldr r0,[r2,#0x8] 0200027A F000F81B bl #0x20002B4 0200027E E7FE b #0x200027E .pool 02000280 0130 02000282 0300 (0x03000130) 02000284 0208 02000286 0400 (0x04000208) 02000288 0204 0200028A 0400 (0x04000204) 0200028C 45B4 0200028E 0000 (0x030045B4) 02000290 00D4 02000292 0400 (0x040000D4) 02000294 43C8 02000296 0201 (0x020143C8) 02000298 01C4 0200029A 0300 (0x030001C4) 0200029C 0000 0200029E 0300 (0x03000000) 020002A0 DF01 swi #0x1 ;RegisterRamReset 020002A2 4770 bx r14 020002A4 4700 bx r0 020002A6 46C0 nop 020002A8 4708 bx r1 020002AA 46C0 nop 020002AC 4710 bx r2 020002AE 46C0 nop 020002B0 4718 bx r3 020002B2 46C0 nop 020002B4 4720 bx r4 020002B6 46C0 nop 020002B8 4728 bx r5 020002BA 46C0 nop 020002BC 4730 bx r6 020002BE 46C0 nop 020002C0 4738 bx r7 020002C2 46C0 nop 020002C4 4740 bx r8 020002C6 46C0 nop 020002C8 4748 bx r9 020002CA 46C0 nop 020002CC 4750 bx r10 020002CE 46C0 nop 020002D0 4758 bx r11 020002D2 46C0 nop 020002D4 4760 bx r12 020002D6 46C0 nop 020002D8 4768 bx r13 020002DA 46C0 nop 020002DC 4770 bx r14 020002DE 46C0 nop 020002E0 0000 lsl r0,r0,#0x0(padding) .text .align 2 .code 32 .arm 020143C8 E1A0C00D mov r12,r13 020143CC E92DDFF0 stmfd r13!,{r4-r12,r14,r15} 020143D0 E24CB004 sub r11,r12,#0x4 020143D4 E1A07000 mov r7,r0 020143D8 E4973004 ldr r3,[r7],#0x4 020143DC E1A0E001 mov r14,r1 020143E0 E08E9443 add r9,r14,r3,asr #0x8 020143E4 E15E0009 cmp r14,r9 020143E8 2A000040 bcs #0x20144F0 020143EC E3A08EFF mov r8,#0xFF0 020143F0 E288800F add r8,r8,#0xF 020143F4 E3A05080 mov r5,#0x80 020143F8 E4D7A001 ldrb r10,[r7],#0x1 020143FC E11A0005 tst r10,r5 02014400 0A000033 beq #0x20144D4 02014404 E4D73001 ldrb r3,[r7],#0x1 02014408 E4D71001 ldrb r1,[r7],#0x1 0201440C E24E0001 sub r0,r14,#0x1 02014410 E1811403 orr r1,r1,r3,lsl #0x8 02014414 E0013008 and r3,r1,r8 02014418 E0630000 rsb r0,r3,r0 0201441C E18E2000 orr r2,r14,r0 02014420 E3120001 tst r2,#0x1 02014424 E1A01641 mov r1,r1,asr #0xC 02014428 E2810003 add r0,r1,#0x3 0201442C 1A00000F bne #0x2014470 02014430 E1A0C141 mov r12,r1,asr #0x2 02014434 E35C0000 cmp r12,#0x0 02014438 E2014002 and r4,r1,#0x2 0201443C E2016001 and r6,r1,#0x1 02014440 E1A010A5 mov r1,r5,lsr #0x1 02014444 0A000005 beq #0x2014460 02014448 E0D030B2 ldrh r3,[r0],#0x2 0201444C E0CE30B2 strh r3,[r14],#0x2 02014450 E0D030B2 ldrh r3,[r0],#0x2 02014454 E0CE30B2 strh r3,[r14],#0x2 02014458 E25CC001 subs r12,r12,#0x1 0201445C 1AFFFFF9 bne #0x2014448 02014460 E3540000 cmp r4,#0x0 02014464 10D030B2 ldrneh r3,[r0],#0x2 02014468 10CE30B2 strneh r3,[r14],#0x2 0201446C EA000014 b #0x20144C4 02014470 E1A0C141 mov r12,r1,asr #0x2 02014474 E35C0000 cmp r12,#0x0 02014478 E2014002 and r4,r1,#0x2 0201447C E2016001 and r6,r1,#0x1 02014480 E1A010A5 mov r1,r5,lsr #0x1 02014484 0A000009 beq #0x20144B0 02014488 E4D03001 ldrb r3,[r0],#0x1 0201448C E4CE3001 strb r3,[r14],#0x1 02014490 E4D02001 ldrb r2,[r0],#0x1 02014494 E4CE2001 strb r2,[r14],#0x1 02014498 E4D03001 ldrb r3,[r0],#0x1 0201449C E4CE3001 strb r3,[r14],#0x1 020144A0 E4D02001 ldrb r2,[r0],#0x1 020144A4 E4CE2001 strb r2,[r14],#0x1 020144A8 E25CC001 subs r12,r12,#0x1 020144AC 1AFFFFF5 bne #0x2014488 020144B0 E3540000 cmp r4,#0x0 020144B4 14D03001 ldrneb r3,[r0],#0x1 020144B8 14CE3001 strneb r3,[r14],#0x1 020144BC 14D02001 ldrneb r2,[r0],#0x1 020144C0 14CE2001 strneb r2,[r14],#0x1 020144C4 E3560000 cmp r6,#0x0 020144C8 0A000004 beq #0x20144E0 020144CC E5D03000 ldrb r3,[r0] 020144D0 EA000001 b #0x20144DC 020144D4 E4D73001 ldrb r3,[r7],#0x1 020144D8 E1A010A5 mov r1,r5,lsr #0x1 020144DC E4CE3001 strb r3,[r14],#0x1 020144E0 E21150FF ands r5,r1,#0xFF 020144E4 1AFFFFC4 bne #0x20143FC 020144E8 E15E0009 cmp r14,r9 020144EC 3AFFFFC0 bcc #0x20143F4 020144F0 E91B6FF0 ldmdb r11,{r4-r11,r13,r14} 020144F4 E12FFF1E bx r14 020144F8 E1A0C00D mov r12,r13 020144FC E92DD830 stmfd r13!,{r4,r5,r11,r12,r14,r15} 02014500 E3A030AC mov r3,#0xAC 02014504 E2833402 add r3,r3,#0x2000000 02014508 E3A01000 mov r1,#0x0 0201450C E59F2068 ldr r2,=#0x2014384 02014510 E24CB004 sub r11,r12,#0x4 02014514 E59FC064 ldr r12,=#0x20003E0 02014518 E3A05402 mov r5,#0x2000000 0201451C E5934000 ldr r4,[r3] 02014520 E06C2002 rsb r2,r12,r2 02014524 E2620402 rsb r0,r2,#0x2000000 02014528 E2800BFF add r0,r0,#0x3FC00 0201452C E280C003 add r12,r0,#0x3 02014530 E1510002 cmp r1,r2 02014534 AA000004 bge #0x201454C 02014538 E7DC3001 ldrb r3,[r12,r1] 0201453C E7C03001 strb r3,[r0,r1] 02014540 E2811001 add r1,r1,#0x1 02014544 E1510002 cmp r1,r2 02014548 BAFFFFFA blt #0x2014538 0201454C E3A03F82 mov r3,#0x208 02014550 E2833301 add r3,r3,#0x4000000 02014554 E3A02000 mov r2,#0x0 02014558 E1C320B0 strh r2,[r3] 0201455C E3A01402 mov r1,#0x2000000 02014560 EBFFFF98 bl #0x20143C8 02014564 E3A030AC mov r3,#0xAC 02014568 E2833402 add r3,r3,#0x2000000 0201456C E5834000 str r4,[r3] 02014570 E1A0E00F mov r14,r15 02014574 E12FFF15 bx r5 02014578 EA000001 b #0x2014584 .pool 0201457C 02014384 02014580 020003E0 02014584 E91B6830 ldmdb r11,{r4,r5,r11,r13,r14} 02014588 E12FFF1E bx r14 .data 0201458C 53595346 "FSYS" - begin/end file system?