pokepinballrs/asm/high_scores.s

7056 lines
121 KiB
ArmAsm
Executable File

.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start HighScoresMain
HighScoresMain: @ 0x0800CE48
push {lr}
ldr r1, _0800CE60 @ =0x080793E8
ldr r0, _0800CE64 @ =gMain
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_0800CE60: .4byte 0x080793E8
_0800CE64: .4byte gMain
thumb_func_start sub_CE68_Main
sub_CE68_Main: @ 0x0800CE68
push {lr}
ldr r1, _0800CE80 @ =0x08079424
ldr r0, _0800CE84 @ =gMain
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
pop {r0}
bx r0
.align 2, 0
_0800CE80: .4byte 0x08079424
_0800CE84: .4byte gMain
thumb_func_start sub_CE88
sub_CE88: @ 0x0800CE88
push {r4, r5, r6, r7, lr}
bl sub_438
movs r2, #0x80
lsls r2, r2, #0x13
movs r1, #0x84
lsls r1, r1, #5
adds r0, r1, #0
strh r0, [r2]
ldr r1, _0800CF68 @ =0x0400000C
ldr r3, _0800CF6C @ =0x00004006
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0800CF70 @ =0x0400000E
ldr r3, _0800CF74 @ =0x0000420F
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r7, _0800CF78 @ =gMain
ldrh r0, [r2]
strh r0, [r7, #0x16]
ldr r4, _0800CF7C @ =0x040000D4
ldr r0, _0800CF80 @ =0x0809DBE0
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _0800CF84 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CF88 @ =0x080957A0
str r0, [r4]
ldr r0, _0800CF8C @ =0x06004000
str r0, [r4, #4]
ldr r0, _0800CF90 @ =0x80002400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CF94 @ =0x0809AFC0
str r0, [r4]
ldr r0, _0800CF98 @ =0x0600C000
str r0, [r4, #4]
ldr r0, _0800CF9C @ =0x80001600
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CFA0 @ =0x080947A0
str r0, [r4]
ldr r6, _0800CFA4 @ =0x03005C00
str r6, [r4, #4]
ldr r5, _0800CFA8 @ =0x80000800
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CFAC @ =0x08099FC0
str r0, [r4]
ldr r0, _0800CFB0 @ =0x06001000
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CFB4 @ =0x0809DDE0
str r0, [r4]
ldr r0, _0800CFB8 @ =0x05000200
str r0, [r4, #4]
ldr r0, _0800CFBC @ =0x80000080
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800CFC0 @ =0x0809DFE0
str r0, [r4]
ldr r0, _0800CFC4 @ =0x06010000
str r0, [r4, #4]
ldr r0, _0800CFC8 @ =0x80002210
str r0, [r4, #8]
ldr r0, [r4, #8]
bl sub_CFD4
bl sub_EE64
str r6, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r4, _0800CFCC @ =0x0202C588
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0800CF50
movs r0, #9
bl m4aSongNumStart
_0800CF50:
movs r0, #0
strh r0, [r4]
bl sub_CBC
bl sub_24C
ldr r0, _0800CFD0 @ =0x02002858
ldrb r0, [r0, #0xa]
strb r0, [r7, #3]
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800CF68: .4byte 0x0400000C
_0800CF6C: .4byte 0x00004006
_0800CF70: .4byte 0x0400000E
_0800CF74: .4byte 0x0000420F
_0800CF78: .4byte gMain
_0800CF7C: .4byte 0x040000D4
_0800CF80: .4byte 0x0809DBE0
_0800CF84: .4byte 0x80000100
_0800CF88: .4byte 0x080957A0
_0800CF8C: .4byte 0x06004000
_0800CF90: .4byte 0x80002400
_0800CF94: .4byte 0x0809AFC0
_0800CF98: .4byte 0x0600C000
_0800CF9C: .4byte 0x80001600
_0800CFA0: .4byte 0x080947A0
_0800CFA4: .4byte 0x03005C00
_0800CFA8: .4byte 0x80000800
_0800CFAC: .4byte 0x08099FC0
_0800CFB0: .4byte 0x06001000
_0800CFB4: .4byte 0x0809DDE0
_0800CFB8: .4byte 0x05000200
_0800CFBC: .4byte 0x80000080
_0800CFC0: .4byte 0x0809DFE0
_0800CFC4: .4byte 0x06010000
_0800CFC8: .4byte 0x80002210
_0800CFCC: .4byte 0x0202C588
_0800CFD0: .4byte 0x02002858
thumb_func_start sub_CFD4
sub_CFD4: @ 0x0800CFD4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r7, #0
ldr r0, _0800D0B0 @ =0x02002858
mov r8, r0
ldr r1, _0800D0B4 @ =0x0202C610
mov sl, r1
ldr r2, _0800D0B8 @ =0x0200B134
mov sb, r2
movs r3, #0
mov ip, r3
_0800CFF0:
movs r3, #0
mov r4, ip
movs r6, #0
_0800CFF6:
adds r0, r4, #0
adds r0, #0xe4
adds r0, r6, r0
mov r1, sb
adds r5, r0, r1
adds r0, r6, r4
mov r1, sl
adds r2, r0, r1
movs r1, #5
_0800D008:
ldm r5!, {r0}
stm r2!, {r0}
subs r1, #1
cmp r1, #0
bge _0800D008
adds r6, #0x18
adds r3, #1
cmp r3, #7
ble _0800CFF6
movs r2, #0xc0
add ip, r2
adds r7, #1
cmp r7, #1
ble _0800CFF0
movs r7, #0
ldr r6, _0800D0BC @ =0x0202C550
ldr r5, _0800D0B4 @ =0x0202C610
_0800D02A:
lsls r0, r7, #1
adds r4, r7, #1
adds r0, r0, r7
lsls r1, r0, #3
lsls r0, r0, #6
adds r2, r0, r5
adds r1, r1, r6
movs r3, #5
_0800D03A:
ldm r2!, {r0}
stm r1!, {r0}
subs r3, #1
cmp r3, #0
bge _0800D03A
adds r7, r4, #0
cmp r7, #1
ble _0800D02A
movs r3, #0
movs r2, #0
mov r4, r8
strh r2, [r4, #0x10]
strh r2, [r4, #0x12]
strh r2, [r4, #0x14]
strh r2, [r4, #0x18]
strh r2, [r4, #0x1a]
strh r2, [r4, #0x1e]
strh r2, [r4, #0x1c]
strh r2, [r4, #0x20]
strh r2, [r4, #0x22]
mov r0, r8
adds r0, #0x25
strb r3, [r0]
mov r1, r8
adds r1, #0x26
movs r0, #1
strb r0, [r1]
ldr r1, _0800D0C0 @ =0x0201B178
strb r3, [r1]
ldr r4, _0800D0C4 @ =0x0202BEBC
strb r0, [r4]
ldr r0, _0800D0C8 @ =0x0201C18C
strb r3, [r0]
ldr r1, _0800D0CC @ =0x02002884
strb r3, [r1]
ldr r4, _0800D0D0 @ =0x02002885
strb r3, [r4]
ldr r1, _0800D0D4 @ =0x0202C588
movs r4, #0
ldrsh r0, [r1, r4]
cmp r0, #1
beq _0800D090
b _0800D1C0
_0800D090:
ldr r0, _0800D0D8 @ =gMain
ldr r1, [r0, #0x5c]
mov r4, r8
str r1, [r4]
ldr r1, [r0, #0x58]
str r1, [r4, #4]
ldrb r1, [r0, #4]
cmp r1, #1
bne _0800D0E4
strb r1, [r4, #0xb]
movs r0, #0xf0
ldr r2, _0800D0DC @ =0x02002882
strh r0, [r2]
ldr r3, _0800D0E0 @ =0x02002880
strh r1, [r3]
b _0800D0F6
.align 2, 0
_0800D0B0: .4byte 0x02002858
_0800D0B4: .4byte 0x0202C610
_0800D0B8: .4byte 0x0200B134
_0800D0BC: .4byte 0x0202C550
_0800D0C0: .4byte 0x0201B178
_0800D0C4: .4byte 0x0202BEBC
_0800D0C8: .4byte 0x0201C18C
_0800D0CC: .4byte 0x02002884
_0800D0D0: .4byte 0x02002885
_0800D0D4: .4byte 0x0202C588
_0800D0D8: .4byte gMain
_0800D0DC: .4byte 0x02002882
_0800D0E0: .4byte 0x02002880
_0800D0E4:
mov r4, r8
strb r3, [r4, #0xb]
ldr r0, _0800D178 @ =0x02002882
strh r2, [r0]
movs r1, #1
rsbs r1, r1, #0
adds r0, r1, #0
ldr r2, _0800D17C @ =0x02002880
strh r0, [r2]
_0800D0F6:
ldr r4, _0800D180 @ =0x02002858
ldr r0, [r4]
ldr r1, [r4, #4]
ldrb r2, [r4, #0xb]
bl sub_F3DC
adds r3, r0, #0
str r3, [r4, #0xc]
movs r0, #1
rsbs r0, r0, #0
cmp r3, r0
beq _0800D14A
ldr r0, [r4]
ldr r1, [r4, #4]
ldrb r2, [r4, #0xb]
bl sub_F434
movs r7, #0
ldr r5, _0800D184 @ =0x0202C610
adds r3, r4, #0
ldr r6, _0800D188 @ =0x0201A500
adds r4, r6, #0
_0800D122:
lsls r2, r7, #2
ldr r1, [r3, #0xc]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r2, r2, r0
ldrb r1, [r3, #0xb]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
adds r2, r2, r0
adds r2, r2, r5
ldm r4!, {r0}
str r0, [r2]
adds r7, #1
cmp r7, #3
ble _0800D122
ldr r1, _0800D180 @ =0x02002858
ldr r0, [r6]
strh r0, [r1, #0x16]
_0800D14A:
bl sub_FD20
lsls r0, r0, #0x18
asrs r3, r0, #0x18
cmp r3, #1
bne _0800D1A8
ldr r0, _0800D18C @ =0x0202BEB0
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
bne _0800D1A0
ldr r0, _0800D190 @ =0x0201C18C
strb r3, [r0]
ldr r1, _0800D194 @ =0x0201A4B8
movs r0, #0xb8
strh r0, [r1]
ldr r0, _0800D198 @ =0x0202C580
strb r2, [r0]
ldr r0, _0800D19C @ =0x0202BED4
strb r2, [r0]
ldr r0, _0800D180 @ =0x02002858
strb r3, [r0, #0xa]
b _0800D1DA
.align 2, 0
_0800D178: .4byte 0x02002882
_0800D17C: .4byte 0x02002880
_0800D180: .4byte 0x02002858
_0800D184: .4byte 0x0202C610
_0800D188: .4byte 0x0201A500
_0800D18C: .4byte 0x0202BEB0
_0800D190: .4byte 0x0201C18C
_0800D194: .4byte 0x0201A4B8
_0800D198: .4byte 0x0202C580
_0800D19C: .4byte 0x0202BED4
_0800D1A0:
ldr r1, _0800D1A4 @ =0x0201C18C
b _0800D1AA
.align 2, 0
_0800D1A4: .4byte 0x0201C18C
_0800D1A8:
ldr r1, _0800D1B8 @ =0x0202BEB0
_0800D1AA:
movs r0, #0
strb r0, [r1]
ldr r1, _0800D1BC @ =0x02002858
movs r0, #2
strb r0, [r1, #0xa]
b _0800D1DA
.align 2, 0
_0800D1B8: .4byte 0x0202BEB0
_0800D1BC: .4byte 0x02002858
_0800D1C0:
mov r4, r8
strb r3, [r4, #0xb]
ldr r0, _0800D200 @ =0x02002882
strh r2, [r0]
movs r1, #1
rsbs r1, r1, #0
adds r0, r1, #0
ldr r2, _0800D204 @ =0x02002880
strh r0, [r2]
bl sub_E464
movs r0, #3
strb r0, [r4, #0xa]
_0800D1DA:
ldr r2, _0800D208 @ =gMain
ldr r0, _0800D200 @ =0x02002882
ldrh r1, [r0]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r2, r3
strh r1, [r0]
movs r4, #0xbc
lsls r4, r4, #2
adds r0, r2, r4
strh r1, [r0]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800D200: .4byte 0x02002882
_0800D204: .4byte 0x02002880
_0800D208: .4byte gMain
thumb_func_start sub_D20C
sub_D20C: @ 0x0800D20C
push {r4, r5, lr}
ldr r4, _0800D224 @ =0x0202BED4
movs r0, #0
ldrsb r0, [r4, r0]
adds r5, r4, #0
cmp r0, #1
beq _0800D248
cmp r0, #1
bgt _0800D228
cmp r0, #0
beq _0800D232
b _0800D2E0
.align 2, 0
_0800D224: .4byte 0x0202BED4
_0800D228:
cmp r0, #2
beq _0800D290
cmp r0, #3
beq _0800D2B4
b _0800D2E0
_0800D232:
ldr r0, _0800D244 @ =0x02002858
movs r1, #0x18
ldrsh r0, [r0, r1]
cmp r0, #3
bne _0800D2E0
movs r0, #0x11
bl m4aSongNumStart
b _0800D2A2
.align 2, 0
_0800D244: .4byte 0x02002858
_0800D248:
ldr r1, _0800D284 @ =0x0201A4B8
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
ldr r0, _0800D288 @ =0x02002858
ldrh r2, [r0, #0x18]
movs r0, #3
ands r2, r0
cmp r2, #0
bne _0800D26E
ldr r3, _0800D28C @ =0x0202C580
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #4
ble _0800D26E
strb r2, [r3]
_0800D26E:
movs r2, #0
ldrsh r0, [r1, r2]
cmp r0, #0x50
bne _0800D2E0
ldr r1, _0800D28C @ =0x0202C580
movs r0, #0
strb r0, [r1]
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
b _0800D2E0
.align 2, 0
_0800D284: .4byte 0x0201A4B8
_0800D288: .4byte 0x02002858
_0800D28C: .4byte 0x0202C580
_0800D290:
ldr r0, _0800D2AC @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #3
ands r0, r1
cmp r0, #0
beq _0800D2E0
ldr r1, _0800D2B0 @ =0x0202C580
movs r0, #0
strb r0, [r1]
_0800D2A2:
ldrb r0, [r4]
adds r0, #1
strb r0, [r4]
b _0800D2E0
.align 2, 0
_0800D2AC: .4byte gMain
_0800D2B0: .4byte 0x0202C580
_0800D2B4:
ldr r0, _0800D2F4 @ =0x0201A4B8
ldrh r1, [r0]
subs r1, #4
strh r1, [r0]
lsls r1, r1, #0x10
asrs r1, r1, #0x10
movs r0, #0x18
rsbs r0, r0, #0
cmp r1, r0
bge _0800D2E0
ldr r1, _0800D2F8 @ =0x02002858
movs r2, #0
movs r0, #0
strh r0, [r1, #0x18]
ldr r1, _0800D2FC @ =0x0202BEB0
movs r0, #1
strb r0, [r1]
ldr r0, _0800D300 @ =0x0201C18C
strb r2, [r0]
ldr r1, _0800D304 @ =gMain
movs r0, #2
strb r0, [r1, #3]
_0800D2E0:
ldr r1, _0800D2F8 @ =0x02002858
ldrh r0, [r1, #0x18]
adds r0, #1
strh r0, [r1, #0x18]
bl sub_E860
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800D2F4: .4byte 0x0201A4B8
_0800D2F8: .4byte 0x02002858
_0800D2FC: .4byte 0x0202BEB0
_0800D300: .4byte 0x0201C18C
_0800D304: .4byte gMain
thumb_func_start sub_D308
sub_D308: @ 0x0800D308
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #8
ldr r4, _0800D32C @ =0x02002858
movs r0, #0x1a
ldrsh r2, [r4, r0]
cmp r2, #0
bne _0800D35E
ldr r1, [r4, #0xc]
cmp r1, #0
bne _0800D330
movs r0, #0xa5
lsls r0, r0, #1
bl m4aSongNumStart
movs r0, #0xa0
b _0800D35C
.align 2, 0
_0800D32C: .4byte 0x02002858
_0800D330:
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0800D354
ldr r0, _0800D34C @ =0x000003E7
strh r0, [r4, #0x18]
strh r2, [r4, #0x1a]
movs r0, #9
bl m4aSongNumStart
ldr r1, _0800D350 @ =gMain
movs r0, #3
strb r0, [r1, #3]
b _0800D35E
.align 2, 0
_0800D34C: .4byte 0x000003E7
_0800D350: .4byte gMain
_0800D354:
ldr r0, _0800D3C8 @ =0x0000014B
bl m4aSongNumStart
movs r0, #0x5a
_0800D35C:
strh r0, [r4, #0x18]
_0800D35E:
ldr r7, _0800D3CC @ =0x02002858
ldrh r0, [r7, #0x14]
adds r0, #1
movs r1, #0
strh r0, [r7, #0x14]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800D3FC
strh r1, [r7, #0x14]
movs r2, #0x12
ldrsh r0, [r7, r2]
cmp r0, #0
bne _0800D3D4
movs r0, #1
strh r0, [r7, #0x12]
ldrb r2, [r7, #0xb]
lsls r0, r2, #1
movs r4, #6
subs r0, r4, r0
ldr r3, _0800D3D0 @ =0x08079870
mov r8, r3
ldr r1, [r7, #0xc]
lsls r1, r1, #2
add r1, r8
lsls r2, r2, #5
ldr r1, [r1]
adds r1, r1, r2
movs r6, #4
str r6, [sp]
movs r5, #2
str r5, [sp, #4]
movs r2, #0
movs r3, #0x15
bl sub_10618
ldrb r1, [r7, #0xb]
lsls r0, r1, #1
subs r4, r4, r0
ldr r0, [r7, #0xc]
lsls r0, r0, #2
add r0, r8
lsls r1, r1, #5
ldr r3, [r0]
adds r3, r3, r1
str r6, [sp]
str r5, [sp, #4]
movs r0, #0
movs r1, #0x17
adds r2, r4, #0
bl sub_10618
b _0800D3FC
.align 2, 0
_0800D3C8: .4byte 0x0000014B
_0800D3CC: .4byte 0x02002858
_0800D3D0: .4byte 0x08079870
_0800D3D4:
strh r1, [r7, #0x12]
ldrb r1, [r7, #0xb]
lsls r0, r1, #1
movs r2, #6
subs r2, r2, r0
ldr r3, _0800D4A0 @ =0x08079870
ldr r0, [r7, #0xc]
lsls r0, r0, #2
adds r0, r0, r3
lsls r1, r1, #5
ldr r3, [r0]
adds r3, r3, r1
movs r0, #4
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0
movs r1, #0x15
bl sub_10618
_0800D3FC:
ldr r4, _0800D4A4 @ =0x02002858
ldrh r0, [r4, #0x1e]
adds r0, #1
movs r5, #0
strh r0, [r4, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800D42C
strh r5, [r4, #0x1e]
ldrb r0, [r4, #0xb]
ldr r1, [r4, #0xc]
movs r3, #0x1c
ldrsh r2, [r4, r3]
bl sub_F8B0
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800D42C
strh r5, [r4, #0x1c]
_0800D42C:
ldr r4, _0800D4A4 @ =0x02002858
ldrh r0, [r4, #0x1a]
adds r0, #1
movs r2, #0
strh r0, [r4, #0x1a]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r3, #0x18
ldrsh r1, [r4, r3]
cmp r0, r1
ble _0800D482
strh r2, [r4, #0x1a]
movs r1, #0x12
ldrsh r0, [r4, r1]
cmp r0, #1
bne _0800D476
strh r2, [r4, #0x12]
strh r2, [r4, #0x14]
ldrb r1, [r4, #0xb]
lsls r0, r1, #1
movs r2, #6
subs r2, r2, r0
ldr r3, _0800D4A0 @ =0x08079870
ldr r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r3
lsls r1, r1, #5
ldr r3, [r0]
adds r3, r3, r1
movs r0, #4
str r0, [sp]
movs r0, #2
str r0, [sp, #4]
movs r0, #0
movs r1, #0x15
bl sub_10618
_0800D476:
movs r0, #9
bl m4aSongNumStart
ldr r1, _0800D4A8 @ =gMain
movs r0, #4
strb r0, [r1, #3]
_0800D482:
ldr r1, _0800D4AC @ =0x040000D4
ldr r0, _0800D4B0 @ =0x03005C00
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _0800D4B4 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
add sp, #8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800D4A0: .4byte 0x08079870
_0800D4A4: .4byte 0x02002858
_0800D4A8: .4byte gMain
_0800D4AC: .4byte 0x040000D4
_0800D4B0: .4byte 0x03005C00
_0800D4B4: .4byte 0x80000800
thumb_func_start sub_D4B8
sub_D4B8: @ 0x0800D4B8
push {r4, lr}
bl sub_E464
ldr r4, _0800D500 @ =gMain
ldr r0, [r4, #0x4c]
movs r1, #0xc
bl __umodsi3
cmp r0, #0
bne _0800D4E0
ldr r1, _0800D504 @ =0x02002858
ldrh r2, [r1, #0x1a]
movs r0, #1
subs r0, r0, r2
strh r0, [r1, #0x1a]
adds r1, #0x25
ldrb r2, [r1]
movs r0, #1
subs r0, r0, r2
strb r0, [r1]
_0800D4E0:
ldrh r1, [r4, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0800D50C
ldr r0, _0800D508 @ =0x02002880
movs r2, #0
ldrsh r1, [r0, r2]
movs r2, #1
rsbs r2, r2, #0
adds r3, r0, #0
cmp r1, r2
beq _0800D522
strh r2, [r3]
b _0800D522
.align 2, 0
_0800D500: .4byte gMain
_0800D504: .4byte 0x02002858
_0800D508: .4byte 0x02002880
_0800D50C:
movs r0, #0x10
ands r0, r1
ldr r3, _0800D53C @ =0x02002880
cmp r0, #0
beq _0800D522
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #1
beq _0800D522
movs r0, #1
strh r0, [r3]
_0800D522:
movs r2, #0
ldrsh r0, [r3, r2]
cmp r0, #0
ble _0800D544
ldr r1, _0800D540 @ =0x02002882
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0xef
bgt _0800D55A
adds r0, r2, #0
adds r0, #8
b _0800D558
.align 2, 0
_0800D53C: .4byte 0x02002880
_0800D540: .4byte 0x02002882
_0800D544:
cmp r0, #0
bge _0800D55A
ldr r1, _0800D608 @ =0x02002882
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
ble _0800D55A
adds r0, r2, #0
subs r0, #8
_0800D558:
strh r0, [r1]
_0800D55A:
ldr r4, _0800D60C @ =gMain
ldrh r1, [r4, #0x18]
movs r0, #3
ands r0, r1
cmp r0, #0
beq _0800D570
movs r0, #0x66
bl m4aSongNumStart
movs r0, #0xb
strb r0, [r4, #3]
_0800D570:
ldrh r1, [r4, #0x18]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _0800D59E
ldr r0, _0800D608 @ =0x02002882
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
beq _0800D588
cmp r0, #0xf0
bne _0800D59E
_0800D588:
movs r0, #0x68
bl m4aSongNumStart
ldr r1, _0800D610 @ =0x0201B178
movs r0, #1
strb r0, [r1]
ldr r1, _0800D614 @ =0x0202BEBC
movs r0, #0
strb r0, [r1]
movs r0, #5
strb r0, [r4, #3]
_0800D59E:
ldr r3, _0800D60C @ =gMain
ldrh r2, [r3, #0x1c]
movs r1, #0x88
lsls r1, r1, #2
adds r0, r1, #0
ands r0, r2
adds r4, r3, #0
cmp r0, r1
bne _0800D620
ldrh r1, [r4, #0x18]
movs r0, #0x80
lsls r0, r0, #1
ands r0, r1
cmp r0, #0
beq _0800D63E
ldr r0, _0800D608 @ =0x02002882
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0
beq _0800D5CA
cmp r0, #0xf0
bne _0800D5FC
_0800D5CA:
ldr r2, _0800D618 @ =0x02002884
movs r0, #0x28
strb r0, [r2]
ldr r1, _0800D61C @ =0x02002885
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
bne _0800D5FC
movs r0, #0
strb r0, [r1]
strb r0, [r2]
movs r0, #0x68
bl m4aSongNumStart
ldr r1, _0800D610 @ =0x0201B178
movs r0, #1
strb r0, [r1]
ldr r1, _0800D614 @ =0x0202BEBC
movs r0, #4
strb r0, [r1]
movs r0, #0xa
strb r0, [r4, #3]
_0800D5FC:
ldr r2, _0800D618 @ =0x02002884
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
ldr r4, _0800D60C @ =gMain
b _0800D628
.align 2, 0
_0800D608: .4byte 0x02002882
_0800D60C: .4byte gMain
_0800D610: .4byte 0x0201B178
_0800D614: .4byte 0x0202BEBC
_0800D618: .4byte 0x02002884
_0800D61C: .4byte 0x02002885
_0800D620:
ldr r2, _0800D658 @ =0x02002884
ldrb r1, [r2]
movs r0, #0
ldrsb r0, [r2, r0]
_0800D628:
cmp r0, #0
ble _0800D63E
subs r0, r1, #1
strb r0, [r2]
lsls r0, r0, #0x18
cmp r0, #0
bgt _0800D63E
movs r1, #0
strb r1, [r2]
ldr r0, _0800D65C @ =0x02002885
strb r1, [r0]
_0800D63E:
ldr r0, _0800D660 @ =0x02002882
ldrh r1, [r0]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r4, r3
strh r1, [r0]
movs r2, #0xbc
lsls r2, r2, #2
adds r0, r4, r2
strh r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0800D658: .4byte 0x02002884
_0800D65C: .4byte 0x02002885
_0800D660: .4byte 0x02002882
thumb_func_start sub_D664
sub_D664: @ 0x0800D664
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
bl sub_E3A8
ldr r4, _0800D6E8 @ =0x02002858
ldrh r0, [r4, #0x14]
adds r0, #1
movs r5, #0
strh r0, [r4, #0x14]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xc
ble _0800D68C
strh r5, [r4, #0x14]
ldrh r1, [r4, #0x12]
movs r0, #1
subs r0, r0, r1
strh r0, [r4, #0x12]
_0800D68C:
ldrh r0, [r4, #0x1e]
adds r0, #1
strh r0, [r4, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800D6B8
strh r5, [r4, #0x1e]
ldrb r0, [r4, #0xb]
ldr r1, [r4, #0xc]
movs r3, #0x1c
ldrsh r2, [r4, r3]
bl sub_F8B0
ldrh r0, [r4, #0x1c]
adds r0, #1
strh r0, [r4, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800D6B8
strh r5, [r4, #0x1c]
_0800D6B8:
ldr r0, _0800D6EC @ =gMain
ldrh r1, [r0, #0x1c]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0800D6F0
ldr r4, _0800D6E8 @ =0x02002858
movs r7, #0x20
ldrsh r0, [r4, r7]
cmp r0, #0
bne _0800D72C
movs r0, #0x6b
bl m4aSongNumStart
ldrh r0, [r4, #0x16]
subs r0, #1
strh r0, [r4, #0x16]
lsls r0, r0, #0x10
cmp r0, #0
bge _0800D718
movs r0, #0x29
strh r0, [r4, #0x16]
b _0800D718
.align 2, 0
_0800D6E8: .4byte 0x02002858
_0800D6EC: .4byte gMain
_0800D6F0:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0800D72C
ldr r4, _0800D788 @ =0x02002858
movs r7, #0x20
ldrsh r5, [r4, r7]
cmp r5, #0
bne _0800D72C
movs r0, #0x6b
bl m4aSongNumStart
ldrh r0, [r4, #0x16]
adds r0, #1
strh r0, [r4, #0x16]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x29
ble _0800D718
strh r5, [r4, #0x16]
_0800D718:
movs r1, #0x16
ldrsh r0, [r4, r1]
ldr r1, [r4, #0xc]
movs r3, #0x10
ldrsh r2, [r4, r3]
ldrb r3, [r4, #0xb]
bl sub_F670
movs r0, #9
strh r0, [r4, #0x20]
_0800D72C:
ldr r0, _0800D78C @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0800D794
ldr r4, _0800D788 @ =0x02002858
movs r7, #0x10
ldrsh r0, [r4, r7]
cmp r0, #3
beq _0800D7A6
movs r0, #0x67
bl m4aSongNumStart
movs r0, #1
strh r0, [r4, #0x12]
movs r1, #0x16
ldrsh r0, [r4, r1]
ldr r1, [r4, #0xc]
movs r3, #0x10
ldrsh r2, [r4, r3]
ldrb r3, [r4, #0xb]
bl sub_F670
ldr r3, _0800D790 @ =0x0202C610
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r3
movs r2, #0x16
ldrsh r0, [r4, r2]
str r0, [r1]
ldrh r0, [r4, #0x10]
adds r0, #1
b _0800D7F6
.align 2, 0
_0800D788: .4byte 0x02002858
_0800D78C: .4byte gMain
_0800D790: .4byte 0x0202C610
_0800D794:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0800D818
ldr r4, _0800D7B0 @ =0x02002858
movs r1, #0x10
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0800D7B4
_0800D7A6:
movs r0, #0x8a
bl m4aSongNumStart
b _0800D818
.align 2, 0
_0800D7B0: .4byte 0x02002858
_0800D7B4:
movs r0, #0x67
bl m4aSongNumStart
movs r0, #1
strh r0, [r4, #0x12]
movs r2, #0x16
ldrsh r0, [r4, r2]
ldr r1, [r4, #0xc]
movs r3, #0x10
ldrsh r2, [r4, r3]
ldrb r3, [r4, #0xb]
bl sub_F670
ldr r3, _0800D8F8 @ =0x0202C610
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r3
movs r2, #0x16
ldrsh r0, [r4, r2]
str r0, [r1]
ldrh r0, [r4, #0x10]
subs r0, #1
_0800D7F6:
strh r0, [r4, #0x10]
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r3
ldr r0, [r1]
strh r0, [r4, #0x16]
_0800D818:
ldr r0, _0800D8FC @ =gMain
ldrh r1, [r0, #0x18]
movs r5, #1
adds r0, r5, #0
ands r0, r1
cmp r0, #0
bne _0800D828
b _0800D936
_0800D828:
ldr r4, _0800D900 @ =0x02002858
strh r5, [r4, #0x12]
movs r1, #0x16
ldrsh r0, [r4, r1]
ldr r1, [r4, #0xc]
movs r3, #0x10
ldrsh r2, [r4, r3]
ldrb r3, [r4, #0xb]
bl sub_F670
ldr r5, _0800D8F8 @ =0x0202C610
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r5
movs r2, #0x16
ldrsh r0, [r4, r2]
str r0, [r1]
movs r3, #0x10
ldrsh r0, [r4, r3]
cmp r0, #3
bne _0800D90C
movs r0, #0x65
bl m4aSongNumStart
ldrb r0, [r4, #0xb]
ldr r1, [r4, #0xc]
movs r7, #0x1c
ldrsh r2, [r4, r7]
bl sub_FAE8
movs r3, #0
adds r6, r5, #0
ldr r5, _0800D904 @ =0x0201A500
_0800D880:
lsls r2, r3, #2
ldr r1, [r4, #0xc]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r2, r2, r0
ldrb r1, [r4, #0xb]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
adds r2, r2, r0
adds r2, r2, r6
ldr r0, [r2]
stm r5!, {r0}
adds r3, #1
cmp r3, #3
ble _0800D880
movs r3, #0
ldr r0, _0800D908 @ =0x0200B134
mov r8, r0
ldr r1, _0800D8F8 @ =0x0202C610
mov ip, r1
_0800D8AC:
movs r1, #0
adds r2, r3, #1
mov sb, r2
lsls r0, r3, #1
adds r0, r0, r3
lsls r5, r0, #6
adds r6, r5, #0
adds r6, #0xe4
_0800D8BC:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r6
mov r3, r8
adds r2, r1, r3
adds r3, r0, r5
movs r1, #5
_0800D8CE:
mov r7, ip
adds r0, r3, r7
ldr r0, [r0]
stm r2!, {r0}
adds r3, #4
subs r1, #1
cmp r1, #0
bge _0800D8CE
adds r1, r4, #0
cmp r1, #7
ble _0800D8BC
mov r3, sb
cmp r3, #1
ble _0800D8AC
bl sub_52B30
ldr r1, _0800D8FC @ =gMain
movs r0, #3
strb r0, [r1, #3]
b _0800D9B6
.align 2, 0
_0800D8F8: .4byte 0x0202C610
_0800D8FC: .4byte gMain
_0800D900: .4byte 0x02002858
_0800D904: .4byte 0x0201A500
_0800D908: .4byte 0x0200B134
_0800D90C:
movs r0, #0x6a
bl m4aSongNumStart
ldrh r0, [r4, #0x10]
adds r0, #1
strh r0, [r4, #0x10]
movs r0, #0x10
ldrsh r1, [r4, r0]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r5
b _0800D9B2
_0800D936:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0800D9B6
ldr r4, _0800D950 @ =0x02002858
movs r1, #0x10
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0800D954
movs r0, #0x8a
bl m4aSongNumStart
b _0800D9B6
.align 2, 0
_0800D950: .4byte 0x02002858
_0800D954:
movs r0, #0x6a
bl m4aSongNumStart
strh r5, [r4, #0x12]
movs r2, #0x16
ldrsh r0, [r4, r2]
ldr r1, [r4, #0xc]
movs r3, #0x10
ldrsh r2, [r4, r3]
ldrb r3, [r4, #0xb]
bl sub_F670
ldr r3, _0800D9E4 @ =0x0202C610
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r3
movs r2, #0x16
ldrsh r0, [r4, r2]
str r0, [r1]
ldrh r0, [r4, #0x10]
subs r0, #1
strh r0, [r4, #0x10]
movs r7, #0x10
ldrsh r1, [r4, r7]
lsls r1, r1, #2
ldr r2, [r4, #0xc]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #3
adds r1, r1, r0
ldrb r2, [r4, #0xb]
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r1, r0
adds r1, r1, r3
_0800D9B2:
ldr r0, [r1]
strh r0, [r4, #0x16]
_0800D9B6:
ldr r1, _0800D9E8 @ =0x040000D4
ldr r0, _0800D9EC @ =0x03005C00
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _0800D9F0 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r1, _0800D9F4 @ =0x02002858
ldrh r2, [r1, #0x20]
movs r3, #0x20
ldrsh r0, [r1, r3]
cmp r0, #0
ble _0800D9D8
subs r0, r2, #1
strh r0, [r1, #0x20]
_0800D9D8:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800D9E4: .4byte 0x0202C610
_0800D9E8: .4byte 0x040000D4
_0800D9EC: .4byte 0x03005C00
_0800D9F0: .4byte 0x80000800
_0800D9F4: .4byte 0x02002858
thumb_func_start sub_D9F8
sub_D9F8: @ 0x0800D9F8
push {lr}
bl sub_19B4
bl sub_E908
ldr r1, _0800DA18 @ =0x0201B124
movs r0, #0
strb r0, [r1]
bl sub_E464
ldr r1, _0800DA1C @ =gMain
movs r0, #6
strb r0, [r1, #3]
pop {r0}
bx r0
.align 2, 0
_0800DA18: .4byte 0x0201B124
_0800DA1C: .4byte gMain
thumb_func_start sub_DA20
sub_DA20: @ 0x0800DA20
push {r4, r5, lr}
bl sub_E464
ldr r4, _0800DA4C @ =gMain
ldrh r1, [r4, #0x18]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0800DA58
movs r0, #0x66
bl m4aSongNumStart
ldr r0, _0800DA50 @ =0x0201B178
movs r1, #0
strb r1, [r0]
ldr r0, _0800DA54 @ =0x0202BEBC
strb r1, [r0]
bl sub_2568
movs r0, #3
strb r0, [r4, #3]
b _0800DB2E
.align 2, 0
_0800DA4C: .4byte gMain
_0800DA50: .4byte 0x0201B178
_0800DA54: .4byte 0x0202BEBC
_0800DA58:
ldr r5, _0800DAB8 @ =0x0202ADD0
ldr r0, _0800DABC @ =0x0202BEC8
ldr r1, _0800DAC0 @ =0x0202C5F0
ldr r2, _0800DAC4 @ =0x0201A4D0
bl sub_1B04
str r0, [r5]
ldr r1, _0800DAC8 @ =0x0202BDF0
movs r3, #3
ands r3, r0
str r3, [r1]
ldr r2, _0800DACC @ =0x0201C1AC
movs r1, #0x1c
ands r1, r0
lsrs r1, r1, #2
strb r1, [r2]
ldr r2, _0800DAD0 @ =0x0202ADDC
movs r1, #0xe0
lsls r1, r1, #4
ands r1, r0
lsrs r1, r1, #9
strb r1, [r2]
movs r1, #0x40
ands r1, r0
cmp r1, #0
beq _0800DB2E
cmp r3, #1
bhi _0800DB2E
bl sub_E970
ldr r0, [r5]
movs r1, #0x80
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _0800DAE8
bl sub_E94C
lsls r0, r0, #0x10
asrs r1, r0, #0x10
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0800DAD4
movs r0, #8
strb r0, [r4, #3]
b _0800DAE8
.align 2, 0
_0800DAB8: .4byte 0x0202ADD0
_0800DABC: .4byte 0x0202BEC8
_0800DAC0: .4byte 0x0202C5F0
_0800DAC4: .4byte 0x0201A4D0
_0800DAC8: .4byte 0x0202BDF0
_0800DACC: .4byte 0x0201C1AC
_0800DAD0: .4byte 0x0202ADDC
_0800DAD4:
cmp r1, #1
bne _0800DAE8
ldr r0, _0800DB34 @ =0x0202BEBC
movs r1, #2
strb r1, [r0]
movs r0, #7
strb r0, [r4, #3]
movs r0, #0x8a
bl m4aSongNumStart
_0800DAE8:
ldr r1, _0800DB38 @ =0x0201A510
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r0, _0800DB3C @ =0x0202ADD0
ldr r0, [r0]
movs r1, #0xfe
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _0800DB2E
ldr r0, _0800DB40 @ =0x0202ADE4
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0800DB2E
ldr r1, _0800DB44 @ =0x0201A444
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _0800DB2E
ldr r1, _0800DB34 @ =0x0202BEBC
movs r0, #2
strb r0, [r1]
ldr r1, _0800DB48 @ =gMain
movs r0, #7
strb r0, [r1, #3]
movs r0, #0x8a
bl m4aSongNumStart
_0800DB2E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800DB34: .4byte 0x0202BEBC
_0800DB38: .4byte 0x0201A510
_0800DB3C: .4byte 0x0202ADD0
_0800DB40: .4byte 0x0202ADE4
_0800DB44: .4byte 0x0201A444
_0800DB48: .4byte gMain
thumb_func_start sub_DB4C
sub_DB4C: @ 0x0800DB4C
ldr r1, _0800DB68 @ =0x0201A444
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800DB66
movs r0, #0
strh r0, [r1]
ldr r1, _0800DB6C @ =gMain
movs r0, #5
strb r0, [r1, #3]
_0800DB66:
bx lr
.align 2, 0
_0800DB68: .4byte 0x0201A444
_0800DB6C: .4byte gMain
thumb_func_start sub_DB70
sub_DB70: @ 0x0800DB70
push {r4, r5, r6, lr}
bl sub_E464
ldr r1, _0800DBDC @ =0x02002858
ldrh r0, [r1, #0x22]
adds r0, #1
movs r2, #0
strh r0, [r1, #0x22]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x5a
ble _0800DBD4
movs r0, #0
strh r0, [r1, #0x22]
ldr r0, _0800DBE0 @ =0x0201B178
strb r2, [r0]
ldr r0, _0800DBE4 @ =0x0202BEBC
strb r2, [r0]
bl sub_2568
bl sub_1AA4
movs r1, #0
ldr r6, _0800DBE8 @ =0x0202C550
ldr r5, _0800DBEC @ =0x0202C610
_0800DBA2:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r1, r0, #3
lsls r0, r0, #6
adds r3, r0, r5
adds r1, r1, r6
movs r2, #5
_0800DBB2:
ldm r3!, {r0}
stm r1!, {r0}
subs r2, #1
cmp r2, #0
bge _0800DBB2
adds r1, r4, #0
cmp r1, #1
ble _0800DBA2
movs r4, #0
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r0, _0800DBF0 @ =gMain
strb r4, [r0, #3]
_0800DBD4:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0800DBDC: .4byte 0x02002858
_0800DBE0: .4byte 0x0201B178
_0800DBE4: .4byte 0x0202BEBC
_0800DBE8: .4byte 0x0202C550
_0800DBEC: .4byte 0x0202C610
_0800DBF0: .4byte gMain
thumb_func_start sub_DBF4
sub_DBF4: @ 0x0800DBF4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
bl sub_E464
ldr r2, _0800DC14 @ =0x02002858
movs r1, #0x22
ldrsh r0, [r2, r1]
cmp r0, #0x82
beq _0800DC28
cmp r0, #0x82
bgt _0800DC18
cmp r0, #4
beq _0800DC1E
b _0800DCBA
.align 2, 0
_0800DC14: .4byte 0x02002858
_0800DC18:
cmp r0, #0xfa
beq _0800DC3C
b _0800DCBA
_0800DC1E:
bl sub_2568
bl sub_1AA4
b _0800DCBA
_0800DC28:
ldr r1, _0800DC38 @ =0x0202BEBC
movs r0, #3
strb r0, [r1]
movs r0, #0x65
bl m4aSongNumStart
b _0800DCBA
.align 2, 0
_0800DC38: .4byte 0x0202BEBC
_0800DC3C:
movs r1, #0
movs r0, #0
strh r0, [r2, #0x22]
ldr r0, _0800DCD0 @ =0x0201B178
strb r1, [r0]
ldr r0, _0800DCD4 @ =0x0202BEBC
strb r1, [r0]
movs r0, #0
bl sub_F4FC
ldr r1, _0800DCD8 @ =0x0202BED8
str r0, [r1]
movs r0, #1
bl sub_F4FC
ldr r1, _0800DCDC @ =0x0201B170
str r0, [r1]
movs r2, #0
ldr r3, _0800DCE0 @ =0x0200B134
mov r8, r3
ldr r7, _0800DCE4 @ =0x0202C610
mov ip, r7
_0800DC68:
movs r1, #0
lsls r0, r2, #1
adds r3, r2, #1
mov sb, r3
adds r0, r0, r2
lsls r5, r0, #6
adds r6, r5, #0
adds r6, #0xe4
_0800DC78:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r6
add r1, r8
adds r2, r0, r5
movs r3, #5
_0800DC88:
mov r7, ip
adds r0, r2, r7
ldr r0, [r0]
stm r1!, {r0}
adds r2, #4
subs r3, #1
cmp r3, #0
bge _0800DC88
adds r1, r4, #0
cmp r1, #7
ble _0800DC78
mov r2, sb
cmp r2, #1
ble _0800DC68
bl sub_52B30
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r1, _0800DCE8 @ =gMain
movs r0, #0xc
strb r0, [r1, #3]
_0800DCBA:
ldr r1, _0800DCEC @ =0x02002858
ldrh r0, [r1, #0x22]
adds r0, #1
strh r0, [r1, #0x22]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800DCD0: .4byte 0x0201B178
_0800DCD4: .4byte 0x0202BEBC
_0800DCD8: .4byte 0x0202BED8
_0800DCDC: .4byte 0x0201B170
_0800DCE0: .4byte 0x0200B134
_0800DCE4: .4byte 0x0202C610
_0800DCE8: .4byte gMain
_0800DCEC: .4byte 0x02002858
thumb_func_start sub_DCF0
sub_DCF0: @ 0x0800DCF0
push {r4, r5, lr}
bl sub_E464
ldr r5, _0800DD20 @ =gMain
ldrh r1, [r5, #0x18]
movs r4, #1
ands r4, r1
cmp r4, #0
beq _0800DD24
movs r0, #0x65
bl m4aSongNumStart
bl sub_F6E0
bl sub_52B30
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
movs r0, #0
b _0800DD3C
.align 2, 0
_0800DD20: .4byte gMain
_0800DD24:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0800DD3E
movs r0, #0x66
bl m4aSongNumStart
ldr r0, _0800DD44 @ =0x0201B178
strb r4, [r0]
ldr r0, _0800DD48 @ =0x0202BEBC
strb r4, [r0]
movs r0, #3
_0800DD3C:
strb r0, [r5, #3]
_0800DD3E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800DD44: .4byte 0x0201B178
_0800DD48: .4byte 0x0202BEBC
thumb_func_start sub_DD4C
sub_DD4C: @ 0x0800DD4C
push {lr}
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r1, _0800DD6C @ =gAutoDisplayTitlescreenMenu
movs r0, #1
strb r0, [r1]
movs r0, #1
bl sub_23C
pop {r0}
bx r0
.align 2, 0
_0800DD6C: .4byte gAutoDisplayTitlescreenMenu
thumb_func_start sub_DD70
sub_DD70: @ 0x0800DD70
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
bl sub_438
movs r2, #0x80
lsls r2, r2, #0x13
movs r1, #0x84
lsls r1, r1, #5
adds r0, r1, #0
strh r0, [r2]
ldr r1, _0800DE50 @ =0x0400000C
ldr r3, _0800DE54 @ =0x00004006
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0800DE58 @ =0x0400000E
ldr r3, _0800DE5C @ =0x0000420F
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r6, _0800DE60 @ =gMain
ldrh r0, [r2]
strh r0, [r6, #0x16]
ldr r4, _0800DE64 @ =0x040000D4
ldr r0, _0800DE68 @ =0x0809DBE0
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _0800DE6C @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DE70 @ =0x080957A0
str r0, [r4]
ldr r0, _0800DE74 @ =0x06004000
str r0, [r4, #4]
ldr r0, _0800DE78 @ =0x80002400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DE7C @ =0x0809AFC0
str r0, [r4]
ldr r0, _0800DE80 @ =0x0600C000
str r0, [r4, #4]
ldr r0, _0800DE84 @ =0x80001600
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DE88 @ =0x080947A0
str r0, [r4]
ldr r0, _0800DE8C @ =0x03005C00
mov r8, r0
str r0, [r4, #4]
ldr r5, _0800DE90 @ =0x80000800
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DE94 @ =0x08099FC0
str r0, [r4]
ldr r0, _0800DE98 @ =0x06001000
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DE9C @ =0x0809DDE0
str r0, [r4]
ldr r0, _0800DEA0 @ =0x05000200
str r0, [r4, #4]
ldr r0, _0800DEA4 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800DEA8 @ =0x0809DFE0
str r0, [r4]
ldr r0, _0800DEAC @ =0x06010000
str r0, [r4, #4]
ldr r0, _0800DEB0 @ =0x80002210
str r0, [r4, #8]
ldr r0, [r4, #8]
bl sub_DEB4
bl sub_EE64
mov r1, r8
str r1, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
movs r0, #9
bl m4aSongNumStart
bl sub_CBC
bl sub_24C
ldrb r0, [r6, #3]
adds r0, #1
strb r0, [r6, #3]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0800DE50: .4byte 0x0400000C
_0800DE54: .4byte 0x00004006
_0800DE58: .4byte 0x0400000E
_0800DE5C: .4byte 0x0000420F
_0800DE60: .4byte gMain
_0800DE64: .4byte 0x040000D4
_0800DE68: .4byte 0x0809DBE0
_0800DE6C: .4byte 0x80000100
_0800DE70: .4byte 0x080957A0
_0800DE74: .4byte 0x06004000
_0800DE78: .4byte 0x80002400
_0800DE7C: .4byte 0x0809AFC0
_0800DE80: .4byte 0x0600C000
_0800DE84: .4byte 0x80001600
_0800DE88: .4byte 0x080947A0
_0800DE8C: .4byte 0x03005C00
_0800DE90: .4byte 0x80000800
_0800DE94: .4byte 0x08099FC0
_0800DE98: .4byte 0x06001000
_0800DE9C: .4byte 0x0809DDE0
_0800DEA0: .4byte 0x05000200
_0800DEA4: .4byte 0x80000010
_0800DEA8: .4byte 0x0809DFE0
_0800DEAC: .4byte 0x06010000
_0800DEB0: .4byte 0x80002210
thumb_func_start sub_DEB4
sub_DEB4: @ 0x0800DEB4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
movs r2, #0
ldr r0, _0800DF54 @ =0x02002858
mov r8, r0
ldr r0, _0800DF58 @ =gMain
mov ip, r0
ldr r0, _0800DF5C @ =0x0202C610
mov sl, r0
movs r0, #0x74
add r0, ip
mov sb, r0
_0800DED2:
movs r1, #0
lsls r0, r2, #1
adds r7, r2, #1
adds r0, r0, r2
lsls r5, r0, #6
adds r6, r5, #0
adds r6, #0xe4
_0800DEE0:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r6
add r1, sb
adds r0, r0, r5
mov r2, sl
adds r3, r0, r2
movs r2, #5
_0800DEF4:
ldm r1!, {r0}
stm r3!, {r0}
subs r2, #1
cmp r2, #0
bge _0800DEF4
adds r1, r4, #0
cmp r1, #7
ble _0800DEE0
adds r2, r7, #0
cmp r2, #1
ble _0800DED2
movs r0, #0
movs r1, #0
mov r2, r8
strh r0, [r2, #8]
strh r0, [r2, #0x1e]
strh r0, [r2, #0x1c]
strb r1, [r2, #0xb]
ldr r2, _0800DF60 @ =0x02002882
strh r0, [r2]
movs r2, #1
rsbs r2, r2, #0
adds r0, r2, #0
ldr r2, _0800DF64 @ =0x02002880
strh r0, [r2]
mov r0, r8
adds r0, #0x24
strb r1, [r0]
mov r0, r8
strb r1, [r0, #0xa]
ldr r2, _0800DF60 @ =0x02002882
ldrh r1, [r2]
movs r0, #0xbd
lsls r0, r0, #2
add r0, ip
strh r1, [r0]
ldrh r1, [r2]
movs r0, #0xbc
lsls r0, r0, #2
add r0, ip
strh r1, [r0]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800DF54: .4byte 0x02002858
_0800DF58: .4byte gMain
_0800DF5C: .4byte 0x0202C610
_0800DF60: .4byte 0x02002882
_0800DF64: .4byte 0x02002880
thumb_func_start sub_DF68
sub_DF68: @ 0x0800DF68
push {r4, r5, lr}
ldr r0, _0800DF80 @ =0x02002858
ldrb r4, [r0, #0xa]
adds r5, r0, #0
cmp r4, #1
beq _0800DFE8
cmp r4, #1
bgt _0800DF88
cmp r4, #0
beq _0800DF94
ldr r4, _0800DF84 @ =gMain
b _0800E072
.align 2, 0
_0800DF80: .4byte 0x02002858
_0800DF84: .4byte gMain
_0800DF88:
cmp r4, #2
beq _0800E020
ldr r4, _0800DF90 @ =gMain
b _0800E072
.align 2, 0
_0800DF90: .4byte gMain
_0800DF94:
ldrh r0, [r5, #0x1e]
adds r0, #1
strh r0, [r5, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800DFC0
strh r4, [r5, #0x1e]
movs r0, #0x1c
ldrsh r2, [r5, r0]
movs r0, #0
movs r1, #0
bl sub_F8B0
ldrh r0, [r5, #0x1c]
adds r0, #1
strh r0, [r5, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800DFC0
strh r4, [r5, #0x1c]
_0800DFC0:
ldr r0, _0800DFE0 @ =0x02002858
movs r1, #8
ldrsh r2, [r0, r1]
movs r1, #0x96
lsls r1, r1, #2
adds r5, r0, #0
ldr r4, _0800DFE4 @ =gMain
cmp r2, r1
ble _0800E072
movs r0, #0
strh r0, [r5, #8]
strh r0, [r5, #0x1e]
strh r0, [r5, #0x1c]
movs r0, #1
strb r0, [r5, #0xa]
b _0800E072
.align 2, 0
_0800DFE0: .4byte 0x02002858
_0800DFE4: .4byte gMain
_0800DFE8:
ldr r2, _0800E018 @ =0x02002882
ldrh r0, [r2]
adds r0, #8
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xef
ble _0800E000
movs r0, #0
strh r0, [r5, #8]
movs r0, #2
strb r0, [r5, #0xa]
_0800E000:
ldr r1, _0800E01C @ =gMain
ldrh r2, [r2]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r1, r3
strh r2, [r0]
subs r3, #4
adds r0, r1, r3
strh r2, [r0]
adds r4, r1, #0
b _0800E072
.align 2, 0
_0800E018: .4byte 0x02002882
_0800E01C: .4byte gMain
_0800E020:
ldrh r0, [r5, #0x1e]
adds r0, #1
movs r4, #0
strh r0, [r5, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800E04E
strh r4, [r5, #0x1e]
movs r0, #0x1c
ldrsh r2, [r5, r0]
movs r0, #1
movs r1, #0
bl sub_F8B0
ldrh r0, [r5, #0x1c]
adds r0, #1
strh r0, [r5, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800E04E
strh r4, [r5, #0x1c]
_0800E04E:
ldr r0, _0800E0B0 @ =0x02002858
movs r1, #8
ldrsh r2, [r0, r1]
movs r1, #0x96
lsls r1, r1, #2
adds r5, r0, #0
ldr r4, _0800E0B4 @ =gMain
cmp r2, r1
ble _0800E072
movs r1, #0
movs r0, #0
strh r0, [r5, #8]
adds r0, r5, #0
adds r0, #0x24
strb r1, [r0]
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
_0800E072:
ldrh r0, [r5, #8]
adds r0, #1
strh r0, [r5, #8]
ldr r1, _0800E0B8 @ =0x040000D4
ldr r0, _0800E0BC @ =0x03005C00
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _0800E0C0 @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r1, [r4, #0x18]
movs r0, #0xb
ands r0, r1
cmp r0, #0
beq _0800E0A8
movs r0, #0x66
bl m4aSongNumStart
adds r1, r5, #0
adds r1, #0x24
movs r0, #1
strb r0, [r1]
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
_0800E0A8:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800E0B0: .4byte 0x02002858
_0800E0B4: .4byte gMain
_0800E0B8: .4byte 0x040000D4
_0800E0BC: .4byte 0x03005C00
_0800E0C0: .4byte 0x80000800
thumb_func_start sub_E0C4
sub_E0C4: @ 0x0800E0C4
push {lr}
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
ldr r0, _0800E0E8 @ =0x02002858
adds r0, #0x24
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
bl sub_23C
pop {r0}
bx r0
.align 2, 0
_0800E0E8: .4byte 0x02002858
thumb_func_start sub_E0EC
sub_E0EC: @ 0x0800E0EC
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
bl sub_438
movs r2, #0x80
lsls r2, r2, #0x13
movs r1, #0x84
lsls r1, r1, #5
adds r0, r1, #0
strh r0, [r2]
ldr r1, _0800E1CC @ =0x0400000C
ldr r3, _0800E1D0 @ =0x00004006
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0800E1D4 @ =0x0400000E
ldr r3, _0800E1D8 @ =0x0000420F
adds r0, r3, #0
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r6, _0800E1DC @ =gMain
ldrh r0, [r2]
strh r0, [r6, #0x16]
ldr r4, _0800E1E0 @ =0x040000D4
ldr r0, _0800E1E4 @ =0x0809DBE0
str r0, [r4]
movs r0, #0xa0
lsls r0, r0, #0x13
str r0, [r4, #4]
ldr r0, _0800E1E8 @ =0x80000100
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E1EC @ =0x080957A0
str r0, [r4]
ldr r0, _0800E1F0 @ =0x06004000
str r0, [r4, #4]
ldr r0, _0800E1F4 @ =0x80002400
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E1F8 @ =0x0809AFC0
str r0, [r4]
ldr r0, _0800E1FC @ =0x0600C000
str r0, [r4, #4]
ldr r0, _0800E200 @ =0x80001600
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E204 @ =0x080947A0
str r0, [r4]
ldr r0, _0800E208 @ =0x03005C00
mov r8, r0
str r0, [r4, #4]
ldr r5, _0800E20C @ =0x80000800
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E210 @ =0x08099FC0
str r0, [r4]
ldr r0, _0800E214 @ =0x06001000
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E218 @ =0x0809DDE0
str r0, [r4]
ldr r0, _0800E21C @ =0x05000200
str r0, [r4, #4]
ldr r0, _0800E220 @ =0x80000010
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _0800E224 @ =0x0809DFE0
str r0, [r4]
ldr r0, _0800E228 @ =0x06010000
str r0, [r4, #4]
ldr r0, _0800E22C @ =0x80002210
str r0, [r4, #8]
ldr r0, [r4, #8]
bl sub_DEB4
bl sub_EE64
mov r1, r8
str r1, [r4]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
movs r0, #9
bl m4aSongNumStart
bl sub_CBC
bl sub_24C
ldrb r0, [r6, #3]
adds r0, #1
strb r0, [r6, #3]
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0800E1CC: .4byte 0x0400000C
_0800E1D0: .4byte 0x00004006
_0800E1D4: .4byte 0x0400000E
_0800E1D8: .4byte 0x0000420F
_0800E1DC: .4byte gMain
_0800E1E0: .4byte 0x040000D4
_0800E1E4: .4byte 0x0809DBE0
_0800E1E8: .4byte 0x80000100
_0800E1EC: .4byte 0x080957A0
_0800E1F0: .4byte 0x06004000
_0800E1F4: .4byte 0x80002400
_0800E1F8: .4byte 0x0809AFC0
_0800E1FC: .4byte 0x0600C000
_0800E200: .4byte 0x80001600
_0800E204: .4byte 0x080947A0
_0800E208: .4byte 0x03005C00
_0800E20C: .4byte 0x80000800
_0800E210: .4byte 0x08099FC0
_0800E214: .4byte 0x06001000
_0800E218: .4byte 0x0809DDE0
_0800E21C: .4byte 0x05000200
_0800E220: .4byte 0x80000010
_0800E224: .4byte 0x0809DFE0
_0800E228: .4byte 0x06010000
_0800E22C: .4byte 0x80002210
thumb_func_start sub_E230
sub_E230: @ 0x0800E230
push {r4, r5, lr}
ldr r0, _0800E248 @ =0x02002858
ldrb r4, [r0, #0xa]
adds r5, r0, #0
cmp r4, #1
beq _0800E2BC
cmp r4, #1
bgt _0800E250
cmp r4, #0
beq _0800E25C
ldr r4, _0800E24C @ =gMain
b _0800E344
.align 2, 0
_0800E248: .4byte 0x02002858
_0800E24C: .4byte gMain
_0800E250:
cmp r4, #2
beq _0800E2F4
ldr r4, _0800E258 @ =gMain
b _0800E344
.align 2, 0
_0800E258: .4byte gMain
_0800E25C:
ldr r0, _0800E2B0 @ =0x0202BED8
ldr r1, [r0]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0800E292
ldrh r0, [r5, #0x1e]
adds r0, #1
strh r0, [r5, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800E292
strh r4, [r5, #0x1e]
movs r0, #0x1c
ldrsh r2, [r5, r0]
movs r0, #0
bl sub_F8B0
ldrh r0, [r5, #0x1c]
adds r0, #1
strh r0, [r5, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800E292
strh r4, [r5, #0x1c]
_0800E292:
ldr r0, _0800E2B4 @ =0x02002858
movs r2, #8
ldrsh r1, [r0, r2]
adds r5, r0, #0
ldr r4, _0800E2B8 @ =gMain
cmp r1, #0x78
ble _0800E344
movs r0, #0
strh r0, [r5, #8]
strh r0, [r5, #0x1e]
strh r0, [r5, #0x1c]
movs r0, #1
strb r0, [r5, #0xa]
b _0800E344
.align 2, 0
_0800E2B0: .4byte 0x0202BED8
_0800E2B4: .4byte 0x02002858
_0800E2B8: .4byte gMain
_0800E2BC:
ldr r2, _0800E2EC @ =0x02002882
ldrh r0, [r2]
adds r0, #8
strh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xef
ble _0800E2D4
movs r0, #0
strh r0, [r5, #8]
movs r0, #2
strb r0, [r5, #0xa]
_0800E2D4:
ldr r1, _0800E2F0 @ =gMain
ldrh r2, [r2]
movs r3, #0xbd
lsls r3, r3, #2
adds r0, r1, r3
strh r2, [r0]
subs r3, #4
adds r0, r1, r3
strh r2, [r0]
adds r4, r1, #0
b _0800E344
.align 2, 0
_0800E2EC: .4byte 0x02002882
_0800E2F0: .4byte gMain
_0800E2F4:
ldr r0, _0800E378 @ =0x0201B170
ldr r1, [r0]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0800E32C
ldrh r0, [r5, #0x1e]
adds r0, #1
movs r4, #0
strh r0, [r5, #0x1e]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #8
ble _0800E32C
strh r4, [r5, #0x1e]
movs r0, #0x1c
ldrsh r2, [r5, r0]
movs r0, #1
bl sub_F8B0
ldrh r0, [r5, #0x1c]
adds r0, #1
strh r0, [r5, #0x1c]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800E32C
strh r4, [r5, #0x1c]
_0800E32C:
ldr r0, _0800E37C @ =0x02002858
movs r2, #8
ldrsh r1, [r0, r2]
adds r5, r0, #0
ldr r4, _0800E380 @ =gMain
cmp r1, #0x78
ble _0800E344
movs r0, #0
strh r0, [r5, #8]
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
_0800E344:
ldrh r0, [r5, #8]
adds r0, #1
strh r0, [r5, #8]
ldr r1, _0800E384 @ =0x040000D4
ldr r0, _0800E388 @ =0x03005C00
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _0800E38C @ =0x80000800
str r0, [r1, #8]
ldr r0, [r1, #8]
ldrh r1, [r4, #0x18]
movs r0, #0xb
ands r0, r1
cmp r0, #0
beq _0800E372
movs r0, #0x66
bl m4aSongNumStart
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
_0800E372:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800E378: .4byte 0x0201B170
_0800E37C: .4byte 0x02002858
_0800E380: .4byte gMain
_0800E384: .4byte 0x040000D4
_0800E388: .4byte 0x03005C00
_0800E38C: .4byte 0x80000800
thumb_func_start sub_E390
sub_E390: @ 0x0800E390
push {lr}
bl sub_2B4
bl m4aMPlayAllStop
bl sub_D10
movs r0, #8
bl sub_23C
pop {r0}
bx r0
thumb_func_start sub_E3A8
sub_E3A8: @ 0x0800E3A8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r4, _0800E448 @ =0x02002858
movs r0, #0x12
ldrsh r1, [r4, r0]
movs r0, #0xb8
muls r0, r1, r0
ldr r2, _0800E44C @ =0x0200B3B8
adds r5, r0, r2
movs r0, #1
strh r0, [r5]
ldr r0, _0800E450 @ =0x086A7DA8
movs r1, #2
bl sub_358
ldr r2, _0800E454 @ =0x080797F0
ldr r0, [r4, #0xc]
lsls r0, r0, #3
ldrb r1, [r4, #0xb]
lsls r1, r1, #6
adds r0, r0, r1
adds r0, r0, r2
ldr r1, [r0]
movs r3, #0x10
ldrsh r0, [r4, r3]
lsls r0, r0, #3
adds r1, r1, r0
strh r1, [r5, #2]
ldr r1, [r4, #0xc]
lsls r1, r1, #3
ldrb r0, [r4, #0xb]
lsls r0, r0, #6
adds r1, r1, r0
adds r2, #4
adds r1, r1, r2
ldr r0, [r1]
strh r0, [r5, #4]
ldr r7, _0800E458 @ =0x03005000
ldr r0, _0800E45C @ =0xFFFFFE00
mov r8, r0
adds r4, r5, #0
adds r4, #8
ldr r2, _0800E460 @ =0x000001FF
mov ip, r2
movs r6, #1
_0800E404:
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r5, r2]
adds r1, r1, r0
mov r0, ip
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r5, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
subs r6, #1
cmp r6, #0
bge _0800E404
movs r0, #0
strh r0, [r5]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800E448: .4byte 0x02002858
_0800E44C: .4byte 0x0200B3B8
_0800E450: .4byte 0x086A7DA8
_0800E454: .4byte 0x080797F0
_0800E458: .4byte 0x03005000
_0800E45C: .4byte 0xFFFFFE00
_0800E460: .4byte 0x000001FF
thumb_func_start sub_E464
sub_E464: @ 0x0800E464
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r6, _0800E5CC @ =0x0200B3B8
adds r4, r6, #0
movs r0, #0xb8
adds r0, r0, r6
mov sl, r0
mov r5, sl
ldr r0, _0800E5D0 @ =0x0202BEBC
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r2, #0xb8
adds r1, r0, #0
muls r1, r2, r1
movs r3, #0xb8
lsls r3, r3, #1
adds r0, r6, r3
adds r7, r1, r0
ldr r0, _0800E5D4 @ =0x02002858
mov sb, r0
ldr r1, _0800E5D8 @ =0x0200287D
movs r0, #0
ldrsb r0, [r1, r0]
adds r1, r0, #0
muls r1, r2, r1
movs r2, #0xa1
lsls r2, r2, #3
adds r0, r6, r2
adds r1, r1, r0
mov r8, r1
ldr r0, _0800E5DC @ =0x02002882
movs r3, #0
ldrsh r1, [r0, r3]
cmp r1, #0
beq _0800E4B4
b _0800E674
_0800E4B4:
movs r0, #1
strh r0, [r6]
strh r1, [r5]
ldr r0, _0800E5E0 @ =0x0201B178
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r7]
mov r0, sb
adds r0, #0x26
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r1, r8
strh r0, [r1]
ldr r0, _0800E5E4 @ =0x086A7DB0
movs r1, #9
adds r2, r6, #0
bl sub_358
movs r0, #0xdc
strh r0, [r6, #2]
movs r0, #0x90
strh r0, [r6, #4]
adds r4, #8
ldr r2, _0800E5E8 @ =0x03005000
mov sl, r2
ldrh r2, [r4]
lsls r2, r2, #3
add r2, sl
mov r3, sb
movs r5, #0x1a
ldrsh r1, [r3, r5]
lsls r1, r1, #1
adds r1, #2
ldr r3, _0800E5EC @ =0x000003FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #4]
ldr r0, _0800E5F0 @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, sl
movs r5, #2
ldrsh r1, [r4, r5]
movs r3, #2
ldrsh r0, [r6, r3]
adds r1, r1, r0
ldr r5, _0800E5F4 @ =0x000001FF
adds r0, r5, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0800E5F8 @ =0xFFFFFE00
mov ip, r0
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sl
ldrb r0, [r6, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
mov r1, r8
ldrh r0, [r1]
cmp r0, #1
bne _0800E5AA
movs r0, #0x54
strh r0, [r1, #2]
movs r0, #0x96
strh r0, [r1, #4]
ldr r2, _0800E5D8 @ =0x0200287D
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, #7
lsls r0, r0, #2
ldr r3, _0800E5E4 @ =0x086A7DB0
adds r0, r0, r3
ldr r6, [r0]
movs r5, #0
ldrh r0, [r6]
cmp r5, r0
bge _0800E5AA
mov sb, sl
mov sl, ip
mov r4, r8
adds r4, #8
_0800E56A:
ldrh r3, [r4]
lsls r3, r3, #3
add r3, sb
movs r2, #2
ldrsh r1, [r4, r2]
mov ip, r1
mov r1, r8
movs r2, #2
ldrsh r0, [r1, r2]
mov r2, ip
adds r1, r2, r0
ldr r2, _0800E5F4 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sb
mov r3, r8
ldrb r0, [r3, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
adds r5, #1
ldrh r3, [r6]
cmp r5, r3
blt _0800E56A
_0800E5AA:
ldrh r0, [r7]
cmp r0, #1
beq _0800E5B2
b _0800E846
_0800E5B2:
ldr r0, _0800E5D0 @ =0x0202BEBC
movs r1, #0
ldrsb r1, [r0, r1]
adds r2, r0, #0
cmp r1, #0
beq _0800E5C2
cmp r1, #4
bne _0800E5FC
_0800E5C2:
movs r0, #0x78
strh r0, [r7, #2]
movs r0, #0x64
b _0800E602
.align 2, 0
_0800E5CC: .4byte 0x0200B3B8
_0800E5D0: .4byte 0x0202BEBC
_0800E5D4: .4byte 0x02002858
_0800E5D8: .4byte 0x0200287D
_0800E5DC: .4byte 0x02002882
_0800E5E0: .4byte 0x0201B178
_0800E5E4: .4byte 0x086A7DB0
_0800E5E8: .4byte 0x03005000
_0800E5EC: .4byte 0x000003FF
_0800E5F0: .4byte 0xFFFFFC00
_0800E5F4: .4byte 0x000001FF
_0800E5F8: .4byte 0xFFFFFE00
_0800E5FC:
movs r0, #0x78
strh r0, [r7, #2]
movs r0, #0x50
_0800E602:
strh r0, [r7, #4]
ldr r1, _0800E664 @ =0x086A7DB0
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, #2
lsls r0, r0, #2
adds r0, r0, r1
ldr r6, [r0]
movs r5, #0
ldrh r0, [r6]
cmp r5, r0
blt _0800E61C
b _0800E846
_0800E61C:
ldr r1, _0800E668 @ =0x03005000
mov sb, r1
ldr r2, _0800E66C @ =0xFFFFFE00
mov sl, r2
adds r4, r7, #0
adds r4, #8
_0800E628:
ldrh r3, [r4]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _0800E670 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r3, [r4, #4]
adds r0, r0, r3
strb r0, [r1]
adds r4, #8
adds r5, #1
ldrh r0, [r6]
cmp r5, r0
blt _0800E628
b _0800E846
.align 2, 0
_0800E664: .4byte 0x086A7DB0
_0800E668: .4byte 0x03005000
_0800E66C: .4byte 0xFFFFFE00
_0800E670: .4byte 0x000001FF
_0800E674:
cmp r1, #0xf0
beq _0800E67A
b _0800E834
_0800E67A:
movs r0, #0
strh r0, [r6]
movs r0, #1
mov r1, sl
strh r0, [r1]
ldr r0, _0800E79C @ =0x0201B178
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r7]
mov r0, sb
adds r0, #0x26
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r2, r8
strh r0, [r2]
ldr r0, _0800E7A0 @ =0x086A7DB0
movs r1, #9
adds r2, r6, #0
bl sub_358
movs r0, #4
mov r3, sl
strh r0, [r3, #2]
movs r0, #0x90
strh r0, [r3, #4]
adds r4, r5, #0
adds r4, #8
ldr r5, _0800E7A4 @ =0x03005000
mov ip, r5
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
mov r0, sb
movs r3, #0x1a
ldrsh r1, [r0, r3]
lsls r1, r1, #1
adds r1, #2
ldr r5, _0800E7A8 @ =0x000003FF
adds r0, r5, #0
ands r1, r0
ldrh r3, [r2, #4]
ldr r0, _0800E7AC @ =0xFFFFFC00
ands r0, r3
orrs r0, r1
strh r0, [r2, #4]
ldrh r2, [r4]
lsls r2, r2, #3
add r2, ip
movs r0, #2
ldrsh r1, [r4, r0]
mov r3, sl
movs r5, #2
ldrsh r0, [r3, r5]
adds r1, r1, r0
ldr r3, _0800E7B0 @ =0x000001FF
adds r0, r3, #0
ands r1, r0
ldrh r3, [r2, #2]
ldr r0, _0800E7B4 @ =0xFFFFFE00
ands r0, r3
orrs r0, r1
strh r0, [r2, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, ip
mov r5, sl
ldrb r0, [r5, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
mov r1, r8
ldrh r0, [r1]
cmp r0, #1
bne _0800E77C
movs r0, #0x54
strh r0, [r1, #2]
movs r0, #0x96
strh r0, [r1, #4]
ldr r2, _0800E7B8 @ =0x0200287D
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, #7
lsls r0, r0, #2
ldr r3, _0800E7A0 @ =0x086A7DB0
adds r0, r0, r3
ldr r6, [r0]
movs r5, #0
ldrh r0, [r6]
cmp r5, r0
bge _0800E77C
mov sb, ip
ldr r1, _0800E7B4 @ =0xFFFFFE00
mov sl, r1
mov r4, r8
adds r4, #8
_0800E73C:
ldrh r3, [r4]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r2, [r4, r0]
mov ip, r2
mov r1, r8
movs r2, #2
ldrsh r0, [r1, r2]
mov r2, ip
adds r1, r2, r0
ldr r2, _0800E7B0 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sb
mov r3, r8
ldrb r0, [r3, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
adds r5, #1
ldrh r3, [r6]
cmp r5, r3
blt _0800E73C
_0800E77C:
ldrh r0, [r7]
cmp r0, #1
bne _0800E846
ldr r0, _0800E7BC @ =0x0202BEBC
movs r1, #0
ldrsb r1, [r0, r1]
adds r2, r0, #0
cmp r1, #0
beq _0800E792
cmp r1, #4
bne _0800E7C0
_0800E792:
movs r0, #0x78
strh r0, [r7, #2]
movs r0, #0x64
b _0800E7C6
.align 2, 0
_0800E79C: .4byte 0x0201B178
_0800E7A0: .4byte 0x086A7DB0
_0800E7A4: .4byte 0x03005000
_0800E7A8: .4byte 0x000003FF
_0800E7AC: .4byte 0xFFFFFC00
_0800E7B0: .4byte 0x000001FF
_0800E7B4: .4byte 0xFFFFFE00
_0800E7B8: .4byte 0x0200287D
_0800E7BC: .4byte 0x0202BEBC
_0800E7C0:
movs r0, #0x78
strh r0, [r7, #2]
movs r0, #0x50
_0800E7C6:
strh r0, [r7, #4]
ldr r1, _0800E824 @ =0x086A7DB0
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, #2
lsls r0, r0, #2
adds r0, r0, r1
ldr r6, [r0]
movs r5, #0
ldrh r0, [r6]
cmp r5, r0
bge _0800E846
ldr r1, _0800E828 @ =0x03005000
mov sb, r1
ldr r2, _0800E82C @ =0xFFFFFE00
mov sl, r2
adds r4, r7, #0
adds r4, #8
_0800E7EA:
ldrh r3, [r4]
lsls r3, r3, #3
add r3, sb
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r7, r2]
adds r1, r1, r0
ldr r2, _0800E830 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, sl
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
add r1, sb
ldrb r0, [r7, #4]
ldrb r3, [r4, #4]
adds r0, r0, r3
strb r0, [r1]
adds r4, #8
adds r5, #1
ldrh r0, [r6]
cmp r5, r0
blt _0800E7EA
b _0800E846
.align 2, 0
_0800E824: .4byte 0x086A7DB0
_0800E828: .4byte 0x03005000
_0800E82C: .4byte 0xFFFFFE00
_0800E830: .4byte 0x000001FF
_0800E834:
movs r0, #0
strh r0, [r6]
mov r1, sl
strh r0, [r1]
ldr r0, _0800E85C @ =0x086A7DB0
movs r1, #9
adds r2, r6, #0
bl sub_358
_0800E846:
movs r0, #0
strh r0, [r7]
mov r2, r8
strh r0, [r2]
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800E85C: .4byte 0x086A7DB0
thumb_func_start sub_E860
sub_E860: @ 0x0800E860
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _0800E8E8 @ =0x0202C580
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #0xb8
muls r0, r1, r0
ldr r2, _0800E8EC @ =0x0200B3B8
adds r5, r0, r2
ldr r0, _0800E8F0 @ =0x0201C18C
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r5]
ldr r0, _0800E8F4 @ =0x086A7DD4
movs r1, #5
bl sub_358
ldrh r0, [r5]
cmp r0, #1
bne _0800E8DA
movs r0, #0x78
strh r0, [r5, #2]
ldr r0, _0800E8F8 @ =0x0201A4B8
ldrh r0, [r0]
strh r0, [r5, #4]
ldr r7, _0800E8FC @ =0x03005000
ldr r0, _0800E900 @ =0xFFFFFE00
mov r8, r0
adds r4, r5, #0
adds r4, #8
ldr r2, _0800E904 @ =0x000001FF
mov ip, r2
movs r6, #3
_0800E8A6:
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r5, r2]
adds r1, r1, r0
mov r0, ip
ands r1, r0
ldrh r2, [r3, #2]
mov r0, r8
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r5, #4]
ldrb r2, [r4, #4]
adds r0, r0, r2
strb r0, [r1]
adds r4, #8
subs r6, #1
cmp r6, #0
bge _0800E8A6
_0800E8DA:
movs r0, #0
strh r0, [r5]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800E8E8: .4byte 0x0202C580
_0800E8EC: .4byte 0x0200B3B8
_0800E8F0: .4byte 0x0201C18C
_0800E8F4: .4byte 0x086A7DD4
_0800E8F8: .4byte 0x0201A4B8
_0800E8FC: .4byte 0x03005000
_0800E900: .4byte 0xFFFFFE00
_0800E904: .4byte 0x000001FF
thumb_func_start sub_E908
sub_E908: @ 0x0800E908
ldr r1, _0800E92C @ =0x0202C5F0
movs r2, #0
ldr r0, _0800E930 @ =0x0000CFCF
strh r0, [r1]
ldr r0, _0800E934 @ =0x0201C1B0
movs r1, #1
strh r1, [r0]
ldr r0, _0800E938 @ =0x0202C59C
strh r1, [r0]
ldr r0, _0800E93C @ =0x0202ADE4
strb r2, [r0]
ldr r0, _0800E940 @ =0x0201A4BC
strb r2, [r0]
ldr r0, _0800E944 @ =0x0202C598
strb r2, [r0]
ldr r0, _0800E948 @ =0x0202C54C
strb r2, [r0]
bx lr
.align 2, 0
_0800E92C: .4byte 0x0202C5F0
_0800E930: .4byte 0x0000CFCF
_0800E934: .4byte 0x0201C1B0
_0800E938: .4byte 0x0202C59C
_0800E93C: .4byte 0x0202ADE4
_0800E940: .4byte 0x0201A4BC
_0800E944: .4byte 0x0202C598
_0800E948: .4byte 0x0202C54C
thumb_func_start sub_E94C
sub_E94C: @ 0x0800E94C
push {lr}
ldr r0, _0800E95C @ =0x0202BF20
ldrb r0, [r0]
cmp r0, #0
beq _0800E960
bl sub_EBEC
b _0800E964
.align 2, 0
_0800E95C: .4byte 0x0202BF20
_0800E960:
bl sub_ED28
_0800E964:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r0, r0, #0x10
asrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_start sub_E970
sub_E970: @ 0x0800E970
push {lr}
ldr r0, _0800E980 @ =0x0202BF20
ldrb r0, [r0]
cmp r0, #0
beq _0800E984
bl sub_E994
b _0800E988
.align 2, 0
_0800E980: .4byte 0x0202BF20
_0800E984:
bl sub_EAC0
_0800E988:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r0, r0, #0x10
asrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_start sub_E994
sub_E994: @ 0x0800E994
push {r4, r5, lr}
ldr r0, _0800E9B4 @ =0x0202ADE4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0800EA04
ldr r0, _0800E9B8 @ =0x0201A4BC
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0800E9BC
cmp r0, #1
beq _0800E9F4
b _0800EAB2
.align 2, 0
_0800E9B4: .4byte 0x0202ADE4
_0800E9B8: .4byte 0x0201A4BC
_0800E9BC:
ldr r0, _0800E9D0 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0800E9DC
ldr r1, _0800E9D4 @ =0x0202C5F0
ldr r0, _0800E9D8 @ =0x0000DEDE
strh r0, [r1]
b _0800EAB2
.align 2, 0
_0800E9D0: .4byte gMain
_0800E9D4: .4byte 0x0202C5F0
_0800E9D8: .4byte 0x0000DEDE
_0800E9DC:
ldr r1, _0800E9F0 @ =0x0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_0800E9E4:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800E9E4
b _0800EAB2
.align 2, 0
_0800E9F0: .4byte 0x0202C5F0
_0800E9F4:
ldr r1, _0800E9FC @ =0x0202C5F0
ldr r0, _0800EA00 @ =0x0000EDED
strh r0, [r1]
b _0800EAB2
.align 2, 0
_0800E9FC: .4byte 0x0202C5F0
_0800EA00: .4byte 0x0000EDED
_0800EA04:
ldr r0, _0800EA24 @ =0x0202C59C
ldrh r2, [r0]
adds r1, r2, #0
adds r5, r0, #0
cmp r1, #7
bhi _0800EA30
ldr r1, _0800EA28 @ =0x0202C5F0
ldr r2, _0800EA2C @ =0x0000CFCF
adds r0, r1, #0
adds r0, #0xe
_0800EA18:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800EA18
b _0800EAAC
.align 2, 0
_0800EA24: .4byte 0x0202C59C
_0800EA28: .4byte 0x0202C5F0
_0800EA2C: .4byte 0x0000CFCF
_0800EA30:
cmp r1, #9
bhi _0800EA9C
adds r0, r2, #0
subs r0, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r3, _0800EA94 @ =0x0202C5F0
movs r4, #0
strh r2, [r3]
ldr r1, _0800EA98 @ =0x0202C610
mov ip, r1
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #6
adds r0, r2, r1
ldr r1, [r0]
lsls r1, r1, #8
mov r0, ip
adds r0, #4
adds r0, r2, r0
ldr r0, [r0]
orrs r0, r1
strh r0, [r3, #2]
mov r0, ip
adds r0, #8
adds r0, r2, r0
ldr r1, [r0]
lsls r1, r1, #8
mov r0, ip
adds r0, #0xc
adds r0, r2, r0
ldr r0, [r0]
orrs r0, r1
strh r0, [r3, #4]
mov r0, ip
adds r0, #0x10
adds r0, r2, r0
ldrh r1, [r0, #2]
strh r1, [r3, #6]
ldr r0, [r0]
strh r0, [r3, #8]
mov r0, ip
adds r0, #0x14
adds r2, r2, r0
ldrh r0, [r2, #2]
strh r0, [r3, #0xa]
ldr r0, [r2]
strh r0, [r3, #0xc]
strh r4, [r3, #0xe]
b _0800EAAC
.align 2, 0
_0800EA94: .4byte 0x0202C5F0
_0800EA98: .4byte 0x0202C610
_0800EA9C:
ldr r1, _0800EABC @ =0x0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_0800EAA4:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800EAA4
_0800EAAC:
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
_0800EAB2:
movs r0, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0800EABC: .4byte 0x0202C5F0
thumb_func_start sub_EAC0
sub_EAC0: @ 0x0800EAC0
push {r4, r5, lr}
ldr r0, _0800EAE0 @ =0x0202ADE4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0800EB30
ldr r0, _0800EAE4 @ =0x0202C598
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0800EAE8
cmp r0, #1
beq _0800EB20
b _0800EBDE
.align 2, 0
_0800EAE0: .4byte 0x0202ADE4
_0800EAE4: .4byte 0x0202C598
_0800EAE8:
ldr r0, _0800EAFC @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0800EB08
ldr r1, _0800EB00 @ =0x0202C5F0
ldr r0, _0800EB04 @ =0x0000DEDE
strh r0, [r1]
b _0800EBDE
.align 2, 0
_0800EAFC: .4byte gMain
_0800EB00: .4byte 0x0202C5F0
_0800EB04: .4byte 0x0000DEDE
_0800EB08:
ldr r1, _0800EB1C @ =0x0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_0800EB10:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800EB10
b _0800EBDE
.align 2, 0
_0800EB1C: .4byte 0x0202C5F0
_0800EB20:
ldr r1, _0800EB28 @ =0x0202C5F0
ldr r0, _0800EB2C @ =0x0000EDED
strh r0, [r1]
b _0800EBDE
.align 2, 0
_0800EB28: .4byte 0x0202C5F0
_0800EB2C: .4byte 0x0000EDED
_0800EB30:
ldr r0, _0800EB50 @ =0x0202C59C
ldrh r2, [r0]
adds r1, r2, #0
adds r5, r0, #0
cmp r1, #7
bhi _0800EB5C
ldr r1, _0800EB54 @ =0x0202C5F0
ldr r2, _0800EB58 @ =0x0000CFCF
adds r0, r1, #0
adds r0, #0xe
_0800EB44:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800EB44
b _0800EBD8
.align 2, 0
_0800EB50: .4byte 0x0202C59C
_0800EB54: .4byte 0x0202C5F0
_0800EB58: .4byte 0x0000CFCF
_0800EB5C:
cmp r1, #9
bhi _0800EBC8
adds r0, r2, #0
subs r0, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
ldr r3, _0800EBC0 @ =0x0202C5F0
movs r4, #0
strh r2, [r3]
ldr r1, _0800EBC4 @ =0x0202C610
mov ip, r1
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #6
adds r0, r2, r1
ldr r1, [r0]
lsls r1, r1, #8
mov r0, ip
adds r0, #4
adds r0, r2, r0
ldr r0, [r0]
orrs r0, r1
strh r0, [r3, #2]
mov r0, ip
adds r0, #8
adds r0, r2, r0
ldr r1, [r0]
lsls r1, r1, #8
mov r0, ip
adds r0, #0xc
adds r0, r2, r0
ldr r0, [r0]
orrs r0, r1
strh r0, [r3, #4]
mov r0, ip
adds r0, #0x10
adds r0, r2, r0
ldrh r1, [r0, #2]
strh r1, [r3, #6]
ldr r0, [r0]
strh r0, [r3, #8]
mov r0, ip
adds r0, #0x14
adds r2, r2, r0
ldrh r0, [r2, #2]
strh r0, [r3, #0xa]
ldr r0, [r2]
strh r0, [r3, #0xc]
strh r4, [r3, #0xe]
b _0800EBD8
.align 2, 0
_0800EBC0: .4byte 0x0202C5F0
_0800EBC4: .4byte 0x0202C610
_0800EBC8:
ldr r1, _0800EBE8 @ =0x0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_0800EBD0:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _0800EBD0
_0800EBD8:
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
_0800EBDE:
movs r0, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0800EBE8: .4byte 0x0202C5F0
thumb_func_start sub_EBEC
sub_EBEC: @ 0x0800EBEC
push {r4, r5, lr}
ldr r4, _0800EC08 @ =0x0202ADE4
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
bne _0800EC7C
ldr r3, _0800EC0C @ =0x0201A4BC
movs r1, #0
ldrsb r1, [r3, r1]
cmp r1, #0
beq _0800EC10
cmp r1, #1
beq _0800EC30
b _0800ECFC
.align 2, 0
_0800EC08: .4byte 0x0202ADE4
_0800EC0C: .4byte 0x0201A4BC
_0800EC10:
ldr r2, _0800EC28 @ =0x0201A4D0
ldrh r0, [r2]
ldr r1, _0800EC2C @ =0x0000DEDE
cmp r0, r1
beq _0800EC20
ldrh r0, [r2, #2]
cmp r0, r1
bne _0800ECFC
_0800EC20:
movs r0, #1
strb r0, [r3]
b _0800ECFC
.align 2, 0
_0800EC28: .4byte 0x0201A4D0
_0800EC2C: .4byte 0x0000DEDE
_0800EC30:
ldr r3, _0800EC54 @ =0x0201A4D0
ldrh r2, [r3]
ldr r0, _0800EC58 @ =0x0000EDED
cmp r2, r0
bne _0800EC64
ldrh r0, [r3, #2]
cmp r0, r2
bne _0800EC64
movs r2, #1
rsbs r2, r2, #0
adds r0, r2, #0
strb r0, [r4]
ldr r0, _0800EC5C @ =0x0202BEBC
strb r1, [r0]
ldr r0, _0800EC60 @ =0x0202C59C
strh r1, [r0]
b _0800ECFC
.align 2, 0
_0800EC54: .4byte 0x0201A4D0
_0800EC58: .4byte 0x0000EDED
_0800EC5C: .4byte 0x0202BEBC
_0800EC60: .4byte 0x0202C59C
_0800EC64:
ldr r1, _0800EC78 @ =0x0202C54C
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
ble _0800ECFC
movs r0, #1
b _0800ED1E
.align 2, 0
_0800EC78: .4byte 0x0202C54C
_0800EC7C:
ldr r4, _0800ECF0 @ =0x0201A4D0
ldrh r5, [r4, #2]
adds r0, r5, #0
subs r0, #8
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
cmp r1, #1
bhi _0800ED1C
ldr r0, _0800ECF4 @ =0x0201C1B0
strh r5, [r0]
ldr r0, _0800ECF8 @ =0x0202C550
mov ip, r0
lsls r3, r1, #1
adds r3, r3, r1
lsls r3, r3, #3
adds r1, r3, r0
ldrh r0, [r4, #6]
lsrs r0, r0, #8
str r0, [r1]
mov r0, ip
adds r0, #4
adds r0, r3, r0
ldrb r1, [r4, #6]
str r1, [r0]
mov r1, ip
adds r1, #8
adds r1, r3, r1
ldrh r0, [r4, #0xa]
lsrs r0, r0, #8
str r0, [r1]
mov r0, ip
adds r0, #0xc
adds r0, r3, r0
ldrb r1, [r4, #0xa]
str r1, [r0]
mov r2, ip
adds r2, #0x10
adds r2, r3, r2
ldrh r0, [r4, #0xe]
lsls r0, r0, #0x10
ldrh r1, [r4, #0x12]
orrs r0, r1
str r0, [r2]
mov r0, ip
adds r0, #0x14
adds r3, r3, r0
ldrh r0, [r4, #0x16]
lsls r0, r0, #0x10
ldrh r1, [r4, #0x1a]
orrs r0, r1
str r0, [r3]
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bne _0800ECFC
movs r0, #1
rsbs r0, r0, #0
b _0800ED1E
.align 2, 0
_0800ECF0: .4byte 0x0201A4D0
_0800ECF4: .4byte 0x0201C1B0
_0800ECF8: .4byte 0x0202C550
_0800ECFC:
movs r1, #0
ldr r4, _0800ED24 @ =0x0201A4D0
movs r3, #0
_0800ED02:
lsls r0, r1, #2
adds r2, r1, #1
movs r1, #1
adds r0, r0, r4
adds r0, #2
_0800ED0C:
strh r3, [r0]
subs r0, #2
subs r1, #1
cmp r1, #0
bge _0800ED0C
adds r1, r2, #0
cmp r1, #7
ble _0800ED02
_0800ED1C:
movs r0, #0
_0800ED1E:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0800ED24: .4byte 0x0201A4D0
thumb_func_start sub_ED28
sub_ED28: @ 0x0800ED28
push {r4, r5, lr}
ldr r4, _0800ED44 @ =0x0202ADE4
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
bne _0800EDB8
ldr r3, _0800ED48 @ =0x0202C598
movs r1, #0
ldrsb r1, [r3, r1]
cmp r1, #0
beq _0800ED4C
cmp r1, #1
beq _0800ED6C
b _0800EE38
.align 2, 0
_0800ED44: .4byte 0x0202ADE4
_0800ED48: .4byte 0x0202C598
_0800ED4C:
ldr r2, _0800ED64 @ =0x0201A4D0
ldrh r0, [r2]
ldr r1, _0800ED68 @ =0x0000DEDE
cmp r0, r1
beq _0800ED5C
ldrh r0, [r2, #2]
cmp r0, r1
bne _0800EE38
_0800ED5C:
movs r0, #1
strb r0, [r3]
b _0800EE38
.align 2, 0
_0800ED64: .4byte 0x0201A4D0
_0800ED68: .4byte 0x0000DEDE
_0800ED6C:
ldr r3, _0800ED90 @ =0x0201A4D0
ldrh r2, [r3]
ldr r0, _0800ED94 @ =0x0000EDED
cmp r2, r0
bne _0800EDA0
ldrh r0, [r3, #2]
cmp r0, r2
bne _0800EDA0
movs r2, #1
rsbs r2, r2, #0
adds r0, r2, #0
strb r0, [r4]
ldr r0, _0800ED98 @ =0x0202BEBC
strb r1, [r0]
ldr r0, _0800ED9C @ =0x0202C59C
strh r1, [r0]
b _0800EE38
.align 2, 0
_0800ED90: .4byte 0x0201A4D0
_0800ED94: .4byte 0x0000EDED
_0800ED98: .4byte 0x0202BEBC
_0800ED9C: .4byte 0x0202C59C
_0800EDA0:
ldr r1, _0800EDB4 @ =0x0202C54C
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0xa
ble _0800EE38
movs r0, #1
b _0800EE5A
.align 2, 0
_0800EDB4: .4byte 0x0202C54C
_0800EDB8:
ldr r4, _0800EE2C @ =0x0201A4D0
ldrh r5, [r4]
adds r0, r5, #0
subs r0, #8
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
cmp r1, #1
bhi _0800EE58
ldr r0, _0800EE30 @ =0x0201C1B0
strh r5, [r0]
ldr r0, _0800EE34 @ =0x0202C550
mov ip, r0
lsls r3, r1, #1
adds r3, r3, r1
lsls r3, r3, #3
adds r1, r3, r0
ldrh r0, [r4, #4]
lsrs r0, r0, #8
str r0, [r1]
mov r0, ip
adds r0, #4
adds r0, r3, r0
ldrb r1, [r4, #4]
str r1, [r0]
mov r1, ip
adds r1, #8
adds r1, r3, r1
ldrh r0, [r4, #8]
lsrs r0, r0, #8
str r0, [r1]
mov r0, ip
adds r0, #0xc
adds r0, r3, r0
ldrb r1, [r4, #8]
str r1, [r0]
mov r2, ip
adds r2, #0x10
adds r2, r3, r2
ldrh r0, [r4, #0xc]
lsls r0, r0, #0x10
ldrh r1, [r4, #0x10]
orrs r0, r1
str r0, [r2]
mov r0, ip
adds r0, #0x14
adds r3, r3, r0
ldrh r0, [r4, #0x14]
lsls r0, r0, #0x10
ldrh r1, [r4, #0x18]
orrs r0, r1
str r0, [r3]
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
cmp r0, #9
bne _0800EE38
movs r0, #1
rsbs r0, r0, #0
b _0800EE5A
.align 2, 0
_0800EE2C: .4byte 0x0201A4D0
_0800EE30: .4byte 0x0201C1B0
_0800EE34: .4byte 0x0202C550
_0800EE38:
movs r1, #0
ldr r4, _0800EE60 @ =0x0201A4D0
movs r3, #0
_0800EE3E:
lsls r0, r1, #2
adds r2, r1, #1
movs r1, #1
adds r0, r0, r4
adds r0, #2
_0800EE48:
strh r3, [r0]
subs r0, #2
subs r1, #1
cmp r1, #0
bge _0800EE48
adds r1, r2, #0
cmp r1, #7
ble _0800EE3E
_0800EE58:
movs r0, #0
_0800EE5A:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_0800EE60: .4byte 0x0201A4D0
thumb_func_start sub_EE64
sub_EE64: @ 0x0800EE64
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
movs r6, #0
ldr r4, _0800EF20 @ =0x086A7FAC
ldr r5, _0800EF24 @ =0x0202C610
_0800EE76:
ldm r5!, {r0}
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #6
movs r1, #1
str r1, [sp]
str r1, [sp, #4]
movs r1, #8
movs r3, #3
bl sub_105A0
adds r6, #1
cmp r6, #3
ble _0800EE76
movs r5, #1
ldr r0, _0800EF20 @ =0x086A7FAC
mov sb, r0
ldr r1, _0800EF24 @ =0x0202C610
mov sl, r1
_0800EEA4:
movs r6, #0
lsls r7, r5, #1
adds r2, r5, #1
mov r8, r2
adds r4, r7, #0
adds r0, r4, r5
lsls r0, r0, #3
mov r1, sl
adds r5, r0, r1
_0800EEB6:
ldm r5!, {r0}
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
adds r0, #0xa0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #6
movs r1, #1
str r1, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #8
adds r3, r4, #3
bl sub_105A0
adds r6, #1
cmp r6, #3
ble _0800EEB6
mov r5, r8
cmp r5, #7
ble _0800EEA4
ldr r1, _0800EF24 @ =0x0202C610
ldr r0, [r1, #0x10]
ldr r1, [r1, #0x14]
bl sub_F21C
movs r6, #0
movs r5, #0xc
ldr r4, _0800EF28 @ =0x0202C5C0
movs r7, #1
_0800EEF4:
adds r0, r6, #1
movs r1, #3
bl __modsi3
cmp r0, #0
bne _0800EF2C
movs r2, #0x90
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r4]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r7, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
adds r2, r5, #0
movs r3, #2
bl sub_105A0
b _0800EF44
.align 2, 0
_0800EF20: .4byte 0x086A7FAC
_0800EF24: .4byte 0x0202C610
_0800EF28: .4byte 0x0202C5C0
_0800EF2C:
ldrh r0, [r4]
adds r0, #0xe0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r7, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
adds r2, r5, #0
movs r3, #2
bl sub_105A0
_0800EF44:
adds r5, #1
adds r4, #2
adds r6, #1
cmp r6, #0xd
ble _0800EEF4
ldr r4, _0800EFC8 @ =0x0202C5C0
ldrh r0, [r4, #0x1c]
adds r0, #0xe0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #1
str r1, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
movs r2, #0x1a
movs r3, #2
bl sub_105A0
movs r5, #1
ldr r2, _0800EFCC @ =0x0202C610
str r2, [sp, #8]
mov sl, r5
movs r0, #2
mov sb, r0
_0800EF76:
lsls r4, r5, #1
adds r1, r4, r5
lsls r1, r1, #3
ldr r0, [sp, #8]
adds r0, #0x10
adds r0, r1, r0
ldr r0, [r0]
ldr r2, _0800EFD0 @ =0x0202C624
adds r1, r1, r2
ldr r1, [r1]
bl sub_F21C
movs r6, #0
adds r7, r4, #0
adds r5, #1
mov r8, r5
movs r5, #0xc
ldr r4, _0800EFC8 @ =0x0202C5C0
_0800EF9A:
adds r0, r6, #1
movs r1, #3
bl __modsi3
cmp r0, #0
bne _0800EFD4
movs r1, #0xd0
lsls r1, r1, #1
adds r0, r1, #0
ldrh r2, [r4]
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r1, sl
str r1, [sp]
mov r2, sb
str r2, [sp, #4]
movs r1, #9
adds r2, r5, #0
adds r3, r7, #3
bl sub_105A0
b _0800EFF4
.align 2, 0
_0800EFC8: .4byte 0x0202C5C0
_0800EFCC: .4byte 0x0202C610
_0800EFD0: .4byte 0x0202C624
_0800EFD4:
movs r1, #0xb0
lsls r1, r1, #1
adds r0, r1, #0
ldrh r2, [r4]
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r1, sl
str r1, [sp]
mov r2, sb
str r2, [sp, #4]
movs r1, #9
adds r2, r5, #0
adds r3, r7, #3
bl sub_105A0
_0800EFF4:
adds r5, #1
adds r4, #2
adds r6, #1
cmp r6, #0xd
ble _0800EF9A
movs r1, #0xb0
lsls r1, r1, #1
adds r0, r1, #0
ldr r2, _0800F0E4 @ =0x0202C5C0
ldrh r2, [r2, #0x1c]
adds r0, r0, r2
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r3, r7, #3
mov r1, sl
str r1, [sp]
mov r2, sb
str r2, [sp, #4]
movs r1, #9
movs r2, #0x1a
bl sub_105A0
mov r5, r8
cmp r5, #7
ble _0800EF76
movs r6, #0
ldr r7, _0800F0E8 @ =0x086A7FAC
ldr r0, _0800F0EC @ =0x0202C610
adds r5, r0, #0
adds r5, #0xc0
movs r4, #1
_0800F032:
ldm r5!, {r0}
lsls r0, r0, #1
adds r0, r0, r7
ldrh r0, [r0]
adds r0, #0x80
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #4
str r4, [sp]
str r4, [sp, #4]
movs r1, #8
movs r3, #0x23
bl sub_105A0
adds r6, #1
cmp r6, #3
ble _0800F032
movs r5, #1
ldr r0, _0800F0E8 @ =0x086A7FAC
mov sb, r0
ldr r1, _0800F0F0 @ =0x0202C6D0
mov sl, r1
_0800F05E:
movs r6, #0
lsls r7, r5, #1
adds r2, r5, #1
mov r8, r2
adds r4, r7, #0
adds r0, r4, r5
lsls r0, r0, #3
mov r1, sl
adds r5, r0, r1
_0800F070:
ldm r5!, {r0}
lsls r0, r0, #1
add r0, sb
ldrh r0, [r0]
adds r0, #0xa0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #4
movs r1, #1
str r1, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #8
adds r3, r4, #0
adds r3, #0x23
bl sub_105A0
adds r6, #1
cmp r6, #3
ble _0800F070
mov r5, r8
cmp r5, #7
ble _0800F05E
ldr r1, _0800F0EC @ =0x0202C610
adds r0, r1, #0
adds r0, #0xd0
ldr r0, [r0]
adds r1, #0xd4
ldr r1, [r1]
bl sub_F21C
movs r6, #0
movs r5, #0xa
ldr r4, _0800F0E4 @ =0x0202C5C0
movs r7, #1
_0800F0B6:
adds r0, r6, #1
movs r1, #3
bl __modsi3
cmp r0, #0
bne _0800F0F4
movs r2, #0x90
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r4]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r7, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
adds r2, r5, #0
movs r3, #0x22
bl sub_105A0
b _0800F10C
.align 2, 0
_0800F0E4: .4byte 0x0202C5C0
_0800F0E8: .4byte 0x086A7FAC
_0800F0EC: .4byte 0x0202C610
_0800F0F0: .4byte 0x0202C6D0
_0800F0F4:
ldrh r0, [r4]
adds r0, #0xe0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r7, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
adds r2, r5, #0
movs r3, #0x22
bl sub_105A0
_0800F10C:
adds r5, #1
adds r4, #2
adds r6, #1
cmp r6, #0xd
ble _0800F0B6
ldr r4, _0800F19C @ =0x0202C5C0
lsls r0, r6, #1
adds r0, r0, r4
ldrh r0, [r0]
adds r0, #0xe0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #1
str r1, [sp]
movs r1, #2
str r1, [sp, #4]
movs r1, #9
movs r2, #0x18
movs r3, #0x22
bl sub_105A0
movs r5, #1
ldr r2, _0800F1A0 @ =0x0202C610
str r2, [sp, #0xc]
mov sl, r5
movs r0, #2
mov sb, r0
_0800F142:
lsls r4, r5, #1
adds r1, r4, r5
lsls r1, r1, #3
ldr r0, [sp, #0xc]
adds r0, #0xd0
adds r0, r1, r0
ldr r0, [r0]
ldr r2, _0800F1A4 @ =0x0202C6E4
adds r1, r1, r2
ldr r1, [r1]
bl sub_F21C
movs r6, #0
adds r7, r4, #0
adds r5, #1
mov r8, r5
_0800F162:
adds r4, r6, #1
adds r0, r4, #0
movs r1, #3
bl __modsi3
cmp r0, #0
bne _0800F1A8
lsls r1, r6, #1
ldr r0, _0800F19C @ =0x0202C5C0
adds r1, r1, r0
movs r2, #0xd0
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r1]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #0
adds r2, #0xa
mov r1, sl
str r1, [sp]
mov r1, sb
str r1, [sp, #4]
movs r1, #9
adds r3, r7, #0
adds r3, #0x23
bl sub_105A0
b _0800F1D2
.align 2, 0
_0800F19C: .4byte 0x0202C5C0
_0800F1A0: .4byte 0x0202C610
_0800F1A4: .4byte 0x0202C6E4
_0800F1A8:
lsls r1, r6, #1
ldr r2, _0800F218 @ =0x0202C5C0
adds r1, r1, r2
movs r2, #0xb0
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r1]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r2, r6, #0
adds r2, #0xa
mov r1, sl
str r1, [sp]
mov r1, sb
str r1, [sp, #4]
movs r1, #9
adds r3, r7, #0
adds r3, #0x23
bl sub_105A0
_0800F1D2:
adds r6, r4, #0
cmp r4, #0xd
ble _0800F162
lsls r1, r4, #1
ldr r2, _0800F218 @ =0x0202C5C0
adds r1, r1, r2
movs r2, #0xb0
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r1]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r3, r7, #0
adds r3, #0x23
mov r1, sl
str r1, [sp]
mov r2, sb
str r2, [sp, #4]
movs r1, #9
movs r2, #0x18
bl sub_105A0
mov r5, r8
cmp r5, #7
ble _0800F142
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F218: .4byte 0x0202C5C0
thumb_func_start sub_F21C
sub_F21C: @ 0x0800F21C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r5, r0, #0
adds r7, r1, #0
cmp r5, #0
bne _0800F250
cmp r7, #0
bne _0800F250
ldr r4, _0800F24C @ =0x0202C5C0
adds r2, r4, #0
movs r1, #0xa
adds r0, r4, #0
adds r0, #0x1a
_0800F23E:
strh r1, [r0]
subs r0, #2
cmp r0, r2
bge _0800F23E
movs r0, #0
strh r0, [r4, #0x1c]
b _0800F392
.align 2, 0
_0800F24C: .4byte 0x0202C5C0
_0800F250:
ldr r0, _0800F25C @ =0x0098967F
cmp r5, r0
bls _0800F260
adds r5, r0, #0
b _0800F266
.align 2, 0
_0800F25C: .4byte 0x0098967F
_0800F260:
ldr r0, _0800F3A4 @ =0x05F5E0FF
cmp r7, r0
bls _0800F268
_0800F266:
ldr r7, _0800F3A4 @ =0x05F5E0FF
_0800F268:
ldr r4, _0800F3A8 @ =0x0202C5C0
ldr r0, _0800F3AC @ =0x000F4240
mov sl, r0
adds r0, r5, #0
mov r1, sl
bl __udivsi3
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
strh r1, [r4]
adds r0, r5, #0
mov r1, sl
bl __umodsi3
adds r5, r0, #0
ldr r0, _0800F3B0 @ =0x000186A0
mov sb, r0
adds r0, r5, #0
mov r1, sb
bl __udivsi3
strh r0, [r4, #2]
adds r0, r5, #0
mov r1, sb
bl __umodsi3
adds r5, r0, #0
ldr r1, _0800F3B4 @ =0x00002710
mov r8, r1
bl __udivsi3
strh r0, [r4, #4]
adds r0, r5, #0
mov r1, r8
bl __umodsi3
adds r5, r0, #0
movs r6, #0xfa
lsls r6, r6, #2
adds r1, r6, #0
bl __udivsi3
strh r0, [r4, #6]
adds r0, r5, #0
adds r1, r6, #0
bl __umodsi3
adds r5, r0, #0
movs r1, #0x64
bl __udivsi3
strh r0, [r4, #8]
adds r0, r5, #0
movs r1, #0x64
bl __umodsi3
adds r5, r0, #0
movs r1, #0xa
bl __udivsi3
strh r0, [r4, #0xa]
adds r0, r5, #0
movs r1, #0xa
bl __umodsi3
strh r0, [r4, #0xc]
ldr r5, _0800F3B8 @ =0x00989680
adds r0, r7, #0
adds r1, r5, #0
bl __udivsi3
strh r0, [r4, #0xe]
adds r0, r7, #0
adds r1, r5, #0
bl __umodsi3
adds r5, r0, #0
mov r1, sl
bl __udivsi3
strh r0, [r4, #0x10]
adds r0, r5, #0
mov r1, sl
bl __umodsi3
adds r5, r0, #0
mov r1, sb
bl __udivsi3
strh r0, [r4, #0x12]
adds r0, r5, #0
mov r1, sb
bl __umodsi3
adds r5, r0, #0
mov r1, r8
bl __udivsi3
strh r0, [r4, #0x14]
adds r0, r5, #0
mov r1, r8
bl __umodsi3
adds r5, r0, #0
adds r1, r6, #0
bl __udivsi3
strh r0, [r4, #0x16]
adds r0, r5, #0
adds r1, r6, #0
bl __umodsi3
adds r5, r0, #0
movs r1, #0x64
bl __udivsi3
strh r0, [r4, #0x18]
adds r0, r5, #0
movs r1, #0x64
bl __umodsi3
adds r5, r0, #0
movs r1, #0xa
bl __udivsi3
strh r0, [r4, #0x1a]
adds r0, r5, #0
movs r1, #0xa
bl __umodsi3
strh r0, [r4, #0x1c]
ldr r5, [sp]
lsls r0, r5, #0x10
cmp r0, #0
bne _0800F392
movs r3, #0xa
adds r1, r4, #0
adds r2, r4, #0
adds r2, #0x1c
_0800F380:
strh r3, [r1]
adds r4, #2
adds r1, #2
cmp r1, r2
bgt _0800F392
movs r5, #0
ldrsh r0, [r4, r5]
cmp r0, #0
beq _0800F380
_0800F392:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F3A4: .4byte 0x05F5E0FF
_0800F3A8: .4byte 0x0202C5C0
_0800F3AC: .4byte 0x000F4240
_0800F3B0: .4byte 0x000186A0
_0800F3B4: .4byte 0x00002710
_0800F3B8: .4byte 0x00989680
thumb_func_start sub_F3BC
sub_F3BC: @ 0x0800F3BC
cmp r0, r2
bhi _0800F3C8
cmp r0, r2
blo _0800F3D4
cmp r1, r3
bls _0800F3CC
_0800F3C8:
movs r0, #1
b _0800F3D8
_0800F3CC:
cmp r1, r3
blo _0800F3D4
movs r0, #0
b _0800F3D8
_0800F3D4:
movs r0, #1
rsbs r0, r0, #0
_0800F3D8:
bx lr
thumb_func_start sub_F3DC
sub_F3DC: @ 0x0800F3DC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
mov r8, r1
movs r6, #0
ldr r7, _0800F414 @ =0x0202C610
lsls r0, r2, #1
adds r0, r0, r2
lsls r0, r0, #6
adds r1, r7, #0
adds r1, #0x14
adds r5, r0, r1
adds r4, r0, #0
_0800F3FA:
adds r0, r7, #0
adds r0, #0x10
adds r0, r4, r0
ldr r2, [r0]
ldr r3, [r5]
mov r0, sb
mov r1, r8
bl sub_F3BC
cmp r0, #0
blt _0800F418
adds r0, r6, #0
b _0800F426
.align 2, 0
_0800F414: .4byte 0x0202C610
_0800F418:
adds r5, #0x18
adds r4, #0x18
adds r6, #1
cmp r6, #7
ble _0800F3FA
movs r0, #1
rsbs r0, r0, #0
_0800F426:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_F434
sub_F434: @ 0x0800F434
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
str r0, [sp]
str r1, [sp, #4]
mov r8, r2
mov sb, r3
movs r5, #7
ldr r0, _0800F4F8 @ =0x0202C610
mov ip, r0
cmp r5, sb
ble _0800F4A4
mov sl, ip
lsls r0, r2, #1
add r0, r8
lsls r1, r0, #6
mov r2, ip
adds r0, r2, r1
adds r3, r0, #0
adds r3, #0x90
adds r7, r1, #0
adds r7, #0x90
adds r6, r1, #0
adds r6, #0xa8
adds r0, r1, #0
adds r0, #0xac
adds r4, r0, r2
subs r0, #0x18
adds r2, r0, r2
_0800F474:
ldr r0, [r3]
str r0, [r3, #0x18]
ldr r0, [r2]
str r0, [r4]
ldr r0, [r2, #4]
str r0, [r4, #4]
ldr r0, [r2, #8]
str r0, [r4, #8]
mov r0, sl
adds r0, #0x10
adds r1, r6, r0
adds r0, r7, r0
ldr r0, [r0]
str r0, [r1]
ldr r0, [r3, #0x14]
str r0, [r3, #0x2c]
subs r3, #0x18
subs r2, #0x18
subs r7, #0x18
subs r4, #0x18
subs r6, #0x18
subs r5, #1
cmp r5, sb
bgt _0800F474
_0800F4A4:
lsls r1, r5, #1
adds r1, r1, r5
lsls r1, r1, #3
mov r2, r8
lsls r0, r2, #1
add r0, r8
lsls r0, r0, #6
adds r1, r1, r0
mov r2, ip
adds r0, r1, r2
movs r2, #0
str r2, [r0]
mov r0, ip
adds r0, #4
adds r0, r1, r0
str r2, [r0]
mov r0, ip
adds r0, #8
adds r0, r1, r0
str r2, [r0]
mov r0, ip
adds r0, #0xc
adds r0, r1, r0
str r2, [r0]
mov r0, ip
adds r0, #0x10
adds r0, r1, r0
ldr r2, [sp]
str r2, [r0]
mov r0, ip
adds r0, #0x14
adds r1, r1, r0
ldr r0, [sp, #4]
str r0, [r1]
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F4F8: .4byte 0x0202C610
thumb_func_start sub_F4FC
sub_F4FC: @ 0x0800F4FC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
str r0, [sp]
ldr r0, _0800F668 @ =0x0202C550
mov r8, r0
ldr r1, [sp]
lsls r4, r1, #1
adds r4, r4, r1
lsls r0, r4, #3
mov sb, r0
mov r6, r8
adds r6, #0x10
add r6, sb
ldr r0, [r6]
mov r5, r8
adds r5, #0x14
add r5, sb
ldr r1, [r5]
ldr r2, [sp]
bl sub_F3DC
mov sl, r0
ldr r7, _0800F66C @ =0x0202C610
lsls r0, r0, #1
add r0, sl
lsls r0, r0, #3
lsls r4, r4, #6
adds r4, r0, r4
adds r0, r7, #0
adds r0, #0x10
adds r0, r4, r0
ldr r0, [r0]
adds r1, r7, #0
adds r1, #0x14
adds r1, r4, r1
ldr r1, [r1]
ldr r2, [r6]
ldr r3, [r5]
bl sub_F3BC
mov ip, r8
cmp r0, #0
bne _0800F5A2
adds r0, r4, r7
mov r1, sb
add r1, ip
ldr r2, [r0]
ldr r0, [r1]
cmp r2, r0
bne _0800F5A2
adds r1, r7, #4
adds r1, r4, r1
mov r0, ip
adds r0, #4
add r0, sb
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
bne _0800F5A2
adds r1, r7, #0
adds r1, #8
adds r1, r4, r1
mov r0, ip
adds r0, #8
add r0, sb
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
bne _0800F5A2
adds r1, r7, #0
adds r1, #0xc
adds r1, r4, r1
mov r0, ip
adds r0, #0xc
add r0, sb
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _0800F656
_0800F5A2:
movs r0, #1
rsbs r0, r0, #0
cmp sl, r0
beq _0800F656
movs r4, #7
ldr r1, _0800F668 @ =0x0202C550
mov ip, r1
ldr r0, [sp]
lsls r3, r0, #1
ldr r1, _0800F66C @ =0x0202C610
mov r8, r1
cmp r4, sl
ble _0800F5EA
mov r7, r8
adds r0, r3, r0
lsls r6, r0, #6
_0800F5C2:
movs r5, #0
lsls r0, r4, #1
subs r1, r4, #1
adds r0, r0, r4
lsls r0, r0, #3
adds r0, r0, r6
adds r2, r0, r7
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r6
adds r4, r0, r7
_0800F5DA:
ldm r4!, {r0}
stm r2!, {r0}
adds r5, #1
cmp r5, #5
ble _0800F5DA
adds r4, r1, #0
cmp r4, sl
bgt _0800F5C2
_0800F5EA:
lsls r2, r4, #1
adds r2, r2, r4
lsls r2, r2, #3
ldr r4, [sp]
adds r3, r3, r4
lsls r0, r3, #6
adds r2, r2, r0
mov r0, r8
adds r1, r2, r0
lsls r3, r3, #3
mov r4, ip
adds r0, r3, r4
ldr r0, [r0]
str r0, [r1]
mov r1, r8
adds r1, #4
adds r1, r2, r1
mov r0, ip
adds r0, #4
adds r0, r3, r0
ldr r0, [r0]
str r0, [r1]
mov r1, r8
adds r1, #8
adds r1, r2, r1
mov r0, ip
adds r0, #8
adds r0, r3, r0
ldr r0, [r0]
str r0, [r1]
mov r1, r8
adds r1, #0xc
adds r1, r2, r1
mov r0, ip
adds r0, #0xc
adds r0, r3, r0
ldr r0, [r0]
str r0, [r1]
mov r1, r8
adds r1, #0x10
adds r1, r2, r1
mov r0, ip
adds r0, #0x10
adds r0, r3, r0
ldr r0, [r0]
str r0, [r1]
mov r0, r8
adds r0, #0x14
adds r2, r2, r0
mov r0, ip
adds r0, #0x14
adds r3, r3, r0
ldr r0, [r3]
str r0, [r2]
_0800F656:
mov r0, sl
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
_0800F668: .4byte 0x0202C550
_0800F66C: .4byte 0x0202C610
thumb_func_start sub_F670
sub_F670: @ 0x0800F670
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #8
adds r7, r0, #0
mov r8, r2
ldr r2, _0800F6D8 @ =0x086A7FAC
lsls r0, r7, #1
adds r0, r0, r2
ldrh r7, [r0]
ldr r6, _0800F6DC @ =0x08079730
lsls r4, r1, #1
adds r4, r4, r1
lsls r4, r4, #2
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #5
adds r4, r4, r0
adds r0, r6, #0
adds r0, #8
adds r0, r4, r0
ldr r5, [r0]
lsls r0, r5, #5
adds r1, r7, #0
adds r1, #0x80
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
adds r1, r4, r6
mov r2, r8
lsls r2, r2, #0x10
asrs r2, r2, #0x10
mov r8, r2
ldr r2, [r1]
add r2, r8
adds r6, #4
adds r4, r4, r6
ldr r3, [r4]
movs r1, #1
str r1, [sp]
adds r5, #1
str r5, [sp, #4]
movs r1, #8
bl sub_105A0
add sp, #8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F6D8: .4byte 0x086A7FAC
_0800F6DC: .4byte 0x08079730
thumb_func_start sub_F6E0
sub_F6E0: @ 0x0800F6E0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r1, _0800F740 @ =0x0202BEB0
movs r0, #0
strb r0, [r1]
movs r2, #0
ldr r0, _0800F744 @ =0x0200B134
mov r8, r0
ldr r3, _0800F748 @ =0x08079430
mov ip, r3
_0800F6F8:
movs r1, #0
lsls r0, r2, #1
adds r7, r2, #1
mov sb, r7
adds r0, r0, r2
lsls r5, r0, #6
adds r6, r5, #0
adds r6, #0xe4
_0800F708:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r6
add r1, r8
adds r2, r0, r5
movs r3, #5
_0800F718:
mov r7, ip
adds r0, r2, r7
ldr r0, [r0]
stm r1!, {r0}
adds r2, #4
subs r3, #1
cmp r3, #0
bge _0800F718
adds r1, r4, #0
cmp r1, #7
ble _0800F708
mov r2, sb
cmp r2, #1
ble _0800F6F8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F740: .4byte 0x0202BEB0
_0800F744: .4byte 0x0200B134
_0800F748: .4byte 0x08079430
thumb_func_start sub_F74C
sub_F74C: @ 0x0800F74C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
movs r0, #0
mov r8, r0
ldr r1, _0800F85C @ =0x0200B134
str r1, [sp]
_0800F760:
bl sub_C00
movs r1, #0x2a
bl __umodsi3
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
mov r3, r8
lsls r2, r3, #1
adds r1, r2, r3
lsls r1, r1, #6
ldr r3, _0800F860 @ =0x0200B218
adds r0, r1, r3
str r4, [r0]
mov sb, r2
mov r0, r8
adds r0, #1
str r0, [sp, #8]
ldr r2, [sp]
adds r1, r2, r1
adds r6, r1, #0
adds r6, #0xe8
movs r5, #2
_0800F78E:
bl sub_C00
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bhi _0800F7AE
bl sub_C00
movs r1, #0x2a
bl __umodsi3
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
_0800F7AE:
stm r6!, {r4}
subs r5, #1
cmp r5, #0
bge _0800F78E
bl sub_C00
adds r7, r0, #0
bl sub_C00
adds r6, r0, #0
mov r0, sb
add r0, r8
lsls r0, r0, #6
ldr r1, [sp]
adds r1, #0xf4
adds r1, r0, r1
str r7, [r1]
ldr r3, _0800F864 @ =0x0200B22C
adds r1, r0, r3
str r6, [r1]
movs r1, #1
mov r8, r1
ldr r2, [sp]
str r2, [sp, #4]
mov sl, r0
_0800F7E0:
bl sub_C00
movs r1, #0x2a
bl __umodsi3
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
mov r3, r8
lsls r2, r3, #1
adds r1, r2, r3
lsls r1, r1, #3
mov r3, sl
adds r0, r1, r3
ldr r3, _0800F860 @ =0x0200B218
adds r0, r0, r3
str r4, [r0]
str r2, [sp, #0x10]
mov r0, r8
adds r0, #1
str r0, [sp, #0xc]
adds r1, #4
movs r5, #2
adds r0, r3, #0
add r0, sl
adds r1, r1, r0
mov sb, r1
_0800F814:
bl sub_C00
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bhi _0800F834
bl sub_C00
movs r1, #0x2a
bl __umodsi3
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
_0800F834:
mov r1, sb
adds r1, #4
mov sb, r1
subs r1, #4
stm r1!, {r4}
subs r5, #1
cmp r5, #0
bge _0800F814
bl sub_C00
adds r1, r7, #0
bl __umodsi3
adds r7, r0, #0
cmp r7, #0
beq _0800F868
bl sub_C00
b _0800F872
.align 2, 0
_0800F85C: .4byte 0x0200B134
_0800F860: .4byte 0x0200B218
_0800F864: .4byte 0x0200B22C
_0800F868:
bl sub_C00
adds r1, r6, #0
bl __umodsi3
_0800F872:
adds r6, r0, #0
ldr r1, [sp, #0x10]
add r1, r8
lsls r1, r1, #3
add r1, sl
ldr r0, [sp, #4]
adds r0, #0xf4
adds r0, r1, r0
str r7, [r0]
ldr r2, _0800F8AC @ =0x0200B22C
adds r1, r1, r2
str r6, [r1]
ldr r3, [sp, #0xc]
mov r8, r3
cmp r3, #7
ble _0800F7E0
ldr r0, [sp, #8]
mov r8, r0
cmp r0, #1
bgt _0800F89C
b _0800F760
_0800F89C:
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800F8AC: .4byte 0x0200B22C
thumb_func_start sub_F8B0
sub_F8B0: @ 0x0800F8B0
push {r4, r5, r6, r7, lr}
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
cmp r0, #0
beq _0800F8BC
b _0800F9CC
_0800F8BC:
cmp r1, #0
bne _0800F93C
ldr r0, _0800F924 @ =0x03005C00
ldr r7, _0800F928 @ =0x000090EA
ldr r6, _0800F92C @ =0x0000912A
ldr r1, _0800F930 @ =0x086A7FA4
adds r2, r0, #0
adds r2, #0x98
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r1
movs r4, #0xe
_0800F8D4:
ldrh r1, [r2]
adds r0, r1, #0
cmp r0, r7
beq _0800F8E8
cmp r0, r6
beq _0800F8E8
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r1, r0
strh r0, [r2]
_0800F8E8:
adds r2, #2
subs r4, #1
cmp r4, #0
bge _0800F8D4
ldr r0, _0800F924 @ =0x03005C00
ldr r7, _0800F934 @ =0x0000910A
ldr r6, _0800F938 @ =0x0000914A
ldr r1, _0800F930 @ =0x086A7FA4
adds r3, r0, #0
adds r3, #0xd8
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r1
movs r4, #0xe
_0800F904:
ldrh r1, [r3]
adds r0, r1, #0
cmp r0, r7
beq _0800F918
cmp r0, r6
beq _0800F918
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r1, r0
strh r0, [r3]
_0800F918:
adds r3, #2
subs r4, #1
cmp r4, #0
bge _0800F904
b _0800FAC2
.align 2, 0
_0800F924: .4byte 0x03005C00
_0800F928: .4byte 0x000090EA
_0800F92C: .4byte 0x0000912A
_0800F930: .4byte 0x086A7FA4
_0800F934: .4byte 0x0000910A
_0800F938: .4byte 0x0000914A
_0800F93C:
lsls r1, r1, #1
adds r0, r1, #3
lsls r0, r0, #5
adds r3, r0, #0
adds r3, #0xc
adds r6, r1, #0
ldr r1, _0800F9B4 @ =0x03005C00
ldr r0, _0800F9B8 @ =0x0000916A
mov ip, r0
ldr r7, _0800F9BC @ =0x000091AA
ldr r2, _0800F9C0 @ =0x086A7FA4
lsls r0, r3, #1
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r2
movs r4, #0xe
_0800F95E:
ldrh r2, [r1]
adds r0, r2, #0
cmp r0, ip
beq _0800F972
cmp r0, r7
beq _0800F972
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r2, r0
strh r0, [r1]
_0800F972:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800F95E
adds r0, r6, #4
lsls r0, r0, #5
adds r3, r0, #0
adds r3, #0xc
ldr r1, _0800F9B4 @ =0x03005C00
ldr r7, _0800F9C4 @ =0x0000918A
ldr r6, _0800F9C8 @ =0x000091CA
ldr r2, _0800F9C0 @ =0x086A7FA4
lsls r0, r3, #1
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r2
movs r4, #0xe
_0800F996:
ldrh r3, [r1]
adds r0, r3, #0
cmp r0, r7
beq _0800F9AA
cmp r0, r6
beq _0800F9AA
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r3, r0
strh r0, [r1]
_0800F9AA:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800F996
b _0800FAC2
.align 2, 0
_0800F9B4: .4byte 0x03005C00
_0800F9B8: .4byte 0x0000916A
_0800F9BC: .4byte 0x000091AA
_0800F9C0: .4byte 0x086A7FA4
_0800F9C4: .4byte 0x0000918A
_0800F9C8: .4byte 0x000091CA
_0800F9CC:
cmp r1, #0
bne _0800FA54
ldr r0, _0800FA34 @ =0x03005C00
ldr r7, _0800FA38 @ =0x000090EA
ldr r6, _0800FA3C @ =0x0000912A
ldr r1, _0800FA40 @ =0x086A7FA4
ldr r3, _0800FA44 @ =0x00000894
adds r2, r0, r3
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r1
movs r4, #0xe
_0800F9E4:
ldrh r1, [r2]
adds r0, r1, #0
cmp r0, r7
beq _0800F9F8
cmp r0, r6
beq _0800F9F8
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r1, r0
strh r0, [r2]
_0800F9F8:
adds r2, #2
subs r4, #1
cmp r4, #0
bge _0800F9E4
ldr r0, _0800FA34 @ =0x03005C00
ldr r7, _0800FA48 @ =0x0000910A
ldr r6, _0800FA4C @ =0x0000914A
ldr r1, _0800FA40 @ =0x086A7FA4
ldr r4, _0800FA50 @ =0x000008D4
adds r3, r0, r4
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r1
movs r4, #0xe
_0800FA14:
ldrh r1, [r3]
adds r0, r1, #0
cmp r0, r7
beq _0800FA28
cmp r0, r6
beq _0800FA28
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r1, r0
strh r0, [r3]
_0800FA28:
adds r3, #2
subs r4, #1
cmp r4, #0
bge _0800FA14
b _0800FAC2
.align 2, 0
_0800FA34: .4byte 0x03005C00
_0800FA38: .4byte 0x000090EA
_0800FA3C: .4byte 0x0000912A
_0800FA40: .4byte 0x086A7FA4
_0800FA44: .4byte 0x00000894
_0800FA48: .4byte 0x0000910A
_0800FA4C: .4byte 0x0000914A
_0800FA50: .4byte 0x000008D4
_0800FA54:
lsls r0, r1, #1
lsls r3, r0, #6
adds r6, r0, #0
ldr r1, _0800FAC8 @ =0x03005C00
ldr r0, _0800FACC @ =0x0000916A
mov ip, r0
ldr r7, _0800FAD0 @ =0x000091AA
ldr r2, _0800FAD4 @ =0x086A7FA4
ldr r4, _0800FAD8 @ =0x000008D4
adds r0, r3, r4
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r2
movs r4, #0xe
_0800FA72:
ldrh r2, [r1]
adds r0, r2, #0
cmp r0, ip
beq _0800FA86
cmp r0, r7
beq _0800FA86
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r2, r0
strh r0, [r1]
_0800FA86:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FA72
lsls r3, r6, #6
ldr r1, _0800FAC8 @ =0x03005C00
ldr r7, _0800FADC @ =0x0000918A
ldr r6, _0800FAE0 @ =0x000091CA
ldr r2, _0800FAD4 @ =0x086A7FA4
ldr r4, _0800FAE4 @ =0x00000914
adds r0, r3, r4
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r2
movs r4, #0xe
_0800FAA6:
ldrh r3, [r1]
adds r0, r3, #0
cmp r0, r7
beq _0800FABA
cmp r0, r6
beq _0800FABA
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r3, r0
strh r0, [r1]
_0800FABA:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FAA6
_0800FAC2:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800FAC8: .4byte 0x03005C00
_0800FACC: .4byte 0x0000916A
_0800FAD0: .4byte 0x000091AA
_0800FAD4: .4byte 0x086A7FA4
_0800FAD8: .4byte 0x000008D4
_0800FADC: .4byte 0x0000918A
_0800FAE0: .4byte 0x000091CA
_0800FAE4: .4byte 0x00000914
thumb_func_start sub_FAE8
sub_FAE8: @ 0x0800FAE8
push {r4, r5, r6, r7, lr}
lsls r2, r2, #0x10
lsrs r5, r2, #0x10
cmp r0, #0
beq _0800FAF4
b _0800FC04
_0800FAF4:
cmp r1, #0
bne _0800FB74
ldr r0, _0800FB5C @ =0x03005C00
ldr r7, _0800FB60 @ =0x000090EA
ldr r6, _0800FB64 @ =0x0000912A
ldr r1, _0800FB68 @ =0x086A7FA8
adds r2, r0, #0
adds r2, #0x98
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r1
movs r4, #0xe
_0800FB0C:
ldrh r1, [r2]
adds r0, r1, #0
cmp r0, r7
beq _0800FB20
cmp r0, r6
beq _0800FB20
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r1, r0
strh r0, [r2]
_0800FB20:
adds r2, #2
subs r4, #1
cmp r4, #0
bge _0800FB0C
ldr r0, _0800FB5C @ =0x03005C00
ldr r7, _0800FB6C @ =0x0000910A
ldr r6, _0800FB70 @ =0x0000914A
ldr r1, _0800FB68 @ =0x086A7FA8
adds r3, r0, #0
adds r3, #0xd8
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r1
movs r4, #0xe
_0800FB3C:
ldrh r1, [r3]
adds r0, r1, #0
cmp r0, r7
beq _0800FB50
cmp r0, r6
beq _0800FB50
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r1, r0
strh r0, [r3]
_0800FB50:
adds r3, #2
subs r4, #1
cmp r4, #0
bge _0800FB3C
b _0800FCFA
.align 2, 0
_0800FB5C: .4byte 0x03005C00
_0800FB60: .4byte 0x000090EA
_0800FB64: .4byte 0x0000912A
_0800FB68: .4byte 0x086A7FA8
_0800FB6C: .4byte 0x0000910A
_0800FB70: .4byte 0x0000914A
_0800FB74:
lsls r1, r1, #1
adds r0, r1, #3
lsls r0, r0, #5
adds r3, r0, #0
adds r3, #0xc
adds r6, r1, #0
ldr r1, _0800FBEC @ =0x03005C00
ldr r0, _0800FBF0 @ =0x0000916A
mov ip, r0
ldr r7, _0800FBF4 @ =0x000091AA
ldr r2, _0800FBF8 @ =0x086A7FA8
lsls r0, r3, #1
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r2
movs r4, #0xe
_0800FB96:
ldrh r2, [r1]
adds r0, r2, #0
cmp r0, ip
beq _0800FBAA
cmp r0, r7
beq _0800FBAA
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r2, r0
strh r0, [r1]
_0800FBAA:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FB96
adds r0, r6, #4
lsls r0, r0, #5
adds r3, r0, #0
adds r3, #0xc
ldr r1, _0800FBEC @ =0x03005C00
ldr r7, _0800FBFC @ =0x0000918A
ldr r6, _0800FC00 @ =0x000091CA
ldr r2, _0800FBF8 @ =0x086A7FA8
lsls r0, r3, #1
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r2
movs r4, #0xe
_0800FBCE:
ldrh r3, [r1]
adds r0, r3, #0
cmp r0, r7
beq _0800FBE2
cmp r0, r6
beq _0800FBE2
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r3, r0
strh r0, [r1]
_0800FBE2:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FBCE
b _0800FCFA
.align 2, 0
_0800FBEC: .4byte 0x03005C00
_0800FBF0: .4byte 0x0000916A
_0800FBF4: .4byte 0x000091AA
_0800FBF8: .4byte 0x086A7FA8
_0800FBFC: .4byte 0x0000918A
_0800FC00: .4byte 0x000091CA
_0800FC04:
cmp r1, #0
bne _0800FC8C
ldr r0, _0800FC6C @ =0x03005C00
ldr r7, _0800FC70 @ =0x000090EA
ldr r6, _0800FC74 @ =0x0000912A
ldr r1, _0800FC78 @ =0x086A7FA8
ldr r3, _0800FC7C @ =0x00000894
adds r2, r0, r3
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r1
movs r4, #0xe
_0800FC1C:
ldrh r1, [r2]
adds r0, r1, #0
cmp r0, r7
beq _0800FC30
cmp r0, r6
beq _0800FC30
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r1, r0
strh r0, [r2]
_0800FC30:
adds r2, #2
subs r4, #1
cmp r4, #0
bge _0800FC1C
ldr r0, _0800FC6C @ =0x03005C00
ldr r7, _0800FC80 @ =0x0000910A
ldr r6, _0800FC84 @ =0x0000914A
ldr r1, _0800FC78 @ =0x086A7FA8
ldr r4, _0800FC88 @ =0x000008D4
adds r3, r0, r4
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r1
movs r4, #0xe
_0800FC4C:
ldrh r1, [r3]
adds r0, r1, #0
cmp r0, r7
beq _0800FC60
cmp r0, r6
beq _0800FC60
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r1, r0
strh r0, [r3]
_0800FC60:
adds r3, #2
subs r4, #1
cmp r4, #0
bge _0800FC4C
b _0800FCFA
.align 2, 0
_0800FC6C: .4byte 0x03005C00
_0800FC70: .4byte 0x000090EA
_0800FC74: .4byte 0x0000912A
_0800FC78: .4byte 0x086A7FA8
_0800FC7C: .4byte 0x00000894
_0800FC80: .4byte 0x0000910A
_0800FC84: .4byte 0x0000914A
_0800FC88: .4byte 0x000008D4
_0800FC8C:
lsls r0, r1, #1
lsls r3, r0, #6
adds r6, r0, #0
ldr r1, _0800FD00 @ =0x03005C00
ldr r0, _0800FD04 @ =0x0000916A
mov ip, r0
ldr r7, _0800FD08 @ =0x000091AA
ldr r2, _0800FD0C @ =0x086A7FA8
ldr r4, _0800FD10 @ =0x000008D4
adds r0, r3, r4
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r3, r0, r2
movs r4, #0xe
_0800FCAA:
ldrh r2, [r1]
adds r0, r2, #0
cmp r0, ip
beq _0800FCBE
cmp r0, r7
beq _0800FCBE
movs r0, #0
ldrsb r0, [r3, r0]
adds r0, r2, r0
strh r0, [r1]
_0800FCBE:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FCAA
lsls r3, r6, #6
ldr r1, _0800FD00 @ =0x03005C00
ldr r7, _0800FD14 @ =0x0000918A
ldr r6, _0800FD18 @ =0x000091CA
ldr r2, _0800FD0C @ =0x086A7FA8
ldr r4, _0800FD1C @ =0x00000914
adds r0, r3, r4
adds r1, r0, r1
lsls r0, r5, #0x10
asrs r0, r0, #0x10
adds r2, r0, r2
movs r4, #0xe
_0800FCDE:
ldrh r3, [r1]
adds r0, r3, #0
cmp r0, r7
beq _0800FCF2
cmp r0, r6
beq _0800FCF2
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r3, r0
strh r0, [r1]
_0800FCF2:
adds r1, #2
subs r4, #1
cmp r4, #0
bge _0800FCDE
_0800FCFA:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800FD00: .4byte 0x03005C00
_0800FD04: .4byte 0x0000916A
_0800FD08: .4byte 0x000091AA
_0800FD0C: .4byte 0x086A7FA8
_0800FD10: .4byte 0x000008D4
_0800FD14: .4byte 0x0000918A
_0800FD18: .4byte 0x000091CA
_0800FD1C: .4byte 0x00000914
thumb_func_start sub_FD20
sub_FD20: @ 0x0800FD20
sub sp, #0x19c
movs r2, #0
ldr r3, _0800FD48 @ =0x0200B134
mov r1, sp
_0800FD28:
adds r0, r2, r3
ldrb r0, [r0]
strh r0, [r1]
adds r1, #2
adds r2, #1
cmp r2, #0xcc
ble _0800FD28
movs r2, #0
mov r1, sp
_0800FD3A:
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #4
beq _0800FD4C
movs r0, #0
b _0800FD56
.align 2, 0
_0800FD48: .4byte 0x0200B134
_0800FD4C:
adds r1, #2
adds r2, #1
cmp r2, #0xc8
ble _0800FD3A
movs r0, #1
_0800FD56:
add sp, #0x19c
bx lr
thumb_func_start sub_FD5C
sub_FD5C: @ 0x0800FD5C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
mov r8, r0
ldr r4, _0800FDC8 @ =0x040000D4
movs r6, #0xa0
lsls r6, r6, #0x13
str r6, [r4]
ldr r2, _0800FDCC @ =0x0201A920
str r2, [r4, #4]
ldr r5, _0800FDD0 @ =0x80000200
str r5, [r4, #8]
ldr r0, [r4, #8]
mov r1, sp
ldr r3, _0800FDD4 @ =0x00007FFF
adds r0, r3, #0
strh r0, [r1]
str r1, [r4]
ldr r0, _0800FDD8 @ =0xFFFFFC00
adds r1, r2, r0
str r1, [r4, #4]
ldr r0, _0800FDDC @ =0x81000200
str r0, [r4, #8]
ldr r0, [r4, #8]
str r1, [r4]
movs r3, #0x80
lsls r3, r3, #3
adds r2, r2, r3
str r2, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
str r2, [r4]
str r6, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
bl sub_1050C
movs r7, #0
_0800FDAA:
mov r0, r8
cmp r0, #0
beq _0800FDB4
bl _call_via_r8
_0800FDB4:
adds r0, r7, #0
bl sub_1001C
bl sub_D74
cmp r7, #0x1f
bne _0800FDE0
ldr r0, _0800FDCC @ =0x0201A920
b _0800FDE2
.align 2, 0
_0800FDC8: .4byte 0x040000D4
_0800FDCC: .4byte 0x0201A920
_0800FDD0: .4byte 0x80000200
_0800FDD4: .4byte 0x00007FFF
_0800FDD8: .4byte 0xFFFFFC00
_0800FDDC: .4byte 0x81000200
_0800FDE0:
ldr r0, _0800FE00 @ =0x0201AD20
_0800FDE2:
str r0, [r4]
str r6, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r7, #0x1f
bls _0800FDAA
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800FE00: .4byte 0x0201AD20
thumb_func_start sub_FE04
sub_FE04: @ 0x0800FE04
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r5, r0, #0
ldr r1, _0800FE6C @ =0x040000D4
movs r0, #0xa0
lsls r0, r0, #0x13
mov r8, r0
str r0, [r1]
ldr r3, _0800FE70 @ =0x0201A520
str r3, [r1, #4]
ldr r4, _0800FE74 @ =0x80000200
str r4, [r1, #8]
ldr r0, [r1, #8]
mov r2, sp
ldr r6, _0800FE78 @ =0x00007FFF
adds r0, r6, #0
strh r0, [r2]
str r2, [r1]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r3, r2
str r0, [r1, #4]
ldr r0, _0800FE7C @ =0x81000200
str r0, [r1, #8]
ldr r0, [r1, #8]
str r3, [r1]
movs r6, #0x80
lsls r6, r6, #4
adds r3, r3, r6
str r3, [r1, #4]
str r4, [r1, #8]
ldr r0, [r1, #8]
movs r7, #0
adds r6, r1, #0
_0800FE4C:
cmp r5, #0
beq _0800FE54
bl _call_via_r5
_0800FE54:
adds r0, r7, #0
bl sub_1001C
bl sub_D74
cmp r7, #0x1f
bne _0800FE84
ldr r0, _0800FE80 @ =0x0201A920
str r0, [r6]
mov r0, r8
str r0, [r6, #4]
b _0800FE8C
.align 2, 0
_0800FE6C: .4byte 0x040000D4
_0800FE70: .4byte 0x0201A520
_0800FE74: .4byte 0x80000200
_0800FE78: .4byte 0x00007FFF
_0800FE7C: .4byte 0x81000200
_0800FE80: .4byte 0x0201A920
_0800FE84:
ldr r0, _0800FEB4 @ =0x0201AD20
str r0, [r6]
mov r2, r8
str r2, [r6, #4]
_0800FE8C:
str r4, [r6, #8]
ldr r0, [r6, #8]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r7, #0x1f
bls _0800FE4C
bl sub_10528
bl sub_D74
bl sub_490
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800FEB4: .4byte 0x0201AD20
thumb_func_start sub_FEB8
sub_FEB8: @ 0x0800FEB8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
mov r8, r2
ldr r4, _0800FF34 @ =0x040000D4
str r0, [r4]
ldr r2, _0800FF38 @ =0x0201A920
str r2, [r4, #4]
ldr r0, _0800FF3C @ =0x80000100
str r0, [r4, #8]
ldr r3, [r4, #8]
str r1, [r4]
movs r1, #0x80
lsls r1, r1, #3
adds r3, r2, r1
str r3, [r4, #4]
str r0, [r4, #8]
ldr r0, [r4, #8]
mov r1, sp
movs r0, #0
strh r0, [r1]
str r1, [r4]
ldr r0, _0800FF40 @ =0xFFFFFC00
adds r2, r2, r0
str r2, [r4, #4]
ldr r0, _0800FF44 @ =0x81000200
str r0, [r4, #8]
ldr r0, [r4, #8]
str r2, [r4]
str r3, [r4, #4]
ldr r5, _0800FF48 @ =0x80000200
str r5, [r4, #8]
ldr r0, [r4, #8]
str r3, [r4]
movs r6, #0xa0
lsls r6, r6, #0x13
str r6, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
bl sub_1050C
ldr r1, _0800FF4C @ =gMain
movs r0, #0x80
lsls r0, r0, #0x13
ldrh r0, [r0]
strh r0, [r1, #0x16]
movs r7, #0
_0800FF18:
mov r1, r8
cmp r1, #0
beq _0800FF22
bl _call_via_r8
_0800FF22:
adds r0, r7, #0
bl sub_1001C
bl sub_D74
cmp r7, #0x1f
bne _0800FF50
ldr r0, _0800FF38 @ =0x0201A920
b _0800FF52
.align 2, 0
_0800FF34: .4byte 0x040000D4
_0800FF38: .4byte 0x0201A920
_0800FF3C: .4byte 0x80000100
_0800FF40: .4byte 0xFFFFFC00
_0800FF44: .4byte 0x81000200
_0800FF48: .4byte 0x80000200
_0800FF4C: .4byte gMain
_0800FF50:
ldr r0, _0800FF70 @ =0x0201AD20
_0800FF52:
str r0, [r4]
str r6, [r4, #4]
str r5, [r4, #8]
ldr r0, [r4, #8]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r7, #0x1f
bls _0800FF18
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0800FF70: .4byte 0x0201AD20
thumb_func_start sub_FF74
sub_FF74: @ 0x0800FF74
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r5, r0, #0
ldr r1, _0800FFDC @ =0x040000D4
movs r0, #0xa0
lsls r0, r0, #0x13
mov r8, r0
str r0, [r1]
ldr r3, _0800FFE0 @ =0x0201A520
str r3, [r1, #4]
ldr r4, _0800FFE4 @ =0x80000200
str r4, [r1, #8]
ldr r0, [r1, #8]
mov r2, sp
movs r0, #0
strh r0, [r2]
str r2, [r1]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r3, r2
str r0, [r1, #4]
ldr r0, _0800FFE8 @ =0x81000200
str r0, [r1, #8]
ldr r0, [r1, #8]
str r3, [r1]
movs r0, #0x80
lsls r0, r0, #4
adds r3, r3, r0
str r3, [r1, #4]
str r4, [r1, #8]
ldr r0, [r1, #8]
movs r7, #0
adds r6, r1, #0
_0800FFBA:
cmp r5, #0
beq _0800FFC2
bl _call_via_r5
_0800FFC2:
adds r0, r7, #0
bl sub_1001C
bl sub_D74
cmp r7, #0x1f
bne _0800FFF0
ldr r0, _0800FFEC @ =0x0201A920
str r0, [r6]
mov r2, r8
str r2, [r6, #4]
b _0800FFF8
.align 2, 0
_0800FFDC: .4byte 0x040000D4
_0800FFE0: .4byte 0x0201A520
_0800FFE4: .4byte 0x80000200
_0800FFE8: .4byte 0x81000200
_0800FFEC: .4byte 0x0201A920
_0800FFF0:
ldr r0, _08010018 @ =0x0201AD20
str r0, [r6]
mov r0, r8
str r0, [r6, #4]
_0800FFF8:
str r4, [r6, #8]
ldr r0, [r6, #8]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r7, #0x1f
bls _0800FFBA
bl sub_D74
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08010018: .4byte 0x0201AD20
thumb_func_start sub_1001C
sub_1001C: @ 0x0801001C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
add r1, sp, #0xc
movs r0, #0
strh r0, [r1]
movs r0, #2
strh r0, [r1, #2]
movs r0, #1
strh r0, [r1, #4]
movs r2, #3
strh r2, [r1, #6]
adds r0, r7, #0
ands r0, r2
lsls r0, r0, #1
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #0x17
lsrs r1, r0, #0x10
mov ip, r1
movs r1, #0x80
lsls r1, r1, #0x10
adds r0, r0, r1
lsrs r0, r0, #0x10
mov r8, r0
ldr r0, _080100D8 @ =0x0000FFFC
ands r7, r0
adds r0, r7, #4
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp ip, r8
bhs _08010160
add r5, sp, #8
ldr r0, _080100DC @ =0x0201A520
mov sb, r0
add r4, sp, #4
mov r6, sp
movs r1, #0xf8
lsls r1, r1, #7
mov sl, r1
_08010076:
mov r0, ip
lsls r3, r0, #1
mov r1, sb
adds r2, r3, r1
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5]
ldrh r1, [r2]
movs r0, #0xf8
lsls r0, r0, #2
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #0xa
strh r0, [r6]
movs r2, #0x80
lsls r2, r2, #3
add r2, sb
adds r2, r3, r2
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5, #2]
ldrh r1, [r2]
movs r0, #0xf8
lsls r0, r0, #2
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4, #2]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #0xa
strh r0, [r6, #2]
ldrh r1, [r6]
cmp r1, r0
bhs _080100E0
ldrh r0, [r6, #2]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r6]
b _080100EE
.align 2, 0
_080100D8: .4byte 0x0000FFFC
_080100DC: .4byte 0x0201A520
_080100E0:
ldrh r0, [r6]
ldrh r1, [r6, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r6]
_080100EE:
ldrh r1, [r4, #2]
ldrh r0, [r4]
cmp r0, r1
bhs _08010106
ldrh r0, [r4, #2]
ldrh r1, [r4]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r4]
b _08010114
_08010106:
ldrh r0, [r4]
ldrh r1, [r4, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r4]
_08010114:
ldrh r1, [r5, #2]
ldrh r0, [r5]
cmp r0, r1
bhs _0801012C
ldrh r0, [r5, #2]
ldrh r1, [r5]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r5]
b _0801013A
_0801012C:
ldrh r0, [r5]
ldrh r1, [r5, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r5]
_0801013A:
movs r2, #0x80
lsls r2, r2, #4
add r2, sb
adds r2, r3, r2
ldrh r1, [r6]
lsls r1, r1, #0xa
ldrh r0, [r4]
lsls r0, r0, #5
orrs r1, r0
ldrh r0, [r5]
orrs r1, r0
strh r1, [r2]
mov r0, ip
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov ip, r0
cmp ip, r8
blo _08010076
_08010160:
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_10170
sub_10170: @ 0x08010170
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
str r1, [sp, #0x10]
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
mov r8, r1
lsls r3, r3, #0x10
lsrs r3, r3, #0x10
mov ip, r3
ldr r1, _08010298 @ =0x040000D4
str r0, [r1]
ldr r4, _0801029C @ =0x0201A520
str r4, [r1, #4]
lsrs r2, r2, #0x11
movs r0, #0x80
lsls r0, r0, #0x18
orrs r0, r2
str r0, [r1, #8]
ldr r0, [r1, #8]
add r3, sp, #0xc
movs r0, #0
strh r0, [r3]
str r3, [r1]
movs r0, #0x80
lsls r0, r0, #3
adds r3, r4, r0
str r3, [r1, #4]
movs r0, #0x81
lsls r0, r0, #0x18
orrs r2, r0
str r2, [r1, #8]
ldr r0, [r1, #8]
movs r7, #0
cmp r7, r8
bhs _08010270
add r5, sp, #8
add r4, sp, #4
movs r1, #0xf8
lsls r1, r1, #2
mov sl, r1
mov r6, sp
movs r0, #0xf8
lsls r0, r0, #7
mov sb, r0
_080101D0:
lsls r3, r7, #1
ldr r1, _0801029C @ =0x0201A520
adds r2, r3, r1
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4]
ldrh r1, [r2]
mov r0, sb
ands r0, r1
lsrs r0, r0, #0xa
strh r0, [r6]
ldr r0, _080102A0 @ =0x0201A920
adds r2, r3, r0
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5, #2]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4, #2]
ldrh r1, [r2]
mov r0, sb
ands r0, r1
lsrs r1, r0, #0xa
strh r1, [r6, #2]
ldrh r0, [r6]
cmp r0, r1
bls _08010222
adds r1, r0, #0
mov r0, ip
muls r0, r1, r0
asrs r0, r0, #5
subs r1, r1, r0
_08010222:
strh r1, [r6]
ldrh r1, [r4, #2]
ldrh r0, [r4]
cmp r0, r1
bls _08010236
adds r1, r0, #0
mov r0, ip
muls r0, r1, r0
asrs r0, r0, #5
subs r1, r1, r0
_08010236:
strh r1, [r4]
ldrh r1, [r5, #2]
ldrh r0, [r5]
cmp r0, r1
bls _0801024A
adds r1, r0, #0
mov r0, ip
muls r0, r1, r0
asrs r0, r0, #5
subs r1, r1, r0
_0801024A:
strh r1, [r5]
ldr r1, _0801029C @ =0x0201A520
movs r0, #0x80
lsls r0, r0, #4
adds r2, r1, r0
adds r2, r3, r2
ldrh r1, [r6]
lsls r1, r1, #0xa
ldrh r0, [r4]
lsls r0, r0, #5
orrs r1, r0
ldrh r0, [r5]
orrs r1, r0
strh r1, [r2]
adds r0, r7, #1
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
cmp r7, r8
blo _080101D0
_08010270:
ldr r2, _08010298 @ =0x040000D4
ldr r1, _080102A4 @ =0x0201AD20
str r1, [r2]
ldr r0, [sp, #0x10]
str r0, [r2, #4]
mov r1, r8
lsrs r0, r1, #1
movs r1, #0x80
lsls r1, r1, #0x18
orrs r0, r1
str r0, [r2, #8]
ldr r0, [r2, #8]
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08010298: .4byte 0x040000D4
_0801029C: .4byte 0x0201A520
_080102A0: .4byte 0x0201A920
_080102A4: .4byte 0x0201AD20
thumb_func_start sub_102A8
sub_102A8: @ 0x080102A8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x14
str r1, [sp, #0x10]
lsls r2, r2, #0x10
lsrs r1, r2, #0x10
mov r8, r1
lsls r3, r3, #0x10
lsrs r7, r3, #0x10
ldr r1, _08010368 @ =0x040000D4
str r0, [r1]
ldr r4, _0801036C @ =0x0201A520
str r4, [r1, #4]
lsrs r2, r2, #0x11
movs r0, #0x80
lsls r0, r0, #0x18
orrs r0, r2
str r0, [r1, #8]
ldr r0, [r1, #8]
add r3, sp, #0xc
ldr r5, _08010370 @ =0x00007FFF
adds r0, r5, #0
strh r0, [r3]
str r3, [r1]
movs r3, #0x80
lsls r3, r3, #3
adds r0, r4, r3
str r0, [r1, #4]
movs r0, #0x81
lsls r0, r0, #0x18
orrs r2, r0
str r2, [r1, #8]
ldr r0, [r1, #8]
movs r5, #0
mov ip, r5
cmp ip, r8
bhs _080103F4
add r5, sp, #8
mov sb, r4
add r4, sp, #4
mov r6, sp
movs r0, #0xf8
lsls r0, r0, #7
mov sl, r0
_08010306:
mov r1, ip
lsls r3, r1, #1
mov r0, sb
adds r2, r3, r0
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5]
ldrh r1, [r2]
movs r0, #0xf8
lsls r0, r0, #2
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #0xa
strh r0, [r6]
movs r2, #0x80
lsls r2, r2, #3
add r2, sb
adds r2, r3, r2
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r5, #2]
ldrh r1, [r2]
movs r0, #0xf8
lsls r0, r0, #2
ands r0, r1
lsrs r0, r0, #5
strh r0, [r4, #2]
ldrh r1, [r2]
mov r0, sl
ands r0, r1
lsrs r0, r0, #0xa
strh r0, [r6, #2]
ldrh r1, [r6]
cmp r1, r0
bhs _08010374
ldrh r0, [r6, #2]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r6]
b _08010382
.align 2, 0
_08010368: .4byte 0x040000D4
_0801036C: .4byte 0x0201A520
_08010370: .4byte 0x00007FFF
_08010374:
ldrh r0, [r6]
ldrh r1, [r6, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r6]
_08010382:
ldrh r1, [r4, #2]
ldrh r0, [r4]
cmp r0, r1
bhs _0801039A
ldrh r0, [r4, #2]
ldrh r1, [r4]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r4]
b _080103A8
_0801039A:
ldrh r0, [r4]
ldrh r1, [r4, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r4]
_080103A8:
ldrh r1, [r5, #2]
ldrh r0, [r5]
cmp r0, r1
bhs _080103C0
ldrh r0, [r5, #2]
ldrh r1, [r5]
subs r0, r0, r1
muls r0, r7, r0
asrs r0, r0, #5
adds r1, r1, r0
strh r1, [r5]
b _080103CE
_080103C0:
ldrh r0, [r5]
ldrh r1, [r5, #2]
subs r1, r0, r1
muls r1, r7, r1
asrs r1, r1, #5
subs r0, r0, r1
strh r0, [r5]
_080103CE:
movs r2, #0x80
lsls r2, r2, #4
add r2, sb
adds r2, r3, r2
ldrh r1, [r6]
lsls r1, r1, #0xa
ldrh r0, [r4]
lsls r0, r0, #5
orrs r1, r0
ldrh r0, [r5]
orrs r1, r0
strh r1, [r2]
mov r0, ip
adds r0, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov ip, r0
cmp ip, r8
blo _08010306
_080103F4:
ldr r2, _0801041C @ =0x040000D4
ldr r1, _08010420 @ =0x0201AD20
str r1, [r2]
ldr r3, [sp, #0x10]
str r3, [r2, #4]
mov r5, r8
lsrs r0, r5, #1
movs r1, #0x80
lsls r1, r1, #0x18
orrs r0, r1
str r0, [r2, #8]
ldr r0, [r2, #8]
add sp, #0x14
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0801041C: .4byte 0x040000D4
_08010420: .4byte 0x0201AD20
thumb_func_start sub_10424
sub_10424: @ 0x08010424
push {r4, r5, r6, lr}
ldr r4, _08010470 @ =0x04000054
movs r3, #0x10
strh r3, [r4]
ldr r6, _08010474 @ =0x04000050
movs r2, #0x80
lsls r2, r2, #0x13
ldrh r1, [r2]
movs r0, #0xf8
lsls r0, r0, #5
ands r0, r1
lsrs r0, r0, #8
movs r1, #0xa0
orrs r0, r1
strh r0, [r6]
ldrh r1, [r2]
ldr r0, _08010478 @ =0x0000FF7F
ands r0, r1
strh r0, [r2]
ldr r1, _0801047C @ =gMain
ldrh r0, [r2]
movs r5, #0
strh r0, [r1, #0x16]
strh r3, [r4]
bl sub_D74
movs r0, #8
strh r0, [r4]
bl sub_D74
strh r5, [r4]
bl sub_D74
strh r5, [r6]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08010470: .4byte 0x04000054
_08010474: .4byte 0x04000050
_08010478: .4byte 0x0000FF7F
_0801047C: .4byte gMain
thumb_func_start sub_10480
sub_10480: @ 0x08010480
push {r4, r5, lr}
sub sp, #4
ldr r5, _080104F8 @ =0x04000054
movs r4, #0
strh r4, [r5]
ldr r2, _080104FC @ =0x04000050
movs r0, #0x80
lsls r0, r0, #0x13
ldrh r1, [r0]
movs r0, #0xf8
lsls r0, r0, #5
ands r0, r1
lsrs r0, r0, #8
movs r1, #0xa0
orrs r0, r1
strh r0, [r2]
strh r4, [r5]
bl sub_D74
movs r0, #8
strh r0, [r5]
bl sub_D74
movs r0, #0x10
strh r0, [r5]
bl sub_D74
mov r0, sp
strh r4, [r0]
ldr r1, _08010500 @ =0x040000D4
str r0, [r1]
movs r0, #0xc0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, _08010504 @ =0x8100C000
str r0, [r1, #8]
ldr r0, [r1, #8]
ldr r0, _08010508 @ =0x04000010
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
bl sub_D74
add sp, #4
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_080104F8: .4byte 0x04000054
_080104FC: .4byte 0x04000050
_08010500: .4byte 0x040000D4
_08010504: .4byte 0x8100C000
_08010508: .4byte 0x04000010
thumb_func_start sub_1050C
sub_1050C: @ 0x0801050C
movs r1, #0x80
lsls r1, r1, #0x13
ldrh r2, [r1]
ldr r0, _08010520 @ =0x0000FF7F
ands r0, r2
strh r0, [r1]
ldr r2, _08010524 @ =gMain
ldrh r0, [r1]
strh r0, [r2, #0x16]
bx lr
.align 2, 0
_08010520: .4byte 0x0000FF7F
_08010524: .4byte gMain
thumb_func_start sub_10528
sub_10528: @ 0x08010528
ldr r1, _08010540 @ =gMain
ldrh r0, [r1, #0x16]
movs r2, #0x80
orrs r0, r2
strh r0, [r1, #0x16]
movs r1, #0x80
lsls r1, r1, #0x13
ldrh r0, [r1]
orrs r0, r2
strh r0, [r1]
bx lr
.align 2, 0
_08010540: .4byte gMain
thumb_func_start sub_10544
sub_10544: @ 0x08010544
ldr r1, _08010580 @ =0x04000004
ldrh r2, [r1]
ldr r0, _08010584 @ =0x0000FFF7
ands r0, r2
strh r0, [r1]
ldrh r2, [r1]
ldr r0, _08010588 @ =0x0000FFDF
ands r0, r2
strh r0, [r1]
ldr r1, _0801058C @ =0x04000200
ldrh r2, [r1]
ldr r0, _08010590 @ =0x00003FFF
ands r0, r2
strh r0, [r1]
ldrh r2, [r1]
ldr r0, _08010594 @ =0x00003FFE
ands r0, r2
strh r0, [r1]
ldrh r0, [r1]
adds r1, r0, #0
cmp r1, #0
bne _08010574
ldr r0, _08010598 @ =0x04000208
strh r1, [r0]
_08010574:
ldr r0, _0801059C @ =0x04000202
ldrh r1, [r0]
movs r2, #1
orrs r1, r2
strh r1, [r0]
bx lr
.align 2, 0
_08010580: .4byte 0x04000004
_08010584: .4byte 0x0000FFF7
_08010588: .4byte 0x0000FFDF
_0801058C: .4byte 0x04000200
_08010590: .4byte 0x00003FFF
_08010594: .4byte 0x00003FFE
_08010598: .4byte 0x04000208
_0801059C: .4byte 0x04000202
thumb_func_start sub_105A0
sub_105A0: @ 0x080105A0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r4, [sp, #0x24]
mov ip, r4
ldr r4, [sp, #0x28]
mov sb, r4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
str r0, [sp]
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov sl, r1
movs r1, #0
cmp r1, sb
bge _08010602
lsls r0, r3, #5
adds r0, r0, r2
mov r8, r0
_080105CC:
movs r2, #0
adds r6, r1, #1
cmp r2, ip
bge _080105FA
ldr r7, _08010614 @ =0x03005C00
lsls r0, r1, #5
mov r1, r8
adds r5, r1, r0
ldr r1, [sp]
adds r4, r1, r0
mov r0, sl
lsls r3, r0, #0xc
_080105E4:
adds r0, r5, r2
lsls r0, r0, #1
adds r0, r0, r7
adds r1, r2, r4
orrs r1, r3
strh r1, [r0]
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, ip
blt _080105E4
_080105FA:
lsls r0, r6, #0x10
lsrs r1, r0, #0x10
cmp r1, sb
blt _080105CC
_08010602:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08010614: .4byte 0x03005C00
thumb_func_start sub_10618
sub_10618: @ 0x08010618
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
adds r4, r1, #0
ldr r7, [sp, #0x20]
ldr r0, [sp, #0x24]
mov ip, r0
movs r1, #0
cmp r1, ip
bge _08010678
ldr r0, _08010688 @ =0x03005C00
mov sl, r0
lsls r0, r3, #5
adds r0, r0, r2
mov sb, r0
lsls r0, r4, #5
adds r0, r0, r5
mov r8, r0
_08010642:
movs r2, #0
adds r6, r1, #1
cmp r2, r7
bge _08010670
mov r4, sl
lsls r0, r1, #5
mov r1, sb
adds r5, r1, r0
mov r1, r8
adds r3, r1, r0
_08010656:
adds r1, r5, r2
lsls r1, r1, #1
adds r1, r1, r4
adds r0, r3, r2
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r0, r2, #1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, r7
blt _08010656
_08010670:
lsls r0, r6, #0x10
lsrs r1, r0, #0x10
cmp r1, ip
blt _08010642
_08010678:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_08010688: .4byte 0x03005C00