pokeheartgold/asm/unk_02004A44.s
2021-09-04 16:01:18 -04:00

2567 lines
50 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.rodata
_020F5710:
.byte 0x00
_020F5711:
.byte 0x2A, 0x00, 0x00, 0x40, 0x6B, 0x00, 0x00, 0x20, 0x2F, 0x00, 0x00, 0x40, 0x77, 0x00, 0x00
.byte 0x00, 0x3E, 0x00, 0x00, 0x30, 0x7F, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x30, 0x75, 0x00, 0x00
_020F5730:
.byte 0xEC, 0x03
_020F5732:
.byte 0xC2, 0x04, 0xED, 0x03, 0xC3, 0x04, 0xEE, 0x03, 0xC4, 0x04, 0xEF, 0x03, 0xC5, 0x04
.byte 0xF0, 0x03, 0xC6, 0x04, 0xF3, 0x03, 0xC7, 0x04, 0xF4, 0x03, 0xC8, 0x04, 0xF5, 0x03, 0xC9, 0x04
.byte 0xF6, 0x03, 0xCA, 0x04, 0xF7, 0x03, 0xCB, 0x04, 0xFA, 0x03, 0xCE, 0x04, 0xFB, 0x03, 0xCF, 0x04
.byte 0xFC, 0x03, 0xD0, 0x04, 0xFD, 0x03, 0xD1, 0x04, 0xFE, 0x03, 0xD2, 0x04, 0xFF, 0x03, 0xD3, 0x04
.byte 0x00, 0x04, 0xD4, 0x04, 0x01, 0x04, 0xD5, 0x04, 0x02, 0x04, 0xD6, 0x04, 0x03, 0x04, 0xD7, 0x04
.byte 0x04, 0x04, 0xD8, 0x04, 0x05, 0x04, 0xD9, 0x04, 0x06, 0x04, 0xDA, 0x04, 0x07, 0x04, 0xDB, 0x04
.byte 0x08, 0x04, 0xDC, 0x04, 0x09, 0x04, 0xDD, 0x04, 0x0A, 0x04, 0xDE, 0x04, 0x0B, 0x04, 0xDF, 0x04
.byte 0x0C, 0x04, 0xE0, 0x04, 0x0D, 0x04, 0xE1, 0x04, 0x0E, 0x04, 0xE2, 0x04, 0x0F, 0x04, 0xE3, 0x04
.byte 0x10, 0x04, 0xE4, 0x04, 0x11, 0x04, 0xE5, 0x04, 0x12, 0x04, 0xE6, 0x04, 0x13, 0x04, 0xE7, 0x04
.byte 0x14, 0x04, 0xE8, 0x04, 0x15, 0x04, 0xE9, 0x04, 0x16, 0x04, 0xEA, 0x04, 0x17, 0x04, 0xEB, 0x04
.byte 0x18, 0x04, 0xEC, 0x04, 0x19, 0x04, 0xED, 0x04, 0x1A, 0x04, 0xEE, 0x04, 0x1B, 0x04, 0xEF, 0x04
.byte 0x1C, 0x04, 0xF0, 0x04, 0x1D, 0x04, 0xF1, 0x04, 0x1E, 0x04, 0xF2, 0x04, 0x1F, 0x04, 0xF3, 0x04
.byte 0x20, 0x04, 0xF4, 0x04, 0x21, 0x04, 0xF5, 0x04, 0x22, 0x04, 0xF6, 0x04, 0x23, 0x04, 0xF7, 0x04
.byte 0x24, 0x04, 0xF8, 0x04, 0x25, 0x04, 0xF9, 0x04, 0x26, 0x04, 0xFA, 0x04, 0x27, 0x04, 0xFB, 0x04
.byte 0x28, 0x04, 0xFC, 0x04, 0x29, 0x04, 0xFD, 0x04, 0x2A, 0x04, 0xFE, 0x04, 0x2B, 0x04, 0xFF, 0x04
.byte 0x2C, 0x04, 0x00, 0x05, 0x2D, 0x04, 0x01, 0x05, 0x2E, 0x04, 0x02, 0x05, 0x2F, 0x04, 0x03, 0x05
.byte 0x30, 0x04, 0x04, 0x05, 0x31, 0x04, 0x05, 0x05, 0x32, 0x04, 0x06, 0x05, 0x33, 0x04, 0x07, 0x05
.byte 0x34, 0x04, 0x08, 0x05, 0x35, 0x04, 0x09, 0x05, 0x36, 0x04, 0x0A, 0x05, 0x37, 0x04, 0x0B, 0x05
.byte 0x38, 0x04, 0x0C, 0x05, 0x39, 0x04, 0x0D, 0x05, 0x3A, 0x04, 0x0E, 0x05, 0x3B, 0x04, 0x0F, 0x05
.byte 0x3C, 0x04, 0x10, 0x05, 0x3D, 0x04, 0x11, 0x05, 0x3E, 0x04, 0x12, 0x05, 0x3F, 0x04, 0x13, 0x05
.byte 0x40, 0x04, 0x14, 0x05, 0x41, 0x04, 0x15, 0x05, 0x42, 0x04, 0x16, 0x05, 0x44, 0x04, 0x18, 0x05
.byte 0x45, 0x04, 0x19, 0x05, 0x46, 0x04, 0x1A, 0x05, 0x47, 0x04, 0x1B, 0x05, 0x48, 0x04, 0x1C, 0x05
.byte 0x49, 0x04, 0x1D, 0x05, 0x4A, 0x04, 0x1E, 0x05, 0x4B, 0x04, 0x1F, 0x05, 0x4C, 0x04, 0x20, 0x05
.byte 0x4D, 0x04, 0x21, 0x05, 0x4E, 0x04, 0x22, 0x05, 0x4F, 0x04, 0x23, 0x05, 0x50, 0x04, 0x24, 0x05
.byte 0x51, 0x04, 0x25, 0x05, 0x52, 0x04, 0x26, 0x05, 0x53, 0x04, 0x27, 0x05, 0x54, 0x04, 0x28, 0x05
.byte 0x55, 0x04, 0x29, 0x05, 0x56, 0x04, 0x2A, 0x05, 0x57, 0x04, 0x2B, 0x05, 0x58, 0x04, 0x2C, 0x05
.byte 0x59, 0x04, 0x2D, 0x05, 0x5A, 0x04, 0x2E, 0x05, 0x5B, 0x04, 0x2F, 0x05, 0x5C, 0x04, 0x30, 0x05
.byte 0x5D, 0x04, 0x31, 0x05, 0x5E, 0x04, 0x32, 0x05, 0x5F, 0x04, 0x33, 0x05, 0x60, 0x04, 0x34, 0x05
.byte 0x61, 0x04, 0x35, 0x05, 0x62, 0x04, 0x36, 0x05, 0x63, 0x04, 0x37, 0x05, 0x64, 0x04, 0x38, 0x05
.byte 0x65, 0x04, 0x39, 0x05, 0x66, 0x04, 0x3A, 0x05, 0x67, 0x04, 0x3B, 0x05, 0x68, 0x04, 0x3C, 0x05
.byte 0x69, 0x04, 0x3D, 0x05, 0x6A, 0x04, 0x3E, 0x05, 0x6B, 0x04, 0x3F, 0x05, 0x6E, 0x04, 0x40, 0x05
.byte 0x6F, 0x04, 0x41, 0x05, 0x70, 0x04, 0x42, 0x05, 0x71, 0x04, 0x43, 0x05, 0x72, 0x04, 0x44, 0x05
.byte 0x73, 0x04, 0x45, 0x05, 0x74, 0x04, 0x46, 0x05, 0x75, 0x04, 0x47, 0x05, 0x82, 0x04, 0x48, 0x05
.byte 0x85, 0x04, 0x49, 0x05, 0x86, 0x04, 0x4A, 0x05, 0x87, 0x04, 0x4B, 0x05, 0xC0, 0x04, 0x4C, 0x05
.bss
_021D05E8:
.space 0x10
_021D05F8:
.space 0x28
_021D0620:
.space 0x7D0
.text
thumb_func_start sub_02004A44
sub_02004A44: ; 0x02004A44
push {r4, lr}
add r4, r0, #0
mov r0, #5
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02004A44
thumb_func_start sub_02004A54
sub_02004A54: ; 0x02004A54
push {r3, lr}
mov r0, #5
bl sub_02004400
ldrb r0, [r0]
pop {r3, pc}
thumb_func_end sub_02004A54
thumb_func_start sub_02004A60
sub_02004A60: ; 0x02004A60
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0xa
bl sub_02004400
add r4, r0, #0
ldr r0, _02004A8C ; =0x000004C1
cmp r5, r0
bls _02004A82
add r0, r5, #0
bl sub_02004AB8
add r0, r5, #0
bl sub_02005C98
strh r0, [r4]
b _02004A84
_02004A82:
strh r5, [r4]
_02004A84:
mov r0, #0
bl sub_02004A9C
pop {r3, r4, r5, pc}
.balign 4, 0
_02004A8C: .word 0x000004C1
thumb_func_end sub_02004A60
thumb_func_start sub_02004A90
sub_02004A90: ; 0x02004A90
push {r3, lr}
mov r0, #0xa
bl sub_02004400
ldrh r0, [r0]
pop {r3, pc}
thumb_func_end sub_02004A90
thumb_func_start sub_02004A9C
sub_02004A9C: ; 0x02004A9C
push {r4, lr}
add r4, r0, #0
mov r0, #0xb
bl sub_02004400
strh r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02004A9C
thumb_func_start sub_02004AAC
sub_02004AAC: ; 0x02004AAC
push {r3, lr}
mov r0, #0xb
bl sub_02004400
ldrh r0, [r0]
pop {r3, pc}
thumb_func_end sub_02004AAC
thumb_func_start sub_02004AB8
sub_02004AB8: ; 0x02004AB8
push {r4, lr}
add r4, r0, #0
mov r0, #0x3a
bl sub_02004400
strh r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02004AB8
thumb_func_start sub_02004AC8
sub_02004AC8: ; 0x02004AC8
push {r4, lr}
add r4, r0, #0
mov r0, #0x20
bl sub_02004400
strh r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02004AC8
thumb_func_start sub_02004AD8
sub_02004AD8: ; 0x02004AD8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x15
bl sub_02004400
add r4, r0, #0
mov r0, #0x16
bl sub_02004400
cmp r5, #0x33
bhs _02004AF6
strb r5, [r4]
mov r1, #0
strb r1, [r0]
pop {r3, r4, r5, pc}
_02004AF6:
strb r5, [r0]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_02004AD8
thumb_func_start sub_02004AFC
sub_02004AFC: ; 0x02004AFC
push {r4, lr}
add r4, r0, #0
mov r0, #0x15
bl sub_02004400
mov r0, #0x16
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
thumb_func_end sub_02004AFC
thumb_func_start sub_02004B10
sub_02004B10: ; 0x02004B10
push {r4, lr}
mov r0, #0x16
bl sub_02004400
add r4, r0, #0
bl sub_02005318
mov r0, #0
strb r0, [r4]
pop {r4, pc}
thumb_func_end sub_02004B10
thumb_func_start sub_02004B24
sub_02004B24: ; 0x02004B24
push {r4, lr}
cmp r0, #0x4b
bls _02004B2C
b _02004E42
_02004B2C:
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02004B38: ; jump table
.short _02004E42 - _02004B38 - 2 ; case 0
.short _02004BD0 - _02004B38 - 2 ; case 1
.short _02004C76 - _02004B38 - 2 ; case 2
.short _02004C94 - _02004B38 - 2 ; case 3
.short _02004C9E - _02004B38 - 2 ; case 4
.short _02004CA8 - _02004B38 - 2 ; case 5
.short _02004CBC - _02004B38 - 2 ; case 6
.short _02004D32 - _02004B38 - 2 ; case 7
.short _02004CC6 - _02004B38 - 2 ; case 8
.short _02004BD0 - _02004B38 - 2 ; case 9
.short _02004BD0 - _02004B38 - 2 ; case 10
.short _02004CB2 - _02004B38 - 2 ; case 11
.short _02004CD0 - _02004B38 - 2 ; case 12
.short _02004C76 - _02004B38 - 2 ; case 13
.short _02004C6C - _02004B38 - 2 ; case 14
.short _02004CEA - _02004B38 - 2 ; case 15
.short _02004CDA - _02004B38 - 2 ; case 16
.short _02004BD0 - _02004B38 - 2 ; case 17
.short _02004E42 - _02004B38 - 2 ; case 18
.short _02004BDA - _02004B38 - 2 ; case 19
.short _02004BD0 - _02004B38 - 2 ; case 20
.short _02004C80 - _02004B38 - 2 ; case 21
.short _02004C9E - _02004B38 - 2 ; case 22
.short _02004BD0 - _02004B38 - 2 ; case 23
.short _02004CF4 - _02004B38 - 2 ; case 24
.short _02004D04 - _02004B38 - 2 ; case 25
.short _02004E42 - _02004B38 - 2 ; case 26
.short _02004E42 - _02004B38 - 2 ; case 27
.short _02004E42 - _02004B38 - 2 ; case 28
.short _02004E42 - _02004B38 - 2 ; case 29
.short _02004E42 - _02004B38 - 2 ; case 30
.short _02004E42 - _02004B38 - 2 ; case 31
.short _02004E42 - _02004B38 - 2 ; case 32
.short _02004E42 - _02004B38 - 2 ; case 33
.short _02004E42 - _02004B38 - 2 ; case 34
.short _02004E42 - _02004B38 - 2 ; case 35
.short _02004E42 - _02004B38 - 2 ; case 36
.short _02004E42 - _02004B38 - 2 ; case 37
.short _02004E42 - _02004B38 - 2 ; case 38
.short _02004E42 - _02004B38 - 2 ; case 39
.short _02004E42 - _02004B38 - 2 ; case 40
.short _02004E42 - _02004B38 - 2 ; case 41
.short _02004E42 - _02004B38 - 2 ; case 42
.short _02004E42 - _02004B38 - 2 ; case 43
.short _02004E42 - _02004B38 - 2 ; case 44
.short _02004E42 - _02004B38 - 2 ; case 45
.short _02004E42 - _02004B38 - 2 ; case 46
.short _02004E42 - _02004B38 - 2 ; case 47
.short _02004E42 - _02004B38 - 2 ; case 48
.short _02004E42 - _02004B38 - 2 ; case 49
.short _02004E42 - _02004B38 - 2 ; case 50
.short _02004D14 - _02004B38 - 2 ; case 51
.short _02004D28 - _02004B38 - 2 ; case 52
.short _02004D32 - _02004B38 - 2 ; case 53
.short _02004D3C - _02004B38 - 2 ; case 54
.short _02004D46 - _02004B38 - 2 ; case 55
.short _02004D56 - _02004B38 - 2 ; case 56
.short _02004D60 - _02004B38 - 2 ; case 57
.short _02004D6A - _02004B38 - 2 ; case 58
.short _02004D74 - _02004B38 - 2 ; case 59
.short _02004D7E - _02004B38 - 2 ; case 60
.short _02004D88 - _02004B38 - 2 ; case 61
.short _02004D92 - _02004B38 - 2 ; case 62
.short _02004D9C - _02004B38 - 2 ; case 63
.short _02004D1E - _02004B38 - 2 ; case 64
.short _02004D46 - _02004B38 - 2 ; case 65
.short _02004DA6 - _02004B38 - 2 ; case 66
.short _02004D28 - _02004B38 - 2 ; case 67
.short _02004DC6 - _02004B38 - 2 ; case 68
.short _02004DB6 - _02004B38 - 2 ; case 69
.short _02004DDA - _02004B38 - 2 ; case 70
.short _02004DEA - _02004B38 - 2 ; case 71
.short _02004DFA - _02004B38 - 2 ; case 72
.short _02004E0E - _02004B38 - 2 ; case 73
.short _02004E22 - _02004B38 - 2 ; case 74
.short _02004E32 - _02004B38 - 2 ; case 75
_02004BD0:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004BDA:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
ldr r0, _02004E4C ; =0x0000058F
mov r1, #1
bl sub_02004784
ldr r0, _02004E50 ; =0x00000591
mov r1, #1
bl sub_02004784
ldr r0, _02004E54 ; =0x00000593
mov r1, #1
bl sub_02004784
ldr r0, _02004E58 ; =0x0000058E
mov r1, #1
bl sub_02004784
ldr r0, _02004E5C ; =0x00000594
mov r1, #1
bl sub_02004784
ldr r0, _02004E60 ; =0x00000596
mov r1, #1
bl sub_02004784
ldr r0, _02004E64 ; =0x0000064F
mov r1, #1
bl sub_02004784
ldr r0, _02004E68 ; =0x00000582
mov r1, #1
bl sub_02004784
ldr r0, _02004E6C ; =0x00000722
mov r1, #1
bl sub_02004784
ldr r0, _02004E70 ; =0x00000583
mov r1, #1
bl sub_02004784
ldr r0, _02004E74 ; =0x00000584
mov r1, #1
bl sub_02004784
ldr r0, _02004E78 ; =0x00000585
mov r1, #1
bl sub_02004784
ldr r0, _02004E7C ; =0x00000587
mov r1, #1
bl sub_02004784
ldr r0, _02004E80 ; =0x0000063D
mov r1, #1
bl sub_02004784
ldr r0, _02004E84 ; =0x00000642
mov r1, #1
bl sub_02004784
ldr r0, _02004E88 ; =0x0000058A
mov r1, #1
bl sub_02004784
ldr r0, _02004E8C ; =0x00000581
mov r1, #1
bl sub_02004784
b _02004E48
_02004C6C:
mov r0, #0xe
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004C76:
mov r0, #2
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004C80:
mov r0, #3
lsl r0, r0, #8
bl sub_020047C8
mov r0, #3
lsl r0, r0, #8
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004C94:
mov r0, #0xd
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004C9E:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CA8:
mov r0, #2
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CB2:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CBC:
mov r0, #0xb
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CC6:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CD0:
mov r0, #0xe
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CDA:
mov r0, #1
bl GF_Snd_LoadGroup
mov r0, #8
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CEA:
mov r0, #1
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004CF4:
ldr r0, _02004E90 ; =0x00000302
bl sub_020047C8
ldr r0, _02004E90 ; =0x00000302
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004D04:
ldr r0, _02004E94 ; =0x00000303
bl sub_020047C8
ldr r0, _02004E94 ; =0x00000303
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004D14:
mov r0, #3
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D1E:
mov r0, #6
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D28:
mov r0, #5
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D32:
mov r0, #9
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D3C:
mov r0, #0xa
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D46:
ldr r0, _02004E98 ; =0x000002F5
bl sub_020047C8
ldr r0, _02004E98 ; =0x000002F5
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004D56:
mov r0, #0xc
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D60:
mov r0, #7
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D6A:
mov r0, #8
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D74:
mov r0, #0xf
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D7E:
mov r0, #3
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D88:
mov r0, #5
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D92:
mov r0, #0xf
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004D9C:
mov r0, #4
bl GF_Snd_LoadGroup
add r4, r0, #0
b _02004E48
_02004DA6:
ldr r0, _02004E9C ; =0x000002FF
bl sub_020047C8
ldr r0, _02004E9C ; =0x000002FF
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004DB6:
ldr r0, _02004EA0 ; =0x00000301
bl sub_020047C8
ldr r0, _02004EA0 ; =0x00000301
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004DC6:
mov r0, #0xbf
lsl r0, r0, #2
bl sub_020047C8
mov r0, #0xbf
lsl r0, r0, #2
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004DDA:
ldr r0, _02004EA4 ; =0x00000305
bl sub_020047C8
ldr r0, _02004EA4 ; =0x00000305
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004DEA:
ldr r0, _02004EA8 ; =0x00000306
bl sub_020047C8
ldr r0, _02004EA8 ; =0x00000306
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004DFA:
mov r0, #0xc1
lsl r0, r0, #2
bl sub_020047C8
mov r0, #0xc1
lsl r0, r0, #2
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004E0E:
mov r0, #0xc2
lsl r0, r0, #2
bl sub_020047C8
mov r0, #0xc2
lsl r0, r0, #2
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004E22:
ldr r0, _02004EAC ; =0x00000307
bl sub_020047C8
ldr r0, _02004EAC ; =0x00000307
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004E32:
ldr r0, _02004EB0 ; =0x00000309
bl sub_020047C8
ldr r0, _02004EB0 ; =0x00000309
bl sub_020047A8
add r4, r0, #0
b _02004E48
_02004E42:
bl GF_AssertFail
mov r4, #0
_02004E48:
add r0, r4, #0
pop {r4, pc}
.balign 4, 0
_02004E4C: .word 0x0000058F
_02004E50: .word 0x00000591
_02004E54: .word 0x00000593
_02004E58: .word 0x0000058E
_02004E5C: .word 0x00000594
_02004E60: .word 0x00000596
_02004E64: .word 0x0000064F
_02004E68: .word 0x00000582
_02004E6C: .word 0x00000722
_02004E70: .word 0x00000583
_02004E74: .word 0x00000584
_02004E78: .word 0x00000585
_02004E7C: .word 0x00000587
_02004E80: .word 0x0000063D
_02004E84: .word 0x00000642
_02004E88: .word 0x0000058A
_02004E8C: .word 0x00000581
_02004E90: .word 0x00000302
_02004E94: .word 0x00000303
_02004E98: .word 0x000002F5
_02004E9C: .word 0x000002FF
_02004EA0: .word 0x00000301
_02004EA4: .word 0x00000305
_02004EA8: .word 0x00000306
_02004EAC: .word 0x00000307
_02004EB0: .word 0x00000309
thumb_func_end sub_02004B24
thumb_func_start sub_02004EB4
sub_02004EB4: ; 0x02004EB4
ldr r3, _02004EC0 ; =sub_02004EC4
add r1, r0, #0
mov r0, #4
mov r2, #1
bx r3
nop
_02004EC0: .word sub_02004EC4
thumb_func_end sub_02004EB4
thumb_func_start sub_02004EC4
sub_02004EC4: ; 0x02004EC4
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r4, r0, #0
mov r0, #0x15
add r5, r1, #0
add r6, r2, #0
bl sub_02004400
str r0, [sp]
mov r0, #0x16
bl sub_02004400
str r0, [sp, #4]
mov r0, #0xe
bl sub_02004400
add r7, r0, #0
cmp r4, #0x33
bhs _02004EF8
ldr r0, [sp]
ldrb r0, [r0]
cmp r0, r4
bne _02004F06
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02004EF8:
ldr r0, [sp, #4]
ldrb r0, [r0]
cmp r0, r4
bne _02004F06
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02004F06:
add r0, r4, #0
bl sub_02004AD8
cmp r4, #0x4a
bls _02004F12
b _02005054
_02004F12:
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02004F1E: ; jump table
.short _02005054 - _02004F1E - 2 ; case 0
.short _02005006 - _02004F1E - 2 ; case 1
.short _0200502A - _02004F1E - 2 ; case 2
.short _0200503C - _02004F1E - 2 ; case 3
.short _02004FB4 - _02004F1E - 2 ; case 4
.short _02004FC8 - _02004F1E - 2 ; case 5
.short _02004FDC - _02004F1E - 2 ; case 6
.short _02004FE6 - _02004F1E - 2 ; case 7
.short _0200503C - _02004F1E - 2 ; case 8
.short _0200503C - _02004F1E - 2 ; case 9
.short _0200503C - _02004F1E - 2 ; case 10
.short _02004FD2 - _02004F1E - 2 ; case 11
.short _0200503C - _02004F1E - 2 ; case 12
.short _0200503C - _02004F1E - 2 ; case 13
.short _02005018 - _02004F1E - 2 ; case 14
.short _0200503C - _02004F1E - 2 ; case 15
.short _0200503C - _02004F1E - 2 ; case 16
.short _0200503C - _02004F1E - 2 ; case 17
.short _0200503C - _02004F1E - 2 ; case 18
.short _0200503C - _02004F1E - 2 ; case 19
.short _0200503C - _02004F1E - 2 ; case 20
.short _0200503C - _02004F1E - 2 ; case 21
.short _02005048 - _02004F1E - 2 ; case 22
.short _0200503C - _02004F1E - 2 ; case 23
.short _0200503C - _02004F1E - 2 ; case 24
.short _0200503C - _02004F1E - 2 ; case 25
.short _02005054 - _02004F1E - 2 ; case 26
.short _02005054 - _02004F1E - 2 ; case 27
.short _02005054 - _02004F1E - 2 ; case 28
.short _02005054 - _02004F1E - 2 ; case 29
.short _02005054 - _02004F1E - 2 ; case 30
.short _02005054 - _02004F1E - 2 ; case 31
.short _02005054 - _02004F1E - 2 ; case 32
.short _02005054 - _02004F1E - 2 ; case 33
.short _02005054 - _02004F1E - 2 ; case 34
.short _02005054 - _02004F1E - 2 ; case 35
.short _02005054 - _02004F1E - 2 ; case 36
.short _02005054 - _02004F1E - 2 ; case 37
.short _02005054 - _02004F1E - 2 ; case 38
.short _02005054 - _02004F1E - 2 ; case 39
.short _02005054 - _02004F1E - 2 ; case 40
.short _02005054 - _02004F1E - 2 ; case 41
.short _02005054 - _02004F1E - 2 ; case 42
.short _02005054 - _02004F1E - 2 ; case 43
.short _02005054 - _02004F1E - 2 ; case 44
.short _02005054 - _02004F1E - 2 ; case 45
.short _02005054 - _02004F1E - 2 ; case 46
.short _02005054 - _02004F1E - 2 ; case 47
.short _02005054 - _02004F1E - 2 ; case 48
.short _02005054 - _02004F1E - 2 ; case 49
.short _02005054 - _02004F1E - 2 ; case 50
.short _02004FF0 - _02004F1E - 2 ; case 51
.short _02004FF0 - _02004F1E - 2 ; case 52
.short _02004FF0 - _02004F1E - 2 ; case 53
.short _02004FF0 - _02004F1E - 2 ; case 54
.short _02004FF0 - _02004F1E - 2 ; case 55
.short _02004FF0 - _02004F1E - 2 ; case 56
.short _02004FF0 - _02004F1E - 2 ; case 57
.short _02004FF0 - _02004F1E - 2 ; case 58
.short _02004FF0 - _02004F1E - 2 ; case 59
.short _02004FF0 - _02004F1E - 2 ; case 60
.short _02004FF0 - _02004F1E - 2 ; case 61
.short _02004FF0 - _02004F1E - 2 ; case 62
.short _02004FF0 - _02004F1E - 2 ; case 63
.short _02004FF0 - _02004F1E - 2 ; case 64
.short _02004FF0 - _02004F1E - 2 ; case 65
.short _02004FF0 - _02004F1E - 2 ; case 66
.short _02004FF0 - _02004F1E - 2 ; case 67
.short _02004FF8 - _02004F1E - 2 ; case 68
.short _02004FF0 - _02004F1E - 2 ; case 69
.short _02004FF0 - _02004F1E - 2 ; case 70
.short _02004FF0 - _02004F1E - 2 ; case 71
.short _02004FF0 - _02004F1E - 2 ; case 72
.short _0200503C - _02004F1E - 2 ; case 73
.short _02004FF0 - _02004F1E - 2 ; case 74
_02004FB4:
mov r0, #0
bl sub_02005AF8
add r0, r5, #0
add r1, r6, #0
bl sub_0200508C
mov r0, #0
strh r0, [r7]
b _0200505A
_02004FC8:
add r0, r5, #0
add r1, r6, #0
bl sub_02005228
b _0200505A
_02004FD2:
add r0, r5, #0
add r1, r6, #0
bl sub_02005260
b _0200505A
_02004FDC:
add r0, r5, #0
add r1, r6, #0
bl sub_02005280
b _0200505A
_02004FE6:
add r0, r5, #0
add r1, r6, #0
bl sub_020052A4
b _0200505A
_02004FF0:
add r0, r4, #0
bl sub_020052C8
b _0200505A
_02004FF8:
add r0, r4, #0
bl sub_020052C8
add r0, r5, #0
bl sub_02005D48
b _0200505A
_02005006:
mov r0, #1
bl sub_02005AF8
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl sub_020052E4
b _0200505A
_02005018:
mov r0, #2
bl sub_02005AF8
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl sub_020052E4
b _0200505A
_0200502A:
mov r0, #0
bl sub_02005AF8
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl sub_020052E4
b _0200505A
_0200503C:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl sub_020052E4
b _0200505A
_02005048:
add r0, r4, #0
add r1, r5, #0
add r2, r6, #0
bl sub_020052E4
b _0200505A
_02005054:
add sp, #8
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0200505A:
mov r0, #1
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_02004EC4
thumb_func_start sub_02005060
sub_02005060: ; 0x02005060
push {r4, lr}
add r4, r0, #0
mov r0, #0x18
bl sub_02004400
ldr r0, [r0]
bl sub_02004714
mov r0, #0x19
bl sub_02004400
bl GF_Snd_SaveState
add r0, r4, #0
bl sub_02004B24
mov r0, #0x1a
bl sub_02004400
bl GF_Snd_SaveState
pop {r4, pc}
thumb_func_end sub_02005060
thumb_func_start sub_0200508C
sub_0200508C: ; 0x0200508C
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
mov r0, #0xc
bl sub_02004400
add r6, r0, #0
mov r0, #0x18
bl sub_02004400
mov r0, #0x20
bl sub_02004400
mov r0, #0
bl GetSoundPlayer
bl sub_020054F0
add r7, r0, #0
lsl r0, r7, #0x10
lsr r4, r0, #0x10
ldr r0, _02005144 ; =0x000004C1
cmp r7, r0
ble _020050C2
add r0, r4, #0
bl sub_02005C98
add r4, r0, #0
_020050C2:
ldrb r0, [r6]
cmp r0, #0
bne _020050D6
cmp r4, r5
bne _020050D6
bl sub_02004AAC
ldr r1, _02005148 ; =0x000003F5
cmp r0, r1
bne _02005142
_020050D6:
mov r0, #1
bl sub_020059E0
ldr r0, _0200514C ; =_021D05E8
ldr r1, [r0, #0xc]
cmp r1, #0
beq _020050EA
ldr r0, [r0, #4]
cmp r0, #0
bne _020050F4
_020050EA:
bl sub_02005FD8
ldr r0, _0200514C ; =_021D05E8
mov r1, #1
str r1, [r0, #4]
_020050F4:
cmp r4, r5
beq _02005104
mov r0, #1
mov r1, #0
bl sub_020053A8
bl sub_02005FA0
_02005104:
ldrb r0, [r6]
cmp r0, #1
bne _0200513C
mov r0, #2
bl sub_02005328
bl sub_02004714
mov r0, #4
bl sub_02004B24
mov r0, #0x1a
bl sub_02004400
bl GF_Snd_SaveState
cmp r4, r5
beq _02005130
mov r0, #1
mov r1, #0
bl sub_020053A8
_02005130:
lsl r1, r7, #0x10
add r0, r5, #0
lsr r1, r1, #0x10
bl sub_02005150
pop {r3, r4, r5, r6, r7, pc}
_0200513C:
add r0, r5, #0
bl sub_02005D48
_02005142:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02005144: .word 0x000004C1
_02005148: .word 0x000003F5
_0200514C: .word _021D05E8
thumb_func_end sub_0200508C
thumb_func_start sub_02005150
sub_02005150: ; 0x02005150
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x20
bl sub_02004400
add r4, r0, #0
ldrh r0, [r4]
bl sub_02005504
mov r1, #0xaf
lsl r1, r1, #2
cmp r0, r1
bne _02005178
add r0, r5, #0
mov r1, #4
bl sub_02004784
bl GF_AssertFail
b _02005180
_02005178:
ldrh r0, [r4]
mov r1, #6
bl sub_02004784
_02005180:
mov r0, #0x1b
bl sub_02004400
bl GF_Snd_SaveState
mov r0, #1
mov r1, #0
bl sub_020053A8
mov r0, #0x7f
mov r1, #0x28
mov r2, #0
bl sub_02005F10
mov r0, #0
bl sub_020059E0
pop {r3, r4, r5, pc}
thumb_func_end sub_02005150
thumb_func_start sub_020051A4
sub_020051A4: ; 0x020051A4
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
mov r0, #0x13
add r5, r1, #0
bl sub_02004400
add r6, r0, #0
mov r0, #0x20
bl sub_02004400
add r4, r0, #0
ldrb r0, [r6]
cmp r0, #1
beq _020051C4
cmp r5, #0
bne _02005224
_020051C4:
mov r0, #1
bl sub_02005328
bl sub_02004714
mov r0, #0
bl sub_02004AFC
ldrh r0, [r4]
mov r1, #2
bl sub_02004784
mov r0, #0x19
bl sub_02004400
bl GF_Snd_SaveState
mov r0, #4
bl sub_02004B24
mov r0, #0x1a
bl sub_02004400
bl GF_Snd_SaveState
ldrh r0, [r4]
bl sub_02005504
mov r1, #0xaf
lsl r1, r1, #2
cmp r0, r1
bne _02005212
add r0, r7, #0
mov r1, #4
bl sub_02004784
bl GF_AssertFail
b _0200521A
_02005212:
ldrh r0, [r4]
mov r1, #4
bl sub_02004784
_0200521A:
mov r0, #0x1b
bl sub_02004400
bl GF_Snd_SaveState
_02005224:
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_020051A4
thumb_func_start sub_02005228
sub_02005228: ; 0x02005228
push {r4, lr}
add r4, r0, #0
mov r0, #0x18
bl sub_02004400
bl sub_02005B20
mov r0, #2
bl sub_02005328
bl sub_02004714
mov r0, #5
bl sub_02004B24
mov r0, #0x1a
bl sub_02004400
bl GF_Snd_SaveState
mov r0, #1
bl sub_020059E0
add r0, r4, #0
bl sub_02005D48
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005228
thumb_func_start sub_02005260
sub_02005260: ; 0x02005260
push {r4, lr}
add r4, r0, #0
mov r0, #0x18
bl sub_02004400
bl sub_02005FA0
bl sub_020053F0
mov r0, #4
bl sub_02005060
add r0, r4, #0
bl sub_02005D48
pop {r4, pc}
thumb_func_end sub_02005260
thumb_func_start sub_02005280
sub_02005280: ; 0x02005280
push {r4, lr}
add r4, r0, #0
mov r0, #0x18
bl sub_02004400
bl sub_02005FA0
mov r0, #6
bl sub_02005060
mov r0, #1
bl sub_020059E0
add r0, r4, #0
bl sub_02005D48
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005280
thumb_func_start sub_020052A4
sub_020052A4: ; 0x020052A4
push {r4, lr}
add r4, r0, #0
mov r0, #0x18
bl sub_02004400
bl sub_02005FA0
mov r0, #7
bl sub_02005060
mov r0, #1
bl sub_020059E0
add r0, r4, #0
bl sub_02005D48
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_020052A4
thumb_func_start sub_020052C8
sub_020052C8: ; 0x020052C8
push {r4, lr}
add r4, r0, #0
bl sub_02005318
add r0, r4, #0
bl sub_02004B24
mov r0, #0x1c
bl sub_02004400
bl GF_Snd_SaveState
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_020052C8
thumb_func_start sub_020052E4
sub_020052E4: ; 0x020052E4
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x18
add r4, r1, #0
bl sub_02004400
bl sub_02005FA0
add r0, r5, #0
bl sub_02005060
add r0, r4, #0
bl sub_02005D48
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_020052E4
thumb_func_start sub_02005304
sub_02005304: ; 0x02005304
push {r4, lr}
add r4, r0, #0
bl GetSoundDataPointer
bl sub_02005B20
add r0, r4, #0
bl sub_02005D48
pop {r4, pc}
thumb_func_end sub_02005304
thumb_func_start sub_02005318
sub_02005318: ; 0x02005318
push {r3, lr}
mov r0, #4
bl sub_02005328
bl sub_02004714
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_02005318
thumb_func_start sub_02005328
sub_02005328: ; 0x02005328
push {r3, r4, r5, lr}
add r4, r0, #0
bl GetSoundDataPointer
cmp r4, #7
blt _02005342
bl GF_AssertFail
mov r0, #0x1b
bl sub_02004400
ldr r0, [r0]
pop {r3, r4, r5, pc}
_02005342:
cmp r4, #6
bhi _020053A4
add r0, r4, r4
add r0, pc
ldrh r0, [r0, #6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02005352: ; jump table
.short _02005360 - _02005352 - 2 ; case 0
.short _0200536A - _02005352 - 2 ; case 1
.short _02005374 - _02005352 - 2 ; case 2
.short _0200537E - _02005352 - 2 ; case 3
.short _02005388 - _02005352 - 2 ; case 4
.short _02005392 - _02005352 - 2 ; case 5
.short _0200539C - _02005352 - 2 ; case 6
_02005360:
mov r0, #0x17
bl sub_02004400
add r5, r0, #0
b _020053A4
_0200536A:
mov r0, #0x18
bl sub_02004400
add r5, r0, #0
b _020053A4
_02005374:
mov r0, #0x19
bl sub_02004400
add r5, r0, #0
b _020053A4
_0200537E:
mov r0, #0x1a
bl sub_02004400
add r5, r0, #0
b _020053A4
_02005388:
mov r0, #0x1b
bl sub_02004400
add r5, r0, #0
b _020053A4
_02005392:
mov r0, #0x1c
bl sub_02004400
add r5, r0, #0
b _020053A4
_0200539C:
mov r0, #0x1d
bl sub_02004400
add r5, r0, #0
_020053A4:
ldr r0, [r5]
pop {r3, r4, r5, pc}
thumb_func_end sub_02005328
thumb_func_start sub_020053A8
sub_020053A8: ; 0x020053A8
push {r4, r5, r6, lr}
add r5, r1, #0
cmp r0, #1
bne _020053BC
mov r0, #0xc
bl sub_02004400
add r6, r0, #0
mov r4, #0
b _020053CA
_020053BC:
cmp r0, #7
bne _020053EE
mov r0, #0xd
bl sub_02004400
add r6, r0, #0
mov r4, #7
_020053CA:
cmp r5, #0
bne _020053E0
add r0, r4, #0
bl GetSoundPlayer
bl sub_020054F0
lsl r0, r0, #0x10
lsr r0, r0, #0x10
bl sub_02004A60
_020053E0:
add r0, r4, #0
bl GetSoundPlayer
add r1, r5, #0
bl sub_020C815C
strb r5, [r6]
_020053EE:
pop {r4, r5, r6, pc}
thumb_func_end sub_020053A8
thumb_func_start sub_020053F0
sub_020053F0: ; 0x020053F0
push {r4, lr}
mov r0, #0xc
bl sub_02004400
add r4, r0, #0
mov r0, #0xd
bl sub_02004400
mov r1, #0
strb r1, [r4]
strb r1, [r0]
pop {r4, pc}
thumb_func_end sub_020053F0
thumb_func_start sub_02005408
sub_02005408: ; 0x02005408
push {r4, r5, r6, lr}
add r5, r1, #0
add r4, r2, #0
add r6, r0, #0
bl GetSoundPlayer
add r1, r5, #0
add r2, r4, #0
bl sub_020C8230
cmp r6, #0
bne _02005428
lsl r0, r5, #0x18
lsr r0, r0, #0x18
bl sub_02004958
_02005428:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_02005408
thumb_func_start sub_0200542C
sub_0200542C: ; 0x0200542C
push {r4, lr}
add r4, r1, #0
bpl _02005434
mov r4, #0
_02005434:
cmp r4, #0x7f
ble _0200543A
mov r4, #0x7f
_0200543A:
bl GetSoundPlayer
add r1, r4, #0
bl sub_020C821C
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200542C
thumb_func_start sub_02005448
sub_02005448: ; 0x02005448
push {r4, lr}
add r4, r0, #0
lsl r0, r4, #0x10
lsr r0, r0, #0x10
bl sub_020054D4
bl sub_0200480C
add r1, r0, #0
add r0, r4, #0
bl sub_02005464
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005448
thumb_func_start sub_02005464
sub_02005464: ; 0x02005464
push {r3, r4, r5, lr}
add r5, r1, #0
bl NNS_SndArcGetSeqParam
cmp r5, #1
beq _02005474
cmp r5, #8
bne _02005478
_02005474:
mov r4, #0x7f
b _0200547E
_02005478:
cmp r0, #0
beq _02005496
ldrb r4, [r0, #2]
_0200547E:
bl sub_020378CC
cmp r0, #1
bne _02005496
add r0, r4, #0
mov r1, #5
bl _s32_div_f
add r1, r0, #0
add r0, r5, #0
bl sub_0200542C
_02005496:
pop {r3, r4, r5, pc}
thumb_func_end sub_02005464
thumb_func_start sub_02005498
sub_02005498: ; 0x02005498
push {r3, lr}
bl NNS_SndArcGetSeqParam
cmp r0, #0
bne _020054A6
mov r0, #0
pop {r3, pc}
_020054A6:
ldrb r0, [r0, #2]
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_02005498
thumb_func_start sub_020054AC
sub_020054AC: ; 0x020054AC
push {r4, lr}
add r4, r1, #0
bl sub_020054D4
bl sub_0200480C
add r1, r4, #0
bl sub_0200542C
pop {r4, pc}
thumb_func_end sub_020054AC
thumb_func_start GF_SndPlayerCountPlayingSeqByPlayerNo
GF_SndPlayerCountPlayingSeqByPlayerNo: ; 0x020054C0
push {r4, lr}
add r4, r0, #0
bpl _020054CA
bl GF_AssertFail
_020054CA:
add r0, r4, #0
bl sub_020C81F0
pop {r4, pc}
.balign 4, 0
thumb_func_end GF_SndPlayerCountPlayingSeqByPlayerNo
thumb_func_start sub_020054D4
sub_020054D4: ; 0x020054D4
push {r3, lr}
cmp r0, #0
bne _020054DE
mov r0, #0xff
pop {r3, pc}
_020054DE:
bl NNS_SndArcGetSeqParam
cmp r0, #0
bne _020054EA
mov r0, #0xff
pop {r3, pc}
_020054EA:
ldrb r0, [r0, #5]
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_020054D4
thumb_func_start sub_020054F0
sub_020054F0: ; 0x020054F0
ldr r3, _020054F4 ; =NNS_SndPlayerGetSeqNo
bx r3
.balign 4, 0
_020054F4: .word NNS_SndPlayerGetSeqNo
thumb_func_end sub_020054F0
thumb_func_start sub_020054F8
sub_020054F8: ; 0x020054F8
push {r3, lr}
bl sub_02005504
bl NNS_SndArcGetBankInfo
pop {r3, pc}
thumb_func_end sub_020054F8
thumb_func_start sub_02005504
sub_02005504: ; 0x02005504
push {r3, lr}
bl NNS_SndArcGetSeqParam
cmp r0, #0
bne _02005512
mov r0, #0
pop {r3, pc}
_02005512:
ldrh r0, [r0]
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_02005504
thumb_func_start sub_02005518
sub_02005518: ; 0x02005518
ldr r3, _0200551C ; =sub_02004924
bx r3
.balign 4, 0
_0200551C: .word sub_02004924
thumb_func_end sub_02005518
thumb_func_start sub_02005520
sub_02005520: ; 0x02005520
push {r4, lr}
add r4, r0, #0
bl sub_020DA9CC
add r3, r0, #0
ldr r0, _02005548 ; =_021D05E8
mov r1, #1
strb r1, [r0]
ldr r2, _0200554C ; =_021D05F8
ldmia r4!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r2!, {r0, r1}
ldmia r4!, {r0, r1}
stmia r2!, {r0, r1}
ldr r0, [r4]
str r0, [r2]
add r0, r3, #0
pop {r4, pc}
nop
_02005548: .word _021D05E8
_0200554C: .word _021D05F8
thumb_func_end sub_02005520
thumb_func_start sub_02005550
sub_02005550: ; 0x02005550
push {r3, lr}
bl GetSoundDataPointer
ldr r0, _02005564 ; =_021D05E8
mov r1, #0
strb r1, [r0]
bl sub_020DAA60
pop {r3, pc}
nop
_02005564: .word _021D05E8
thumb_func_end sub_02005550
thumb_func_start sub_02005568
sub_02005568: ; 0x02005568
push {r3, lr}
ldr r0, _02005580 ; =_021D05E8
ldrb r0, [r0]
cmp r0, #0
beq _0200557E
bl sub_020DAA60
cmp r0, #0
beq _0200557E
bl GF_AssertFail
_0200557E:
pop {r3, pc}
.balign 4, 0
_02005580: .word _021D05E8
thumb_func_end sub_02005568
thumb_func_start sub_02005584
sub_02005584: ; 0x02005584
push {r3, lr}
ldr r0, _020055A4 ; =_021D05E8
ldrb r0, [r0]
cmp r0, #0
beq _0200559C
ldr r0, _020055A8 ; =_021D05F8
bl sub_020DA9CC
cmp r0, #0
beq _0200559C
bl GF_AssertFail
_0200559C:
bl sub_02004940
pop {r3, pc}
nop
_020055A4: .word _021D05E8
_020055A8: .word _021D05F8
thumb_func_end sub_02005584
thumb_func_start sub_020055AC
sub_020055AC: ; 0x020055AC
push {r4, r5, r6, lr}
add r5, r0, #0
bl GetSoundDataPointer
mov r0, #0x10
bl sub_02004400
add r6, r0, #0
mov r0, #0x11
bl sub_02004400
add r4, r0, #0
cmp r5, #0xe
beq _020055D0
cmp r5, #0xf
beq _020055D0
bl GF_AssertFail
_020055D0:
cmp r5, #0xe
bne _020055DE
ldrb r0, [r6]
cmp r0, #0
bne _020055DE
bl GF_AssertFail
_020055DE:
cmp r5, #0xf
bne _020055EC
ldrb r0, [r4]
cmp r0, #0
bne _020055EC
bl GF_AssertFail
_020055EC:
cmp r5, #0xe
bne _020055F8
mov r0, #0
bl sub_02004400
pop {r4, r5, r6, pc}
_020055F8:
mov r0, #1
bl sub_02004400
pop {r4, r5, r6, pc}
thumb_func_end sub_020055AC
thumb_func_start sub_02005600
sub_02005600: ; 0x02005600
push {r4, r5, r6, lr}
add r5, r0, #0
bl GetSoundDataPointer
mov r0, #0x10
bl sub_02004400
add r6, r0, #0
mov r0, #0x11
bl sub_02004400
add r4, r0, #0
cmp r5, #0xe
beq _02005624
cmp r5, #0xf
beq _02005624
bl GF_AssertFail
_02005624:
cmp r5, #0xe
bne _02005652
ldrb r0, [r6]
cmp r0, #0
bne _0200564C
mov r0, #0
bl sub_02004400
add r4, r0, #0
add r0, r5, #0
bl sub_020C7C90
str r0, [r4]
cmp r0, #0
bne _02005646
mov r0, #0
pop {r4, r5, r6, pc}
_02005646:
mov r0, #1
strb r0, [r6]
b _0200567A
_0200564C:
bl GF_AssertFail
b _0200567A
_02005652:
ldrb r0, [r4]
cmp r0, #0
bne _02005676
mov r0, #1
bl sub_02004400
add r6, r0, #0
add r0, r5, #0
bl sub_020C7C90
str r0, [r6]
cmp r0, #0
bne _02005670
mov r0, #0
pop {r4, r5, r6, pc}
_02005670:
mov r0, #1
strb r0, [r4]
b _0200567A
_02005676:
bl GF_AssertFail
_0200567A:
mov r0, #1
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_02005600
thumb_func_start sub_02005680
sub_02005680: ; 0x02005680
push {r4, r5, r6, lr}
add r5, r0, #0
bl GetSoundDataPointer
mov r0, #0x10
bl sub_02004400
add r6, r0, #0
mov r0, #0x11
bl sub_02004400
add r4, r0, #0
cmp r5, #0xe
beq _020056A6
cmp r5, #0xf
beq _020056A6
bl GF_AssertFail
pop {r4, r5, r6, pc}
_020056A6:
cmp r5, #0xe
bne _020056C8
ldrb r0, [r6]
cmp r0, #1
bne _020056C2
add r0, r5, #0
bl sub_020055AC
ldr r0, [r0]
bl sub_020C7CD4
mov r0, #0
strb r0, [r6]
pop {r4, r5, r6, pc}
_020056C2:
bl GF_AssertFail
pop {r4, r5, r6, pc}
_020056C8:
ldrb r0, [r4]
cmp r0, #1
bne _020056E0
add r0, r5, #0
bl sub_020055AC
ldr r0, [r0]
bl sub_020C7CD4
mov r0, #0
strb r0, [r4]
pop {r4, r5, r6, pc}
_020056E0:
bl GF_AssertFail
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_02005680
thumb_func_start sub_020056E8
sub_020056E8: ; 0x020056E8
push {r3, r4, r5, lr}
sub sp, #0x18
add r3, r0, #0
ldr r0, [r3, #0x10]
add r4, r1, #0
str r0, [sp]
ldr r0, [r3, #0x14]
str r0, [sp, #4]
ldr r0, [r3, #0x18]
str r0, [sp, #8]
ldr r0, [r3, #0x1c]
str r0, [sp, #0xc]
ldr r0, [r3, #0x20]
str r0, [sp, #0x10]
ldr r0, [r3, #0x24]
str r0, [sp, #0x14]
ldr r0, [r3]
ldr r1, [r3, #4]
ldr r2, [r3, #8]
ldr r0, [r0]
ldr r3, [r3, #0xc]
bl sub_020C7CEC
add r5, r0, #0
bne _02005720
add r0, r4, #0
bl sub_02005680
_02005720:
add r0, r5, #0
add sp, #0x18
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_020056E8
thumb_func_start sub_02005728
sub_02005728: ; 0x02005728
push {r3, lr}
bl sub_020055AC
ldr r0, [r0]
bl sub_020C7E0C
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_02005728
thumb_func_start sub_02005738
sub_02005738: ; 0x02005738
push {r3, lr}
bl sub_020055AC
ldr r0, [r0]
bl sub_020C7F18
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_02005738
thumb_func_start sub_02005748
sub_02005748: ; 0x02005748
push {r4, lr}
add r4, r1, #0
cmp r4, #0x7f
bls _02005752
mov r4, #0x7f
_02005752:
bl sub_020055AC
ldr r0, [r0]
add r1, r4, #0
bl sub_020C7EF4
pop {r4, pc}
thumb_func_end sub_02005748
thumb_func_start sub_02005760
sub_02005760: ; 0x02005760
push {r4, lr}
add r4, r1, #0
bl sub_020055AC
ldr r0, [r0]
add r1, r4, #0
bl sub_020C7E70
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005760
thumb_func_start sub_02005774
sub_02005774: ; 0x02005774
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r1, #0
bl sub_020378CC
cmp r0, #1
bne _0200579C
add r0, r4, #0
bl sub_020055AC
add r4, r0, #0
add r0, r5, #0
mov r1, #5
bl _s32_div_f
add r1, r0, #0
ldr r0, [r4]
bl sub_020C7E48
pop {r3, r4, r5, pc}
_0200579C:
add r0, r4, #0
bl sub_020055AC
ldr r0, [r0]
add r1, r5, #0
bl sub_020C7E48
pop {r3, r4, r5, pc}
thumb_func_end sub_02005774
thumb_func_start sub_020057AC
sub_020057AC: ; 0x020057AC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x30
add r6, r0, #0
str r1, [sp]
str r2, [sp, #4]
add r5, r3, #0
bl GetSoundDataPointer
mov r0, #0x22
bl sub_02004400
add r4, r0, #0
cmp r5, #0xe
beq _020057D0
cmp r5, #0xf
beq _020057D0
bl GF_AssertFail
_020057D0:
add r0, r6, #0
bl sub_020C9788
add r7, r0, #0
bne _020057E4
bl GF_AssertFail
add sp, #0x30
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_020057E4:
ldr r0, [r7]
lsl r0, r0, #8
lsr r0, r0, #8
bl sub_020C98B4
add r6, r0, #0
bne _020057FC
bl GF_AssertFail
add sp, #0x30
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_020057FC:
cmp r5, #0xe
bne _0200584A
ldr r0, [sp, #0x48]
add r1, r6, #0
bl AllocFromHeap
str r0, [r4]
cmp r0, #0
bne _02005818
bl GF_AssertFail
add sp, #0x30
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02005818:
mov r1, #0
add r2, r6, #0
bl memset
ldr r0, [r7]
ldr r1, [r4]
lsl r0, r0, #8
lsr r0, r0, #8
add r2, r6, #0
mov r3, #0
bl sub_020C98DC
mov r1, #0
mvn r1, r1
cmp r0, r1
bne _02005842
bl GF_AssertFail
add sp, #0x30
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_02005842:
ldr r0, [r4]
add r1, r6, #0
bl sub_02005898
_0200584A:
add r0, r5, #0
bl sub_020055AC
mov r1, #0
str r1, [sp, #0xc]
str r0, [sp, #8]
ldr r0, [r4]
str r0, [sp, #0x10]
ldr r0, _02005894 ; =0x00003443
str r1, [sp, #0x14]
str r0, [sp, #0x20]
ldr r0, [sp]
str r1, [sp, #0x18]
str r0, [sp, #0x24]
mov r0, #6
lsl r0, r0, #0xc
str r0, [sp, #0x28]
ldr r0, [sp, #4]
add r1, r5, #0
str r0, [sp, #0x2c]
add r0, sp, #8
str r6, [sp, #0x1c]
bl sub_020056E8
add r4, r0, #0
ldr r1, [sp]
add r0, r5, #0
bl sub_02005774
mov r0, #0xf
bl sub_02004400
mov r1, #1
strb r1, [r0]
add r0, r4, #0
add sp, #0x30
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_02005894: .word 0x00003443
thumb_func_end sub_020057AC
thumb_func_start sub_02005898
sub_02005898: ; 0x02005898
push {r3, r4, r5, r6}
mov r5, #0
lsr r6, r1, #1
beq _020058B2
sub r2, r1, #1
_020058A2:
sub r3, r2, r5
ldrb r4, [r0, r5]
ldrb r1, [r0, r3]
strb r1, [r0, r5]
add r5, r5, #1
strb r4, [r0, r3]
cmp r5, r6
blo _020058A2
_020058B2:
pop {r3, r4, r5, r6}
bx lr
.balign 4, 0
thumb_func_end sub_02005898
thumb_func_start sub_020058B8
sub_020058B8: ; 0x020058B8
push {r4, r5, r6, lr}
add r5, r0, #0
bl GetSoundDataPointer
mov r0, #0xf
bl sub_02004400
add r4, r0, #0
mov r0, #0x22
bl sub_02004400
add r6, r0, #0
cmp r5, #0xe
beq _020058DC
cmp r5, #0xf
beq _020058DC
bl GF_AssertFail
_020058DC:
add r0, r5, #0
bl sub_02005728
ldrb r0, [r4]
cmp r0, #1
bne _020058F2
mov r0, #0
strb r0, [r4]
ldr r0, [r6]
bl FreeToHeap
_020058F2:
pop {r4, r5, r6, pc}
thumb_func_end sub_020058B8
thumb_func_start sub_020058F4
sub_020058F4: ; 0x020058F4
push {r4, lr}
bl sub_020C906C
add r4, r0, #0
cmp r4, #1
bne _02005904
bl sub_02005908
_02005904:
add r0, r4, #0
pop {r4, pc}
thumb_func_end sub_020058F4
thumb_func_start sub_02005908
sub_02005908: ; 0x02005908
ldr r3, _0200590C ; =sub_020C907C
bx r3
.balign 4, 0
_0200590C: .word sub_020C907C
thumb_func_end sub_02005908
thumb_func_start sub_02005910
sub_02005910: ; 0x02005910
ldr r3, _02005914 ; =sub_020C9014
bx r3
.balign 4, 0
_02005914: .word sub_020C9014
thumb_func_end sub_02005910
thumb_func_start sub_02005918
sub_02005918: ; 0x02005918
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
bl GetSoundPlayer
add r1, r5, #0
add r2, r4, #0
bl sub_020C827C
pop {r3, r4, r5, pc}
thumb_func_end sub_02005918
thumb_func_start sub_0200592C
sub_0200592C: ; 0x0200592C
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
bl sub_020054D4
bl sub_0200480C
add r1, r5, #0
add r2, r4, #0
bl sub_02005918
pop {r3, r4, r5, pc}
thumb_func_end sub_0200592C
thumb_func_start sub_02005944
sub_02005944: ; 0x02005944
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
bl sub_0200480C
add r1, r5, #0
add r2, r4, #0
bl sub_02005918
pop {r3, r4, r5, pc}
thumb_func_end sub_02005944
thumb_func_start sub_02005958
sub_02005958: ; 0x02005958
push {r3, r4, r5, lr}
add r5, r1, #0
add r4, r2, #0
bl GetSoundPlayer
add r1, r5, #0
add r2, r4, #0
bl sub_020C829C
pop {r3, r4, r5, pc}
thumb_func_end sub_02005958
thumb_func_start sub_0200596C
sub_0200596C: ; 0x0200596C
push {r4, lr}
add r4, r1, #0
bl GetSoundPlayer
add r1, r4, #0
bl sub_020C82DC
pop {r4, pc}
thumb_func_end sub_0200596C
thumb_func_start GF_SndSetMonoFlag
GF_SndSetMonoFlag: ; 0x0200597C
push {r4, lr}
add r4, r0, #0
bl NNS_SndSetMonoFlag
ldr r0, _0200598C ; =_021D05E8
str r4, [r0, #8]
pop {r4, pc}
nop
_0200598C: .word _021D05E8
thumb_func_end GF_SndSetMonoFlag
thumb_func_start sub_02005990
sub_02005990: ; 0x02005990
push {r4, lr}
add r4, r0, #0
mov r0, #7
bl sub_02004400
str r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005990
thumb_func_start sub_020059A0
sub_020059A0: ; 0x020059A0
push {r4, lr}
add r4, r0, #0
mov r0, #8
bl sub_02004400
str r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_020059A0
thumb_func_start sub_020059B0
sub_020059B0: ; 0x020059B0
push {r3, lr}
mov r0, #8
bl sub_02004400
ldrh r1, [r0]
cmp r1, #0
bne _020059C6
mov r1, #0
strh r1, [r0]
add r0, r1, #0
pop {r3, pc}
_020059C6:
sub r1, r1, #1
strh r1, [r0]
ldrh r0, [r0]
pop {r3, pc}
.balign 4, 0
thumb_func_end sub_020059B0
thumb_func_start sub_020059D0
sub_020059D0: ; 0x020059D0
ldr r3, _020059D4 ; =sub_020C7988
bx r3
.balign 4, 0
_020059D4: .word sub_020C7988
thumb_func_end sub_020059D0
thumb_func_start sub_020059D8
sub_020059D8: ; 0x020059D8
ldr r0, _020059DC ; =_021D0620
bx lr
.balign 4, 0
_020059DC: .word _021D0620
thumb_func_end sub_020059D8
thumb_func_start sub_020059E0
sub_020059E0: ; 0x020059E0
push {r4, lr}
add r4, r0, #0
mov r0, #0x13
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_020059E0
thumb_func_start sub_020059F0
sub_020059F0: ; 0x020059F0
push {r4, r5, r6, lr}
sub sp, #8
add r6, r0, #0
add r5, r1, #0
add r4, r2, #0
str r3, [sp]
ldr r0, [sp, #0x18]
add r1, r6, #0
str r0, [sp, #4]
mov r0, #4
add r2, r5, #0
add r3, r4, #0
bl sub_02005A10
add sp, #8
pop {r4, r5, r6, pc}
thumb_func_end sub_020059F0
thumb_func_start sub_02005A10
sub_02005A10: ; 0x02005A10
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #0x16
add r6, r1, #0
add r7, r2, #0
str r3, [sp, #8]
bl sub_02004400
add r4, r0, #0
add r0, sp, #0x10
ldrb r0, [r0, #0x10]
ldr r3, [sp, #8]
add r1, r6, #0
str r0, [sp]
ldr r0, [sp, #0x24]
add r2, r7, #0
str r0, [sp, #4]
add r0, r5, #0
bl sub_02005AB0
mov r0, #0
strb r0, [r4]
mov r0, #5
bl sub_020043B0
mov r0, #1
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_02005A10
thumb_func_start sub_02005A4C
sub_02005A4C: ; 0x02005A4C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r6, r0, #0
str r3, [sp]
add r0, sp, #0x10
ldrb r0, [r0, #0x10]
add r5, r1, #0
add r4, r2, #0
str r0, [sp, #4]
ldr r0, [sp, #0x24]
add r1, r6, #0
str r0, [sp, #8]
mov r0, #4
add r2, r5, #0
add r3, r4, #0
bl sub_02005A74
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_02005A4C
thumb_func_start sub_02005A74
sub_02005A74: ; 0x02005A74
push {r4, r5, r6, r7, lr}
sub sp, #0xc
add r5, r0, #0
mov r0, #9
add r6, r1, #0
add r7, r2, #0
str r3, [sp, #8]
bl sub_02004400
add r4, r0, #0
add r0, sp, #0x10
ldrb r0, [r0, #0x14]
ldr r3, [sp, #8]
add r1, r6, #0
str r0, [sp]
ldr r0, [sp, #0x28]
add r2, r7, #0
str r0, [sp, #4]
add r0, r5, #0
bl sub_02005AB0
ldr r0, [sp, #0x20]
str r0, [r4]
mov r0, #6
bl sub_020043B0
mov r0, #1
add sp, #0xc
pop {r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_02005A74
thumb_func_start sub_02005AB0
sub_02005AB0: ; 0x02005AB0
push {r3, r4, r5, r6, r7, lr}
add r6, r2, #0
mov r0, #2
add r5, r1, #0
add r7, r3, #0
bl sub_02004400
add r4, r0, #0
mov r0, #0
add r1, r6, #0
bl sub_02005F50
mov r0, #0
bl sub_02004A60
add r0, r5, #0
bl sub_02004A9C
add r0, r7, #0
bl sub_020059A0
add r0, r5, #0
bl sub_020054F8
str r0, [r4]
add r0, sp, #8
ldrb r0, [r0, #0x10]
bl sub_020059E0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_02005AB0
thumb_func_start sub_02005AEC
sub_02005AEC: ; 0x02005AEC
ldr r3, _02005AF4 ; =sub_020C7FAC
add r1, r0, #0
mov r0, #7
bx r3
.balign 4, 0
_02005AF4: .word sub_020C7FAC
thumb_func_end sub_02005AEC
thumb_func_start sub_02005AF8
sub_02005AF8: ; 0x02005AF8
push {r3, lr}
cmp r0, #0
bne _02005B0C
ldr r0, _02005B18 ; =0x0000A7FE
bl sub_02005AEC
mov r0, #0
bl sub_02005910
b _02005B12
_02005B0C:
ldr r0, _02005B1C ; =0x00003FFF
bl sub_02005AEC
_02005B12:
bl sub_020058F4
pop {r3, pc}
.balign 4, 0
_02005B18: .word 0x0000A7FE
_02005B1C: .word 0x00003FFF
thumb_func_end sub_02005AF8
thumb_func_start sub_02005B20
sub_02005B20: ; 0x02005B20
push {r3, lr}
bl sub_02005F88
cmp r0, #0
bne _02005B4A
mov r0, #0
bl GetSoundPlayer
bl sub_020054F0
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _02005B4A
bl sub_02005FD8
mov r0, #1
add r1, r0, #0
bl sub_020053A8
pop {r3, pc}
_02005B4A:
bl sub_02005FA0
pop {r3, pc}
thumb_func_end sub_02005B20
thumb_func_start sub_02005B50
sub_02005B50: ; 0x02005B50
ldr r3, _02005B54 ; =NNS_SndPlayerSetPlayerVolume
bx r3
.balign 4, 0
_02005B54: .word NNS_SndPlayerSetPlayerVolume
thumb_func_end sub_02005B50
thumb_func_start sub_02005B58
sub_02005B58: ; 0x02005B58
push {r4, lr}
add r4, r0, #0
mov r0, #0x35
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005B58
thumb_func_start sub_02005B68
sub_02005B68: ; 0x02005B68
push {r4, lr}
add r4, r0, #0
mov r0, #0x36
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005B68
thumb_func_start sub_02005B78
sub_02005B78: ; 0x02005B78
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
bne _02005B86
bl GF_AssertFail
_02005B86:
cmp r4, #0xf
bls _02005B8E
bl GF_AssertFail
_02005B8E:
add r0, r5, #0
bl sub_020054D4
bl sub_0200480C
bl GetSoundPlayer
add r1, r4, #0
add r2, r6, #0
bl sub_020C8374
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_02005B78
thumb_func_start sub_02005BA8
sub_02005BA8: ; 0x02005BA8
push {r3, r4, r5, lr}
add r5, r0, #0
mov r0, #0x37
bl sub_02004400
add r4, r0, #0
ldrb r1, [r4]
add r0, r5, #0
lsl r2, r1, #2
ldr r1, _02005BE0 ; =_020F5711
ldrb r1, [r1, r2]
bl sub_020054AC
ldrb r2, [r4]
ldr r1, _02005BE4 ; =0x0000FFFF
mov r0, #4
lsl r3, r2, #2
ldr r2, _02005BE8 ; =_020F5710
ldrb r2, [r2, r3]
bl sub_02005918
ldrb r0, [r4, #1]
cmp r0, #8
blo _02005BDC
mov r0, #0
strb r0, [r4, #1]
_02005BDC:
pop {r3, r4, r5, pc}
nop
_02005BE0: .word _020F5711
_02005BE4: .word 0x0000FFFF
_02005BE8: .word _020F5710
thumb_func_end sub_02005BA8
thumb_func_start sub_02005BEC
sub_02005BEC: ; 0x02005BEC
push {r4, lr}
add r4, r0, #0
mov r0, #0x38
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005BEC
thumb_func_start sub_02005BFC
sub_02005BFC: ; 0x02005BFC
push {r3, lr}
mov r0, #0x38
bl sub_02004400
ldrb r0, [r0]
pop {r3, pc}
thumb_func_end sub_02005BFC
thumb_func_start sub_02005C08
sub_02005C08: ; 0x02005C08
push {r4, lr}
add r4, r0, #0
mov r0, #0x39
bl sub_02004400
strb r4, [r0]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_02005C08
thumb_func_start sub_02005C18
sub_02005C18: ; 0x02005C18
push {r3, lr}
mov r0, #0x39
bl sub_02004400
ldrb r0, [r0]
pop {r3, pc}
thumb_func_end sub_02005C18
thumb_func_start sub_02005C24
sub_02005C24: ; 0x02005C24
push {r3, r4, r5, lr}
bl sub_02005C18
cmp r0, #0
bne _02005C36
mov r0, #1
bl sub_02005C08
b _02005C3C
_02005C36:
mov r0, #0
bl sub_02005C08
_02005C3C:
bl sub_02004AAC
cmp r0, #0
bne _02005C6A
bl sub_02004A90
add r4, r0, #0
bl sub_0200496C
add r5, r0, #0
add r0, r4, #0
bl sub_02005C6C
cmp r4, r0
beq _02005C60
add r0, r4, #0
bl sub_02005D48
_02005C60:
mov r0, #0
add r1, r5, #0
add r2, r0, #0
bl sub_02005408
_02005C6A:
pop {r3, r4, r5, pc}
thumb_func_end sub_02005C24
thumb_func_start sub_02005C6C
sub_02005C6C: ; 0x02005C6C
push {r3, r4}
ldr r2, _02005C90 ; =_020F5730
mov r4, #0
_02005C72:
lsl r3, r4, #2
ldrh r1, [r2, r3]
cmp r0, r1
bne _02005C82
ldr r0, _02005C94 ; =_020F5732
ldrh r0, [r0, r3]
pop {r3, r4}
bx lr
_02005C82:
add r1, r4, #1
lsl r1, r1, #0x10
lsr r4, r1, #0x10
cmp r4, #0x88
blo _02005C72
pop {r3, r4}
bx lr
.balign 4, 0
_02005C90: .word _020F5730
_02005C94: .word _020F5732
thumb_func_end sub_02005C6C
thumb_func_start sub_02005C98
sub_02005C98: ; 0x02005C98
push {r3, r4}
ldr r2, _02005CBC ; =_020F5730
mov r4, #0
_02005C9E:
lsl r3, r4, #2
add r1, r2, r3
ldrh r1, [r1, #2]
cmp r0, r1
bne _02005CAE
ldrh r0, [r2, r3]
pop {r3, r4}
bx lr
_02005CAE:
add r1, r4, #1
lsl r1, r1, #0x10
lsr r4, r1, #0x10
cmp r4, #0x88
blo _02005C9E
pop {r3, r4}
bx lr
.balign 4, 0
_02005CBC: .word _020F5730
thumb_func_end sub_02005C98
thumb_func_start sub_02005CC0
sub_02005CC0: ; 0x02005CC0
push {r3, lr}
mov r0, #0
bl GetSoundPlayer
ldr r2, _02005CF0 ; =0x0000A7FE
mov r1, #0xf
bl sub_020C82BC
mov r0, #7
bl GetSoundPlayer
ldr r2, _02005CF0 ; =0x0000A7FE
mov r1, #0xf
bl sub_020C82BC
mov r0, #2
bl GetSoundPlayer
ldr r2, _02005CF0 ; =0x0000A7FE
mov r1, #0xf
bl sub_020C82BC
pop {r3, pc}
nop
_02005CF0: .word 0x0000A7FE
thumb_func_end sub_02005CC0
thumb_func_start sub_02005CF4
sub_02005CF4: ; 0x02005CF4
ldr r1, _02005CFC ; =_021D05E8
str r0, [r1, #0xc]
bx lr
nop
_02005CFC: .word _021D05E8
thumb_func_end sub_02005CF4
thumb_func_start sub_02005D00
sub_02005D00: ; 0x02005D00
ldr r0, _02005D0C ; =_021D05E8
mov r1, #0
str r1, [r0, #0xc]
str r1, [r0, #4]
bx lr
nop
_02005D0C: .word _021D05E8
thumb_func_end sub_02005D00