mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 13:47:12 -05:00
13826 lines
233 KiB
ArmAsm
13826 lines
233 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80BFE18
|
|
sub_80BFE18: @ 80BFE18
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r9, r2
|
|
cmp r1, 0
|
|
beq _080BFE92
|
|
movs r0, 0x1F
|
|
mov r10, r0
|
|
mov r8, r1
|
|
_080BFE38:
|
|
ldrh r1, [r6]
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r5, r1, 21
|
|
mov r2, r10
|
|
ands r5, r2
|
|
lsrs r4, r1, 26
|
|
ands r4, r2
|
|
lsls r0, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
asrs r7, r0, 8
|
|
lsls r0, r5, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
mov r2, r9
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
asrs r5, r0, 8
|
|
lsls r0, r4, 8
|
|
movs r1, 0x64
|
|
bl __divsi3
|
|
mov r1, r9
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
asrs r4, r0, 8
|
|
lsls r0, r4, 10
|
|
lsls r1, r5, 5
|
|
orrs r0, r1
|
|
orrs r0, r7
|
|
strh r0, [r6]
|
|
adds r6, 0x2
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r8, r2
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080BFE38
|
|
_080BFE92:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80BFE18
|
|
|
|
thumb_func_start sub_80BFEA0
|
|
sub_80BFEA0: @ 80BFEA0
|
|
push {r4,lr}
|
|
sub sp, 0x20
|
|
ldr r4, _080BFED8 @ =gUnknown_83EF31C
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
movs r2, 0x10
|
|
bl CpuSet
|
|
mov r0, sp
|
|
movs r1, 0x10
|
|
movs r2, 0x5F
|
|
bl sub_80BFE18
|
|
mov r0, sp
|
|
movs r1, 0x20
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r4, 0x1E
|
|
adds r0, r4, 0
|
|
movs r1, 0x2F
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
add sp, 0x20
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BFED8: .4byte gUnknown_83EF31C
|
|
thumb_func_end sub_80BFEA0
|
|
|
|
thumb_func_start sub_80BFEDC
|
|
sub_80BFEDC: @ 80BFEDC
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BFEFC @ =gUnknown_20399D4
|
|
ldr r0, _080BFF00 @ =0x000047c0
|
|
bl AllocZeroed
|
|
adds r2, r0, 0
|
|
str r2, [r4]
|
|
cmp r2, 0
|
|
bne _080BFF08
|
|
ldr r0, _080BFF04 @ =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
b _080BFF38
|
|
.align 2, 0
|
|
_080BFEFC: .4byte gUnknown_20399D4
|
|
_080BFF00: .4byte 0x000047c0
|
|
_080BFF04: .4byte c2_exit_to_overworld_2_switch
|
|
_080BFF08:
|
|
ldr r1, _080BFF40 @ =gUnknown_2031DE0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _080BFF44 @ =0x00004796
|
|
adds r0, r2, r1
|
|
movs r1, 0
|
|
strb r5, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, _080BFF48 @ =0x000047a0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
bl sub_80BFFD0
|
|
ldr r0, _080BFF4C @ =sub_80C0100
|
|
bl SetMainCallback2
|
|
_080BFF38:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BFF40: .4byte gUnknown_2031DE0
|
|
_080BFF44: .4byte 0x00004796
|
|
_080BFF48: .4byte 0x000047a0
|
|
_080BFF4C: .4byte sub_80C0100
|
|
thumb_func_end sub_80BFEDC
|
|
|
|
thumb_func_start sub_80BFF50
|
|
sub_80BFF50: @ 80BFF50
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r4, _080BFF70 @ =gUnknown_20399D4
|
|
ldr r0, _080BFF74 @ =0x000047c0
|
|
bl AllocZeroed
|
|
adds r2, r0, 0
|
|
str r2, [r4]
|
|
cmp r2, 0
|
|
bne _080BFF7C
|
|
ldr r0, _080BFF78 @ =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
b _080BFFB4
|
|
.align 2, 0
|
|
_080BFF70: .4byte gUnknown_20399D4
|
|
_080BFF74: .4byte 0x000047c0
|
|
_080BFF78: .4byte c2_exit_to_overworld_2_switch
|
|
_080BFF7C:
|
|
ldr r1, _080BFFBC @ =gUnknown_2031DE0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _080BFFC0 @ =0x00004796
|
|
adds r0, r2, r1
|
|
movs r1, 0
|
|
strb r5, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, _080BFFC4 @ =0x000047a0
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r2, 0x4
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, _080BFFC8 @ =0x000047bc
|
|
adds r0, r1
|
|
str r6, [r0]
|
|
bl sub_80BFFD0
|
|
ldr r0, _080BFFCC @ =sub_80C0100
|
|
bl SetMainCallback2
|
|
_080BFFB4:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080BFFBC: .4byte gUnknown_2031DE0
|
|
_080BFFC0: .4byte 0x00004796
|
|
_080BFFC4: .4byte 0x000047a0
|
|
_080BFFC8: .4byte 0x000047bc
|
|
_080BFFCC: .4byte sub_80C0100
|
|
thumb_func_end sub_80BFF50
|
|
|
|
thumb_func_start sub_80BFFD0
|
|
sub_80BFFD0: @ 80BFFD0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r1, _080C0000 @ =gUnknown_20399D4
|
|
ldr r2, [r1]
|
|
ldr r3, _080C0004 @ =0x00004796
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
blt _080BFFF2
|
|
cmp r0, 0x1
|
|
ble _080BFFF2
|
|
cmp r0, 0x2
|
|
beq _080C0010
|
|
_080BFFF2:
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
ldr r1, _080C0008 @ =0x000047b8
|
|
adds r0, r1
|
|
ldr r1, _080C000C @ =sub_80C04E4
|
|
str r1, [r0]
|
|
b _080C0018
|
|
.align 2, 0
|
|
_080C0000: .4byte gUnknown_20399D4
|
|
_080C0004: .4byte 0x00004796
|
|
_080C0008: .4byte 0x000047b8
|
|
_080C000C: .4byte sub_80C04E4
|
|
_080C0010:
|
|
ldr r3, _080C009C @ =0x000047b8
|
|
adds r1, r2, r3
|
|
ldr r0, _080C00A0 @ =sub_80C4F08
|
|
str r0, [r1]
|
|
_080C0018:
|
|
movs r3, 0
|
|
ldr r6, _080C00A4 @ =gUnknown_20399D4
|
|
ldr r5, _080C00A8 @ =0x00004797
|
|
ldr r4, _080C00AC @ =gUnknown_83F1B00
|
|
ldr r2, _080C00B0 @ =0x00004796
|
|
_080C0022:
|
|
ldr r0, [r6]
|
|
adds r1, r0, r5
|
|
adds r1, r3
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r3, r0
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3
|
|
bls _080C0022
|
|
ldr r0, _080C00B4 @ =0x00000845
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080C0058
|
|
ldr r0, _080C00A4 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r4, _080C00A8 @ =0x00004797
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
_080C0058:
|
|
movs r7, 0
|
|
movs r1, 0
|
|
ldr r2, _080C00B8 @ =gUnknown_2036DFC
|
|
ldrb r0, [r2, 0x14]
|
|
ldr r3, _080C00A4 @ =gUnknown_20399D4
|
|
mov r8, r3
|
|
cmp r0, 0x8E
|
|
bls _080C00D8
|
|
ldr r4, _080C00BC @ =gUnknown_83F1AA4
|
|
mov r12, r4
|
|
mov r10, r12
|
|
mov r9, r2
|
|
_080C0070:
|
|
movs r3, 0
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r2, r0, 1
|
|
mov r4, r10
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
adds r5, r1, 0x1
|
|
cmp r0, 0xC5
|
|
beq _080C00D0
|
|
ldr r6, _080C00BC @ =gUnknown_83F1AA4
|
|
mov r0, r9
|
|
ldrb r1, [r0, 0x14]
|
|
lsls r4, r5, 24
|
|
_080C008C:
|
|
adds r0, r3, r2
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bne _080C00C0
|
|
lsrs r7, r4, 24
|
|
b _080C00D0
|
|
.align 2, 0
|
|
_080C009C: .4byte 0x000047b8
|
|
_080C00A0: .4byte sub_80C4F08
|
|
_080C00A4: .4byte gUnknown_20399D4
|
|
_080C00A8: .4byte 0x00004797
|
|
_080C00AC: .4byte gUnknown_83F1B00
|
|
_080C00B0: .4byte 0x00004796
|
|
_080C00B4: .4byte 0x00000845
|
|
_080C00B8: .4byte gUnknown_2036DFC
|
|
_080C00BC: .4byte gUnknown_83F1AA4
|
|
_080C00C0:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
adds r0, r3, r2
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xC5
|
|
bne _080C008C
|
|
_080C00D0:
|
|
lsls r0, r5, 24
|
|
lsrs r1, r0, 24
|
|
cmp r7, 0
|
|
beq _080C0070
|
|
_080C00D8:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r2, _080C00F8 @ =0x0000479b
|
|
adds r0, r2
|
|
strb r7, [r0]
|
|
ldr r0, [r1]
|
|
ldr r3, _080C00FC @ =0x0000479c
|
|
adds r0, r3
|
|
strb r7, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C00F8: .4byte 0x0000479b
|
|
_080C00FC: .4byte 0x0000479c
|
|
thumb_func_end sub_80BFFD0
|
|
|
|
thumb_func_start sub_80C0100
|
|
sub_80C0100: @ 80C0100
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C011C @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0120 @ =0x000047a4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bhi _080C0202
|
|
lsls r0, 2
|
|
ldr r1, _080C0124 @ =_080C0128
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C011C: .4byte gUnknown_20399D4
|
|
_080C0120: .4byte 0x000047a4
|
|
_080C0124: .4byte _080C0128
|
|
.align 2, 0
|
|
_080C0128:
|
|
.4byte _080C014C
|
|
.4byte _080C0152
|
|
.4byte _080C0158
|
|
.4byte _080C015E
|
|
.4byte _080C016A
|
|
.4byte _080C0180
|
|
.4byte _080C01D4
|
|
.4byte _080C01E0
|
|
.4byte _080C01EC
|
|
_080C014C:
|
|
bl sub_80C08E0
|
|
b _080C021A
|
|
_080C0152:
|
|
bl sub_80C0904
|
|
b _080C021A
|
|
_080C0158:
|
|
bl sub_80C0A6C
|
|
b _080C021A
|
|
_080C015E:
|
|
bl sub_80C0238
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C0228
|
|
b _080C021A
|
|
_080C016A:
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
b _080C01BA
|
|
_080C0180:
|
|
ldr r4, _080C01C4 @ =gUnknown_20399D4
|
|
ldr r1, [r4]
|
|
ldr r2, _080C01C8 @ =0x0000479b
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r0, r2, 4
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
adds r0, 0x26
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl sub_80C0CC8
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r4]
|
|
ldr r2, _080C01CC @ =0x00004796
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C021A
|
|
ldr r0, _080C01D0 @ =0x000012e6
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
bl sub_80C0CC8
|
|
_080C01BA:
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
b _080C021A
|
|
.align 2, 0
|
|
_080C01C4: .4byte gUnknown_20399D4
|
|
_080C01C8: .4byte 0x0000479b
|
|
_080C01CC: .4byte 0x00004796
|
|
_080C01D0: .4byte 0x000012e6
|
|
_080C01D4:
|
|
bl sub_80C0B18
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
b _080C021A
|
|
_080C01E0:
|
|
bl sub_80C0BB0
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
b _080C021A
|
|
_080C01EC:
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C021A
|
|
movs r0, 0x1
|
|
bl sub_80C0A88
|
|
b _080C021A
|
|
_080C0202:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
bl sub_80C03E8
|
|
bl sub_80C08F4
|
|
_080C021A:
|
|
ldr r0, _080C0230 @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r2, _080C0234 @ =0x000047a4
|
|
adds r1, r2
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080C0228:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0230: .4byte gUnknown_20399D4
|
|
_080C0234: .4byte 0x000047a4
|
|
thumb_func_end sub_80C0100
|
|
|
|
thumb_func_start sub_80C0238
|
|
sub_80C0238: @ 80C0238
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080C0258 @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r2, _080C025C @ =0x000047a8
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bls _080C024C
|
|
b _080C03B0
|
|
_080C024C:
|
|
lsls r0, 2
|
|
ldr r1, _080C0260 @ =_080C0264
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C0258: .4byte gUnknown_20399D4
|
|
_080C025C: .4byte 0x000047a8
|
|
_080C0260: .4byte _080C0264
|
|
.align 2, 0
|
|
_080C0264:
|
|
.4byte _080C0288
|
|
.4byte _080C0298
|
|
.4byte _080C02FC
|
|
.4byte _080C0302
|
|
.4byte _080C0340
|
|
.4byte _080C034E
|
|
.4byte _080C0364
|
|
.4byte _080C037C
|
|
.4byte _080C0394
|
|
_080C0288:
|
|
ldr r0, _080C0294 @ =gUnknown_83EF23C
|
|
movs r1, 0xC0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _080C03C8
|
|
.align 2, 0
|
|
_080C0294: .4byte gUnknown_83EF23C
|
|
_080C0298:
|
|
ldr r0, _080C02EC @ =gUnknown_83EF2DC
|
|
movs r1, 0
|
|
movs r2, 0xA0
|
|
bl LoadPalette
|
|
bl sub_80BFEA0
|
|
ldr r0, _080C02F0 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C02F4 @ =0x00004796
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080C02B6
|
|
b _080C03C8
|
|
_080C02B6:
|
|
ldr r4, _080C02F8 @ =gUnknown_83EF25A
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
b _080C03C8
|
|
.align 2, 0
|
|
_080C02EC: .4byte gUnknown_83EF2DC
|
|
_080C02F0: .4byte gUnknown_20399D4
|
|
_080C02F4: .4byte 0x00004796
|
|
_080C02F8: .4byte gUnknown_83EF25A
|
|
_080C02FC:
|
|
bl reset_temp_tile_data_buffers
|
|
b _080C03C8
|
|
_080C0302:
|
|
ldr r1, _080C0330 @ =gUnknown_83EF61C
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r0, _080C0334 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r2, _080C0338 @ =0x00004796
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C03C8
|
|
ldr r1, _080C033C @ =gUnknown_83F1978
|
|
str r4, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
b _080C03C8
|
|
.align 2, 0
|
|
_080C0330: .4byte gUnknown_83EF61C
|
|
_080C0334: .4byte gUnknown_20399D4
|
|
_080C0338: .4byte 0x00004796
|
|
_080C033C: .4byte gUnknown_83F1978
|
|
_080C0340:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C03C8
|
|
b _080C03D6
|
|
_080C034E:
|
|
ldr r0, _080C035C @ =gUnknown_83F089C
|
|
ldr r1, _080C0360 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
adds r1, 0x26
|
|
bl LZ77UnCompWram
|
|
b _080C03C8
|
|
.align 2, 0
|
|
_080C035C: .4byte gUnknown_83F089C
|
|
_080C0360: .4byte gUnknown_20399D4
|
|
_080C0364:
|
|
ldr r0, _080C0370 @ =gUnknown_83F0AFC
|
|
ldr r1, _080C0374 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C0378 @ =0x000004d6
|
|
b _080C039C
|
|
.align 2, 0
|
|
_080C0370: .4byte gUnknown_83F0AFC
|
|
_080C0374: .4byte gUnknown_20399D4
|
|
_080C0378: .4byte 0x000004d6
|
|
_080C037C:
|
|
ldr r0, _080C0388 @ =gUnknown_83F0C0C
|
|
ldr r1, _080C038C @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C0390 @ =0x00000986
|
|
b _080C039C
|
|
.align 2, 0
|
|
_080C0388: .4byte gUnknown_83F0C0C
|
|
_080C038C: .4byte gUnknown_20399D4
|
|
_080C0390: .4byte 0x00000986
|
|
_080C0394:
|
|
ldr r0, _080C03A4 @ =gUnknown_83F0CF0
|
|
ldr r1, _080C03A8 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C03AC @ =0x00000e36
|
|
_080C039C:
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
b _080C03C8
|
|
.align 2, 0
|
|
_080C03A4: .4byte gUnknown_83F0CF0
|
|
_080C03A8: .4byte gUnknown_20399D4
|
|
_080C03AC: .4byte 0x00000e36
|
|
_080C03B0:
|
|
ldr r0, _080C03C0 @ =gUnknown_83F19A0
|
|
ldr r2, _080C03C4 @ =0x000012e6
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x1
|
|
b _080C03D8
|
|
.align 2, 0
|
|
_080C03C0: .4byte gUnknown_83F19A0
|
|
_080C03C4: .4byte 0x000012e6
|
|
_080C03C8:
|
|
ldr r0, _080C03E0 @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r0, _080C03E4 @ =0x000047a8
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080C03D6:
|
|
movs r0, 0
|
|
_080C03D8:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C03E0: .4byte gUnknown_20399D4
|
|
_080C03E4: .4byte 0x000047a8
|
|
thumb_func_end sub_80C0238
|
|
|
|
thumb_func_start sub_80C03E8
|
|
sub_80C03E8: @ 80C03E8
|
|
push {lr}
|
|
ldr r0, _080C0404 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0408 @ =0x000047b8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r0, _080C040C @ =sub_80C08B4
|
|
bl SetMainCallback2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0404: .4byte gUnknown_20399D4
|
|
_080C0408: .4byte 0x000047b8
|
|
_080C040C: .4byte sub_80C08B4
|
|
thumb_func_end sub_80C03E8
|
|
|
|
thumb_func_start sub_80C0410
|
|
sub_80C0410: @ 80C0410
|
|
push {r4,r5,lr}
|
|
bl sub_80C0E20
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
bl sub_80C3514
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
bl sub_80C3508
|
|
adds r3, r0, 0
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x63
|
|
beq _080C0446
|
|
movs r0, 0x1
|
|
b _080C0448
|
|
_080C0446:
|
|
movs r0, 0
|
|
_080C0448:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C0410
|
|
|
|
thumb_func_start sub_80C0450
|
|
sub_80C0450: @ 80C0450
|
|
push {lr}
|
|
bl sub_80C0410
|
|
cmp r0, 0
|
|
beq _080C04E0
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080C0474
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C048E
|
|
_080C0474:
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080C0494
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C0494
|
|
_080C048E:
|
|
movs r0, 0x65
|
|
bl PlaySE
|
|
_080C0494:
|
|
bl sub_80C3508
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080C04C2
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _080C04C2
|
|
movs r0, 0
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C04C2
|
|
movs r0, 0xE1
|
|
bl PlaySE
|
|
b _080C04E0
|
|
_080C04C2:
|
|
bl sub_80C3508
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080C04E0
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _080C04E0
|
|
movs r0, 0xE1
|
|
bl PlaySE
|
|
_080C04E0:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C0450
|
|
|
|
thumb_func_start sub_80C04E4
|
|
sub_80C04E4: @ 80C04E4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080C0508 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C050C @ =0x000047a0
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bls _080C04FC
|
|
b _080C07B0
|
|
_080C04FC:
|
|
lsls r0, 2
|
|
ldr r1, _080C0510 @ =_080C0514
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C0508: .4byte gUnknown_20399D4
|
|
_080C050C: .4byte 0x000047a0
|
|
_080C0510: .4byte _080C0514
|
|
.align 2, 0
|
|
_080C0514:
|
|
.4byte _080C052C
|
|
.4byte _080C0560
|
|
.4byte _080C05E0
|
|
.4byte _080C0624
|
|
.4byte _080C0760
|
|
.4byte _080C0788
|
|
_080C052C:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080C0558 @ =gUnknown_20399D4
|
|
ldr r1, [r4]
|
|
ldr r2, _080C055C @ =0x000047b8
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
adds r1, r5, 0
|
|
bl sub_80C4398
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C3008
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80C41D8
|
|
ldr r1, [r4]
|
|
b _080C079C
|
|
.align 2, 0
|
|
_080C0558: .4byte gUnknown_20399D4
|
|
_080C055C: .4byte 0x000047b8
|
|
_080C0560:
|
|
ldr r0, _080C057C @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r2, _080C0580 @ =0x00004799
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080C0584
|
|
adds r2, 0x1F
|
|
adds r0, r1, r2
|
|
ldr r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80C2208
|
|
b _080C0798
|
|
.align 2, 0
|
|
_080C057C: .4byte gUnknown_20399D4
|
|
_080C0580: .4byte 0x00004799
|
|
_080C0584:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
ldr r0, _080C05D8 @ =gUnknown_8418EB5
|
|
bl sub_80C4E18
|
|
ldr r0, _080C05DC @ =gUnknown_8418E8B
|
|
bl sub_80C4E74
|
|
movs r0, 0
|
|
bl sub_80C4ED0
|
|
movs r0, 0
|
|
bl sub_80C4324
|
|
movs r0, 0
|
|
bl sub_80C3154
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C48BC
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C4960
|
|
b _080C0798
|
|
.align 2, 0
|
|
_080C05D8: .4byte gUnknown_8418EB5
|
|
_080C05DC: .4byte gUnknown_8418E8B
|
|
_080C05E0:
|
|
ldr r0, _080C0618 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C05EE
|
|
b _080C07C2
|
|
_080C05EE:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C05FA
|
|
b _080C07C2
|
|
_080C05FA:
|
|
bl sub_80C0B18
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
bl sub_80C0BB0
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
ldr r0, _080C061C @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r2, _080C0620 @ =0x000047a0
|
|
adds r1, r2
|
|
b _080C07A0
|
|
.align 2, 0
|
|
_080C0618: .4byte gUnknown_2037AB8
|
|
_080C061C: .4byte gUnknown_20399D4
|
|
_080C0620: .4byte 0x000047a0
|
|
_080C0624:
|
|
bl sub_80C3400
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x5
|
|
bls _080C0634
|
|
b _080C07C2
|
|
_080C0634:
|
|
lsls r0, 2
|
|
ldr r1, _080C0640 @ =_080C0644
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C0640: .4byte _080C0644
|
|
.align 2, 0
|
|
_080C0644:
|
|
.4byte _080C065C
|
|
.4byte _080C07C2
|
|
.4byte _080C0662
|
|
.4byte _080C070C
|
|
.4byte _080C0740
|
|
.4byte _080C0798
|
|
_080C065C:
|
|
bl sub_80C3178
|
|
b _080C07C2
|
|
_080C0662:
|
|
bl sub_80C0B18
|
|
bl sub_80C0BB0
|
|
bl sub_80C0B9C
|
|
bl sub_80C0450
|
|
bl sub_80C3580
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC5
|
|
beq _080C06A8
|
|
movs r0, 0x1
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080C068E
|
|
b _080C07C2
|
|
_080C068E:
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080C0700
|
|
ldr r0, _080C06A4 @ =gUnknown_8418E8D
|
|
bl sub_80C4E74
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C06A4: .4byte gUnknown_8418E8D
|
|
_080C06A8:
|
|
bl sub_80C3508
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080C06DC
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bne _080C06DC
|
|
movs r0, 0
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C06DC
|
|
ldr r0, _080C06D8 @ =gUnknown_8418EA7
|
|
bl sub_80C4E74
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C06D8: .4byte gUnknown_8418EA7
|
|
_080C06DC:
|
|
bl sub_80C3508
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080C0700
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _080C0700
|
|
ldr r0, _080C06FC @ =gUnknown_8418E95
|
|
bl sub_80C4E74
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C06FC: .4byte gUnknown_8418E95
|
|
_080C0700:
|
|
ldr r0, _080C0708 @ =gUnknown_8418E8B
|
|
bl sub_80C4E74
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C0708: .4byte gUnknown_8418E8B
|
|
_080C070C:
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080C07C2
|
|
ldr r0, _080C0734 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0738 @ =0x00004798
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080C07C2
|
|
ldr r2, _080C073C @ =sub_80C07F8
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
bl sub_80C195C
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C0734: .4byte gUnknown_20399D4
|
|
_080C0738: .4byte 0x00004798
|
|
_080C073C: .4byte sub_80C07F8
|
|
_080C0740:
|
|
ldr r0, _080C0754 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r2, _080C0758 @ =0x0000479b
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
ldr r2, _080C075C @ =sub_80C07F8
|
|
adds r1, r5, 0
|
|
bl sub_80C0E70
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C0754: .4byte gUnknown_20399D4
|
|
_080C0758: .4byte 0x0000479b
|
|
_080C075C: .4byte sub_80C07F8
|
|
_080C0760:
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C0776
|
|
adds r0, r5, 0
|
|
bl sub_80C2C1C
|
|
b _080C0798
|
|
_080C0776:
|
|
ldr r0, _080C0780 @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
ldr r2, _080C0784 @ =0x000047a0
|
|
adds r1, r2
|
|
b _080C07A0
|
|
.align 2, 0
|
|
_080C0780: .4byte gUnknown_20399D4
|
|
_080C0784: .4byte 0x000047a0
|
|
_080C0788:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_080C0798:
|
|
ldr r0, _080C07A8 @ =gUnknown_20399D4
|
|
ldr r1, [r0]
|
|
_080C079C:
|
|
ldr r0, _080C07AC @ =0x000047a0
|
|
adds r1, r0
|
|
_080C07A0:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C07C2
|
|
.align 2, 0
|
|
_080C07A8: .4byte gUnknown_20399D4
|
|
_080C07AC: .4byte 0x000047a0
|
|
_080C07B0:
|
|
ldr r0, _080C07CC @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C07C2
|
|
adds r0, r5, 0
|
|
bl sub_80C0820
|
|
_080C07C2:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C07CC: .4byte gUnknown_2037AB8
|
|
thumb_func_end sub_80C04E4
|
|
|
|
thumb_func_start sub_80C07D0
|
|
sub_80C07D0: @ 80C07D0
|
|
ldr r1, _080C07DC @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C07E0 @ =0x000047b8
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C07DC: .4byte gUnknown_20399D4
|
|
_080C07E0: .4byte 0x000047b8
|
|
thumb_func_end sub_80C07D0
|
|
|
|
thumb_func_start sub_80C07E4
|
|
sub_80C07E4: @ 80C07E4
|
|
ldr r0, _080C07F0 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C07F4 @ =0x000047b8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C07F0: .4byte gUnknown_20399D4
|
|
_080C07F4: .4byte 0x000047b8
|
|
thumb_func_end sub_80C07E4
|
|
|
|
thumb_func_start sub_80C07F8
|
|
sub_80C07F8: @ 80C07F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C0814 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _080C0818 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r2, _080C081C @ =0x000047b8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0814: .4byte gUnknown_3005090
|
|
_080C0818: .4byte gUnknown_20399D4
|
|
_080C081C: .4byte 0x000047b8
|
|
thumb_func_end sub_80C07F8
|
|
|
|
thumb_func_start sub_80C0820
|
|
sub_80C0820: @ 80C0820
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C0838
|
|
bl sub_80C25BC
|
|
_080C0838:
|
|
bl sub_80C4A04
|
|
bl sub_80C3188
|
|
bl sub_80C4348
|
|
bl sub_80C4D30
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _080C086C @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0870 @ =0x000047bc
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080C0878
|
|
ldr r0, _080C0874 @ =gMain
|
|
ldr r0, [r0, 0x8]
|
|
bl SetMainCallback2
|
|
b _080C087C
|
|
.align 2, 0
|
|
_080C086C: .4byte gUnknown_20399D4
|
|
_080C0870: .4byte 0x000047bc
|
|
_080C0874: .4byte gMain
|
|
_080C0878:
|
|
bl SetMainCallback2
|
|
_080C087C:
|
|
ldr r4, _080C0894 @ =gUnknown_20399D4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C088C
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C088C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0894: .4byte gUnknown_20399D4
|
|
thumb_func_end sub_80C0820
|
|
|
|
thumb_func_start sub_80C0898
|
|
sub_80C0898: @ 80C0898
|
|
push {r4,lr}
|
|
ldr r4, _080C08B0 @ =gUnknown_20399D4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C08AA
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C08AA:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C08B0: .4byte gUnknown_20399D4
|
|
thumb_func_end sub_80C0898
|
|
|
|
thumb_func_start sub_80C08B4
|
|
sub_80C08B4: @ 80C08B4
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C08B4
|
|
|
|
thumb_func_start sub_80C08CC
|
|
sub_80C08CC: @ 80C08CC
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C08CC
|
|
|
|
thumb_func_start sub_80C08E0
|
|
sub_80C08E0: @ 80C08E0
|
|
push {lr}
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
movs r0, 0
|
|
bl SetHBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C08E0
|
|
|
|
thumb_func_start sub_80C08F4
|
|
sub_80C08F4: @ 80C08F4
|
|
push {lr}
|
|
ldr r0, _080C0900 @ =sub_80C08CC
|
|
bl SetVBlankCallback
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0900: .4byte sub_80C08CC
|
|
thumb_func_end sub_80C08F4
|
|
|
|
thumb_func_start sub_80C0904
|
|
sub_80C0904: @ 80C0904
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r3, 0xC0
|
|
lsls r3, 19
|
|
movs r4, 0xC0
|
|
lsls r4, 9
|
|
add r0, sp, 0x4
|
|
mov r8, r0
|
|
mov r2, sp
|
|
movs r6, 0
|
|
ldr r1, _080C0A18 @ =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, _080C0A1C @ =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_080C092A:
|
|
strh r6, [r2]
|
|
mov r0, sp
|
|
str r0, [r1]
|
|
str r3, [r1, 0x4]
|
|
str r7, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
adds r3, r5
|
|
subs r4, r5
|
|
cmp r4, r5
|
|
bhi _080C092A
|
|
strh r6, [r2]
|
|
mov r2, sp
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
lsrs r0, r4, 1
|
|
mov r2, r12
|
|
orrs r0, r2
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
ldr r2, _080C0A18 @ =0x040000d4
|
|
mov r1, r8
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
lsrs r0, r3, 2
|
|
movs r1, 0x85
|
|
lsls r1, 24
|
|
orrs r0, r1
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
lsrs r3, 1
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
orrs r3, r0
|
|
str r3, [r2, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _080C0A20 @ =gUnknown_83F1A50
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
ldr r0, _080C0A24 @ =gUnknown_83F1A60
|
|
bl InitWindows
|
|
bl DeactivateAllTextPrinters
|
|
ldr r1, _080C0A28 @ =0x00006040
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
bl sub_80C0A2C
|
|
bl sub_80C0AB8
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0A18: .4byte 0x040000d4
|
|
_080C0A1C: .4byte 0x81000800
|
|
_080C0A20: .4byte gUnknown_83F1A50
|
|
_080C0A24: .4byte gUnknown_83F1A60
|
|
_080C0A28: .4byte 0x00006040
|
|
thumb_func_end sub_80C0904
|
|
|
|
thumb_func_start sub_80C0A2C
|
|
sub_80C0A2C: @ 80C0A2C
|
|
push {r4,lr}
|
|
ldr r4, _080C0A5C @ =gUnknown_20399D4
|
|
ldr r1, [r4]
|
|
ldr r0, _080C0A60 @ =0x00001796
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _080C0A64 @ =0x00002796
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _080C0A68 @ =0x00003796
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0A5C: .4byte gUnknown_20399D4
|
|
_080C0A60: .4byte 0x00001796
|
|
_080C0A64: .4byte 0x00002796
|
|
_080C0A68: .4byte 0x00003796
|
|
thumb_func_end sub_80C0A2C
|
|
|
|
thumb_func_start sub_80C0A6C
|
|
sub_80C0A6C: @ 80C0A6C
|
|
push {lr}
|
|
bl ResetSpriteData
|
|
bl ResetPaletteFade
|
|
bl FreeAllSpritePalettes
|
|
bl ResetTasks
|
|
bl remove_some_task
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C0A6C
|
|
|
|
thumb_func_start sub_80C0A88
|
|
sub_80C0A88: @ 80C0A88
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080C0A98
|
|
cmp r0, 0x1
|
|
beq _080C0AA6
|
|
b _080C0AB2
|
|
_080C0A98:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
b _080C0AB2
|
|
_080C0AA6:
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
_080C0AB2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C0A88
|
|
|
|
thumb_func_start sub_80C0AB8
|
|
sub_80C0AB8: @ 80C0AB8
|
|
push {r4,lr}
|
|
bl sub_80C4BE4
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0xC0
|
|
bl sub_80C4C2C
|
|
movs r0, 0x6
|
|
bl sub_80C4C48
|
|
movs r0, 0x39
|
|
movs r1, 0x39
|
|
bl sub_80C4C74
|
|
movs r0, 0x1B
|
|
bl sub_80C4C88
|
|
ldr r4, _080C0B14 @ =gUnknown_83F1B0C
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_80C4CF0
|
|
adds r4, 0x8
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
bl sub_80C3580
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC5
|
|
beq _080C0B0C
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
_080C0B0C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0B14: .4byte gUnknown_83F1B0C
|
|
thumb_func_end sub_80C0AB8
|
|
|
|
thumb_func_start sub_80C0B18
|
|
sub_80C0B18: @ 80C0B18
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
movs r0, 0
|
|
bl ClearWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
bl sub_80C3520
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC5
|
|
bne _080C0B44
|
|
ldr r1, _080C0B40 @ =gUnknown_83F1B1C
|
|
movs r0, 0
|
|
bl sub_80C4CF0
|
|
b _080C0B88
|
|
.align 2, 0
|
|
_080C0B40: .4byte gUnknown_83F1B1C
|
|
_080C0B44:
|
|
ldr r5, _080C0B90 @ =gUnknown_20399D4
|
|
ldr r4, [r5]
|
|
bl sub_80C3520
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_80C4D78
|
|
ldr r0, _080C0B94 @ =gUnknown_83F1A90
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r5]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x2
|
|
movs r3, 0x2
|
|
bl box_print
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r1, _080C0B98 @ =gUnknown_83F1B0C
|
|
movs r0, 0
|
|
bl sub_80C4CF0
|
|
_080C0B88:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0B90: .4byte gUnknown_20399D4
|
|
_080C0B94: .4byte gUnknown_83F1A90
|
|
_080C0B98: .4byte gUnknown_83F1B0C
|
|
thumb_func_end sub_80C0B18
|
|
|
|
thumb_func_start sub_80C0B9C
|
|
sub_80C0B9C: @ 80C0B9C
|
|
push {lr}
|
|
ldr r1, _080C0BAC @ =gUnknown_83F1B14
|
|
movs r0, 0x1
|
|
bl sub_80C4CF0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0BAC: .4byte gUnknown_83F1B14
|
|
thumb_func_end sub_80C0B9C
|
|
|
|
thumb_func_start sub_80C0BB0
|
|
sub_80C0BB0: @ 80C0BB0
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r5, _080C0C84 @ =gUnknown_20399D4
|
|
ldr r1, [r5]
|
|
ldr r2, _080C0C88 @ =0x000047ac
|
|
adds r0, r1, r2
|
|
movs r6, 0
|
|
strh r6, [r0]
|
|
ldr r3, _080C0C8C @ =0x000047ae
|
|
adds r2, r1, r3
|
|
movs r0, 0x18
|
|
strh r0, [r2]
|
|
ldr r0, _080C0C90 @ =0x000047b0
|
|
adds r1, r0
|
|
movs r0, 0x20
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80C4C9C
|
|
movs r0, 0x1
|
|
bl ClearWindowTilemap
|
|
bl sub_80C3580
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xC5
|
|
beq _080C0C7A
|
|
adds r4, r0, 0
|
|
subs r4, 0x58
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
ldr r0, [r5]
|
|
ldr r1, _080C0C88 @ =0x000047ac
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strh r1, [r0]
|
|
ldr r0, _080C0C94 @ =gUnknown_83F1CAC
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldr r4, [r4]
|
|
adds r0, r4, 0
|
|
bl StringLength
|
|
ldr r2, [r5]
|
|
ldr r3, _080C0C98 @ =0x000047aa
|
|
adds r1, r2, r3
|
|
strh r0, [r1]
|
|
ldrh r1, [r1]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, 0x32
|
|
adds r3, 0x4
|
|
adds r1, r2, r3
|
|
strh r0, [r1]
|
|
ldr r0, _080C0C90 @ =0x000047b0
|
|
adds r2, r0
|
|
movs r0, 0x30
|
|
strh r0, [r2]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r5]
|
|
adds r0, 0x13
|
|
adds r1, r4, 0
|
|
bl StringCopy
|
|
ldr r4, _080C0C9C @ =gUnknown_83F1A9C
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
subs r0, 0x8
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r6, [sp, 0x4]
|
|
ldr r0, [r5]
|
|
adds r0, 0x13
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0xC
|
|
movs r3, 0x2
|
|
bl box_print
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
_080C0C7A:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0C84: .4byte gUnknown_20399D4
|
|
_080C0C88: .4byte 0x000047ac
|
|
_080C0C8C: .4byte 0x000047ae
|
|
_080C0C90: .4byte 0x000047b0
|
|
_080C0C94: .4byte gUnknown_83F1CAC
|
|
_080C0C98: .4byte 0x000047aa
|
|
_080C0C9C: .4byte gUnknown_83F1A9C
|
|
thumb_func_end sub_80C0BB0
|
|
|
|
thumb_func_start sub_80C0CA0
|
|
sub_80C0CA0: @ 80C0CA0
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C0CA0
|
|
|
|
thumb_func_start sub_80C0CC8
|
|
sub_80C0CC8: @ 80C0CC8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
ldr r2, _080C0D0C @ =gUnknown_20399D4
|
|
lsrs r0, 12
|
|
ldr r1, _080C0D10 @ =0x00001796
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
adds r6, r1, r0
|
|
movs r1, 0
|
|
mov r8, r2
|
|
_080C0CE4:
|
|
movs r2, 0
|
|
lsls r5, r1, 16
|
|
asrs r1, r5, 16
|
|
lsls r3, r1, 5
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r4, r0, 1
|
|
_080C0CF2:
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r0, 0
|
|
cmp r1, 0x1D
|
|
bgt _080C0D14
|
|
adds r0, r3, r1
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
adds r1, r4, r1
|
|
lsls r1, 1
|
|
adds r1, r7
|
|
ldrh r1, [r1]
|
|
b _080C0D1C
|
|
.align 2, 0
|
|
_080C0D0C: .4byte gUnknown_20399D4
|
|
_080C0D10: .4byte 0x00001796
|
|
_080C0D14:
|
|
adds r0, r3, r1
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r1, [r7]
|
|
_080C0D1C:
|
|
strh r1, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r2, r1
|
|
lsrs r2, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
ble _080C0CF2
|
|
adds r0, r5, r1
|
|
lsrs r1, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080C0CE4
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r1, _080C0D94 @ =0x00004797
|
|
adds r0, r1
|
|
ldrb r5, [r0]
|
|
cmp r5, 0x1
|
|
bne _080C0D86
|
|
movs r4, 0x3
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0x18
|
|
movs r3, 0xE
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r2, 0x18
|
|
movs r3, 0xF
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
movs r1, 0x88
|
|
lsls r1, 1
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r2, 0x18
|
|
movs r3, 0x10
|
|
bl WriteSequenceToBgTilemapBuffer
|
|
_080C0D86:
|
|
ldr r0, _080C0D98 @ =gUnknown_20399D8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C0DA0
|
|
ldr r1, _080C0D9C @ =0x00001cca
|
|
b _080C0DA6
|
|
.align 2, 0
|
|
_080C0D94: .4byte 0x00004797
|
|
_080C0D98: .4byte gUnknown_20399D8
|
|
_080C0D9C: .4byte 0x00001cca
|
|
_080C0DA0:
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
ldr r1, _080C0DF8 @ =0x0000479b
|
|
_080C0DA6:
|
|
adds r0, r1
|
|
ldrb r4, [r0]
|
|
cmp r4, 0x2
|
|
bne _080C0DCC
|
|
ldr r0, _080C0DFC @ =0x000008b5
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C0DCC
|
|
movs r0, 0x3
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0xD
|
|
movs r3, 0xB
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
_080C0DCC:
|
|
cmp r4, 0x3
|
|
bne _080C0DEC
|
|
ldr r0, _080C0E00 @ =0x000008c2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C0DEC
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
movs r2, 0x15
|
|
movs r3, 0x10
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
_080C0DEC:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0DF8: .4byte 0x0000479b
|
|
_080C0DFC: .4byte 0x000008b5
|
|
_080C0E00: .4byte 0x000008c2
|
|
thumb_func_end sub_80C0CC8
|
|
|
|
thumb_func_start sub_80C0E04
|
|
sub_80C0E04: @ 80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080C0E18 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C0E1C @ =0x00004797
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0E18: .4byte gUnknown_20399D4
|
|
_080C0E1C: .4byte 0x00004797
|
|
thumb_func_end sub_80C0E04
|
|
|
|
thumb_func_start sub_80C0E20
|
|
sub_80C0E20: @ 80C0E20
|
|
ldr r0, _080C0E2C @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0E30 @ =0x0000479b
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0E2C: .4byte gUnknown_20399D4
|
|
_080C0E30: .4byte 0x0000479b
|
|
thumb_func_end sub_80C0E20
|
|
|
|
thumb_func_start sub_80C0E34
|
|
sub_80C0E34: @ 80C0E34
|
|
ldr r0, _080C0E40 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C0E44 @ =0x0000479c
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0E40: .4byte gUnknown_20399D4
|
|
_080C0E44: .4byte 0x0000479c
|
|
thumb_func_end sub_80C0E34
|
|
|
|
thumb_func_start sub_80C0E48
|
|
sub_80C0E48: @ 80C0E48
|
|
ldr r1, _080C0E54 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C0E58 @ =0x0000479b
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0E54: .4byte gUnknown_20399D4
|
|
_080C0E58: .4byte 0x0000479b
|
|
thumb_func_end sub_80C0E48
|
|
|
|
thumb_func_start sub_80C0E5C
|
|
sub_80C0E5C: @ 80C0E5C
|
|
ldr r1, _080C0E68 @ =gUnknown_20399D4
|
|
ldr r1, [r1]
|
|
ldr r2, _080C0E6C @ =0x0000479c
|
|
adds r1, r2
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C0E68: .4byte gUnknown_20399D4
|
|
_080C0E6C: .4byte 0x0000479c
|
|
thumb_func_end sub_80C0E5C
|
|
|
|
thumb_func_start sub_80C0E70
|
|
sub_80C0E70: @ 80C0E70
|
|
push {r4-r7,lr}
|
|
adds r7, r2, 0
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, _080C0EA0 @ =gUnknown_20399D8
|
|
movs r0, 0xE7
|
|
lsls r0, 5
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, _080C0EA4 @ =0x00000846
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C0EAC
|
|
ldr r0, [r4]
|
|
ldr r1, _080C0EA8 @ =0x00001ccc
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
b _080C0ED2
|
|
.align 2, 0
|
|
_080C0EA0: .4byte gUnknown_20399D8
|
|
_080C0EA4: .4byte 0x00000846
|
|
_080C0EA8: .4byte 0x00001ccc
|
|
_080C0EAC:
|
|
ldr r0, _080C0EC4 @ =0x00000845
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080C0ECC
|
|
ldr r0, [r4]
|
|
ldr r2, _080C0EC8 @ =0x00001ccc
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
b _080C0ED2
|
|
.align 2, 0
|
|
_080C0EC4: .4byte 0x00000845
|
|
_080C0EC8: .4byte 0x00001ccc
|
|
_080C0ECC:
|
|
ldr r0, [r4]
|
|
ldr r3, _080C0F14 @ =0x00001ccc
|
|
adds r0, r3
|
|
_080C0ED2:
|
|
strb r1, [r0]
|
|
ldr r4, _080C0F18 @ =gUnknown_20399D8
|
|
ldr r2, [r4]
|
|
ldr r0, _080C0F1C @ =0x000018b8
|
|
adds r1, r2, r0
|
|
movs r0, 0x58
|
|
strh r0, [r1]
|
|
ldr r3, _080C0F20 @ =0x00001cc4
|
|
adds r1, r2, r3
|
|
movs r0, 0x98
|
|
strh r0, [r1]
|
|
ldr r1, _080C0F14 @ =0x00001ccc
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _080C0F2C
|
|
cmp r0, 0x2
|
|
bgt _080C0F4C
|
|
cmp r0, 0x1
|
|
bne _080C0F4C
|
|
ldr r0, _080C0F24 @ =gUnknown_83F1084
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r1, r2, r3
|
|
bl LZ77UnCompWram
|
|
ldr r0, [r4]
|
|
ldr r1, _080C0F28 @ =0x00001cce
|
|
adds r0, r1
|
|
movs r1, 0x6
|
|
strh r1, [r0]
|
|
b _080C0F64
|
|
.align 2, 0
|
|
_080C0F14: .4byte 0x00001ccc
|
|
_080C0F18: .4byte gUnknown_20399D8
|
|
_080C0F1C: .4byte 0x000018b8
|
|
_080C0F20: .4byte 0x00001cc4
|
|
_080C0F24: .4byte gUnknown_83F1084
|
|
_080C0F28: .4byte 0x00001cce
|
|
_080C0F2C:
|
|
ldr r0, _080C0F44 @ =gUnknown_83F1190
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r1, r2, r3
|
|
bl LZ77UnCompWram
|
|
ldr r0, [r4]
|
|
ldr r1, _080C0F48 @ =0x00001cce
|
|
adds r0, r1
|
|
movs r1, 0x4
|
|
strh r1, [r0]
|
|
b _080C0F64
|
|
.align 2, 0
|
|
_080C0F44: .4byte gUnknown_83F1190
|
|
_080C0F48: .4byte 0x00001cce
|
|
_080C0F4C:
|
|
ldr r0, _080C0FB4 @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r3, _080C0FB8 @ =0x00001cce
|
|
adds r2, r1, r3
|
|
movs r0, 0x3
|
|
strh r0, [r2]
|
|
ldr r0, _080C0FBC @ =gUnknown_83F0F1C
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
_080C0F64:
|
|
ldr r0, _080C0FC0 @ =gUnknown_83F0580
|
|
ldr r4, _080C0FB4 @ =gUnknown_20399D8
|
|
ldr r1, [r4]
|
|
bl LZ77UnCompWram
|
|
ldr r0, [r4]
|
|
ldr r3, _080C0FC4 @ =0x00001cc8
|
|
adds r0, r3
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
ldr r1, _080C0FC8 @ =0x00001cca
|
|
adds r0, r1
|
|
strb r6, [r0]
|
|
ldr r0, [r4]
|
|
ldr r2, _080C0FCC @ =0x00001cd0
|
|
adds r0, r2
|
|
str r7, [r0]
|
|
bl sub_80C0E34
|
|
ldr r1, [r4]
|
|
ldr r3, _080C0FD0 @ =0x00001ccb
|
|
adds r1, r3
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl sub_80C4AAC
|
|
ldr r0, _080C0FD4 @ =gUnknown_8418EB0
|
|
bl sub_80C4E74
|
|
ldr r1, _080C0FD8 @ =gUnknown_3005090
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080C0FDC @ =sub_80C1098
|
|
str r1, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C0FB4: .4byte gUnknown_20399D8
|
|
_080C0FB8: .4byte 0x00001cce
|
|
_080C0FBC: .4byte gUnknown_83F0F1C
|
|
_080C0FC0: .4byte gUnknown_83F0580
|
|
_080C0FC4: .4byte 0x00001cc8
|
|
_080C0FC8: .4byte 0x00001cca
|
|
_080C0FCC: .4byte 0x00001cd0
|
|
_080C0FD0: .4byte 0x00001ccb
|
|
_080C0FD4: .4byte gUnknown_8418EB0
|
|
_080C0FD8: .4byte gUnknown_3005090
|
|
_080C0FDC: .4byte sub_80C1098
|
|
thumb_func_end sub_80C0E70
|
|
|
|
thumb_func_start sub_80C0FE0
|
|
sub_80C0FE0: @ 80C0FE0
|
|
push {lr}
|
|
bl sub_80C4BE4
|
|
movs r0, 0x1B
|
|
movs r1, 0x4
|
|
movs r2, 0x40
|
|
bl sub_80C4C2C
|
|
ldr r0, _080C100C @ =gUnknown_20399D8
|
|
ldr r0, [r0]
|
|
ldr r1, _080C1010 @ =0x00001ccd
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C4C5C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C100C: .4byte gUnknown_20399D8
|
|
_080C1010: .4byte 0x00001ccd
|
|
thumb_func_end sub_80C0FE0
|
|
|
|
thumb_func_start sub_80C1014
|
|
sub_80C1014: @ 80C1014
|
|
push {r4,lr}
|
|
ldr r4, _080C1028 @ =gUnknown_20399D8
|
|
ldr r0, [r4]
|
|
ldr r2, _080C102C @ =0x00001ccd
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xF
|
|
bls _080C1030
|
|
movs r0, 0x1
|
|
b _080C104C
|
|
.align 2, 0
|
|
_080C1028: .4byte gUnknown_20399D8
|
|
_080C102C: .4byte 0x00001ccd
|
|
_080C1030:
|
|
ldrb r1, [r1]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C4C5C
|
|
ldr r1, [r4]
|
|
ldr r0, _080C1054 @ =0x00001ccd
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x2
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C104C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C1054: .4byte 0x00001ccd
|
|
thumb_func_end sub_80C1014
|
|
|
|
thumb_func_start sub_80C1058
|
|
sub_80C1058: @ 80C1058
|
|
push {lr}
|
|
ldr r2, _080C106C @ =gUnknown_20399D8
|
|
ldr r0, [r2]
|
|
ldr r3, _080C1070 @ =0x00001ccd
|
|
adds r1, r0, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bhi _080C1074
|
|
movs r0, 0x1
|
|
b _080C108E
|
|
.align 2, 0
|
|
_080C106C: .4byte gUnknown_20399D8
|
|
_080C1070: .4byte 0x00001ccd
|
|
_080C1074:
|
|
subs r0, 0x2
|
|
strb r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r1, _080C1094 @ =0x00001ccd
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C4C5C
|
|
movs r0, 0
|
|
_080C108E:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C1094: .4byte 0x00001ccd
|
|
thumb_func_end sub_80C1058
|
|
|
|
thumb_func_start sub_80C1098
|
|
sub_80C1098: @ 80C1098
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C10BC @ =gUnknown_20399D8
|
|
ldr r0, [r1]
|
|
ldr r3, _080C10C0 @ =0x00001cc8
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0xC
|
|
bls _080C10B0
|
|
b _080C1274
|
|
_080C10B0:
|
|
lsls r0, 2
|
|
ldr r1, _080C10C4 @ =_080C10C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C10BC: .4byte gUnknown_20399D8
|
|
_080C10C0: .4byte 0x00001cc8
|
|
_080C10C4: .4byte _080C10C8
|
|
.align 2, 0
|
|
_080C10C8:
|
|
.4byte _080C10FC
|
|
.4byte _080C111C
|
|
.4byte _080C112E
|
|
.4byte _080C1146
|
|
.4byte _080C115C
|
|
.4byte _080C1168
|
|
.4byte _080C1180
|
|
.4byte _080C1192
|
|
.4byte _080C11B0
|
|
.4byte _080C11BE
|
|
.4byte _080C1220
|
|
.4byte _080C1236
|
|
.4byte _080C1254
|
|
_080C10FC:
|
|
bl sub_80C08E0
|
|
ldr r0, _080C1110 @ =gUnknown_8418EBC
|
|
bl sub_80C4E18
|
|
ldr r0, _080C1114 @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1118 @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C1110: .4byte gUnknown_8418EBC
|
|
_080C1114: .4byte gUnknown_20399D8
|
|
_080C1118: .4byte 0x00001cc8
|
|
_080C111C:
|
|
ldr r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
movs r0, 0x2
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
ldr r1, [r4]
|
|
b _080C125E
|
|
_080C112E:
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl sub_80C1324
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r4]
|
|
b _080C125E
|
|
_080C1146:
|
|
bl sub_80C0CA0
|
|
ldr r0, _080C1154 @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1158 @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C1154: .4byte gUnknown_20399D8
|
|
_080C1158: .4byte 0x00001cc8
|
|
_080C115C:
|
|
bl sub_80C0FE0
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
b _080C125A
|
|
_080C1168:
|
|
bl sub_80C08F4
|
|
ldr r0, _080C1178 @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C117C @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C1178: .4byte gUnknown_20399D8
|
|
_080C117C: .4byte 0x00001cc8
|
|
_080C1180:
|
|
bl sub_80C1014
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
bl sub_80C1390
|
|
b _080C125A
|
|
_080C1192:
|
|
bl sub_80C144C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
ldr r0, _080C11A8 @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C11AC @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C11A8: .4byte gUnknown_20399D8
|
|
_080C11AC: .4byte 0x00001cc8
|
|
_080C11B0:
|
|
bl sub_80C16D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
b _080C125A
|
|
_080C11BE:
|
|
bl sub_80C1478
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
ldr r5, _080C1214 @ =gUnknown_20399D8
|
|
ldr r0, [r5]
|
|
ldr r4, _080C1218 @ =0x00001cca
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80C0E48
|
|
bl sub_80C0E34
|
|
ldr r1, [r5]
|
|
adds r1, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _080C120C
|
|
movs r0, 0
|
|
bl sub_80C4324
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C48BC
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C4960
|
|
_080C120C:
|
|
ldr r1, [r5]
|
|
ldr r0, _080C121C @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C1214: .4byte gUnknown_20399D8
|
|
_080C1218: .4byte 0x00001cca
|
|
_080C121C: .4byte 0x00001cc8
|
|
_080C1220:
|
|
bl sub_80C12EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
bl sub_80C1880
|
|
bl sub_80C0FE0
|
|
b _080C125A
|
|
_080C1236:
|
|
bl sub_80C1058
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C127A
|
|
ldr r0, _080C124C @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1250 @ =0x00001cc8
|
|
adds r1, r0
|
|
b _080C1262
|
|
.align 2, 0
|
|
_080C124C: .4byte gUnknown_20399D8
|
|
_080C1250: .4byte 0x00001cc8
|
|
_080C1254:
|
|
movs r0, 0
|
|
bl sub_80C3154
|
|
_080C125A:
|
|
ldr r0, _080C126C @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
_080C125E:
|
|
ldr r3, _080C1270 @ =0x00001cc8
|
|
adds r1, r3
|
|
_080C1262:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C127A
|
|
.align 2, 0
|
|
_080C126C: .4byte gUnknown_20399D8
|
|
_080C1270: .4byte 0x00001cc8
|
|
_080C1274:
|
|
adds r0, r2, 0
|
|
bl sub_80C1280
|
|
_080C127A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C1098
|
|
|
|
thumb_func_start sub_80C1280
|
|
sub_80C1280: @ 80C1280
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C12D4 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r4, _080C12D8 @ =gUnknown_20399D8
|
|
ldr r0, [r4]
|
|
ldr r2, _080C12DC @ =0x00001cd0
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
bl HideBg
|
|
ldr r0, _080C12E0 @ =gUnknown_8418EB5
|
|
bl sub_80C4E18
|
|
ldr r0, _080C12E4 @ =gUnknown_8418EA7
|
|
bl sub_80C4E74
|
|
bl sub_80C0AB8
|
|
bl sub_80C0B9C
|
|
ldr r1, _080C12E8 @ =gUnknown_83F1B1C
|
|
movs r0, 0
|
|
bl sub_80C4CF0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C12CC
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C12CC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C12D4: .4byte gUnknown_3005090
|
|
_080C12D8: .4byte gUnknown_20399D8
|
|
_080C12DC: .4byte 0x00001cd0
|
|
_080C12E0: .4byte gUnknown_8418EB5
|
|
_080C12E4: .4byte gUnknown_8418EA7
|
|
_080C12E8: .4byte gUnknown_83F1B1C
|
|
thumb_func_end sub_80C1280
|
|
|
|
thumb_func_start sub_80C12EC
|
|
sub_80C12EC: @ 80C12EC
|
|
push {lr}
|
|
ldr r0, _080C1308 @ =gUnknown_20399D8
|
|
ldr r0, [r0]
|
|
ldr r2, _080C130C @ =0x00001cdc
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _080C1310
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1
|
|
b _080C131E
|
|
.align 2, 0
|
|
_080C1308: .4byte gUnknown_20399D8
|
|
_080C130C: .4byte 0x00001cdc
|
|
_080C1310:
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
ldrh r1, [r1]
|
|
movs r0, 0x54
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
_080C131E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C12EC
|
|
|
|
thumb_func_start sub_80C1324
|
|
sub_80C1324: @ 80C1324
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
lsls r0, 24
|
|
ldr r1, _080C1360 @ =gUnknown_20399D4
|
|
lsrs r0, 12
|
|
ldr r2, _080C1364 @ =0x00001796
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
movs r1, 0
|
|
_080C1338:
|
|
movs r2, 0
|
|
lsls r5, r1, 16
|
|
asrs r1, r5, 16
|
|
lsls r3, r1, 5
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r4, r0, 1
|
|
_080C1346:
|
|
lsls r0, r2, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r0, 0
|
|
cmp r1, 0x1D
|
|
bgt _080C1368
|
|
adds r0, r3, r1
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
adds r1, r4, r1
|
|
lsls r1, 1
|
|
adds r1, r7
|
|
ldrh r1, [r1]
|
|
b _080C1370
|
|
.align 2, 0
|
|
_080C1360: .4byte gUnknown_20399D4
|
|
_080C1364: .4byte 0x00001796
|
|
_080C1368:
|
|
adds r0, r3, r1
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
ldrh r1, [r7]
|
|
_080C1370:
|
|
strh r1, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r2, r1
|
|
lsrs r2, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1F
|
|
ble _080C1346
|
|
adds r0, r5, r1
|
|
lsrs r1, r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080C1338
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C1324
|
|
|
|
thumb_func_start sub_80C1390
|
|
sub_80C1390: @ 80C1390
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C1428 @ =gUnknown_20399D8
|
|
ldr r2, [r0]
|
|
ldr r1, _080C142C @ =0x00001cd4
|
|
adds r0, r2, r1
|
|
movs r1, 0x48
|
|
strh r1, [r0]
|
|
ldr r5, _080C1430 @ =0xffff0000
|
|
ldr r0, [sp]
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, _080C1434 @ =0x00001cce
|
|
adds r3, r2, r0
|
|
ldr r1, _080C1438 @ =0x00001cca
|
|
adds r0, r2, r1
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
ldrh r3, [r3]
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
ldr r0, _080C143C @ =0x00001cd6
|
|
adds r4, r2, r0
|
|
strh r1, [r4]
|
|
lsls r1, 16
|
|
ldr r3, _080C1440 @ =0x0000ffff
|
|
ldr r0, [sp]
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r1, _080C1444 @ =0x00001cd8
|
|
adds r0, r2, r1
|
|
movs r1, 0xA8
|
|
strh r1, [r0]
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldrh r1, [r4]
|
|
adds r1, 0x20
|
|
ldr r0, _080C1448 @ =0x00001cda
|
|
adds r2, r0
|
|
strh r1, [r2]
|
|
ands r1, r3
|
|
lsls r1, 16
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
bl sub_80C4BE4
|
|
movs r0, 0
|
|
movs r1, 0x15
|
|
movs r2, 0xC0
|
|
bl sub_80C4C2C
|
|
movs r0, 0x1F
|
|
movs r1, 0x15
|
|
bl sub_80C4C74
|
|
movs r0, 0x3F
|
|
bl sub_80C4C88
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
movs r0, 0x1
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1428: .4byte gUnknown_20399D8
|
|
_080C142C: .4byte 0x00001cd4
|
|
_080C1430: .4byte 0xffff0000
|
|
_080C1434: .4byte 0x00001cce
|
|
_080C1438: .4byte 0x00001cca
|
|
_080C143C: .4byte 0x00001cd6
|
|
_080C1440: .4byte 0x0000ffff
|
|
_080C1444: .4byte 0x00001cd8
|
|
_080C1448: .4byte 0x00001cda
|
|
thumb_func_end sub_80C1390
|
|
|
|
thumb_func_start sub_80C144C
|
|
sub_80C144C: @ 80C144C
|
|
push {lr}
|
|
ldr r0, _080C1460 @ =gUnknown_20399D8
|
|
ldr r0, [r0]
|
|
ldr r2, _080C1464 @ =0x00001cdc
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x5
|
|
bls _080C1468
|
|
movs r0, 0x1
|
|
b _080C1474
|
|
.align 2, 0
|
|
_080C1460: .4byte gUnknown_20399D8
|
|
_080C1464: .4byte 0x00001cdc
|
|
_080C1468:
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
bl sub_80C4C48
|
|
movs r0, 0
|
|
_080C1474:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C144C
|
|
|
|
thumb_func_start sub_80C1478
|
|
sub_80C1478: @ 80C1478
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r6, 0
|
|
ldr r0, _080C1574 @ =gUnknown_20399D8
|
|
mov r8, r0
|
|
ldr r5, [r0]
|
|
ldr r1, _080C1578 @ =0x00001cd4
|
|
adds r0, r5, r1
|
|
movs r1, 0x48
|
|
strh r1, [r0]
|
|
ldr r4, _080C157C @ =0xffff0000
|
|
ldr r0, [sp]
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r3, _080C1580 @ =0x00001cce
|
|
adds r2, r5, r3
|
|
ldr r7, _080C1584 @ =0x00001cca
|
|
adds r0, r5, r7
|
|
ldrb r1, [r0]
|
|
lsls r1, 2
|
|
ldrh r2, [r2]
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
ldr r0, _080C1588 @ =0x00001cd6
|
|
adds r3, r5, r0
|
|
strh r1, [r3]
|
|
lsls r1, 16
|
|
ldr r2, _080C158C @ =0x0000ffff
|
|
ldr r0, [sp]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r1, _080C1590 @ =0x00001cd8
|
|
adds r0, r5, r1
|
|
movs r1, 0xA8
|
|
strh r1, [r0]
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldrh r1, [r3]
|
|
adds r1, 0x20
|
|
ldr r3, _080C1594 @ =0x00001cda
|
|
adds r0, r5, r3
|
|
strh r1, [r0]
|
|
ands r1, r2
|
|
lsls r1, 16
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _080C1598 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C150E
|
|
adds r1, r7, 0
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C150E
|
|
movs r0, 0xF5
|
|
bl PlaySE
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, r7
|
|
ldrb r0, [r1]
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r6, 0x1
|
|
_080C150E:
|
|
ldr r0, _080C1598 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C1542
|
|
ldr r4, _080C1574 @ =gUnknown_20399D8
|
|
ldr r0, [r4]
|
|
ldr r3, _080C1584 @ =0x00001cca
|
|
adds r1, r0, r3
|
|
ldr r2, _080C159C @ =0x00001ccc
|
|
adds r0, r2
|
|
ldrb r1, [r1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _080C1542
|
|
movs r0, 0xF5
|
|
bl PlaySE
|
|
ldr r1, [r4]
|
|
ldr r3, _080C1584 @ =0x00001cca
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r6, 0x1
|
|
_080C1542:
|
|
ldr r2, _080C1598 @ =gMain
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
ldr r4, _080C1574 @ =gUnknown_20399D8
|
|
cmp r0, 0
|
|
beq _080C15A8
|
|
ldr r0, [r4]
|
|
ldr r1, _080C15A0 @ =0x00001cdc
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _080C15A8
|
|
movs r0, 0xC7
|
|
bl PlaySE
|
|
ldr r0, [r4]
|
|
ldr r2, _080C1584 @ =0x00001cca
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
ldr r3, _080C15A4 @ =0x00001ccb
|
|
adds r0, r3
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _080C16AC
|
|
.align 2, 0
|
|
_080C1574: .4byte gUnknown_20399D8
|
|
_080C1578: .4byte 0x00001cd4
|
|
_080C157C: .4byte 0xffff0000
|
|
_080C1580: .4byte 0x00001cce
|
|
_080C1584: .4byte 0x00001cca
|
|
_080C1588: .4byte 0x00001cd6
|
|
_080C158C: .4byte 0x0000ffff
|
|
_080C1590: .4byte 0x00001cd8
|
|
_080C1594: .4byte 0x00001cda
|
|
_080C1598: .4byte gMain
|
|
_080C159C: .4byte 0x00001ccc
|
|
_080C15A0: .4byte 0x00001cdc
|
|
_080C15A4: .4byte 0x00001ccb
|
|
_080C15A8:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C1604
|
|
ldr r0, [r4]
|
|
ldr r2, _080C15FC @ =0x00001ccb
|
|
adds r1, r0, r2
|
|
ldrb r1, [r1]
|
|
subs r2, 0x1
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
ldr r3, _080C1600 @ =gUnknown_20399D4
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
adds r0, 0x26
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl sub_80C0CC8
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C48BC
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C4960
|
|
movs r0, 0x1
|
|
b _080C16AC
|
|
.align 2, 0
|
|
_080C15FC: .4byte 0x00001ccb
|
|
_080C1600: .4byte gUnknown_20399D4
|
|
_080C1604:
|
|
cmp r6, 0
|
|
beq _080C166C
|
|
ldr r2, _080C168C @ =gUnknown_20399D4
|
|
ldr r5, _080C1690 @ =gUnknown_20399D8
|
|
ldr r0, [r5]
|
|
ldr r4, _080C1694 @ =0x00001cca
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 4
|
|
adds r0, 0x26
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl sub_80C0CC8
|
|
ldr r0, _080C1698 @ =gUnknown_8418EB0
|
|
bl sub_80C4E74
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C48BC
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C4960
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C48BC
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C4960
|
|
_080C166C:
|
|
ldr r0, _080C1690 @ =gUnknown_20399D8
|
|
ldr r4, [r0]
|
|
ldr r3, _080C1694 @ =0x00001cca
|
|
adds r4, r3
|
|
bl sub_80C0E34
|
|
ldrb r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r1, r0
|
|
beq _080C169C
|
|
movs r0, 0x1
|
|
bl sub_80C4324
|
|
b _080C16A2
|
|
.align 2, 0
|
|
_080C168C: .4byte gUnknown_20399D4
|
|
_080C1690: .4byte gUnknown_20399D8
|
|
_080C1694: .4byte 0x00001cca
|
|
_080C1698: .4byte gUnknown_8418EB0
|
|
_080C169C:
|
|
movs r0, 0
|
|
bl sub_80C4324
|
|
_080C16A2:
|
|
movs r0, 0x1
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
_080C16AC:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C1478
|
|
|
|
thumb_func_start sub_80C16B8
|
|
sub_80C16B8: @ 80C16B8
|
|
ldr r1, _080C16C8 @ =gUnknown_20399D8
|
|
ldr r1, [r1]
|
|
ldr r2, _080C16CC @ =0x00001cd6
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
adds r1, 0x10
|
|
strh r1, [r0, 0x22]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C16C8: .4byte gUnknown_20399D8
|
|
_080C16CC: .4byte 0x00001cd6
|
|
thumb_func_end sub_80C16B8
|
|
|
|
thumb_func_start sub_80C16D0
|
|
sub_80C16D0: @ 80C16D0
|
|
push {lr}
|
|
ldr r0, _080C16EC @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r2, _080C16F0 @ =0x00001cc9
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080C1708
|
|
cmp r0, 0x1
|
|
bgt _080C16F4
|
|
cmp r0, 0
|
|
beq _080C16FA
|
|
b _080C1732
|
|
.align 2, 0
|
|
_080C16EC: .4byte gUnknown_20399D8
|
|
_080C16F0: .4byte 0x00001cc9
|
|
_080C16F4:
|
|
cmp r0, 0x2
|
|
beq _080C171C
|
|
b _080C1732
|
|
_080C16FA:
|
|
ldr r0, _080C1700 @ =gUnknown_83EF3C4
|
|
ldr r2, _080C1704 @ =0x000014b0
|
|
b _080C170C
|
|
.align 2, 0
|
|
_080C1700: .4byte gUnknown_83EF3C4
|
|
_080C1704: .4byte 0x000014b0
|
|
_080C1708:
|
|
ldr r0, _080C1714 @ =gUnknown_83EF450
|
|
ldr r2, _080C1718 @ =0x000018bc
|
|
_080C170C:
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
b _080C1736
|
|
.align 2, 0
|
|
_080C1714: .4byte gUnknown_83EF450
|
|
_080C1718: .4byte 0x000018bc
|
|
_080C171C:
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x2
|
|
bl sub_80C1754
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x3
|
|
bl sub_80C1754
|
|
b _080C1736
|
|
_080C1732:
|
|
movs r0, 0x1
|
|
b _080C1746
|
|
_080C1736:
|
|
ldr r0, _080C174C @ =gUnknown_20399D8
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1750 @ =0x00001cc9
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C1746:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C174C: .4byte gUnknown_20399D8
|
|
_080C1750: .4byte 0x00001cc9
|
|
thumb_func_end sub_80C16D0
|
|
|
|
thumb_func_start sub_80C1754
|
|
sub_80C1754: @ 80C1754
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
bl sub_80C176C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C1754
|
|
|
|
thumb_func_start sub_80C176C
|
|
sub_80C176C: @ 80C176C
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x28
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r3, _080C1848 @ =gUnknown_20399D8
|
|
mov r8, r3
|
|
lsls r5, r0, 6
|
|
adds r5, r0
|
|
lsls r5, 2
|
|
subs r5, r0
|
|
lsls r5, 2
|
|
ldr r4, _080C184C @ =0x000014b0
|
|
adds r0, r5, r4
|
|
ldr r3, [r3]
|
|
adds r0, r3, r0
|
|
str r0, [sp, 0x18]
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
add r0, sp, 0x18
|
|
lsrs r6, r1, 16
|
|
mov r9, r6
|
|
orrs r1, r4
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _080C1850 @ =gUnknown_83EF384
|
|
str r1, [sp, 0x20]
|
|
ldr r4, _080C1854 @ =0xffff0000
|
|
add r6, sp, 0x20
|
|
ldr r1, [r6, 0x4]
|
|
ands r1, r4
|
|
orrs r1, r2
|
|
str r1, [r6, 0x4]
|
|
mov r1, sp
|
|
movs r4, 0
|
|
mov r7, r9
|
|
strh r7, [r1]
|
|
strh r2, [r1, 0x2]
|
|
ldr r1, _080C1858 @ =gUnknown_83F1B24
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _080C185C @ =gUnknown_83F1B38
|
|
str r1, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
ldr r1, _080C1860 @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _080C1864 @ =sub_80C16B8
|
|
str r1, [sp, 0x14]
|
|
adds r3, r5
|
|
ldr r4, _080C1868 @ =0x000018b4
|
|
adds r1, r3, r4
|
|
strh r7, [r1]
|
|
ldr r1, _080C186C @ =0x000018b6
|
|
adds r3, r1
|
|
strh r2, [r3]
|
|
bl LoadSpriteSheet
|
|
adds r0, r6, 0
|
|
bl LoadSpritePalette
|
|
mov r3, r8
|
|
ldr r2, [r3]
|
|
adds r0, r2, r5
|
|
adds r4, 0x4
|
|
adds r0, r4
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
ldr r7, _080C1870 @ =0x00001cce
|
|
adds r0, r2, r7
|
|
ldr r3, _080C1874 @ =0x00001cca
|
|
adds r2, r3
|
|
ldrb r2, [r2]
|
|
lsls r2, 2
|
|
ldrh r0, [r0]
|
|
adds r2, r0
|
|
lsls r2, 19
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r4, r8
|
|
ldr r2, [r4]
|
|
ldr r6, _080C1878 @ =0x000018b0
|
|
adds r2, r6
|
|
adds r2, r5
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C187C @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
add sp, 0x28
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1848: .4byte gUnknown_20399D8
|
|
_080C184C: .4byte 0x000014b0
|
|
_080C1850: .4byte gUnknown_83EF384
|
|
_080C1854: .4byte 0xffff0000
|
|
_080C1858: .4byte gUnknown_83F1B24
|
|
_080C185C: .4byte gUnknown_83F1B38
|
|
_080C1860: .4byte gDummySpriteAffineAnimTable
|
|
_080C1864: .4byte sub_80C16B8
|
|
_080C1868: .4byte 0x000018b4
|
|
_080C186C: .4byte 0x000018b6
|
|
_080C1870: .4byte 0x00001cce
|
|
_080C1874: .4byte 0x00001cca
|
|
_080C1878: .4byte 0x000018b0
|
|
_080C187C: .4byte gSprites
|
|
thumb_func_end sub_80C176C
|
|
|
|
thumb_func_start sub_80C1880
|
|
sub_80C1880: @ 80C1880
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _080C18D0 @ =gUnknown_20399D8
|
|
_080C1886:
|
|
ldr r1, [r6]
|
|
lsls r0, r5, 6
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
subs r0, r5
|
|
lsls r4, r0, 2
|
|
ldr r0, _080C18D4 @ =0x000018b0
|
|
adds r1, r0
|
|
adds r1, r4
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _080C18BE
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldr r1, _080C18D8 @ =0x000018b4
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldr r1, _080C18DC @ =0x000018b6
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080C18BE:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x1
|
|
bls _080C1886
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C18D0: .4byte gUnknown_20399D8
|
|
_080C18D4: .4byte 0x000018b0
|
|
_080C18D8: .4byte 0x000018b4
|
|
_080C18DC: .4byte 0x000018b6
|
|
thumb_func_end sub_80C1880
|
|
|
|
thumb_func_start sub_80C18E0
|
|
sub_80C18E0: @ 80C18E0
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r2, 0
|
|
ldr r3, _080C1904 @ =gUnknown_83F1B3C
|
|
adds r5, r3, 0
|
|
adds r5, 0x8
|
|
_080C18EE:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r1, r0, 2
|
|
adds r0, r1, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _080C1908
|
|
adds r0, r1, r5
|
|
ldr r0, [r0]
|
|
b _080C1914
|
|
.align 2, 0
|
|
_080C1904: .4byte gUnknown_83F1B3C
|
|
_080C1908:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x12
|
|
bls _080C18EE
|
|
ldr r0, _080C191C @ =gUnknown_8418EC3
|
|
_080C1914:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C191C: .4byte gUnknown_8418EC3
|
|
thumb_func_end sub_80C18E0
|
|
|
|
thumb_func_start sub_80C1920
|
|
sub_80C1920: @ 80C1920
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
movs r2, 0
|
|
ldr r3, _080C1940 @ =gUnknown_83F1B3C
|
|
adds r5, r3, 0x4
|
|
_080C192C:
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r1, r0, 2
|
|
adds r0, r1, r3
|
|
ldrh r0, [r0]
|
|
cmp r0, r4
|
|
bne _080C1944
|
|
adds r0, r1, r5
|
|
ldr r0, [r0]
|
|
b _080C1950
|
|
.align 2, 0
|
|
_080C1940: .4byte gUnknown_83F1B3C
|
|
_080C1944:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x12
|
|
bls _080C192C
|
|
ldr r0, _080C1958 @ =gUnknown_8418EC3
|
|
_080C1950:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C1958: .4byte gUnknown_8418EC3
|
|
thumb_func_end sub_80C1920
|
|
|
|
thumb_func_start sub_80C195C
|
|
sub_80C195C: @ 80C195C
|
|
push {r4-r6,lr}
|
|
adds r6, r2, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, _080C19E0 @ =gUnknown_20399DC
|
|
ldr r0, _080C19E4 @ =0x00003e28
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
bl sub_80C3580
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xB8
|
|
bne _080C197C
|
|
movs r0, 0xBC
|
|
_080C197C:
|
|
bl sub_80F8544
|
|
ldr r1, [r4]
|
|
movs r2, 0xF5
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bne _080C199E
|
|
movs r0, 0x8A
|
|
bl sub_80F8544
|
|
ldr r1, [r4]
|
|
movs r3, 0xF5
|
|
lsls r3, 6
|
|
adds r1, r3
|
|
str r0, [r1]
|
|
_080C199E:
|
|
ldr r0, [r4]
|
|
ldr r1, _080C19E8 @ =0x00003d48
|
|
adds r0, r1
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
ldr r3, _080C19EC @ =0x00003d4a
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
subs r3, 0x6
|
|
adds r1, r0, r3
|
|
str r6, [r1]
|
|
ldr r1, _080C19F0 @ =0x00003e14
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
movs r0, 0
|
|
bl sub_80C4AAC
|
|
bl sub_80C4BE4
|
|
bl sub_80C0CA0
|
|
ldr r1, _080C19F4 @ =gUnknown_3005090
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080C19F8 @ =sub_80C1A94
|
|
str r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C19E0: .4byte gUnknown_20399DC
|
|
_080C19E4: .4byte 0x00003e28
|
|
_080C19E8: .4byte 0x00003d48
|
|
_080C19EC: .4byte 0x00003d4a
|
|
_080C19F0: .4byte 0x00003e14
|
|
_080C19F4: .4byte gUnknown_3005090
|
|
_080C19F8: .4byte sub_80C1A94
|
|
thumb_func_end sub_80C195C
|
|
|
|
thumb_func_start sub_80C19FC
|
|
sub_80C19FC: @ 80C19FC
|
|
push {lr}
|
|
ldr r0, _080C1A18 @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r2, _080C1A1C @ =0x00003d4a
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080C1A3A
|
|
cmp r0, 0x1
|
|
bgt _080C1A20
|
|
cmp r0, 0
|
|
beq _080C1A2A
|
|
b _080C1A72
|
|
.align 2, 0
|
|
_080C1A18: .4byte gUnknown_20399DC
|
|
_080C1A1C: .4byte 0x00003d4a
|
|
_080C1A20:
|
|
cmp r0, 0x2
|
|
beq _080C1A50
|
|
cmp r0, 0x3
|
|
beq _080C1A5E
|
|
b _080C1A72
|
|
_080C1A2A:
|
|
movs r2, 0xF5
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
bl LZ77UnCompWram
|
|
b _080C1A76
|
|
_080C1A3A:
|
|
movs r2, 0xF5
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
movs r2, 0xE1
|
|
lsls r2, 6
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
b _080C1A76
|
|
_080C1A50:
|
|
movs r2, 0xE1
|
|
lsls r2, 6
|
|
movs r0, 0x2
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
b _080C1A76
|
|
_080C1A5E:
|
|
movs r2, 0xF5
|
|
lsls r2, 6
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0xC]
|
|
movs r1, 0xD0
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
b _080C1A76
|
|
_080C1A72:
|
|
movs r0, 0x1
|
|
b _080C1A86
|
|
_080C1A76:
|
|
ldr r0, _080C1A8C @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1A90 @ =0x00003d4a
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C1A86:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C1A8C: .4byte gUnknown_20399DC
|
|
_080C1A90: .4byte 0x00003d4a
|
|
thumb_func_end sub_80C19FC
|
|
|
|
thumb_func_start sub_80C1A94
|
|
sub_80C1A94: @ 80C1A94
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C1AB8 @ =gUnknown_20399DC
|
|
ldr r0, [r1]
|
|
ldr r3, _080C1ABC @ =0x00003d48
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x9
|
|
bls _080C1AAC
|
|
b _080C1BD0
|
|
_080C1AAC:
|
|
lsls r0, 2
|
|
ldr r1, _080C1AC0 @ =_080C1AC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C1AB8: .4byte gUnknown_20399DC
|
|
_080C1ABC: .4byte 0x00003d48
|
|
_080C1AC0: .4byte _080C1AC4
|
|
.align 2, 0
|
|
_080C1AC4:
|
|
.4byte _080C1AEC
|
|
.4byte _080C1B04
|
|
.4byte _080C1B12
|
|
.4byte _080C1B34
|
|
.4byte _080C1B54
|
|
.4byte _080C1B5C
|
|
.4byte _080C1B74
|
|
.4byte _080C1B84
|
|
.4byte _080C1B9C
|
|
.4byte _080C1BBC
|
|
_080C1AEC:
|
|
bl sub_80C08E0
|
|
ldr r0, _080C1AFC @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1B00 @ =0x00003d48
|
|
adds r1, r0
|
|
b _080C1BCA
|
|
.align 2, 0
|
|
_080C1AFC: .4byte gUnknown_20399DC
|
|
_080C1B00: .4byte 0x00003d48
|
|
_080C1B04:
|
|
bl sub_80C19FC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C1BD0
|
|
b _080C1BC2
|
|
_080C1B12:
|
|
bl sub_80C1E94
|
|
ldr r0, _080C1B28 @ =gUnknown_8418E9E
|
|
bl sub_80C4E74
|
|
ldr r0, _080C1B2C @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1B30 @ =0x00003d48
|
|
adds r1, r0
|
|
b _080C1BCA
|
|
.align 2, 0
|
|
_080C1B28: .4byte gUnknown_8418E9E
|
|
_080C1B2C: .4byte gUnknown_20399DC
|
|
_080C1B30: .4byte 0x00003d48
|
|
_080C1B34:
|
|
ldr r1, [r4]
|
|
movs r3, 0xE1
|
|
lsls r3, 6
|
|
adds r1, r3
|
|
movs r0, 0x2
|
|
bl sub_80C1E78
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
ldr r1, [r4]
|
|
ldr r0, _080C1B50 @ =0x00003d48
|
|
adds r1, r0
|
|
b _080C1BCA
|
|
.align 2, 0
|
|
_080C1B50: .4byte 0x00003d48
|
|
_080C1B54:
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
b _080C1BC2
|
|
_080C1B5C:
|
|
bl sub_80C08F4
|
|
ldr r0, _080C1B6C @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1B70 @ =0x00003d48
|
|
adds r1, r0
|
|
b _080C1BCA
|
|
.align 2, 0
|
|
_080C1B6C: .4byte gUnknown_20399DC
|
|
_080C1B70: .4byte 0x00003d48
|
|
_080C1B74:
|
|
movs r0, 0
|
|
bl sub_80C1F80
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C1BD0
|
|
b _080C1BC2
|
|
_080C1B84:
|
|
ldr r0, _080C1B94 @ =gUnknown_3005090
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080C1B98 @ =sub_80C1BE0
|
|
str r0, [r1]
|
|
b _080C1BD0
|
|
.align 2, 0
|
|
_080C1B94: .4byte gUnknown_3005090
|
|
_080C1B98: .4byte sub_80C1BE0
|
|
_080C1B9C:
|
|
movs r0, 0x1
|
|
bl sub_80C1F80
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C1BD0
|
|
ldr r0, _080C1BB4 @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1BB8 @ =0x00003d48
|
|
adds r1, r0
|
|
b _080C1BCA
|
|
.align 2, 0
|
|
_080C1BB4: .4byte gUnknown_20399DC
|
|
_080C1BB8: .4byte 0x00003d48
|
|
_080C1BBC:
|
|
adds r0, r2, 0
|
|
bl sub_80C1E14
|
|
_080C1BC2:
|
|
ldr r0, _080C1BD8 @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r3, _080C1BDC @ =0x00003d48
|
|
adds r1, r3
|
|
_080C1BCA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_080C1BD0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1BD8: .4byte gUnknown_20399DC
|
|
_080C1BDC: .4byte 0x00003d48
|
|
thumb_func_end sub_80C1A94
|
|
|
|
thumb_func_start sub_80C1BE0
|
|
sub_80C1BE0: @ 80C1BE0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C1C08 @ =gUnknown_20399DC
|
|
ldr r0, [r1]
|
|
ldr r3, _080C1C0C @ =0x00003d49
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
adds r3, r1, 0
|
|
cmp r0, 0x4
|
|
bls _080C1BFE
|
|
b _080C1DF0
|
|
_080C1BFE:
|
|
lsls r0, 2
|
|
ldr r1, _080C1C10 @ =_080C1C14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C1C08: .4byte gUnknown_20399DC
|
|
_080C1C0C: .4byte 0x00003d49
|
|
_080C1C10: .4byte _080C1C14
|
|
.align 2, 0
|
|
_080C1C14:
|
|
.4byte _080C1C28
|
|
.4byte _080C1C58
|
|
.4byte _080C1C80
|
|
.4byte _080C1CA8
|
|
.4byte _080C1DA0
|
|
_080C1C28:
|
|
ldr r1, [r3]
|
|
ldr r0, _080C1C48 @ =0x00003e0e
|
|
adds r2, r1, r0
|
|
ldr r0, _080C1C4C @ =0x00000133
|
|
strh r0, [r2]
|
|
ldr r3, _080C1C50 @ =0x00003e10
|
|
adds r2, r1, r3
|
|
subs r0, 0x33
|
|
strh r0, [r2]
|
|
ldr r0, _080C1C54 @ =0x00003e12
|
|
adds r2, r1, r0
|
|
movs r0, 0xF0
|
|
strh r0, [r2]
|
|
subs r3, 0xC7
|
|
b _080C1DD6
|
|
.align 2, 0
|
|
_080C1C48: .4byte 0x00003e0e
|
|
_080C1C4C: .4byte 0x00000133
|
|
_080C1C50: .4byte 0x00003e10
|
|
_080C1C54: .4byte 0x00003e12
|
|
_080C1C58:
|
|
ldr r0, [r3]
|
|
ldr r1, _080C1C7C @ =0x00003d4c
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
adds r2, r1, 0x1
|
|
strb r2, [r0]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r1, 0x28
|
|
bhi _080C1C6E
|
|
b _080C1DFE
|
|
_080C1C6E:
|
|
ldr r0, [r3]
|
|
ldr r1, _080C1C7C @ =0x00003d4c
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r1, [r3]
|
|
b _080C1DD4
|
|
.align 2, 0
|
|
_080C1C7C: .4byte 0x00003d4c
|
|
_080C1C80:
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
movs r0, 0x2
|
|
bl PutWindowTilemap
|
|
ldr r0, _080C1CA0 @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C1CA4 @ =0x00003d49
|
|
adds r1, r0
|
|
b _080C1DD8
|
|
.align 2, 0
|
|
_080C1CA0: .4byte gUnknown_20399DC
|
|
_080C1CA4: .4byte 0x00003d49
|
|
_080C1CA8:
|
|
ldr r7, _080C1D10 @ =gUnknown_20399DC
|
|
ldr r2, [r7]
|
|
ldr r1, _080C1D14 @ =0x00003d4c
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x19
|
|
bls _080C1D24
|
|
bl sub_80C3580
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C1920
|
|
ldr r1, _080C1D18 @ =gUnknown_83F1A94
|
|
str r1, [sp]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
movs r2, 0x4
|
|
movs r3, 0
|
|
bl box_print
|
|
bl sub_80C3580
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C18E0
|
|
ldr r1, _080C1D1C @ =gUnknown_83F1A90
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
movs r2, 0x2
|
|
movs r3, 0xE
|
|
bl box_print
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, [r7]
|
|
ldr r3, _080C1D20 @ =0x00003d49
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C1D80
|
|
.align 2, 0
|
|
_080C1D10: .4byte gUnknown_20399DC
|
|
_080C1D14: .4byte 0x00003d4c
|
|
_080C1D18: .4byte gUnknown_83F1A94
|
|
_080C1D1C: .4byte gUnknown_83F1A90
|
|
_080C1D20: .4byte 0x00003d49
|
|
_080C1D24:
|
|
cmp r0, 0x14
|
|
bls _080C1D80
|
|
ldr r6, _080C1D88 @ =0x00003e0e
|
|
adds r1, r2, r6
|
|
ldrh r0, [r1]
|
|
subs r0, 0x6
|
|
strh r0, [r1]
|
|
ldr r4, _080C1D8C @ =0x00003e10
|
|
adds r1, r2, r4
|
|
ldrh r0, [r1]
|
|
subs r0, 0x5
|
|
strh r0, [r1]
|
|
ldr r0, _080C1D90 @ =0x00003e12
|
|
mov r8, r0
|
|
adds r1, r2, r0
|
|
ldrh r0, [r1]
|
|
subs r0, 0x5
|
|
strh r0, [r1]
|
|
movs r1, 0xF5
|
|
lsls r1, 6
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0xC]
|
|
ldr r5, _080C1D94 @ =0x00003d4e
|
|
adds r1, r2, r5
|
|
movs r2, 0x30
|
|
bl CpuSet
|
|
ldr r1, [r7]
|
|
adds r0, r1, r5
|
|
adds r6, r1, r6
|
|
ldrh r2, [r6]
|
|
adds r4, r1, r4
|
|
ldrh r3, [r4]
|
|
add r1, r8
|
|
ldrh r1, [r1]
|
|
str r1, [sp]
|
|
movs r1, 0x30
|
|
bl sub_8071660
|
|
ldr r0, [r7]
|
|
adds r0, r5
|
|
movs r1, 0xD0
|
|
movs r2, 0x60
|
|
bl LoadPalette
|
|
_080C1D80:
|
|
ldr r0, _080C1D98 @ =gUnknown_20399DC
|
|
ldr r1, [r0]
|
|
ldr r3, _080C1D9C @ =0x00003d4c
|
|
b _080C1DD6
|
|
.align 2, 0
|
|
_080C1D88: .4byte 0x00003e0e
|
|
_080C1D8C: .4byte 0x00003e10
|
|
_080C1D90: .4byte 0x00003e12
|
|
_080C1D94: .4byte 0x00003d4e
|
|
_080C1D98: .4byte gUnknown_20399DC
|
|
_080C1D9C: .4byte 0x00003d4c
|
|
_080C1DA0:
|
|
ldr r0, _080C1DE0 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C1DB4
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C1DFE
|
|
_080C1DB4:
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r2, _080C1DE4 @ =gUnknown_20399DC
|
|
ldr r1, [r2]
|
|
ldr r0, _080C1DE8 @ =0x00003d48
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [r2]
|
|
_080C1DD4:
|
|
ldr r3, _080C1DEC @ =0x00003d49
|
|
_080C1DD6:
|
|
adds r1, r3
|
|
_080C1DD8:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C1DFE
|
|
.align 2, 0
|
|
_080C1DE0: .4byte gMain
|
|
_080C1DE4: .4byte gUnknown_20399DC
|
|
_080C1DE8: .4byte 0x00003d48
|
|
_080C1DEC: .4byte 0x00003d49
|
|
_080C1DF0:
|
|
ldr r0, _080C1E0C @ =gUnknown_3005090
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080C1E10 @ =sub_80C1A94
|
|
str r0, [r1]
|
|
_080C1DFE:
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1E0C: .4byte gUnknown_3005090
|
|
_080C1E10: .4byte sub_80C1A94
|
|
thumb_func_end sub_80C1BE0
|
|
|
|
thumb_func_start sub_80C1E14
|
|
sub_80C1E14: @ 80C1E14
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C1E68 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r4, _080C1E6C @ =gUnknown_20399DC
|
|
ldr r0, [r4]
|
|
ldr r2, _080C1E70 @ =0x00003d44
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
bl HideBg
|
|
movs r0, 0
|
|
bl sub_80C4B30
|
|
bl sub_80C0B18
|
|
bl sub_80C0BB0
|
|
bl sub_80C0AB8
|
|
bl sub_80C0B9C
|
|
ldr r0, _080C1E74 @ =gUnknown_8418E8D
|
|
bl sub_80C4E74
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C1E60
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C1E60:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1E68: .4byte gUnknown_3005090
|
|
_080C1E6C: .4byte gUnknown_20399DC
|
|
_080C1E70: .4byte 0x00003d44
|
|
_080C1E74: .4byte gUnknown_8418E8D
|
|
thumb_func_end sub_80C1E14
|
|
|
|
thumb_func_start sub_80C1E78
|
|
sub_80C1E78: @ 80C1E78
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C1E78
|
|
|
|
thumb_func_start sub_80C1E94
|
|
sub_80C1E94: @ 80C1E94
|
|
push {r4-r6,lr}
|
|
bl sub_80C4BE4
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0xC0
|
|
bl sub_80C4C2C
|
|
ldr r5, _080C1F58 @ =gUnknown_20399DC
|
|
ldr r0, [r5]
|
|
ldr r1, _080C1F5C @ =0x00003e14
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_80C4C48
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_80C4C74
|
|
movs r0, 0x3B
|
|
bl sub_80C4C88
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
bl sub_80C3508
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
ldr r5, [r5]
|
|
lsls r4, 3
|
|
adds r4, 0x20
|
|
ldr r2, _080C1F60 @ =0x00003e16
|
|
adds r1, r5, r2
|
|
strh r4, [r1]
|
|
lsrs r0, 13
|
|
adds r0, 0x18
|
|
ldr r3, _080C1F64 @ =0x00003e18
|
|
adds r2, r5, r3
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x8
|
|
ldr r4, _080C1F68 @ =0x00003e1a
|
|
adds r3, r5, r4
|
|
strh r0, [r3]
|
|
ldrh r0, [r2]
|
|
adds r0, 0x8
|
|
ldr r6, _080C1F6C @ =0x00003e1c
|
|
adds r4, r5, r6
|
|
strh r0, [r4]
|
|
ldrh r1, [r1]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bge _080C1F0E
|
|
adds r0, 0x7
|
|
_080C1F0E:
|
|
asrs r1, r0, 3
|
|
ldr r6, _080C1F70 @ =0x00003e1e
|
|
adds r0, r5, r6
|
|
strh r1, [r0]
|
|
ldrh r1, [r2]
|
|
movs r0, 0x20
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bge _080C1F22
|
|
adds r0, 0x7
|
|
_080C1F22:
|
|
asrs r1, r0, 3
|
|
ldr r2, _080C1F74 @ =0x00003e20
|
|
adds r0, r5, r2
|
|
strh r1, [r0]
|
|
ldrh r1, [r3]
|
|
movs r0, 0xE0
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bge _080C1F36
|
|
adds r0, 0x7
|
|
_080C1F36:
|
|
asrs r1, r0, 3
|
|
ldr r3, _080C1F78 @ =0x00003e22
|
|
adds r0, r5, r3
|
|
strh r1, [r0]
|
|
ldrh r1, [r4]
|
|
movs r0, 0x88
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bge _080C1F4A
|
|
adds r0, 0x7
|
|
_080C1F4A:
|
|
asrs r1, r0, 3
|
|
ldr r4, _080C1F7C @ =0x00003e24
|
|
adds r0, r5, r4
|
|
strh r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C1F58: .4byte gUnknown_20399DC
|
|
_080C1F5C: .4byte 0x00003e14
|
|
_080C1F60: .4byte 0x00003e16
|
|
_080C1F64: .4byte 0x00003e18
|
|
_080C1F68: .4byte 0x00003e1a
|
|
_080C1F6C: .4byte 0x00003e1c
|
|
_080C1F70: .4byte 0x00003e1e
|
|
_080C1F74: .4byte 0x00003e20
|
|
_080C1F78: .4byte 0x00003e22
|
|
_080C1F7C: .4byte 0x00003e24
|
|
thumb_func_end sub_80C1E94
|
|
|
|
thumb_func_start sub_80C1F80
|
|
sub_80C1F80: @ 80C1F80
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C2014
|
|
ldr r1, _080C1FF0 @ =gUnknown_20399DC
|
|
ldr r2, [r1]
|
|
ldr r0, _080C1FF4 @ =0x00003d4b
|
|
adds r3, r2, r0
|
|
ldrb r0, [r3]
|
|
adds r6, r1, 0
|
|
cmp r0, 0x7
|
|
bhi _080C2024
|
|
ldr r4, _080C1FF8 @ =0x00003e16
|
|
adds r1, r2, r4
|
|
adds r4, 0x8
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
ldrh r4, [r1]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
ldr r0, _080C1FFC @ =0x00003e18
|
|
adds r1, r2, r0
|
|
ldr r4, _080C2000 @ =0x00003e20
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
ldrh r4, [r1]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
ldr r0, _080C2004 @ =0x00003e1a
|
|
adds r1, r2, r0
|
|
ldr r4, _080C2008 @ =0x00003e22
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
ldrh r4, [r1]
|
|
adds r0, r4
|
|
strh r0, [r1]
|
|
ldr r0, _080C200C @ =0x00003e1c
|
|
adds r1, r2, r0
|
|
ldr r4, _080C2010 @ =0x00003e24
|
|
adds r0, r2, r4
|
|
ldrh r0, [r0]
|
|
ldrh r2, [r1]
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
ldr r0, [r6]
|
|
subs r4, 0x10
|
|
adds r1, r0, r4
|
|
ldrh r0, [r1]
|
|
cmp r0, 0x5
|
|
bhi _080C2086
|
|
adds r0, 0x1
|
|
b _080C2084
|
|
.align 2, 0
|
|
_080C1FF0: .4byte gUnknown_20399DC
|
|
_080C1FF4: .4byte 0x00003d4b
|
|
_080C1FF8: .4byte 0x00003e16
|
|
_080C1FFC: .4byte 0x00003e18
|
|
_080C2000: .4byte 0x00003e20
|
|
_080C2004: .4byte 0x00003e1a
|
|
_080C2008: .4byte 0x00003e22
|
|
_080C200C: .4byte 0x00003e1c
|
|
_080C2010: .4byte 0x00003e24
|
|
_080C2014:
|
|
ldr r1, _080C2028 @ =gUnknown_20399DC
|
|
ldr r3, [r1]
|
|
ldr r0, _080C202C @ =0x00003d4b
|
|
adds r5, r3, r0
|
|
ldrb r0, [r5]
|
|
adds r6, r1, 0
|
|
cmp r0, 0
|
|
bne _080C2030
|
|
_080C2024:
|
|
movs r0, 0x1
|
|
b _080C20DE
|
|
.align 2, 0
|
|
_080C2028: .4byte gUnknown_20399DC
|
|
_080C202C: .4byte 0x00003d4b
|
|
_080C2030:
|
|
ldr r1, _080C20E8 @ =0x00003e16
|
|
adds r2, r3, r1
|
|
ldr r4, _080C20EC @ =0x00003e1e
|
|
adds r1, r3, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _080C20F0 @ =0x00003e18
|
|
adds r2, r3, r0
|
|
adds r4, 0x2
|
|
adds r1, r3, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _080C20F4 @ =0x00003e1a
|
|
adds r2, r3, r0
|
|
adds r4, 0x2
|
|
adds r1, r3, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _080C20F8 @ =0x00003e1c
|
|
adds r2, r3, r0
|
|
adds r4, 0x2
|
|
adds r1, r3, r4
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r1]
|
|
subs r0, r1
|
|
strh r0, [r2]
|
|
ldrb r0, [r5]
|
|
subs r0, 0x1
|
|
strb r0, [r5]
|
|
ldr r0, [r6]
|
|
ldr r2, _080C20FC @ =0x00003e14
|
|
adds r1, r0, r2
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
beq _080C2086
|
|
subs r0, 0x1
|
|
_080C2084:
|
|
strh r0, [r1]
|
|
_080C2086:
|
|
ldr r4, [r6]
|
|
ldr r1, _080C20E8 @ =0x00003e16
|
|
adds r0, r4, r1
|
|
ldrh r0, [r0]
|
|
ldr r5, _080C2100 @ =0xffff0000
|
|
ldr r2, [sp]
|
|
ands r2, r5
|
|
orrs r2, r0
|
|
str r2, [sp]
|
|
adds r1, 0x2
|
|
adds r0, r4, r1
|
|
ldrh r1, [r0]
|
|
lsls r1, 16
|
|
ldr r3, _080C2104 @ =0x0000ffff
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r2, _080C20F4 @ =0x00003e1a
|
|
adds r4, r2
|
|
ldrh r0, [r4]
|
|
ldr r1, [sp, 0x4]
|
|
ands r1, r5
|
|
orrs r1, r0
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r6]
|
|
ldr r4, _080C20F8 @ =0x00003e1c
|
|
adds r0, r4
|
|
ldrh r0, [r0]
|
|
lsls r0, 16
|
|
ands r3, r1
|
|
orrs r3, r0
|
|
str r3, [sp, 0x4]
|
|
movs r0, 0x1
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
ldr r0, [r6]
|
|
ldr r1, _080C20FC @ =0x00003e14
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl sub_80C4C48
|
|
movs r0, 0
|
|
_080C20DE:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C20E8: .4byte 0x00003e16
|
|
_080C20EC: .4byte 0x00003e1e
|
|
_080C20F0: .4byte 0x00003e18
|
|
_080C20F4: .4byte 0x00003e1a
|
|
_080C20F8: .4byte 0x00003e1c
|
|
_080C20FC: .4byte 0x00003e14
|
|
_080C2100: .4byte 0xffff0000
|
|
_080C2104: .4byte 0x0000ffff
|
|
thumb_func_end sub_80C1F80
|
|
|
|
thumb_func_start nullsub_63
|
|
nullsub_63: @ 80C2108
|
|
bx lr
|
|
thumb_func_end nullsub_63
|
|
|
|
thumb_func_start sub_80C210C
|
|
sub_80C210C: @ 80C210C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080C21E0 @ =gUnknown_20399E0
|
|
mov r9, r0
|
|
ldr r6, [r0]
|
|
lsrs r5, 22
|
|
adds r6, r5
|
|
ldr r0, [r6]
|
|
str r0, [sp, 0x18]
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
mov r10, r3
|
|
add r0, sp, 0x18
|
|
lsls r3, r1, 16
|
|
mov r4, r10
|
|
orrs r3, r4
|
|
str r3, [r0, 0x4]
|
|
ldr r3, _080C21E4 @ =gUnknown_83EF3A4
|
|
str r3, [sp, 0x20]
|
|
ldr r4, _080C21E8 @ =0xffff0000
|
|
add r7, sp, 0x20
|
|
mov r8, r7
|
|
ldr r3, [r7, 0x4]
|
|
ands r3, r4
|
|
orrs r3, r2
|
|
str r3, [r7, 0x4]
|
|
mov r3, sp
|
|
movs r4, 0
|
|
strh r1, [r3]
|
|
strh r2, [r3, 0x2]
|
|
ldr r3, _080C21EC @ =gUnknown_83F1C20
|
|
str r3, [sp, 0x4]
|
|
ldr r3, _080C21F0 @ =gUnknown_83F1C30
|
|
str r3, [sp, 0x8]
|
|
str r4, [sp, 0xC]
|
|
ldr r3, _080C21F4 @ =gDummySpriteAffineAnimTable
|
|
str r3, [sp, 0x10]
|
|
ldr r3, _080C21F8 @ =nullsub_63
|
|
str r3, [sp, 0x14]
|
|
ldr r3, [r6]
|
|
movs r4, 0x81
|
|
lsls r4, 3
|
|
adds r3, r4
|
|
strh r1, [r3]
|
|
ldr r1, [r6]
|
|
ldr r7, _080C21FC @ =0x0000040a
|
|
adds r1, r7
|
|
strh r2, [r1]
|
|
bl LoadSpriteSheet
|
|
mov r0, r8
|
|
bl LoadSpritePalette
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
ldr r2, _080C2200 @ =0x00000404
|
|
adds r1, r0, r2
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
subs r4, 0x2
|
|
adds r0, r4
|
|
movs r7, 0
|
|
ldrsh r2, [r0, r7]
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, r5
|
|
ldr r2, [r1]
|
|
add r2, r10
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C2204 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C21E0: .4byte gUnknown_20399E0
|
|
_080C21E4: .4byte gUnknown_83EF3A4
|
|
_080C21E8: .4byte 0xffff0000
|
|
_080C21EC: .4byte gUnknown_83F1C20
|
|
_080C21F0: .4byte gUnknown_83F1C30
|
|
_080C21F4: .4byte gDummySpriteAffineAnimTable
|
|
_080C21F8: .4byte nullsub_63
|
|
_080C21FC: .4byte 0x0000040a
|
|
_080C2200: .4byte 0x00000404
|
|
_080C2204: .4byte gSprites
|
|
thumb_func_end sub_80C210C
|
|
|
|
thumb_func_start sub_80C2208
|
|
sub_80C2208: @ 80C2208
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r4, _080C22A4 @ =gUnknown_20399E0
|
|
ldr r0, _080C22A8 @ =0x00000cd4
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r6, 0
|
|
_080C2224:
|
|
ldr r0, _080C22AC @ =0x0000040c
|
|
bl AllocZeroed
|
|
adds r5, r0, 0
|
|
ldr r7, _080C22A4 @ =gUnknown_20399E0
|
|
ldr r4, [r7]
|
|
lsls r0, r6, 2
|
|
adds r4, r0
|
|
str r5, [r4]
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 19
|
|
adds r0, 0x68
|
|
ldr r1, _080C22B0 @ =0x00000404
|
|
adds r5, r1
|
|
strh r0, [r5]
|
|
ldr r4, [r4]
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 18
|
|
adds r0, 0x28
|
|
ldr r2, _080C22B4 @ =0x00000406
|
|
adds r4, r2
|
|
strh r0, [r4]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x5
|
|
bls _080C2224
|
|
movs r0, 0
|
|
bl sub_80C4AAC
|
|
bl sub_80C4BE4
|
|
bl sub_80C24BC
|
|
movs r0, 0x1
|
|
bl sub_80C0A88
|
|
ldr r0, [r7]
|
|
ldr r1, _080C22B8 @ =0x00000cc8
|
|
adds r0, r1
|
|
mov r2, r9
|
|
str r2, [r0]
|
|
ldr r1, _080C22BC @ =gUnknown_3005090
|
|
mov r2, r8
|
|
lsls r0, r2, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080C22C0 @ =sub_80C267C
|
|
str r1, [r0]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C22A4: .4byte gUnknown_20399E0
|
|
_080C22A8: .4byte 0x00000cd4
|
|
_080C22AC: .4byte 0x0000040c
|
|
_080C22B0: .4byte 0x00000404
|
|
_080C22B4: .4byte 0x00000406
|
|
_080C22B8: .4byte 0x00000cc8
|
|
_080C22BC: .4byte gUnknown_3005090
|
|
_080C22C0: .4byte sub_80C267C
|
|
thumb_func_end sub_80C2208
|
|
|
|
thumb_func_start sub_80C22C4
|
|
sub_80C22C4: @ 80C22C4
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
cmp r2, 0x6
|
|
bne _080C2310
|
|
movs r3, 0
|
|
ldr r7, _080C230C @ =gUnknown_20399E0
|
|
movs r6, 0x80
|
|
lsls r6, 3
|
|
movs r1, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
lsls r4, r0, 2
|
|
movs r5, 0x5
|
|
negs r5, r5
|
|
_080C22E6:
|
|
ldr r0, [r7]
|
|
lsls r1, r3, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
adds r0, r6
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r4
|
|
strb r0, [r1]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x5
|
|
bls _080C22E6
|
|
b _080C2338
|
|
.align 2, 0
|
|
_080C230C: .4byte gUnknown_20399E0
|
|
_080C2310:
|
|
ldr r0, _080C2340 @ =gUnknown_20399E0
|
|
ldr r0, [r0]
|
|
lsls r1, r2, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080C2338:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2340: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_80C22C4
|
|
|
|
thumb_func_start sub_80C2344
|
|
sub_80C2344: @ 80C2344
|
|
push {lr}
|
|
ldr r0, _080C2360 @ =gUnknown_20399E0
|
|
ldr r0, [r0]
|
|
ldr r1, _080C2364 @ =0x00000ccd
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bls _080C2356
|
|
b _080C249C
|
|
_080C2356:
|
|
lsls r0, 2
|
|
ldr r1, _080C2368 @ =_080C236C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C2360: .4byte gUnknown_20399E0
|
|
_080C2364: .4byte 0x00000ccd
|
|
_080C2368: .4byte _080C236C
|
|
.align 2, 0
|
|
_080C236C:
|
|
.4byte _080C2390
|
|
.4byte _080C23B0
|
|
.4byte _080C23D0
|
|
.4byte _080C23F0
|
|
.4byte _080C2410
|
|
.4byte _080C2430
|
|
.4byte _080C2450
|
|
.4byte _080C2468
|
|
.4byte _080C2484
|
|
_080C2390:
|
|
ldr r0, _080C23A8 @ =gUnknown_83F12CC
|
|
ldr r1, _080C23AC @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C23A8: .4byte gUnknown_83F12CC
|
|
_080C23AC: .4byte gUnknown_20399E0
|
|
_080C23B0:
|
|
ldr r0, _080C23C8 @ =gUnknown_83F1550
|
|
ldr r1, _080C23CC @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x1
|
|
movs r1, 0x5
|
|
movs r2, 0x5
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C23C8: .4byte gUnknown_83F1550
|
|
_080C23CC: .4byte gUnknown_20399E0
|
|
_080C23D0:
|
|
ldr r0, _080C23E8 @ =gUnknown_83F1738
|
|
ldr r1, _080C23EC @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x8]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x2
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C23E8: .4byte gUnknown_83F1738
|
|
_080C23EC: .4byte gUnknown_20399E0
|
|
_080C23F0:
|
|
ldr r0, _080C2408 @ =gUnknown_83F13EC
|
|
ldr r1, _080C240C @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0xC]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x3
|
|
movs r1, 0x7
|
|
movs r2, 0x7
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2408: .4byte gUnknown_83F13EC
|
|
_080C240C: .4byte gUnknown_20399E0
|
|
_080C2410:
|
|
ldr r0, _080C2428 @ =gUnknown_83F1640
|
|
ldr r1, _080C242C @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x10]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x4
|
|
movs r1, 0x8
|
|
movs r2, 0x8
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2428: .4byte gUnknown_83F1640
|
|
_080C242C: .4byte gUnknown_20399E0
|
|
_080C2430:
|
|
ldr r0, _080C2448 @ =gUnknown_83F1804
|
|
ldr r1, _080C244C @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, 0x14]
|
|
bl LZ77UnCompWram
|
|
movs r0, 0x5
|
|
movs r1, 0x9
|
|
movs r2, 0x9
|
|
bl sub_80C210C
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2448: .4byte gUnknown_83F1804
|
|
_080C244C: .4byte gUnknown_20399E0
|
|
_080C2450:
|
|
ldr r0, _080C2460 @ =gUnknown_83F0330
|
|
ldr r1, _080C2464 @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
adds r1, 0x18
|
|
bl LZ77UnCompWram
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2460: .4byte gUnknown_83F0330
|
|
_080C2464: .4byte gUnknown_20399E0
|
|
_080C2468:
|
|
ldr r0, _080C2478 @ =gUnknown_83F0E0C
|
|
ldr r1, _080C247C @ =gUnknown_20399E0
|
|
ldr r1, [r1]
|
|
ldr r2, _080C2480 @ =0x00000818
|
|
adds r1, r2
|
|
bl LZ77UnCompWram
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2478: .4byte gUnknown_83F0E0C
|
|
_080C247C: .4byte gUnknown_20399E0
|
|
_080C2480: .4byte 0x00000818
|
|
_080C2484:
|
|
ldr r0, _080C2498 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
adds r1, 0x18
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
movs r0, 0x1
|
|
movs r3, 0
|
|
bl LoadBgTiles
|
|
b _080C24A0
|
|
.align 2, 0
|
|
_080C2498: .4byte gUnknown_20399E0
|
|
_080C249C:
|
|
movs r0, 0x1
|
|
b _080C24B0
|
|
_080C24A0:
|
|
ldr r0, _080C24B4 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C24B8 @ =0x00000ccd
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C24B0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C24B4: .4byte gUnknown_20399E0
|
|
_080C24B8: .4byte 0x00000ccd
|
|
thumb_func_end sub_80C2344
|
|
|
|
thumb_func_start sub_80C24BC
|
|
sub_80C24BC: @ 80C24BC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C252C @ =gUnknown_20399E0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3]
|
|
ldr r2, _080C2530 @ =0x00000404
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
adds r0, 0x8
|
|
lsls r0, 16
|
|
ldr r4, _080C2534 @ =0xffff0000
|
|
ldr r5, _080C2538 @ =0x0000ffff
|
|
lsrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [r3, 0xC]
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
subs r1, 0x8
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
ands r0, r5
|
|
movs r1, 0xA0
|
|
lsls r1, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_80C4C2C
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl sub_80C4C74
|
|
movs r0, 0x10
|
|
bl sub_80C4C88
|
|
movs r0, 0
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C252C: .4byte gUnknown_20399E0
|
|
_080C2530: .4byte 0x00000404
|
|
_080C2534: .4byte 0xffff0000
|
|
_080C2538: .4byte 0x0000ffff
|
|
thumb_func_end sub_80C24BC
|
|
|
|
thumb_func_start sub_80C253C
|
|
sub_80C253C: @ 80C253C
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C258C @ =gUnknown_83F1C34
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
bl sub_80C4BE4
|
|
movs r0, 0x2
|
|
movs r1, 0x29
|
|
movs r2, 0x80
|
|
bl sub_80C4C2C
|
|
ldr r0, _080C2590 @ =gUnknown_20399E0
|
|
ldr r0, [r0]
|
|
movs r1, 0xCD
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_80C4C48
|
|
movs r0, 0x37
|
|
movs r1, 0
|
|
bl sub_80C4C74
|
|
movs r0, 0x12
|
|
bl sub_80C4C88
|
|
movs r0, 0
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C258C: .4byte gUnknown_83F1C34
|
|
_080C2590: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_80C253C
|
|
|
|
thumb_func_start sub_80C2594
|
|
sub_80C2594: @ 80C2594
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C25B0 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _080C25B4 @ =gUnknown_20399E0
|
|
ldr r0, [r0]
|
|
ldr r2, _080C25B8 @ =0x00000cc8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C25B0: .4byte gUnknown_3005090
|
|
_080C25B4: .4byte gUnknown_20399E0
|
|
_080C25B8: .4byte 0x00000cc8
|
|
thumb_func_end sub_80C2594
|
|
|
|
thumb_func_start sub_80C25BC
|
|
sub_80C25BC: @ 80C25BC
|
|
push {r4-r6,lr}
|
|
bl sub_80C2604
|
|
movs r5, 0
|
|
ldr r6, _080C2600 @ =gUnknown_20399E0
|
|
_080C25C6:
|
|
ldr r0, [r6]
|
|
lsls r4, r5, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C25DE
|
|
bl Free
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
_080C25DE:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _080C25C6
|
|
ldr r4, _080C2600 @ =gUnknown_20399E0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C25F8
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C25F8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2600: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_80C25BC
|
|
|
|
thumb_func_start sub_80C2604
|
|
sub_80C2604: @ 80C2604
|
|
push {r4-r7,lr}
|
|
movs r5, 0
|
|
ldr r7, _080C2670 @ =gUnknown_20399E0
|
|
movs r6, 0x80
|
|
lsls r6, 3
|
|
_080C260E:
|
|
ldr r2, [r7]
|
|
lsls r4, r5, 2
|
|
adds r2, r4
|
|
ldr r1, [r2]
|
|
adds r0, r1, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x20]
|
|
ldr r3, _080C2674 @ =0x00000404
|
|
adds r1, r3
|
|
strh r0, [r1]
|
|
ldr r1, [r2]
|
|
adds r0, r1, r6
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x22]
|
|
adds r3, 0x2
|
|
adds r1, r3
|
|
strh r0, [r1]
|
|
ldr r0, [r2]
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C2660
|
|
bl DestroySprite
|
|
ldr r0, [r7]
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x81
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r7]
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
ldr r3, _080C2678 @ =0x0000040a
|
|
adds r0, r3
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080C2660:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x5
|
|
bls _080C260E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2670: .4byte gUnknown_20399E0
|
|
_080C2674: .4byte 0x00000404
|
|
_080C2678: .4byte 0x0000040a
|
|
thumb_func_end sub_80C2604
|
|
|
|
thumb_func_start sub_80C267C
|
|
sub_80C267C: @ 80C267C
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080C26A0 @ =gUnknown_20399E0
|
|
ldr r0, [r1]
|
|
ldr r2, _080C26A4 @ =0x00000ccc
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0xD
|
|
bls _080C2696
|
|
b _080C2990
|
|
_080C2696:
|
|
lsls r0, 2
|
|
ldr r1, _080C26A8 @ =_080C26AC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C26A0: .4byte gUnknown_20399E0
|
|
_080C26A4: .4byte 0x00000ccc
|
|
_080C26A8: .4byte _080C26AC
|
|
.align 2, 0
|
|
_080C26AC:
|
|
.4byte _080C26E4
|
|
.4byte _080C26FC
|
|
.4byte _080C270C
|
|
.4byte _080C272C
|
|
.4byte _080C2768
|
|
.4byte _080C2788
|
|
.4byte _080C27B4
|
|
.4byte _080C27C4
|
|
.4byte _080C27E4
|
|
.4byte _080C281E
|
|
.4byte _080C2868
|
|
.4byte _080C28A4
|
|
.4byte _080C2928
|
|
.4byte _080C296C
|
|
_080C26E4:
|
|
bl sub_80C08E0
|
|
ldr r0, _080C26F4 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C26F8 @ =0x00000ccc
|
|
adds r1, r0
|
|
b _080C297E
|
|
.align 2, 0
|
|
_080C26F4: .4byte gUnknown_20399E0
|
|
_080C26F8: .4byte 0x00000ccc
|
|
_080C26FC:
|
|
bl sub_80C2344
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080C270A
|
|
b _080C299A
|
|
_080C270A:
|
|
b _080C2976
|
|
_080C270C:
|
|
ldr r1, [r4]
|
|
ldr r0, _080C2728 @ =0x00000818
|
|
adds r1, r0
|
|
movs r0, 0x1E
|
|
str r0, [sp]
|
|
movs r0, 0x14
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBufferRect
|
|
ldr r1, [r4]
|
|
b _080C297A
|
|
.align 2, 0
|
|
_080C2728: .4byte 0x00000818
|
|
_080C272C:
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
bl sub_80C08F4
|
|
ldr r0, _080C2760 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2764 @ =0x00000ccc
|
|
adds r1, r0
|
|
b _080C297E
|
|
.align 2, 0
|
|
_080C2760: .4byte gUnknown_20399E0
|
|
_080C2764: .4byte 0x00000ccc
|
|
_080C2768:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl sub_80C22C4
|
|
bl sub_80C2B48
|
|
b _080C2976
|
|
_080C2788:
|
|
ldr r0, _080C27AC @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C2796
|
|
b _080C299A
|
|
_080C2796:
|
|
ldr r1, [r4]
|
|
ldr r0, _080C27B0 @ =0x00000ccc
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0xF4
|
|
bl PlaySE
|
|
b _080C299A
|
|
.align 2, 0
|
|
_080C27AC: .4byte gUnknown_2037AB8
|
|
_080C27B0: .4byte 0x00000ccc
|
|
_080C27B4:
|
|
bl sub_80C29A4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080C27C2
|
|
b _080C299A
|
|
_080C27C2:
|
|
b _080C2976
|
|
_080C27C4:
|
|
movs r0, 0
|
|
bl sub_80C4324
|
|
movs r0, 0
|
|
bl sub_80C3154
|
|
ldr r0, _080C27DC @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C27E0 @ =0x00000ccc
|
|
adds r1, r0
|
|
b _080C297E
|
|
.align 2, 0
|
|
_080C27DC: .4byte gUnknown_20399E0
|
|
_080C27E0: .4byte 0x00000ccc
|
|
_080C27E4:
|
|
ldr r0, [r4]
|
|
movs r1, 0xCD
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
movs r1, 0xF
|
|
strb r1, [r0]
|
|
bl sub_80C253C
|
|
movs r0, 0
|
|
bl sub_80C0A88
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C48BC
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C4960
|
|
ldr r1, [r4]
|
|
b _080C297A
|
|
_080C281E:
|
|
ldr r0, _080C283C @ =gUnknown_8418EB5
|
|
bl sub_80C4E18
|
|
movs r0, 0x1
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080C2844
|
|
ldr r0, _080C2840 @ =gUnknown_8418E8B
|
|
bl sub_80C4E74
|
|
b _080C284A
|
|
.align 2, 0
|
|
_080C283C: .4byte gUnknown_8418EB5
|
|
_080C2840: .4byte gUnknown_8418E8B
|
|
_080C2844:
|
|
ldr r0, _080C285C @ =gUnknown_8418E8D
|
|
bl sub_80C4E74
|
|
_080C284A:
|
|
movs r0, 0
|
|
bl sub_80C4ED0
|
|
ldr r0, _080C2860 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2864 @ =0x00000ccc
|
|
adds r1, r0
|
|
b _080C297E
|
|
.align 2, 0
|
|
_080C285C: .4byte gUnknown_8418E8D
|
|
_080C2860: .4byte gUnknown_20399E0
|
|
_080C2864: .4byte 0x00000ccc
|
|
_080C2868:
|
|
ldr r4, _080C28A0 @ =gUnknown_83EF25A
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x30
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0x40
|
|
movs r2, 0x2
|
|
bl LoadPalette
|
|
b _080C2976
|
|
.align 2, 0
|
|
_080C28A0: .4byte gUnknown_83EF25A
|
|
_080C28A4:
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r5, 0x2
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
movs r2, 0x1
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x3E
|
|
movs r2, 0x1C
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x3F
|
|
movs r2, 0x1D
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, 0x1A
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x3D
|
|
movs r2, 0x2
|
|
movs r3, 0x1
|
|
bl FillBgTilemapBufferRect
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0xF4
|
|
bl m4aSongNumStop
|
|
movs r0, 0x2A
|
|
bl PlaySE
|
|
ldr r0, _080C2920 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2924 @ =0x00000ccc
|
|
adds r1, r0
|
|
b _080C297E
|
|
.align 2, 0
|
|
_080C2920: .4byte gUnknown_20399E0
|
|
_080C2924: .4byte 0x00000ccc
|
|
_080C2928:
|
|
ldr r0, [r4]
|
|
movs r2, 0xCD
|
|
lsls r2, 4
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2
|
|
bne _080C2958
|
|
movs r0, 0x6
|
|
movs r1, 0x1
|
|
bl sub_80C22C4
|
|
ldr r1, [r4]
|
|
ldr r0, _080C2954 @ =0x00000ccc
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl sub_80C4C48
|
|
b _080C299A
|
|
.align 2, 0
|
|
_080C2954: .4byte 0x00000ccc
|
|
_080C2958:
|
|
subs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
movs r1, 0xCD
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bl sub_80C4C48
|
|
b _080C299A
|
|
_080C296C:
|
|
movs r0, 0
|
|
bl sub_80C4B30
|
|
bl sub_80C0BB0
|
|
_080C2976:
|
|
ldr r0, _080C2988 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
_080C297A:
|
|
ldr r2, _080C298C @ =0x00000ccc
|
|
adds r1, r2
|
|
_080C297E:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C299A
|
|
.align 2, 0
|
|
_080C2988: .4byte gUnknown_20399E0
|
|
_080C298C: .4byte 0x00000ccc
|
|
_080C2990:
|
|
bl sub_80C2604
|
|
adds r0, r5, 0
|
|
bl sub_80C2594
|
|
_080C299A:
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C267C
|
|
|
|
thumb_func_start sub_80C29A4
|
|
sub_80C29A4: @ 80C29A4
|
|
push {r4,r5,lr}
|
|
bl sub_80C2B48
|
|
ldr r0, _080C29C8 @ =gUnknown_20399E0
|
|
ldr r2, [r0]
|
|
ldr r0, [r2]
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r3, [r1, 0x20]
|
|
movs r5, 0x20
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
bne _080C29CC
|
|
movs r0, 0x1
|
|
b _080C2B3A
|
|
.align 2, 0
|
|
_080C29C8: .4byte gUnknown_20399E0
|
|
_080C29CC:
|
|
ldr r5, _080C2A18 @ =0x00000cce
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bls _080C2A1C
|
|
subs r0, r3, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
b _080C2B28
|
|
.align 2, 0
|
|
_080C2A18: .4byte 0x00000cce
|
|
_080C2A1C:
|
|
cmp r0, 0xE
|
|
bls _080C2A60
|
|
subs r0, r3, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x2
|
|
b _080C2B28
|
|
_080C2A60:
|
|
cmp r0, 0xA
|
|
bls _080C2AA4
|
|
subs r0, r3, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x3
|
|
b _080C2B28
|
|
_080C2AA4:
|
|
cmp r0, 0x6
|
|
bls _080C2AE8
|
|
subs r0, r3, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x5
|
|
b _080C2B28
|
|
_080C2AE8:
|
|
adds r0, r3, 0
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
_080C2B28:
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, _080C2B40 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2B44 @ =0x00000cce
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C2B3A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C2B40: .4byte gUnknown_20399E0
|
|
_080C2B44: .4byte 0x00000cce
|
|
thumb_func_end sub_80C29A4
|
|
|
|
thumb_func_start sub_80C2B48
|
|
sub_80C2B48: @ 80C2B48
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C2B90 @ =gUnknown_20399E0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r4, _080C2B94 @ =0xffff0000
|
|
ldr r5, _080C2B98 @ =0x0000ffff
|
|
ldrh r0, [r0, 0x20]
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [r3, 0xC]
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x20]
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
ands r0, r5
|
|
movs r1, 0xA0
|
|
lsls r1, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2B90: .4byte gUnknown_20399E0
|
|
_080C2B94: .4byte 0xffff0000
|
|
_080C2B98: .4byte 0x0000ffff
|
|
thumb_func_end sub_80C2B48
|
|
|
|
thumb_func_start sub_80C2B9C
|
|
sub_80C2B9C: @ 80C2B9C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080C2C0C @ =gUnknown_20399E0
|
|
ldr r3, [r0]
|
|
ldr r0, [r3]
|
|
ldr r2, _080C2C10 @ =0x00000404
|
|
adds r0, r2
|
|
ldrh r0, [r0]
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
ldr r4, _080C2C14 @ =0xffff0000
|
|
ldr r5, _080C2C18 @ =0x0000ffff
|
|
lsrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 13
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [r3, 0xC]
|
|
adds r0, r2
|
|
ldrh r1, [r0]
|
|
subs r1, 0x10
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r4
|
|
orrs r0, r1
|
|
ands r0, r5
|
|
movs r1, 0xA0
|
|
lsls r1, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
bl sub_80C4C2C
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl sub_80C4C74
|
|
movs r0, 0x10
|
|
bl sub_80C4C88
|
|
movs r0, 0
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C4C9C
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2C0C: .4byte gUnknown_20399E0
|
|
_080C2C10: .4byte 0x00000404
|
|
_080C2C14: .4byte 0xffff0000
|
|
_080C2C18: .4byte 0x0000ffff
|
|
thumb_func_end sub_80C2B9C
|
|
|
|
thumb_func_start sub_80C2C1C
|
|
sub_80C2C1C: @ 80C2C1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C2C30 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _080C2C34 @ =sub_80C2C7C
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C2C30: .4byte gUnknown_3005090
|
|
_080C2C34: .4byte sub_80C2C7C
|
|
thumb_func_end sub_80C2C1C
|
|
|
|
thumb_func_start sub_80C2C38
|
|
sub_80C2C38: @ 80C2C38
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x4
|
|
bl sub_80C210C
|
|
movs r0, 0x1
|
|
movs r1, 0x5
|
|
movs r2, 0x5
|
|
bl sub_80C210C
|
|
movs r0, 0x2
|
|
movs r1, 0x6
|
|
movs r2, 0x6
|
|
bl sub_80C210C
|
|
movs r0, 0x3
|
|
movs r1, 0x7
|
|
movs r2, 0x7
|
|
bl sub_80C210C
|
|
movs r0, 0x4
|
|
movs r1, 0x8
|
|
movs r2, 0x8
|
|
bl sub_80C210C
|
|
movs r0, 0x5
|
|
movs r1, 0x9
|
|
movs r2, 0x9
|
|
bl sub_80C210C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C2C38
|
|
|
|
thumb_func_start sub_80C2C7C
|
|
sub_80C2C7C: @ 80C2C7C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C2CA0 @ =gUnknown_20399E0
|
|
ldr r3, [r1]
|
|
ldr r4, _080C2CA4 @ =0x00000ccf
|
|
adds r0, r3, r4
|
|
ldrb r0, [r0]
|
|
adds r4, r1, 0
|
|
cmp r0, 0x7
|
|
bls _080C2C94
|
|
b _080C2DFC
|
|
_080C2C94:
|
|
lsls r0, 2
|
|
ldr r1, _080C2CA8 @ =_080C2CAC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C2CA0: .4byte gUnknown_20399E0
|
|
_080C2CA4: .4byte 0x00000ccf
|
|
_080C2CA8: .4byte _080C2CAC
|
|
.align 2, 0
|
|
_080C2CAC:
|
|
.4byte _080C2CCC
|
|
.4byte _080C2CF4
|
|
.4byte _080C2CFA
|
|
.4byte _080C2D1C
|
|
.4byte _080C2D6C
|
|
.4byte _080C2D84
|
|
.4byte _080C2DB8
|
|
.4byte _080C2DD8
|
|
_080C2CCC:
|
|
movs r0, 0x1
|
|
bl sub_80C4ED0
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
movs r0, 0x4
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, _080C2CEC @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2CF0 @ =0x00000ccf
|
|
adds r1, r0
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2CEC: .4byte gUnknown_20399E0
|
|
_080C2CF0: .4byte 0x00000ccf
|
|
_080C2CF4:
|
|
bl sub_80C2C38
|
|
b _080C2DE4
|
|
_080C2CFA:
|
|
ldr r0, _080C2D10 @ =gUnknown_83EF2DC
|
|
movs r1, 0
|
|
movs r2, 0xA0
|
|
bl LoadPalette
|
|
ldr r0, _080C2D14 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r3, _080C2D18 @ =0x00000ccf
|
|
adds r1, r3
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2D10: .4byte gUnknown_83EF2DC
|
|
_080C2D14: .4byte gUnknown_20399E0
|
|
_080C2D18: .4byte 0x00000ccf
|
|
_080C2D1C:
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl sub_80C22C4
|
|
movs r0, 0x1
|
|
bl sub_80C4324
|
|
movs r0, 0x1
|
|
bl sub_80C3154
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C4960
|
|
movs r0, 0xFF
|
|
movs r1, 0x19
|
|
movs r2, 0x1
|
|
bl sub_80C48BC
|
|
ldr r1, _080C2D64 @ =gUnknown_20399E0
|
|
ldr r0, [r1]
|
|
ldr r4, _080C2D68 @ =0x00000cce
|
|
adds r0, r4
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
ldr r0, [r1]
|
|
movs r3, 0xCD
|
|
lsls r3, 4
|
|
adds r0, r3
|
|
strb r2, [r0]
|
|
ldr r1, [r1]
|
|
adds r4, 0x1
|
|
adds r1, r4
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2D64: .4byte gUnknown_20399E0
|
|
_080C2D68: .4byte 0x00000cce
|
|
_080C2D6C:
|
|
bl sub_80C253C
|
|
ldr r0, _080C2D7C @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2D80 @ =0x00000ccf
|
|
adds r1, r0
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2D7C: .4byte gUnknown_20399E0
|
|
_080C2D80: .4byte 0x00000ccf
|
|
_080C2D84:
|
|
ldr r0, [r4]
|
|
movs r2, 0xCD
|
|
lsls r2, 4
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xF
|
|
bne _080C2DA4
|
|
ldrb r0, [r1]
|
|
bl sub_80C4C48
|
|
ldr r1, [r4]
|
|
ldr r3, _080C2DA0 @ =0x00000ccf
|
|
adds r1, r3
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2DA0: .4byte 0x00000ccf
|
|
_080C2DA4:
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
movs r4, 0xCD
|
|
lsls r4, 4
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
bl sub_80C4C48
|
|
b _080C2E0E
|
|
_080C2DB8:
|
|
bl sub_80C2B9C
|
|
bl sub_80C2B48
|
|
movs r0, 0xF3
|
|
bl PlaySE
|
|
ldr r0, _080C2DD0 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2DD4 @ =0x00000ccf
|
|
adds r1, r0
|
|
b _080C2DEC
|
|
.align 2, 0
|
|
_080C2DD0: .4byte gUnknown_20399E0
|
|
_080C2DD4: .4byte 0x00000ccf
|
|
_080C2DD8:
|
|
bl sub_80C2E1C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C2E0E
|
|
_080C2DE4:
|
|
ldr r0, _080C2DF4 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r2, _080C2DF8 @ =0x00000ccf
|
|
adds r1, r2
|
|
_080C2DEC:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C2E0E
|
|
.align 2, 0
|
|
_080C2DF4: .4byte gUnknown_20399E0
|
|
_080C2DF8: .4byte 0x00000ccf
|
|
_080C2DFC:
|
|
ldr r1, _080C2E14 @ =gUnknown_3005090
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r4, _080C2E18 @ =0x00000cc8
|
|
adds r1, r3, r4
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
_080C2E0E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C2E14: .4byte gUnknown_3005090
|
|
_080C2E18: .4byte 0x00000cc8
|
|
thumb_func_end sub_80C2C7C
|
|
|
|
thumb_func_start sub_80C2E1C
|
|
sub_80C2E1C: @ 80C2E1C
|
|
push {r4,r5,lr}
|
|
bl sub_80C2B48
|
|
ldr r0, _080C2E40 @ =gUnknown_20399E0
|
|
ldr r2, [r0]
|
|
ldr r0, [r2]
|
|
movs r4, 0x80
|
|
lsls r4, 3
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r3, [r1, 0x20]
|
|
movs r5, 0x20
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0x68
|
|
bne _080C2E44
|
|
movs r0, 0x1
|
|
b _080C2FB2
|
|
.align 2, 0
|
|
_080C2E40: .4byte gUnknown_20399E0
|
|
_080C2E44:
|
|
ldr r5, _080C2E90 @ =0x00000cce
|
|
adds r0, r2, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x11
|
|
bls _080C2E94
|
|
adds r0, r3, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x1
|
|
b _080C2FA0
|
|
.align 2, 0
|
|
_080C2E90: .4byte 0x00000cce
|
|
_080C2E94:
|
|
cmp r0, 0xE
|
|
bls _080C2ED8
|
|
adds r0, r3, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x2
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x2
|
|
b _080C2FA0
|
|
_080C2ED8:
|
|
cmp r0, 0xA
|
|
bls _080C2F1C
|
|
adds r0, r3, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x3
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x3
|
|
b _080C2FA0
|
|
_080C2F1C:
|
|
cmp r0, 0x6
|
|
bls _080C2F60
|
|
adds r0, r3, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x5
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x5
|
|
b _080C2FA0
|
|
_080C2F60:
|
|
adds r0, r3, 0
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
adds r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, r4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x20]
|
|
subs r0, 0x8
|
|
_080C2FA0:
|
|
strh r0, [r1, 0x20]
|
|
ldr r0, _080C2FB8 @ =gUnknown_20399E0
|
|
ldr r1, [r0]
|
|
ldr r0, _080C2FBC @ =0x00000cce
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
_080C2FB2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C2FB8: .4byte gUnknown_20399E0
|
|
_080C2FBC: .4byte 0x00000cce
|
|
thumb_func_end sub_80C2E1C
|
|
|
|
thumb_func_start sub_80C2FC0
|
|
sub_80C2FC0: @ 80C2FC0
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _080C2FE8 @ =gUnknown_20399E4
|
|
ldr r2, [r0]
|
|
ldrh r0, [r2, 0xC]
|
|
cmp r0, 0
|
|
beq _080C2FEC
|
|
ldrh r0, [r2, 0x8]
|
|
ldrh r3, [r1, 0x20]
|
|
adds r0, r3
|
|
strh r0, [r1, 0x20]
|
|
ldrh r0, [r2, 0xA]
|
|
ldrh r3, [r1, 0x22]
|
|
adds r0, r3
|
|
strh r0, [r1, 0x22]
|
|
ldrh r0, [r2, 0xC]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
b _080C3004
|
|
.align 2, 0
|
|
_080C2FE8: .4byte gUnknown_20399E4
|
|
_080C2FEC:
|
|
ldr r1, [r2, 0x1C]
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r1, 0x20]
|
|
ldr r1, [r2, 0x1C]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r1, 0x22]
|
|
_080C3004:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C2FC0
|
|
|
|
thumb_func_start sub_80C3008
|
|
sub_80C3008: @ 80C3008
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
ldr r6, _080C3090 @ =gUnknown_20399E4
|
|
movs r0, 0x92
|
|
lsls r0, 1
|
|
bl AllocZeroed
|
|
adds r1, r0, 0
|
|
str r1, [r6]
|
|
ldr r0, _080C3094 @ =gUnknown_83EF4E0
|
|
adds r1, 0x24
|
|
bl LZ77UnCompWram
|
|
ldr r0, [r6]
|
|
strh r4, [r0, 0x20]
|
|
strh r5, [r0, 0x22]
|
|
bl sub_80C3D40
|
|
ldr r1, [r6]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r1, 0x4]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r1, r3]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r1, 0x6]
|
|
ldr r0, _080C3098 @ =sub_80C31C0
|
|
str r0, [r1, 0x10]
|
|
ldrb r0, [r1, 0x14]
|
|
bl sub_80C35DC
|
|
ldr r1, [r6]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x16]
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r6]
|
|
movs r4, 0x2
|
|
ldrsh r2, [r1, r4]
|
|
movs r4, 0
|
|
ldrsh r3, [r1, r4]
|
|
movs r1, 0x1
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80C3878
|
|
ldr r1, [r6]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x18]
|
|
bl sub_80C309C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C3090: .4byte gUnknown_20399E4
|
|
_080C3094: .4byte gUnknown_83EF4E0
|
|
_080C3098: .4byte sub_80C31C0
|
|
thumb_func_end sub_80C3008
|
|
|
|
thumb_func_start sub_80C309C
|
|
sub_80C309C: @ 80C309C
|
|
push {r4-r6,lr}
|
|
sub sp, 0x40
|
|
ldr r6, _080C3134 @ =gUnknown_20399E4
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0x24
|
|
str r0, [sp, 0x30]
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
add r5, sp, 0x30
|
|
str r1, [r5, 0x4]
|
|
ldrh r0, [r2, 0x20]
|
|
lsls r0, 16
|
|
orrs r0, r1
|
|
str r0, [r5, 0x4]
|
|
ldr r0, _080C3138 @ =gUnknown_83EF25C
|
|
str r0, [sp, 0x38]
|
|
ldrh r3, [r2, 0x22]
|
|
ldr r1, _080C313C @ =0xffff0000
|
|
add r4, sp, 0x38
|
|
ldr r0, [r4, 0x4]
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
str r0, [r4, 0x4]
|
|
ldrh r0, [r2, 0x20]
|
|
add r1, sp, 0x18
|
|
movs r3, 0
|
|
strh r0, [r1]
|
|
ldrh r2, [r2, 0x22]
|
|
mov r0, sp
|
|
adds r0, 0x1A
|
|
strh r2, [r0]
|
|
ldr r0, _080C3140 @ =gUnknown_83F1C3C
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, _080C3144 @ =gUnknown_83F1C50
|
|
str r0, [sp, 0x20]
|
|
str r3, [sp, 0x24]
|
|
ldr r0, _080C3148 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x28]
|
|
ldr r0, _080C314C @ =sub_80C2FC0
|
|
str r0, [sp, 0x2C]
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
adds r0, r5, 0
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
ldr r0, [r6]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0x6
|
|
ldrsh r2, [r0, r3]
|
|
mov r0, sp
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C3150 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2, 0x1C]
|
|
movs r0, 0x1
|
|
bl sub_80C3154
|
|
add sp, 0x40
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C3134: .4byte gUnknown_20399E4
|
|
_080C3138: .4byte gUnknown_83EF25C
|
|
_080C313C: .4byte 0xffff0000
|
|
_080C3140: .4byte gUnknown_83F1C3C
|
|
_080C3144: .4byte gUnknown_83F1C50
|
|
_080C3148: .4byte gDummySpriteAffineAnimTable
|
|
_080C314C: .4byte sub_80C2FC0
|
|
_080C3150: .4byte gSprites
|
|
thumb_func_end sub_80C309C
|
|
|
|
thumb_func_start sub_80C3154
|
|
sub_80C3154: @ 80C3154
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080C3174 @ =gUnknown_20399E4
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x1C]
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C3174: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3154
|
|
|
|
thumb_func_start sub_80C3178
|
|
sub_80C3178: @ 80C3178
|
|
ldr r0, _080C3184 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0xE]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C3184: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3178
|
|
|
|
thumb_func_start sub_80C3188
|
|
sub_80C3188: @ 80C3188
|
|
push {r4,lr}
|
|
ldr r4, _080C31BC @ =gUnknown_20399E4
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x1C]
|
|
cmp r0, 0
|
|
beq _080C31A8
|
|
bl DestroySprite
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x20]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x22]
|
|
bl FreeSpritePaletteByTag
|
|
_080C31A8:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C31B6
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C31B6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C31BC: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3188
|
|
|
|
thumb_func_start sub_80C31C0
|
|
sub_80C31C0: @ 80C31C0
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r3, _080C3278 @ =gUnknown_20399E4
|
|
ldr r4, [r3]
|
|
strh r5, [r4, 0x8]
|
|
strh r5, [r4, 0xA]
|
|
ldr r2, _080C327C @ =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
adds r6, r3, 0
|
|
cmp r0, 0
|
|
beq _080C31E8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
ble _080C31E8
|
|
ldr r0, _080C3280 @ =0x0000fffe
|
|
strh r0, [r4, 0xA]
|
|
movs r5, 0x1
|
|
_080C31E8:
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C3202
|
|
ldr r1, [r6]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xD
|
|
bgt _080C3202
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0xA]
|
|
movs r5, 0x1
|
|
_080C3202:
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C321C
|
|
ldr r1, [r6]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x14
|
|
bgt _080C321C
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x8]
|
|
movs r5, 0x1
|
|
_080C321C:
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C3236
|
|
ldr r1, [r6]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
ble _080C3236
|
|
ldr r0, _080C3280 @ =0x0000fffe
|
|
strh r0, [r1, 0x8]
|
|
movs r5, 0x1
|
|
_080C3236:
|
|
ldrh r3, [r2, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080C328C
|
|
movs r5, 0x4
|
|
ldr r0, [r6]
|
|
ldr r1, [r0]
|
|
ldr r0, _080C3284 @ =0x000d0015
|
|
cmp r1, r0
|
|
bne _080C3254
|
|
movs r0, 0xF0
|
|
bl PlaySE
|
|
movs r5, 0x6
|
|
_080C3254:
|
|
ldr r0, [r6]
|
|
ldr r1, [r0]
|
|
ldr r0, _080C3288 @ =0x000b0015
|
|
cmp r1, r0
|
|
bne _080C331A
|
|
movs r0, 0
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C331A
|
|
movs r0, 0xF0
|
|
bl PlaySE
|
|
movs r5, 0x5
|
|
b _080C331A
|
|
.align 2, 0
|
|
_080C3278: .4byte gUnknown_20399E4
|
|
_080C327C: .4byte gMain
|
|
_080C3280: .4byte 0x0000fffe
|
|
_080C3284: .4byte 0x000d0015
|
|
_080C3288: .4byte 0x000b0015
|
|
_080C328C:
|
|
movs r0, 0x2
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080C3318
|
|
ldrh r1, [r2, 0x30]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C3300
|
|
bl sub_80C3418
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080C32FC @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
movs r5, 0x2
|
|
ldrsh r2, [r1, r5]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x14]
|
|
bl sub_80C35DC
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x16]
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0x1
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80C3878
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x18]
|
|
movs r0, 0x3
|
|
b _080C332C
|
|
.align 2, 0
|
|
_080C32FC: .4byte gUnknown_20399E4
|
|
_080C3300:
|
|
movs r0, 0x4
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080C331A
|
|
ldr r0, _080C3334 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C3338 @ =0x000047bc
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r0, _080C333C @ =c2_exit_to_overworld_2_switch
|
|
cmp r1, r0
|
|
bne _080C331A
|
|
_080C3318:
|
|
movs r5, 0x6
|
|
_080C331A:
|
|
cmp r5, 0x1
|
|
bne _080C332A
|
|
ldr r0, _080C3340 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0xC]
|
|
ldr r0, _080C3344 @ =sub_80C3348
|
|
str r0, [r1, 0x10]
|
|
_080C332A:
|
|
adds r0, r5, 0
|
|
_080C332C:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C3334: .4byte gUnknown_20399D4
|
|
_080C3338: .4byte 0x000047bc
|
|
_080C333C: .4byte c2_exit_to_overworld_2_switch
|
|
_080C3340: .4byte gUnknown_20399E4
|
|
_080C3344: .4byte sub_80C3348
|
|
thumb_func_end sub_80C31C0
|
|
|
|
thumb_func_start sub_80C3348
|
|
sub_80C3348: @ 80C3348
|
|
push {r4,r5,lr}
|
|
ldr r4, _080C3358 @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0xC]
|
|
cmp r0, 0
|
|
beq _080C335C
|
|
movs r0, 0x2
|
|
b _080C33F4
|
|
.align 2, 0
|
|
_080C3358: .4byte gUnknown_20399E4
|
|
_080C335C:
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
ble _080C336A
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_080C336A:
|
|
ldr r1, [r4]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
bge _080C337A
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
strh r0, [r1]
|
|
_080C337A:
|
|
ldr r1, [r4]
|
|
movs r5, 0xA
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
ble _080C338A
|
|
ldrh r0, [r1, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x2]
|
|
_080C338A:
|
|
ldr r1, [r4]
|
|
movs r2, 0xA
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bge _080C339A
|
|
ldrh r0, [r1, 0x2]
|
|
subs r0, 0x1
|
|
strh r0, [r1, 0x2]
|
|
_080C339A:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x14]
|
|
bl sub_80C35DC
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x16]
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0x1
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80C3878
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x18]
|
|
ldr r0, _080C33FC @ =sub_80C31C0
|
|
str r0, [r1, 0x10]
|
|
movs r0, 0x3
|
|
_080C33F4:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C33FC: .4byte sub_80C31C0
|
|
thumb_func_end sub_80C3348
|
|
|
|
thumb_func_start sub_80C3400
|
|
sub_80C3400: @ 80C3400
|
|
push {lr}
|
|
ldr r0, _080C3414 @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x10]
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C3414: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3400
|
|
|
|
thumb_func_start sub_80C3418
|
|
sub_80C3418: @ 80C3418
|
|
push {r4,r5,lr}
|
|
movs r0, 0
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C3482
|
|
ldr r5, _080C3474 @ =gUnknown_20399E4
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0xE]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
ldr r4, [r5]
|
|
ldrb r0, [r4, 0xE]
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
strb r0, [r4, 0xE]
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0xE]
|
|
cmp r0, 0
|
|
bne _080C3460
|
|
bl sub_80C0E20
|
|
adds r4, r0, 0
|
|
bl sub_80C0E34
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _080C3460
|
|
ldr r1, [r5]
|
|
ldrb r0, [r1, 0xE]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
_080C3460:
|
|
ldr r4, _080C3474 @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0xE]
|
|
cmp r0, 0x1
|
|
beq _080C3478
|
|
cmp r0, 0x1
|
|
ble _080C34A2
|
|
cmp r0, 0x2
|
|
beq _080C34B8
|
|
b _080C34A2
|
|
.align 2, 0
|
|
_080C3474: .4byte gUnknown_20399E4
|
|
_080C3478:
|
|
movs r0, 0x15
|
|
strh r0, [r1]
|
|
movs r0, 0xB
|
|
strh r0, [r1, 0x2]
|
|
b _080C34C0
|
|
_080C3482:
|
|
ldr r4, _080C34B4 @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0xE]
|
|
adds r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
ldr r2, [r4]
|
|
ldrb r0, [r2, 0xE]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
strb r0, [r2, 0xE]
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0xE]
|
|
cmp r0, 0
|
|
beq _080C34A2
|
|
cmp r0, 0x1
|
|
beq _080C34B8
|
|
_080C34A2:
|
|
bl sub_80C4380
|
|
ldr r1, [r4]
|
|
strh r0, [r1]
|
|
bl sub_80C438C
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x2]
|
|
b _080C34C0
|
|
.align 2, 0
|
|
_080C34B4: .4byte gUnknown_20399E4
|
|
_080C34B8:
|
|
movs r0, 0xD
|
|
strh r0, [r1, 0x2]
|
|
movs r0, 0x15
|
|
strh r0, [r1]
|
|
_080C34C0:
|
|
ldr r4, _080C3504 @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldr r2, [r1, 0x1C]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r2, 0x20]
|
|
ldr r2, [r1, 0x1C]
|
|
movs r5, 0x2
|
|
ldrsh r0, [r1, r5]
|
|
lsls r0, 3
|
|
adds r0, 0x24
|
|
strh r0, [r2, 0x22]
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x14]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C3504: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3418
|
|
|
|
thumb_func_start sub_80C3508
|
|
sub_80C3508: @ 80C3508
|
|
ldr r0, _080C3510 @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C3510: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3508
|
|
|
|
thumb_func_start sub_80C3514
|
|
sub_80C3514: @ 80C3514
|
|
ldr r0, _080C351C @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C351C: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3514
|
|
|
|
thumb_func_start sub_80C3520
|
|
sub_80C3520: @ 80C3520
|
|
push {r4,lr}
|
|
ldr r4, _080C353C @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0xE
|
|
bhi _080C3538
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
blt _080C3538
|
|
cmp r0, 0x15
|
|
ble _080C3540
|
|
_080C3538:
|
|
movs r0, 0xC5
|
|
b _080C3574
|
|
.align 2, 0
|
|
_080C353C: .4byte gUnknown_20399E4
|
|
_080C3540:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r4, 0
|
|
ldrsh r3, [r1, r4]
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xAE
|
|
beq _080C3564
|
|
cmp r4, 0xBB
|
|
bne _080C3572
|
|
_080C3564:
|
|
ldr r0, _080C357C @ =0x000008b5
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C3572
|
|
movs r4, 0xC5
|
|
_080C3572:
|
|
adds r0, r4, 0
|
|
_080C3574:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C357C: .4byte 0x000008b5
|
|
thumb_func_end sub_80C3520
|
|
|
|
thumb_func_start sub_80C3580
|
|
sub_80C3580: @ 80C3580
|
|
push {r4,lr}
|
|
ldr r4, _080C359C @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x2]
|
|
cmp r0, 0xE
|
|
bhi _080C3598
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
blt _080C3598
|
|
cmp r0, 0x15
|
|
ble _080C35A0
|
|
_080C3598:
|
|
movs r0, 0xC5
|
|
b _080C35D0
|
|
.align 2, 0
|
|
_080C359C: .4byte gUnknown_20399E4
|
|
_080C35A0:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r4, 0
|
|
ldrsh r3, [r1, r4]
|
|
movs r1, 0x1
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x8D
|
|
bne _080C35CE
|
|
ldr r0, _080C35D8 @ =0x00000844
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C35CE
|
|
movs r4, 0xC5
|
|
_080C35CE:
|
|
adds r0, r4, 0
|
|
_080C35D0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C35D8: .4byte 0x00000844
|
|
thumb_func_end sub_80C3580
|
|
|
|
thumb_func_start sub_80C35DC
|
|
sub_80C35DC: @ 80C35DC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x58
|
|
cmp r0, 0x6D
|
|
bls _080C35EA
|
|
b _080C3870
|
|
_080C35EA:
|
|
lsls r0, 2
|
|
ldr r1, _080C35F4 @ =_080C35F8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C35F4: .4byte _080C35F8
|
|
.align 2, 0
|
|
_080C35F8:
|
|
.4byte _080C37B0
|
|
.4byte _080C37B6
|
|
.4byte _080C37C0
|
|
.4byte _080C37C8
|
|
.4byte _080C37D0
|
|
.4byte _080C37D8
|
|
.4byte _080C37E0
|
|
.4byte _080C37E8
|
|
.4byte _080C37F0
|
|
.4byte _080C37F8
|
|
.4byte _080C3800
|
|
.4byte _080C3840
|
|
.4byte _080C3858
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3808
|
|
.4byte _080C3810
|
|
.4byte _080C3818
|
|
.4byte _080C3820
|
|
.4byte _080C3828
|
|
.4byte _080C3830
|
|
.4byte _080C3836
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C3870
|
|
.4byte _080C384C
|
|
_080C37B0:
|
|
movs r0, 0x89
|
|
lsls r0, 4
|
|
b _080C385A
|
|
_080C37B6:
|
|
ldr r0, _080C37BC @ =0x00000891
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37BC: .4byte 0x00000891
|
|
_080C37C0:
|
|
ldr r0, _080C37C4 @ =0x00000892
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37C4: .4byte 0x00000892
|
|
_080C37C8:
|
|
ldr r0, _080C37CC @ =0x00000893
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37CC: .4byte 0x00000893
|
|
_080C37D0:
|
|
ldr r0, _080C37D4 @ =0x00000894
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37D4: .4byte 0x00000894
|
|
_080C37D8:
|
|
ldr r0, _080C37DC @ =0x00000895
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37DC: .4byte 0x00000895
|
|
_080C37E0:
|
|
ldr r0, _080C37E4 @ =0x00000896
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37E4: .4byte 0x00000896
|
|
_080C37E8:
|
|
ldr r0, _080C37EC @ =0x00000897
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37EC: .4byte 0x00000897
|
|
_080C37F0:
|
|
ldr r0, _080C37F4 @ =0x00000898
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37F4: .4byte 0x00000898
|
|
_080C37F8:
|
|
ldr r0, _080C37FC @ =0x00000899
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C37FC: .4byte 0x00000899
|
|
_080C3800:
|
|
ldr r0, _080C3804 @ =0x0000089a
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C3804: .4byte 0x0000089a
|
|
_080C3808:
|
|
ldr r0, _080C380C @ =0x0000089b
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C380C: .4byte 0x0000089b
|
|
_080C3810:
|
|
ldr r0, _080C3814 @ =0x0000089c
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C3814: .4byte 0x0000089c
|
|
_080C3818:
|
|
ldr r0, _080C381C @ =0x0000089d
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C381C: .4byte 0x0000089d
|
|
_080C3820:
|
|
ldr r0, _080C3824 @ =0x0000089e
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C3824: .4byte 0x0000089e
|
|
_080C3828:
|
|
ldr r0, _080C382C @ =0x0000089f
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C382C: .4byte 0x0000089f
|
|
_080C3830:
|
|
movs r0, 0x8A
|
|
lsls r0, 4
|
|
b _080C385A
|
|
_080C3836:
|
|
ldr r0, _080C383C @ =0x000008a1
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C383C: .4byte 0x000008a1
|
|
_080C3840:
|
|
movs r0, 0x3
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C3850
|
|
_080C384C:
|
|
movs r0, 0
|
|
b _080C3872
|
|
_080C3850:
|
|
ldr r0, _080C3854 @ =0x000008a2
|
|
b _080C385A
|
|
.align 2, 0
|
|
_080C3854: .4byte 0x000008a2
|
|
_080C3858:
|
|
ldr r0, _080C386C @ =0x000008a3
|
|
_080C385A:
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
movs r1, 0x3
|
|
cmp r0, 0
|
|
beq _080C3868
|
|
movs r1, 0x2
|
|
_080C3868:
|
|
adds r0, r1, 0
|
|
b _080C3872
|
|
.align 2, 0
|
|
_080C386C: .4byte 0x000008a3
|
|
_080C3870:
|
|
movs r0, 0x1
|
|
_080C3872:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C35DC
|
|
|
|
thumb_func_start sub_80C3878
|
|
sub_80C3878: @ 80C3878
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x7E
|
|
cmp r0, 0x47
|
|
bls _080C3886
|
|
b _080C3AC0
|
|
_080C3886:
|
|
lsls r0, 2
|
|
ldr r1, _080C3890 @ =_080C3894
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C3890: .4byte _080C3894
|
|
.align 2, 0
|
|
_080C3894:
|
|
.4byte _080C39B8
|
|
.4byte _080C39C0
|
|
.4byte _080C39C8
|
|
.4byte _080C39D0
|
|
.4byte _080C39D8
|
|
.4byte _080C39E0
|
|
.4byte _080C39E8
|
|
.4byte _080C39F0
|
|
.4byte _080C39F8
|
|
.4byte _080C3A00
|
|
.4byte _080C3A08
|
|
.4byte _080C3A10
|
|
.4byte _080C3A18
|
|
.4byte _080C3A1E
|
|
.4byte _080C3A28
|
|
.4byte _080C3A30
|
|
.4byte _080C3A38
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3A40
|
|
.4byte _080C3A48
|
|
.4byte _080C3A50
|
|
.4byte _080C3A58
|
|
.4byte _080C3A60
|
|
.4byte _080C3A68
|
|
.4byte _080C3A70
|
|
.4byte _080C3A78
|
|
.4byte _080C3A80
|
|
.4byte _080C3A88
|
|
.4byte _080C3A90
|
|
.4byte _080C3A98
|
|
.4byte _080C3A9E
|
|
.4byte _080C3AA8
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C3AC0
|
|
.4byte _080C39B4
|
|
_080C39B4:
|
|
movs r0, 0
|
|
b _080C3AC2
|
|
_080C39B8:
|
|
ldr r0, _080C39BC @ =0x000008a4
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39BC: .4byte 0x000008a4
|
|
_080C39C0:
|
|
ldr r0, _080C39C4 @ =0x000008a5
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39C4: .4byte 0x000008a5
|
|
_080C39C8:
|
|
ldr r0, _080C39CC @ =0x000008a6
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39CC: .4byte 0x000008a6
|
|
_080C39D0:
|
|
ldr r0, _080C39D4 @ =0x000008a7
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39D4: .4byte 0x000008a7
|
|
_080C39D8:
|
|
ldr r0, _080C39DC @ =0x000008a8
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39DC: .4byte 0x000008a8
|
|
_080C39E0:
|
|
ldr r0, _080C39E4 @ =0x000008a9
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39E4: .4byte 0x000008a9
|
|
_080C39E8:
|
|
ldr r0, _080C39EC @ =0x000008aa
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39EC: .4byte 0x000008aa
|
|
_080C39F0:
|
|
ldr r0, _080C39F4 @ =0x000008ab
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39F4: .4byte 0x000008ab
|
|
_080C39F8:
|
|
ldr r0, _080C39FC @ =0x000008ac
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C39FC: .4byte 0x000008ac
|
|
_080C3A00:
|
|
ldr r0, _080C3A04 @ =0x000008ad
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A04: .4byte 0x000008ad
|
|
_080C3A08:
|
|
ldr r0, _080C3A0C @ =0x000008ae
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A0C: .4byte 0x000008ae
|
|
_080C3A10:
|
|
ldr r0, _080C3A14 @ =0x000008af
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A14: .4byte 0x000008af
|
|
_080C3A18:
|
|
movs r0, 0x8B
|
|
lsls r0, 4
|
|
b _080C3AAA
|
|
_080C3A1E:
|
|
ldr r0, _080C3A24 @ =0x000008b1
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A24: .4byte 0x000008b1
|
|
_080C3A28:
|
|
ldr r0, _080C3A2C @ =0x000008b2
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A2C: .4byte 0x000008b2
|
|
_080C3A30:
|
|
ldr r0, _080C3A34 @ =0x000008b3
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A34: .4byte 0x000008b3
|
|
_080C3A38:
|
|
ldr r0, _080C3A3C @ =0x000008b4
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A3C: .4byte 0x000008b4
|
|
_080C3A40:
|
|
ldr r0, _080C3A44 @ =0x000008b5
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A44: .4byte 0x000008b5
|
|
_080C3A48:
|
|
ldr r0, _080C3A4C @ =0x000008b6
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A4C: .4byte 0x000008b6
|
|
_080C3A50:
|
|
ldr r0, _080C3A54 @ =0x000008b7
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A54: .4byte 0x000008b7
|
|
_080C3A58:
|
|
ldr r0, _080C3A5C @ =0x000008b8
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A5C: .4byte 0x000008b8
|
|
_080C3A60:
|
|
ldr r0, _080C3A64 @ =0x000008b9
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A64: .4byte 0x000008b9
|
|
_080C3A68:
|
|
ldr r0, _080C3A6C @ =0x000008ba
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A6C: .4byte 0x000008ba
|
|
_080C3A70:
|
|
ldr r0, _080C3A74 @ =0x000008bb
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A74: .4byte 0x000008bb
|
|
_080C3A78:
|
|
ldr r0, _080C3A7C @ =0x000008bc
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A7C: .4byte 0x000008bc
|
|
_080C3A80:
|
|
ldr r0, _080C3A84 @ =0x000008bd
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A84: .4byte 0x000008bd
|
|
_080C3A88:
|
|
ldr r0, _080C3A8C @ =0x000008be
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A8C: .4byte 0x000008be
|
|
_080C3A90:
|
|
ldr r0, _080C3A94 @ =0x000008bf
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3A94: .4byte 0x000008bf
|
|
_080C3A98:
|
|
movs r0, 0x8C
|
|
lsls r0, 4
|
|
b _080C3AAA
|
|
_080C3A9E:
|
|
ldr r0, _080C3AA4 @ =0x000008c1
|
|
b _080C3AAA
|
|
.align 2, 0
|
|
_080C3AA4: .4byte 0x000008c1
|
|
_080C3AA8:
|
|
ldr r0, _080C3ABC @ =0x000008c2
|
|
_080C3AAA:
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
movs r1, 0x3
|
|
cmp r0, 0
|
|
beq _080C3AB8
|
|
movs r1, 0x2
|
|
_080C3AB8:
|
|
adds r0, r1, 0
|
|
b _080C3AC2
|
|
.align 2, 0
|
|
_080C3ABC: .4byte 0x000008c2
|
|
_080C3AC0:
|
|
movs r0, 0x1
|
|
_080C3AC2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C3878
|
|
|
|
thumb_func_start sub_80C3AC8
|
|
sub_80C3AC8: @ 80C3AC8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080C3AE4
|
|
cmp r0, 0x1
|
|
beq _080C3AF0
|
|
ldr r0, _080C3AE0 @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x16]
|
|
b _080C3AF6
|
|
.align 2, 0
|
|
_080C3AE0: .4byte gUnknown_20399E4
|
|
_080C3AE4:
|
|
ldr r0, _080C3AEC @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x16]
|
|
b _080C3AF6
|
|
.align 2, 0
|
|
_080C3AEC: .4byte gUnknown_20399E4
|
|
_080C3AF0:
|
|
ldr r0, _080C3AFC @ =gUnknown_20399E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x18]
|
|
_080C3AF6:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C3AFC: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3AC8
|
|
|
|
thumb_func_start sub_80C3B00
|
|
sub_80C3B00: @ 80C3B00
|
|
push {lr}
|
|
ldr r0, _080C3B24 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
ldrb r0, [r0, 0x14]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C3B24: .4byte gSaveBlock1Ptr
|
|
thumb_func_end sub_80C3B00
|
|
|
|
thumb_func_start sub_80C3B28
|
|
sub_80C3B28: @ 80C3B28
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, _080C3B58 @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl get_map_light_level_by_bank_and_number
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x8
|
|
bhi _080C3B84
|
|
lsls r0, 2
|
|
ldr r1, _080C3B5C @ =_080C3B60
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C3B58: .4byte gSaveBlock1Ptr
|
|
_080C3B5C: .4byte _080C3B60
|
|
.align 2, 0
|
|
_080C3B60:
|
|
.4byte _080C3B84
|
|
.4byte _080C3B84
|
|
.4byte _080C3B84
|
|
.4byte _080C3BAC
|
|
.4byte _080C3B84
|
|
.4byte _080C3B84
|
|
.4byte _080C3BAC
|
|
.4byte _080C3C2C
|
|
.4byte _080C3BF0
|
|
_080C3B84:
|
|
ldr r0, _080C3BA0 @ =gUnknown_20399E4
|
|
ldr r2, [r0]
|
|
ldr r1, _080C3BA4 @ =gUnknown_2036DFC
|
|
ldrb r0, [r1, 0x14]
|
|
strh r0, [r2, 0x14]
|
|
ldr r0, [r1]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldr r0, _080C3BA8 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r4, [r0]
|
|
ldrh r5, [r0, 0x2]
|
|
b _080C3C9A
|
|
.align 2, 0
|
|
_080C3BA0: .4byte gUnknown_20399E4
|
|
_080C3BA4: .4byte gUnknown_2036DFC
|
|
_080C3BA8: .4byte gSaveBlock1Ptr
|
|
_080C3BAC:
|
|
ldr r4, _080C3BE8 @ =gSaveBlock1Ptr
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
adds r0, 0x24
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, 0x25
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r0, _080C3BEC @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r2, 0x14]
|
|
strh r0, [r1, 0x14]
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldr r0, [r4]
|
|
ldrh r4, [r0, 0x28]
|
|
ldrh r5, [r0, 0x2A]
|
|
b _080C3C9A
|
|
.align 2, 0
|
|
_080C3BE8: .4byte gSaveBlock1Ptr
|
|
_080C3BEC: .4byte gUnknown_20399E4
|
|
_080C3BF0:
|
|
ldr r4, _080C3C24 @ =gSaveBlock1Ptr
|
|
ldr r1, [r4]
|
|
movs r0, 0x14
|
|
ldrsb r0, [r1, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r1, 0x15]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r0, _080C3C28 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
ldrb r0, [r2, 0x14]
|
|
strh r0, [r1, 0x14]
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldr r0, [r4]
|
|
ldrh r4, [r0, 0x18]
|
|
ldrh r5, [r0, 0x1A]
|
|
b _080C3C9A
|
|
.align 2, 0
|
|
_080C3C24: .4byte gSaveBlock1Ptr
|
|
_080C3C28: .4byte gUnknown_20399E4
|
|
_080C3C2C:
|
|
ldr r4, _080C3C5C @ =gUnknown_20399E4
|
|
ldr r0, [r4]
|
|
ldr r1, _080C3C60 @ =gUnknown_2036DFC
|
|
ldrb r1, [r1, 0x14]
|
|
strh r1, [r0, 0x14]
|
|
cmp r1, 0xC4
|
|
beq _080C3C68
|
|
ldr r0, _080C3C64 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x24
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ldrsb r1, [r5, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
b _080C3C8E
|
|
.align 2, 0
|
|
_080C3C5C: .4byte gUnknown_20399E4
|
|
_080C3C60: .4byte gUnknown_2036DFC
|
|
_080C3C64: .4byte gSaveBlock1Ptr
|
|
_080C3C68:
|
|
ldr r0, _080C3D30 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0x14
|
|
ldrb r0, [r0, 0x14]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x1
|
|
ldrsb r1, [r5, r1]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl get_mapheader_by_bank_and_number
|
|
adds r2, r0, 0
|
|
ldr r1, [r4]
|
|
ldrb r0, [r2, 0x14]
|
|
strh r0, [r1, 0x14]
|
|
_080C3C8E:
|
|
ldr r0, [r2]
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, 0x4]
|
|
mov r8, r0
|
|
ldrh r4, [r5, 0x4]
|
|
ldrh r5, [r5, 0x6]
|
|
_080C3C9A:
|
|
ldr r0, _080C3D34 @ =gUnknown_20399E4
|
|
ldr r7, [r0]
|
|
ldrh r0, [r7, 0x14]
|
|
subs r0, 0x58
|
|
strh r0, [r7, 0x14]
|
|
ldr r0, _080C3D38 @ =gUnknown_83F2178
|
|
mov r10, r0
|
|
ldrh r0, [r7, 0x14]
|
|
lsls r0, 2
|
|
mov r9, r0
|
|
add r0, r10
|
|
ldrh r6, [r0]
|
|
adds r0, r1, 0
|
|
adds r1, r6, 0
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080C3CC4
|
|
movs r1, 0x1
|
|
_080C3CC4:
|
|
adds r0, r4, 0
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, r6
|
|
bcc _080C3CD8
|
|
subs r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080C3CD8:
|
|
mov r0, r10
|
|
adds r0, 0x2
|
|
add r0, r9
|
|
ldrh r6, [r0]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080C3CF2
|
|
movs r1, 0x1
|
|
_080C3CF2:
|
|
adds r0, r5, 0
|
|
bl __udivsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, r6
|
|
bcc _080C3D06
|
|
subs r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
_080C3D06:
|
|
ldr r1, _080C3D3C @ =gUnknown_83F1E60
|
|
mov r2, r9
|
|
adds r0, r2, r1
|
|
ldrh r0, [r0]
|
|
adds r0, r4, r0
|
|
strh r0, [r7]
|
|
ldrh r0, [r7, 0x14]
|
|
lsls r0, 2
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
adds r0, r5, r0
|
|
strh r0, [r7, 0x2]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C3D30: .4byte gSaveBlock1Ptr
|
|
_080C3D34: .4byte gUnknown_20399E4
|
|
_080C3D38: .4byte gUnknown_83F2178
|
|
_080C3D3C: .4byte gUnknown_83F1E60
|
|
thumb_func_end sub_80C3B28
|
|
|
|
thumb_func_start sub_80C3D40
|
|
sub_80C3D40: @ 80C3D40
|
|
push {r4,r5,lr}
|
|
bl sub_80C3B00
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
subs r0, 0x66
|
|
cmp r0, 0x5C
|
|
bls _080C3D52
|
|
b _080C4132
|
|
_080C3D52:
|
|
lsls r0, 2
|
|
ldr r1, _080C3D5C @ =_080C3D60
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C3D5C: .4byte _080C3D60
|
|
.align 2, 0
|
|
_080C3D60:
|
|
.4byte _080C4034
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C40A0
|
|
.4byte _080C40C4
|
|
.4byte _080C40E8
|
|
.4byte _080C4108
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4064
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4028
|
|
.4byte _080C4132
|
|
.4byte _080C3F24
|
|
.4byte _080C3F50
|
|
.4byte _080C3F78
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C3F44
|
|
.4byte _080C3EE4
|
|
.4byte _080C3EF0
|
|
.4byte _080C3ED4
|
|
.4byte _080C3F38
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C3F04
|
|
.4byte _080C4132
|
|
.4byte _080C3F10
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C3FB0
|
|
.4byte _080C3FC8
|
|
.4byte _080C3FD4
|
|
.4byte _080C4132
|
|
.4byte _080C3FF4
|
|
.4byte _080C3FBC
|
|
.4byte _080C4014
|
|
.4byte _080C4132
|
|
.4byte _080C3FE0
|
|
.4byte _080C4132
|
|
.4byte _080C4008
|
|
.4byte _080C4132
|
|
.4byte _080C4132
|
|
.4byte _080C3FA4
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
.4byte _080C4008
|
|
_080C3ED4:
|
|
ldr r0, _080C3EE0 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xC
|
|
strh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3EE0: .4byte gUnknown_20399E4
|
|
_080C3EE4:
|
|
ldr r0, _080C3EEC @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C3EEC: .4byte gUnknown_20399E4
|
|
_080C3EF0:
|
|
ldr r0, _080C3F00 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
strh r0, [r1]
|
|
movs r0, 0xE
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3F00: .4byte gUnknown_20399E4
|
|
_080C3F04:
|
|
ldr r0, _080C3F0C @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x12
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C3F0C: .4byte gUnknown_20399E4
|
|
_080C3F10:
|
|
ldr r0, _080C3F20 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x12
|
|
strh r0, [r1]
|
|
movs r0, 0x4
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3F20: .4byte gUnknown_20399E4
|
|
_080C3F24:
|
|
ldr r0, _080C3F34 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
strh r0, [r1]
|
|
movs r0, 0x9
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3F34: .4byte gUnknown_20399E4
|
|
_080C3F38:
|
|
ldr r0, _080C3F40 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
b _080C3FE6
|
|
.align 2, 0
|
|
_080C3F40: .4byte gUnknown_20399E4
|
|
_080C3F44:
|
|
ldr r0, _080C3F4C @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xB
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C3F4C: .4byte gUnknown_20399E4
|
|
_080C3F50:
|
|
ldr r0, _080C3F70 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r2, 0xE
|
|
strh r2, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
ldr r0, _080C3F74 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x1E
|
|
beq _080C3F6C
|
|
b _080C4136
|
|
_080C3F6C:
|
|
b _080C40B6
|
|
.align 2, 0
|
|
_080C3F70: .4byte gUnknown_20399E4
|
|
_080C3F74: .4byte gSaveBlock1Ptr
|
|
_080C3F78:
|
|
ldr r0, _080C3F9C @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xC
|
|
strh r0, [r1]
|
|
movs r2, 0x6
|
|
strh r2, [r1, 0x2]
|
|
ldr r0, _080C3FA0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x23
|
|
beq _080C3F94
|
|
b _080C4136
|
|
_080C3F94:
|
|
movs r0, 0xF
|
|
strh r0, [r1]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3F9C: .4byte gUnknown_20399E4
|
|
_080C3FA0: .4byte gSaveBlock1Ptr
|
|
_080C3FA4:
|
|
ldr r0, _080C3FAC @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x12
|
|
b _080C4092
|
|
.align 2, 0
|
|
_080C3FAC: .4byte gUnknown_20399E4
|
|
_080C3FB0:
|
|
ldr r0, _080C3FB8 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xA
|
|
b _080C401A
|
|
.align 2, 0
|
|
_080C3FB8: .4byte gUnknown_20399E4
|
|
_080C3FBC:
|
|
ldr r0, _080C3FC4 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x5
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C3FC4: .4byte gUnknown_20399E4
|
|
_080C3FC8:
|
|
ldr r0, _080C3FD0 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
b _080C3FE6
|
|
.align 2, 0
|
|
_080C3FD0: .4byte gUnknown_20399E4
|
|
_080C3FD4:
|
|
ldr r0, _080C3FDC @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
b _080C4078
|
|
.align 2, 0
|
|
_080C3FDC: .4byte gUnknown_20399E4
|
|
_080C3FE0:
|
|
ldr r0, _080C3FF0 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x11
|
|
_080C3FE6:
|
|
strh r0, [r1]
|
|
movs r0, 0x3
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C3FF0: .4byte gUnknown_20399E4
|
|
_080C3FF4:
|
|
ldr r0, _080C4004 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x11
|
|
strh r0, [r1]
|
|
movs r0, 0xB
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C4004: .4byte gUnknown_20399E4
|
|
_080C4008:
|
|
ldr r0, _080C4010 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x9
|
|
b _080C4078
|
|
.align 2, 0
|
|
_080C4010: .4byte gUnknown_20399E4
|
|
_080C4014:
|
|
ldr r0, _080C4024 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x10
|
|
_080C401A:
|
|
strh r0, [r1]
|
|
movs r0, 0x8
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C4024: .4byte gUnknown_20399E4
|
|
_080C4028:
|
|
ldr r0, _080C4030 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C4030: .4byte gUnknown_20399E4
|
|
_080C4034:
|
|
ldr r0, _080C404C @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bne _080C4054
|
|
ldr r0, _080C4050 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
b _080C40D8
|
|
.align 2, 0
|
|
_080C404C: .4byte gSaveBlock1Ptr
|
|
_080C4050: .4byte gUnknown_20399E4
|
|
_080C4054:
|
|
cmp r0, 0x3
|
|
bne _080C412C
|
|
ldr r0, _080C4060 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
b _080C40B4
|
|
.align 2, 0
|
|
_080C4060: .4byte gUnknown_20399E4
|
|
_080C4064:
|
|
ldr r0, _080C4080 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x27
|
|
bne _080C4088
|
|
ldr r0, _080C4084 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
_080C4078:
|
|
strh r0, [r1]
|
|
movs r0, 0xC
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C4080: .4byte gSaveBlock1Ptr
|
|
_080C4084: .4byte gUnknown_20399E4
|
|
_080C4088:
|
|
cmp r0, 0x28
|
|
bne _080C4136
|
|
ldr r0, _080C409C @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
_080C4092:
|
|
strh r0, [r1]
|
|
movs r0, 0xD
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C409C: .4byte gUnknown_20399E4
|
|
_080C40A0:
|
|
ldr r0, _080C40BC @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C412C
|
|
ldr r0, _080C40C0 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
_080C40B4:
|
|
strh r0, [r1]
|
|
_080C40B6:
|
|
movs r0, 0x5
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C40BC: .4byte gSaveBlock1Ptr
|
|
_080C40C0: .4byte gUnknown_20399E4
|
|
_080C40C4:
|
|
ldr r0, _080C40E0 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bne _080C412C
|
|
ldr r0, _080C40E4 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xE
|
|
_080C40D8:
|
|
strh r0, [r1]
|
|
movs r0, 0x7
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C40E0: .4byte gSaveBlock1Ptr
|
|
_080C40E4: .4byte gUnknown_20399E4
|
|
_080C40E8:
|
|
ldr r0, _080C4100 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bne _080C412C
|
|
ldr r0, _080C4104 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xD
|
|
b _080C411C
|
|
.align 2, 0
|
|
_080C4100: .4byte gSaveBlock1Ptr
|
|
_080C4104: .4byte gUnknown_20399E4
|
|
_080C4108:
|
|
ldr r0, _080C4124 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0
|
|
bne _080C412C
|
|
ldr r0, _080C4128 @ =gUnknown_20399E4
|
|
ldr r1, [r0]
|
|
movs r0, 0xF
|
|
_080C411C:
|
|
strh r0, [r1]
|
|
movs r0, 0x6
|
|
strh r0, [r1, 0x2]
|
|
b _080C4136
|
|
.align 2, 0
|
|
_080C4124: .4byte gSaveBlock1Ptr
|
|
_080C4128: .4byte gUnknown_20399E4
|
|
_080C412C:
|
|
bl sub_80C3B28
|
|
b _080C4136
|
|
_080C4132:
|
|
bl sub_80C3B28
|
|
_080C4136:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080C4160 @ =gUnknown_20399E4
|
|
ldr r1, [r4]
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r1, r5]
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
ldr r1, [r4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r1, 0x14]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4160: .4byte gUnknown_20399E4
|
|
thumb_func_end sub_80C3D40
|
|
|
|
thumb_func_start sub_80C4164
|
|
sub_80C4164: @ 80C4164
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 16
|
|
lsrs r1, r3, 16
|
|
cmp r0, 0x1
|
|
beq _080C4198
|
|
cmp r0, 0x1
|
|
bgt _080C4186
|
|
cmp r0, 0
|
|
beq _080C4190
|
|
b _080C41D0
|
|
_080C4186:
|
|
cmp r5, 0x2
|
|
beq _080C41A0
|
|
cmp r5, 0x3
|
|
beq _080C41A8
|
|
b _080C41D0
|
|
_080C4190:
|
|
ldr r3, _080C4194 @ =gUnknown_83F2490
|
|
b _080C41AA
|
|
.align 2, 0
|
|
_080C4194: .4byte gUnknown_83F2490
|
|
_080C4198:
|
|
ldr r3, _080C419C @ =gUnknown_83F2724
|
|
b _080C41AA
|
|
.align 2, 0
|
|
_080C419C: .4byte gUnknown_83F2724
|
|
_080C41A0:
|
|
ldr r3, _080C41A4 @ =gUnknown_83F29B8
|
|
b _080C41AA
|
|
.align 2, 0
|
|
_080C41A4: .4byte gUnknown_83F29B8
|
|
_080C41A8:
|
|
ldr r3, _080C41CC @ =gUnknown_83F2C4C
|
|
_080C41AA:
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
movs r2, 0x16
|
|
muls r0, r2
|
|
adds r1, r0
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r2, r0, 5
|
|
adds r0, r2
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r1, r3
|
|
ldrb r0, [r1]
|
|
b _080C41D2
|
|
.align 2, 0
|
|
_080C41CC: .4byte gUnknown_83F2C4C
|
|
_080C41D0:
|
|
movs r0, 0xC5
|
|
_080C41D2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4164
|
|
|
|
thumb_func_start sub_80C41D8
|
|
sub_80C41D8: @ 80C41D8
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r4, _080C4204 @ =gUnknown_20399E8
|
|
movs r0, 0x8C
|
|
bl AllocZeroed
|
|
adds r1, r0, 0
|
|
str r1, [r4]
|
|
ldr r0, _080C4208 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1
|
|
bne _080C4210
|
|
ldr r0, _080C420C @ =gUnknown_83EF59C
|
|
adds r1, 0xC
|
|
bl LZ77UnCompWram
|
|
b _080C4218
|
|
.align 2, 0
|
|
_080C4204: .4byte gUnknown_20399E8
|
|
_080C4208: .4byte gSaveBlock2Ptr
|
|
_080C420C: .4byte gUnknown_83EF59C
|
|
_080C4210:
|
|
ldr r0, _080C423C @ =gUnknown_83EF524
|
|
adds r1, 0xC
|
|
bl LZ77UnCompWram
|
|
_080C4218:
|
|
ldr r4, _080C4240 @ =gUnknown_20399E8
|
|
ldr r0, [r4]
|
|
strh r6, [r0, 0x8]
|
|
strh r5, [r0, 0xA]
|
|
bl sub_80C3508
|
|
ldr r1, [r4]
|
|
strh r0, [r1]
|
|
bl sub_80C3514
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x2]
|
|
bl sub_80C4244
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C423C: .4byte gUnknown_83EF524
|
|
_080C4240: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_80C41D8
|
|
|
|
thumb_func_start sub_80C4244
|
|
sub_80C4244: @ 80C4244
|
|
push {r4-r6,lr}
|
|
sub sp, 0x40
|
|
ldr r6, _080C42FC @ =gUnknown_20399E8
|
|
ldr r2, [r6]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
str r0, [sp, 0x30]
|
|
movs r1, 0x80
|
|
add r5, sp, 0x30
|
|
str r1, [r5, 0x4]
|
|
ldrh r0, [r2, 0x8]
|
|
lsls r0, 16
|
|
orrs r0, r1
|
|
str r0, [r5, 0x4]
|
|
ldr r0, _080C4300 @ =gUnknown_83EF27C
|
|
str r0, [sp, 0x38]
|
|
ldrh r3, [r2, 0xA]
|
|
ldr r1, _080C4304 @ =0xffff0000
|
|
add r4, sp, 0x38
|
|
ldr r0, [r4, 0x4]
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
str r0, [r4, 0x4]
|
|
ldrh r0, [r2, 0x8]
|
|
add r1, sp, 0x18
|
|
movs r3, 0
|
|
strh r0, [r1]
|
|
ldrh r2, [r2, 0xA]
|
|
mov r0, sp
|
|
adds r0, 0x1A
|
|
strh r2, [r0]
|
|
ldr r0, _080C4308 @ =gUnknown_83F1C54
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, _080C430C @ =gUnknown_83F1C64
|
|
str r0, [sp, 0x20]
|
|
str r3, [sp, 0x24]
|
|
ldr r0, _080C4310 @ =gDummySpriteAffineAnimTable
|
|
str r0, [sp, 0x28]
|
|
ldr r0, _080C4314 @ =SpriteCallbackDummy
|
|
str r0, [sp, 0x2C]
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
ldr r0, _080C4318 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
cmp r0, 0x1
|
|
bne _080C42AA
|
|
ldr r0, _080C431C @ =gUnknown_83EF29C
|
|
str r0, [sp, 0x38]
|
|
_080C42AA:
|
|
adds r0, r5, 0
|
|
bl LoadSpriteSheet
|
|
adds r0, r4, 0
|
|
bl LoadSpritePalette
|
|
ldr r0, [r6]
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r1, 19
|
|
movs r3, 0x90
|
|
lsls r3, 14
|
|
adds r1, r3
|
|
asrs r1, 16
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
lsls r2, 19
|
|
movs r0, 0x90
|
|
lsls r0, 14
|
|
adds r2, r0
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r6]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C4320 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0x1
|
|
bl sub_80C4324
|
|
add sp, 0x40
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C42FC: .4byte gUnknown_20399E8
|
|
_080C4300: .4byte gUnknown_83EF27C
|
|
_080C4304: .4byte 0xffff0000
|
|
_080C4308: .4byte gUnknown_83F1C54
|
|
_080C430C: .4byte gUnknown_83F1C64
|
|
_080C4310: .4byte gDummySpriteAffineAnimTable
|
|
_080C4314: .4byte SpriteCallbackDummy
|
|
_080C4318: .4byte gSaveBlock2Ptr
|
|
_080C431C: .4byte gUnknown_83EF29C
|
|
_080C4320: .4byte gSprites
|
|
thumb_func_end sub_80C4244
|
|
|
|
thumb_func_start sub_80C4324
|
|
sub_80C4324: @ 80C4324
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080C4344 @ =gUnknown_20399E8
|
|
ldr r1, [r1]
|
|
ldr r2, [r1, 0x4]
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C4344: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_80C4324
|
|
|
|
thumb_func_start sub_80C4348
|
|
sub_80C4348: @ 80C4348
|
|
push {r4,lr}
|
|
ldr r4, _080C437C @ =gUnknown_20399E8
|
|
ldr r0, [r4]
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _080C4368
|
|
bl DestroySprite
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x8]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0xA]
|
|
bl FreeSpritePaletteByTag
|
|
_080C4368:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C4376
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C4376:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C437C: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_80C4348
|
|
|
|
thumb_func_start sub_80C4380
|
|
sub_80C4380: @ 80C4380
|
|
ldr r0, _080C4388 @ =gUnknown_20399E8
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C4388: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_80C4380
|
|
|
|
thumb_func_start sub_80C438C
|
|
sub_80C438C: @ 80C438C
|
|
ldr r0, _080C4394 @ =gUnknown_20399E8
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C4394: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_80C438C
|
|
|
|
thumb_func_start sub_80C4398
|
|
sub_80C4398: @ 80C4398
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r5, _080C43F4 @ =gUnknown_20399EC
|
|
ldr r0, _080C43F8 @ =0x0000046c
|
|
bl AllocZeroed
|
|
str r0, [r5]
|
|
movs r2, 0x8D
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
mov r2, r8
|
|
str r2, [r1]
|
|
movs r1, 0x8C
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
ldr r0, _080C43FC @ =gUnknown_83F18D8
|
|
ldr r1, [r5]
|
|
bl LZ77UnCompWram
|
|
ldr r0, _080C4400 @ =gUnknown_83F1908
|
|
ldr r1, [r5]
|
|
adds r1, 0x40
|
|
bl LZ77UnCompWram
|
|
ldr r1, _080C4404 @ =gUnknown_3005090
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080C4408 @ =sub_80C440C
|
|
str r1, [r0]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C43F4: .4byte gUnknown_20399EC
|
|
_080C43F8: .4byte 0x0000046c
|
|
_080C43FC: .4byte gUnknown_83F18D8
|
|
_080C4400: .4byte gUnknown_83F1908
|
|
_080C4404: .4byte gUnknown_3005090
|
|
_080C4408: .4byte sub_80C440C
|
|
thumb_func_end sub_80C4398
|
|
|
|
thumb_func_start sub_80C440C
|
|
sub_80C440C: @ 80C440C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080C442C @ =gUnknown_20399EC
|
|
ldr r0, [r0]
|
|
ldr r1, _080C4430 @ =0x00000463
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080C44BC
|
|
lsls r0, 2
|
|
ldr r1, _080C4434 @ =_080C4438
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C442C: .4byte gUnknown_20399EC
|
|
_080C4430: .4byte 0x00000463
|
|
_080C4434: .4byte _080C4438
|
|
.align 2, 0
|
|
_080C4438:
|
|
.4byte _080C444C
|
|
.4byte _080C4452
|
|
.4byte _080C4468
|
|
.4byte _080C446E
|
|
.4byte _080C44A0
|
|
_080C444C:
|
|
bl sub_80C08E0
|
|
b _080C44A4
|
|
_080C4452:
|
|
bl sub_80C47F0
|
|
ldr r0, _080C4460 @ =gUnknown_20399EC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C4464 @ =0x00000463
|
|
adds r1, r0
|
|
b _080C44AC
|
|
.align 2, 0
|
|
_080C4460: .4byte gUnknown_20399EC
|
|
_080C4464: .4byte 0x00000463
|
|
_080C4468:
|
|
bl sub_80C4750
|
|
b _080C44A4
|
|
_080C446E:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
ldr r0, _080C4498 @ =gUnknown_20399EC
|
|
ldr r1, [r0]
|
|
ldr r0, _080C449C @ =0x00000463
|
|
adds r1, r0
|
|
b _080C44AC
|
|
.align 2, 0
|
|
_080C4498: .4byte gUnknown_20399EC
|
|
_080C449C: .4byte 0x00000463
|
|
_080C44A0:
|
|
bl sub_80C08F4
|
|
_080C44A4:
|
|
ldr r0, _080C44B4 @ =gUnknown_20399EC
|
|
ldr r1, [r0]
|
|
ldr r2, _080C44B8 @ =0x00000463
|
|
adds r1, r2
|
|
_080C44AC:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C44DC
|
|
.align 2, 0
|
|
_080C44B4: .4byte gUnknown_20399EC
|
|
_080C44B8: .4byte 0x00000463
|
|
_080C44BC:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
bl sub_80C44E4
|
|
_080C44DC:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C440C
|
|
|
|
thumb_func_start sub_80C44E4
|
|
sub_80C44E4: @ 80C44E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C4504 @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _080C4508 @ =gUnknown_20399EC
|
|
ldr r0, [r0]
|
|
movs r2, 0x8D
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C4504: .4byte gUnknown_3005090
|
|
_080C4508: .4byte gUnknown_20399EC
|
|
thumb_func_end sub_80C44E4
|
|
|
|
thumb_func_start sub_80C450C
|
|
sub_80C450C: @ 80C450C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
mov r10, r0
|
|
mov r9, r1
|
|
adds r4, r2, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [sp, 0x4C]
|
|
ldr r6, [sp, 0x50]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r9, r1
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
str r5, [sp, 0x28]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
ldr r7, _080C45F4 @ =gUnknown_20399EC
|
|
ldr r0, [r7]
|
|
adds r0, 0x40
|
|
str r0, [sp, 0x18]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x18
|
|
lsls r1, r3, 16
|
|
orrs r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _080C45F8 @ =gUnknown_83EF2BC
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _080C45FC @ =0xffff0000
|
|
add r5, sp, 0x20
|
|
mov r8, r5
|
|
ldr r1, [r5, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r6
|
|
str r1, [r5, 0x4]
|
|
mov r1, sp
|
|
movs r2, 0
|
|
strh r3, [r1]
|
|
strh r6, [r1, 0x2]
|
|
ldr r1, _080C4600 @ =gUnknown_83F1C68
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _080C4604 @ =gUnknown_83F1C94
|
|
str r1, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
ldr r1, _080C4608 @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _080C460C @ =SpriteCallbackDummy
|
|
str r1, [sp, 0x14]
|
|
bl LoadSpriteSheet
|
|
mov r0, r8
|
|
bl LoadSpritePalette
|
|
lsls r4, 19
|
|
movs r0, 0x90
|
|
lsls r0, 14
|
|
adds r4, r0
|
|
asrs r4, 16
|
|
ldr r1, [sp, 0x28]
|
|
lsls r5, r1, 19
|
|
adds r5, r0
|
|
asrs r5, 16
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r7]
|
|
mov r5, r9
|
|
lsls r5, 4
|
|
mov r9, r5
|
|
movs r1, 0xB6
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
add r2, r9
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C4610 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r7]
|
|
add r0, r9
|
|
movs r2, 0xB5
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
mov r5, r10
|
|
strb r5, [r0]
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C45F4: .4byte gUnknown_20399EC
|
|
_080C45F8: .4byte gUnknown_83EF2BC
|
|
_080C45FC: .4byte 0xffff0000
|
|
_080C4600: .4byte gUnknown_83F1C68
|
|
_080C4604: .4byte gUnknown_83F1C94
|
|
_080C4608: .4byte gDummySpriteAffineAnimTable
|
|
_080C460C: .4byte SpriteCallbackDummy
|
|
_080C4610: .4byte gSprites
|
|
thumb_func_end sub_80C450C
|
|
|
|
thumb_func_start sub_80C4614
|
|
sub_80C4614: @ 80C4614
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
ldr r4, [sp, 0x4C]
|
|
ldr r5, [sp, 0x50]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r10, r0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0x28]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r8, r2
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
mov r9, r3
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r7, 0
|
|
ldr r0, _080C4730 @ =gUnknown_20399EC
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x18]
|
|
movs r2, 0x40
|
|
add r0, sp, 0x18
|
|
lsls r1, r4, 16
|
|
orrs r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r1, _080C4734 @ =gUnknown_83EF2BC
|
|
str r1, [sp, 0x20]
|
|
ldr r2, _080C4738 @ =0xffff0000
|
|
add r6, sp, 0x20
|
|
ldr r1, [r6, 0x4]
|
|
ands r1, r2
|
|
orrs r1, r5
|
|
str r1, [r6, 0x4]
|
|
mov r1, sp
|
|
strh r4, [r1]
|
|
strh r5, [r1, 0x2]
|
|
ldr r1, _080C473C @ =gUnknown_83F1C70
|
|
str r1, [sp, 0x4]
|
|
ldr r1, _080C4740 @ =gUnknown_83F1C98
|
|
str r1, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
ldr r1, _080C4744 @ =gDummySpriteAffineAnimTable
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _080C4748 @ =SpriteCallbackDummy
|
|
str r1, [sp, 0x14]
|
|
bl LoadSpriteSheet
|
|
adds r0, r6, 0
|
|
bl LoadSpritePalette
|
|
mov r0, r9
|
|
lsls r2, r0, 16
|
|
asrs r2, 16
|
|
mov r1, r8
|
|
lsls r3, r1, 16
|
|
asrs r3, 16
|
|
mov r0, r10
|
|
movs r1, 0
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
adds r0, r4, 0
|
|
bl sub_80C35DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080C46BE
|
|
adds r0, r4, 0
|
|
bl sub_80C35DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _080C46C4
|
|
_080C46BE:
|
|
cmp r5, 0x64
|
|
beq _080C46C4
|
|
movs r7, 0x2
|
|
_080C46C4:
|
|
mov r3, r8
|
|
lsls r1, r3, 3
|
|
lsls r0, r7, 16
|
|
asrs r0, 16
|
|
adds r0, 0x24
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r3, r9
|
|
lsls r2, r3, 3
|
|
adds r2, r0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080C4730 @ =gUnknown_20399EC
|
|
ldr r2, [r4]
|
|
ldr r1, [sp, 0x28]
|
|
lsls r3, r1, 4
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r2, r1
|
|
adds r2, r3
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080C474C @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
mov r1, r10
|
|
strb r1, [r0]
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4730: .4byte gUnknown_20399EC
|
|
_080C4734: .4byte gUnknown_83EF2BC
|
|
_080C4738: .4byte 0xffff0000
|
|
_080C473C: .4byte gUnknown_83F1C70
|
|
_080C4740: .4byte gUnknown_83F1C98
|
|
_080C4744: .4byte gDummySpriteAffineAnimTable
|
|
_080C4748: .4byte SpriteCallbackDummy
|
|
_080C474C: .4byte gSprites
|
|
thumb_func_end sub_80C4614
|
|
|
|
thumb_func_start sub_80C4750
|
|
sub_80C4750: @ 80C4750
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r7, 0
|
|
movs r0, 0x3
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C47E0
|
|
movs r1, 0
|
|
_080C476C:
|
|
movs r5, 0
|
|
lsls r0, r1, 24
|
|
adds r1, 0x1
|
|
mov r10, r1
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x8]
|
|
_080C4778:
|
|
movs r4, 0
|
|
lsls r0, r5, 16
|
|
mov r8, r0
|
|
adds r1, r5, 0x1
|
|
mov r9, r1
|
|
_080C4782:
|
|
lsls r3, r4, 16
|
|
asrs r3, 16
|
|
ldr r0, [sp, 0x8]
|
|
movs r1, 0
|
|
mov r6, r8
|
|
asrs r2, r6, 16
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80C35DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080C47C2
|
|
adds r0, r7, 0
|
|
adds r0, 0xA
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [sp, 0x8]
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_80C450C
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
_080C47C2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x15
|
|
bls _080C4782
|
|
mov r1, r9
|
|
lsls r0, r1, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0xE
|
|
bls _080C4778
|
|
mov r6, r10
|
|
lsls r0, r6, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0x3
|
|
bls _080C476C
|
|
_080C47E0:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4750
|
|
|
|
thumb_func_start sub_80C47F0
|
|
sub_80C47F0: @ 80C47F0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
movs r6, 0
|
|
movs r1, 0
|
|
_080C4800:
|
|
movs r7, 0
|
|
lsls r0, r1, 24
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
_080C480C:
|
|
movs r5, 0
|
|
lsls r0, r7, 16
|
|
mov r9, r0
|
|
adds r1, r7, 0x1
|
|
mov r10, r1
|
|
_080C4816:
|
|
lsls r3, r5, 16
|
|
asrs r3, 16
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
mov r4, r9
|
|
asrs r2, r4, 16
|
|
bl sub_80C4164
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
cmp r0, 0xC5
|
|
beq _080C4884
|
|
cmp r0, 0x8D
|
|
bne _080C4840
|
|
ldr r0, _080C48B4 @ =0x00000844
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080C4884
|
|
_080C4840:
|
|
adds r0, r6, 0
|
|
adds r0, 0x23
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0xA
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_80C4614
|
|
adds r0, r4, 0
|
|
bl sub_80C3878
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080C487E
|
|
ldr r0, _080C48B8 @ =gUnknown_20399EC
|
|
ldr r0, [r0]
|
|
lsls r1, r6, 4
|
|
movs r2, 0xA4
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
_080C487E:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_080C4884:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, 0x15
|
|
bls _080C4816
|
|
mov r4, r10
|
|
lsls r0, r4, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0xE
|
|
bls _080C480C
|
|
ldr r1, [sp, 0x8]
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0x3
|
|
bls _080C4800
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C48B4: .4byte 0x00000844
|
|
_080C48B8: .4byte gUnknown_20399EC
|
|
thumb_func_end sub_80C47F0
|
|
|
|
thumb_func_start sub_80C48BC
|
|
sub_80C48BC: @ 80C48BC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
cmp r1, 0x19
|
|
bne _080C4920
|
|
movs r3, 0
|
|
ldr r0, _080C491C @ =gUnknown_20399EC
|
|
mov r12, r0
|
|
movs r1, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
lsls r5, r0, 2
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
_080C48E0:
|
|
mov r7, r12
|
|
ldr r1, [r7]
|
|
lsls r2, r3, 4
|
|
adds r0, r1, r2
|
|
movs r7, 0xB5
|
|
lsls r7, 2
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _080C48F8
|
|
cmp r4, 0xFF
|
|
bne _080C490E
|
|
_080C48F8:
|
|
movs r7, 0xB6
|
|
lsls r7, 2
|
|
adds r0, r1, r7
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1]
|
|
_080C490E:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x18
|
|
bls _080C48E0
|
|
b _080C4954
|
|
.align 2, 0
|
|
_080C491C: .4byte gUnknown_20399EC
|
|
_080C4920:
|
|
ldr r0, _080C495C @ =gUnknown_20399EC
|
|
ldr r2, [r0]
|
|
lsls r1, 4
|
|
adds r0, r2, r1
|
|
movs r3, 0xB5
|
|
lsls r3, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
bne _080C4954
|
|
movs r7, 0xB6
|
|
lsls r7, 2
|
|
adds r0, r2, r7
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080C4954:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C495C: .4byte gUnknown_20399EC
|
|
thumb_func_end sub_80C48BC
|
|
|
|
thumb_func_start sub_80C4960
|
|
sub_80C4960: @ 80C4960
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r5, r2, 24
|
|
cmp r1, 0x19
|
|
bne _080C49C4
|
|
movs r3, 0
|
|
ldr r0, _080C49C0 @ =gUnknown_20399EC
|
|
mov r12, r0
|
|
movs r1, 0x1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
lsls r5, r0, 2
|
|
movs r6, 0x5
|
|
negs r6, r6
|
|
_080C4984:
|
|
mov r7, r12
|
|
ldr r1, [r7]
|
|
lsls r2, r3, 4
|
|
adds r0, r1, r2
|
|
movs r7, 0xA2
|
|
lsls r7, 1
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _080C499C
|
|
cmp r4, 0xFF
|
|
bne _080C49B2
|
|
_080C499C:
|
|
movs r7, 0xA4
|
|
lsls r7, 1
|
|
adds r0, r1, r7
|
|
adds r0, r2
|
|
ldr r1, [r0]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1]
|
|
_080C49B2:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x18
|
|
bls _080C4984
|
|
b _080C49F8
|
|
.align 2, 0
|
|
_080C49C0: .4byte gUnknown_20399EC
|
|
_080C49C4:
|
|
ldr r0, _080C4A00 @ =gUnknown_20399EC
|
|
ldr r2, [r0]
|
|
lsls r1, 4
|
|
adds r0, r2, r1
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
cmp r0, r4
|
|
beq _080C49F8
|
|
movs r7, 0xA4
|
|
lsls r7, 1
|
|
adds r0, r2, r7
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
adds r2, 0x3E
|
|
movs r0, 0x1
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r3, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080C49F8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4A00: .4byte gUnknown_20399EC
|
|
thumb_func_end sub_80C4960
|
|
|
|
thumb_func_start sub_80C4A04
|
|
sub_80C4A04: @ 80C4A04
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _080C4AA4 @ =gUnknown_20399EC
|
|
_080C4A0A:
|
|
ldr r0, [r6]
|
|
lsls r4, r5, 4
|
|
movs r1, 0xB6
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C4A3E
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0xB7
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
ldr r1, _080C4AA8 @ =0x000002de
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080C4A3E:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x18
|
|
bls _080C4A0A
|
|
movs r5, 0
|
|
ldr r6, _080C4AA4 @ =gUnknown_20399EC
|
|
_080C4A4C:
|
|
ldr r0, [r6]
|
|
lsls r4, r5, 4
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080C4A82
|
|
bl DestroySprite
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpriteTilesByTag
|
|
ldr r0, [r6]
|
|
adds r0, r4
|
|
movs r1, 0xA7
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bl FreeSpritePaletteByTag
|
|
_080C4A82:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x18
|
|
bls _080C4A4C
|
|
ldr r4, _080C4AA4 @ =gUnknown_20399EC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C4A9C
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C4A9C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4AA4: .4byte gUnknown_20399EC
|
|
_080C4AA8: .4byte 0x000002de
|
|
thumb_func_end sub_80C4A04
|
|
|
|
thumb_func_start sub_80C4AAC
|
|
sub_80C4AAC: @ 80C4AAC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r1, _080C4B24 @ =gUnknown_20399F0
|
|
lsrs r0, 22
|
|
adds r4, r0, r1
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080C4B28
|
|
movs r0, 0x14
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r0, 0x50
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1]
|
|
movs r0, 0x54
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x2]
|
|
movs r0, 0x52
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0x48
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x6]
|
|
movs r0, 0x4A
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0x40
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0xA]
|
|
movs r0, 0x42
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0xC]
|
|
movs r0, 0x44
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0x46
|
|
bl GetGpuReg
|
|
ldr r1, [r4]
|
|
strh r0, [r1, 0x10]
|
|
movs r0, 0x1
|
|
b _080C4B2A
|
|
.align 2, 0
|
|
_080C4B24: .4byte gUnknown_20399F0
|
|
_080C4B28:
|
|
movs r0, 0
|
|
_080C4B2A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4AAC
|
|
|
|
thumb_func_start sub_80C4B30
|
|
sub_80C4B30: @ 80C4B30
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
ldr r1, _080C4B44 @ =gUnknown_20399F0
|
|
lsrs r0, 22
|
|
adds r4, r0, r1
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080C4B48
|
|
movs r0, 0
|
|
b _080C4BB0
|
|
.align 2, 0
|
|
_080C4B44: .4byte gUnknown_20399F0
|
|
_080C4B48:
|
|
ldrh r1, [r0]
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0x54
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x4]
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x6]
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x8]
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0xA]
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0xC]
|
|
movs r0, 0x42
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0xE]
|
|
movs r0, 0x44
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
ldrh r1, [r0, 0x10]
|
|
movs r0, 0x46
|
|
bl SetGpuReg
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C4BAE
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C4BAE:
|
|
movs r0, 0x1
|
|
_080C4BB0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4B30
|
|
|
|
thumb_func_start sub_80C4BB8
|
|
sub_80C4BB8: @ 80C4BB8
|
|
push {r4-r6,lr}
|
|
movs r5, 0
|
|
ldr r6, _080C4BE0 @ =gUnknown_20399F0
|
|
_080C4BBE:
|
|
lsls r0, r5, 2
|
|
adds r4, r0, r6
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C4BD0
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C4BD0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0x2
|
|
bls _080C4BBE
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4BE0: .4byte gUnknown_20399F0
|
|
thumb_func_end sub_80C4BB8
|
|
|
|
thumb_func_start sub_80C4BE4
|
|
sub_80C4BE4: @ 80C4BE4
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80C4C2C
|
|
movs r0, 0
|
|
bl sub_80C4C48
|
|
movs r0, 0
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0x1
|
|
mov r1, sp
|
|
bl sub_80C4CF0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C4C74
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_80C4C9C
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80C4C9C
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4BE4
|
|
|
|
thumb_func_start sub_80C4C2C
|
|
sub_80C4C2C: @ 80C4C2C
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsls r3, 24
|
|
orrs r3, r1
|
|
orrs r3, r2
|
|
lsrs r3, 16
|
|
movs r0, 0x50
|
|
adds r1, r3, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C2C
|
|
|
|
thumb_func_start sub_80C4C48
|
|
sub_80C4C48: @ 80C4C48
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x54
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C48
|
|
|
|
thumb_func_start sub_80C4C5C
|
|
sub_80C4C5C: @ 80C4C5C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 24
|
|
orrs r2, r1
|
|
lsrs r2, 16
|
|
movs r0, 0x52
|
|
adds r1, r2, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C5C
|
|
|
|
thumb_func_start sub_80C4C74
|
|
sub_80C4C74: @ 80C4C74
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsls r1, 24
|
|
orrs r1, r0
|
|
lsrs r1, 16
|
|
movs r0, 0x48
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C74
|
|
|
|
thumb_func_start sub_80C4C88
|
|
sub_80C4C88: @ 80C4C88
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C88
|
|
|
|
thumb_func_start sub_80C4C9C
|
|
sub_80C4C9C: @ 80C4C9C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldr r1, _080C4CBC @ =gUnknown_83F1CA0
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
cmp r4, 0
|
|
beq _080C4CC0
|
|
cmp r4, 0x1
|
|
beq _080C4CDC
|
|
b _080C4CE8
|
|
.align 2, 0
|
|
_080C4CBC: .4byte gUnknown_83F1CA0
|
|
_080C4CC0:
|
|
movs r0, 0
|
|
bl GetGpuReg
|
|
adds r1, r0, 0
|
|
lsls r0, r5, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
b _080C4CE8
|
|
_080C4CDC:
|
|
lsls r0, r5, 1
|
|
add r0, sp
|
|
ldrh r1, [r0]
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
_080C4CE8:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4C9C
|
|
|
|
thumb_func_start sub_80C4CF0
|
|
sub_80C4CF0: @ 80C4CF0
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
lsls r4, 24
|
|
ldr r5, _080C4D2C @ =gUnknown_83F1CA4
|
|
lsrs r4, 23
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
ldrh r1, [r6, 0x2]
|
|
lsls r1, 8
|
|
ldrh r2, [r6, 0x6]
|
|
orrs r1, r2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl SetGpuReg
|
|
adds r5, 0x1
|
|
adds r4, r5
|
|
ldrb r0, [r4]
|
|
ldrh r1, [r6]
|
|
lsls r1, 8
|
|
ldrh r2, [r6, 0x4]
|
|
orrs r1, r2
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl SetGpuReg
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4D2C: .4byte gUnknown_83F1CA4
|
|
thumb_func_end sub_80C4CF0
|
|
|
|
thumb_func_start sub_80C4D30
|
|
sub_80C4D30: @ 80C4D30
|
|
push {lr}
|
|
bl sub_80C4BB8
|
|
bl sub_80C4BE4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4D30
|
|
|
|
thumb_func_start sub_80C4D40
|
|
sub_80C4D40: @ 80C4D40
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, _080C4D68 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080C4D70
|
|
cmp r1, 0x5E
|
|
bne _080C4D70
|
|
ldr r0, _080C4D6C @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, 0xA
|
|
bne _080C4D70
|
|
ldrb r0, [r1, 0x5]
|
|
cmp r0, 0x6
|
|
bhi _080C4D70
|
|
movs r0, 0x1
|
|
b _080C4D72
|
|
.align 2, 0
|
|
_080C4D68: .4byte gUnknown_20399D4
|
|
_080C4D6C: .4byte gSaveBlock1Ptr
|
|
_080C4D70:
|
|
movs r0, 0
|
|
_080C4D72:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4D40
|
|
|
|
thumb_func_start sub_80C4D78
|
|
sub_80C4D78: @ 80C4D78
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
lsrs r0, r1, 16
|
|
ldr r2, _080C4D9C @ =0xffa80000
|
|
adds r1, r2
|
|
lsrs r5, r1, 16
|
|
cmp r5, 0x6C
|
|
bhi _080C4DBC
|
|
bl sub_80C4D40
|
|
cmp r0, 0x1
|
|
bne _080C4DA4
|
|
ldr r1, _080C4DA0 @ =gUnknown_83EF22E
|
|
b _080C4DAC
|
|
.align 2, 0
|
|
_080C4D9C: .4byte 0xffa80000
|
|
_080C4DA0: .4byte gUnknown_83EF22E
|
|
_080C4DA4:
|
|
ldr r0, _080C4DB8 @ =gUnknown_83F1CAC
|
|
lsls r1, r5, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
_080C4DAC:
|
|
adds r0, r6, 0
|
|
bl StringCopy
|
|
adds r1, r0, 0
|
|
b _080C4DCE
|
|
.align 2, 0
|
|
_080C4DB8: .4byte gUnknown_83F1CAC
|
|
_080C4DBC:
|
|
cmp r4, 0
|
|
bne _080C4DC2
|
|
movs r4, 0x12
|
|
_080C4DC2:
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl StringFill
|
|
b _080C4DF2
|
|
_080C4DCE:
|
|
cmp r4, 0
|
|
beq _080C4DF0
|
|
subs r0, r1, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r4
|
|
bcs _080C4DEC
|
|
movs r2, 0
|
|
_080C4DDE:
|
|
strb r2, [r1]
|
|
adds r1, 0x1
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, r4
|
|
bcc _080C4DDE
|
|
_080C4DEC:
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
_080C4DF0:
|
|
adds r0, r1, 0
|
|
_080C4DF2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4D78
|
|
|
|
thumb_func_start sub_80C4DF8
|
|
sub_80C4DF8: @ 80C4DF8
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r2, 0
|
|
bl sub_80C4D78
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4DF8
|
|
|
|
thumb_func_start sub_80C4E08
|
|
sub_80C4E08: @ 80C4E08
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl sub_80C4DF8
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C4E08
|
|
|
|
thumb_func_start sub_80C4E18
|
|
sub_80C4E18: @ 80C4E18
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
ldr r0, _080C4E38 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C4E3C @ =0x00004799
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080C4E40
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
b _080C4E48
|
|
.align 2, 0
|
|
_080C4E38: .4byte gUnknown_20399D4
|
|
_080C4E3C: .4byte 0x00004799
|
|
_080C4E40:
|
|
movs r0, 0x3
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
_080C4E48:
|
|
ldr r0, _080C4E70 @ =gUnknown_83F1CA8
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl box_print
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4E70: .4byte gUnknown_83F1CA8
|
|
thumb_func_end sub_80C4E18
|
|
|
|
thumb_func_start sub_80C4E74
|
|
sub_80C4E74: @ 80C4E74
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
ldr r0, _080C4E94 @ =gUnknown_20399D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080C4E98 @ =0x00004799
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080C4E9C
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
b _080C4EA4
|
|
.align 2, 0
|
|
_080C4E94: .4byte gUnknown_20399D4
|
|
_080C4E98: .4byte 0x00004799
|
|
_080C4E9C:
|
|
movs r0, 0x4
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
_080C4EA4:
|
|
ldr r0, _080C4ECC @ =gUnknown_83F1CA8
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl box_print
|
|
movs r0, 0x4
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C4ECC: .4byte gUnknown_83F1CA8
|
|
thumb_func_end sub_80C4E74
|
|
|
|
thumb_func_start sub_80C4ED0
|
|
sub_80C4ED0: @ 80C4ED0
|
|
push {lr}
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080C4EE6
|
|
movs r0, 0x3
|
|
bl PutWindowTilemap
|
|
movs r0, 0x4
|
|
bl PutWindowTilemap
|
|
b _080C4EF2
|
|
_080C4EE6:
|
|
movs r0, 0x3
|
|
bl ClearWindowTilemap
|
|
movs r0, 0x4
|
|
bl ClearWindowTilemap
|
|
_080C4EF2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4ED0
|
|
|
|
thumb_func_start sub_80C4EF8
|
|
sub_80C4EF8: @ 80C4EF8
|
|
push {lr}
|
|
bl sub_80C51E8
|
|
movs r0, 0x2
|
|
bl sub_80BFEDC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C4EF8
|
|
|
|
thumb_func_start sub_80C4F08
|
|
sub_80C4F08: @ 80C4F08
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _080C4F28 @ =gUnknown_20399FC
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x6
|
|
bls _080C4F1C
|
|
b _080C51B8
|
|
_080C4F1C:
|
|
lsls r0, 2
|
|
ldr r1, _080C4F2C @ =_080C4F30
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C4F28: .4byte gUnknown_20399FC
|
|
_080C4F2C: .4byte _080C4F30
|
|
.align 2, 0
|
|
_080C4F30:
|
|
.4byte _080C4F4C
|
|
.4byte _080C4F92
|
|
.4byte _080C4FEC
|
|
.4byte _080C5000
|
|
.4byte _080C5028
|
|
.4byte _080C5180
|
|
.4byte _080C5196
|
|
_080C4F4C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
bl sub_80C0E20
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80C07E4
|
|
adds r2, r0, 0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80C4398
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80C3008
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
bl sub_80C41D8
|
|
movs r0, 0
|
|
bl sub_80C3154
|
|
movs r0, 0
|
|
bl sub_80C4324
|
|
b _080C51A6
|
|
_080C4F92:
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C4FAE
|
|
bl sub_80C07E4
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
bl sub_80C2208
|
|
b _080C51A6
|
|
_080C4FAE:
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
ldr r0, _080C4FE8 @ =gUnknown_8418EB5
|
|
bl sub_80C4E18
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C48BC
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80C4960
|
|
b _080C51A6
|
|
.align 2, 0
|
|
_080C4FE8: .4byte gUnknown_8418EB5
|
|
_080C4FEC:
|
|
ldr r0, _080C4FFC @ =gUnknown_8418EB0
|
|
bl sub_80C4E74
|
|
movs r0, 0
|
|
bl sub_80C4ED0
|
|
b _080C51A6
|
|
.align 2, 0
|
|
_080C4FFC: .4byte gUnknown_8418EB0
|
|
_080C5000:
|
|
ldr r0, _080C5024 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C500E
|
|
b _080C51DC
|
|
_080C500E:
|
|
bl sub_80C0B18
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
bl sub_80C0BB0
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
b _080C51A6
|
|
.align 2, 0
|
|
_080C5024: .4byte gUnknown_2037AB8
|
|
_080C5028:
|
|
bl sub_80C3400
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x5
|
|
bls _080C5038
|
|
b _080C51DC
|
|
_080C5038:
|
|
lsls r0, 2
|
|
ldr r1, _080C5044 @ =_080C5048
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C5044: .4byte _080C5048
|
|
.align 2, 0
|
|
_080C5048:
|
|
.4byte _080C51DC
|
|
.4byte _080C51DC
|
|
.4byte _080C5070
|
|
.4byte _080C50F8
|
|
.4byte _080C5168
|
|
.4byte _080C5060
|
|
_080C5060:
|
|
ldr r0, _080C506C @ =gUnknown_20399FC
|
|
ldr r1, [r0]
|
|
movs r0, 0x6
|
|
strb r0, [r1]
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C506C: .4byte gUnknown_20399FC
|
|
_080C5070:
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _080C5086
|
|
movs r0, 0x66
|
|
bl PlaySE
|
|
b _080C508A
|
|
_080C5086:
|
|
bl sub_80C0450
|
|
_080C508A:
|
|
bl sub_80C3178
|
|
bl sub_80C0B18
|
|
bl sub_80C0BB0
|
|
bl sub_80C0B9C
|
|
bl sub_80C3508
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x15
|
|
bne _080C50C4
|
|
bl sub_80C3514
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _080C50C4
|
|
movs r0, 0xE1
|
|
bl PlaySE
|
|
ldr r0, _080C50C0 @ =gUnknown_8418E95
|
|
bl sub_80C4E74
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C50C0: .4byte gUnknown_8418E95
|
|
_080C50C4:
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080C50E0
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080C50EC
|
|
_080C50E0:
|
|
ldr r0, _080C50E8 @ =gUnknown_8418EB0
|
|
bl sub_80C4E74
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C50E8: .4byte gUnknown_8418EB0
|
|
_080C50EC:
|
|
ldr r0, _080C50F4 @ =gUnknown_8418E8B
|
|
bl sub_80C4E74
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C50F4: .4byte gUnknown_8418E8B
|
|
_080C50F8:
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _080C5114
|
|
movs r0, 0
|
|
bl sub_80C3AC8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
bne _080C51DC
|
|
_080C5114:
|
|
movs r0, 0x3
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x1
|
|
bne _080C51DC
|
|
ldr r0, _080C514C @ =gSaveBlock1Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r1, r0]
|
|
ldrb r1, [r1, 0x5]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
bl get_map_light_level_by_bank_and_number
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x4
|
|
beq _080C5140
|
|
cmp r0, 0x8
|
|
bne _080C5154
|
|
_080C5140:
|
|
ldr r2, _080C5150 @ =gUnknown_20399FC
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x2]
|
|
ldr r1, [r2]
|
|
b _080C51AA
|
|
.align 2, 0
|
|
_080C514C: .4byte gSaveBlock1Ptr
|
|
_080C5150: .4byte gUnknown_20399FC
|
|
_080C5154:
|
|
movs r0, 0x1
|
|
bl PlaySE
|
|
ldr r1, _080C5164 @ =gUnknown_20399FC
|
|
ldr r0, [r1]
|
|
strb r4, [r0, 0x2]
|
|
ldr r1, [r1]
|
|
b _080C51AA
|
|
.align 2, 0
|
|
_080C5164: .4byte gUnknown_20399FC
|
|
_080C5168:
|
|
bl sub_80C0E20
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080C517C @ =sub_80C07F8
|
|
adds r1, r5, 0
|
|
bl sub_80C0E70
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C517C: .4byte sub_80C07F8
|
|
_080C5180:
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C51A6
|
|
adds r0, r5, 0
|
|
bl sub_80C2C1C
|
|
b _080C51A6
|
|
_080C5196:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
_080C51A6:
|
|
ldr r0, _080C51B4 @ =gUnknown_20399FC
|
|
ldr r1, [r0]
|
|
_080C51AA:
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080C51DC
|
|
.align 2, 0
|
|
_080C51B4: .4byte gUnknown_20399FC
|
|
_080C51B8:
|
|
ldr r0, _080C51E4 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C51DC
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0x1
|
|
bne _080C51D6
|
|
bl sub_80C3520
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80C527C
|
|
_080C51D6:
|
|
adds r0, r5, 0
|
|
bl sub_80C5208
|
|
_080C51DC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C51E4: .4byte gUnknown_2037AB8
|
|
thumb_func_end sub_80C4F08
|
|
|
|
thumb_func_start sub_80C51E8
|
|
sub_80C51E8: @ 80C51E8
|
|
push {r4,lr}
|
|
ldr r4, _080C5204 @ =gUnknown_20399FC
|
|
movs r0, 0x4
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
strb r1, [r0, 0x1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5204: .4byte gUnknown_20399FC
|
|
thumb_func_end sub_80C51E8
|
|
|
|
thumb_func_start sub_80C5208
|
|
sub_80C5208: @ 80C5208
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r0, 0x2
|
|
bl sub_80C0E04
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _080C5220
|
|
bl sub_80C25BC
|
|
_080C5220:
|
|
bl sub_80C4A04
|
|
bl sub_80C3188
|
|
bl sub_80C4348
|
|
bl sub_80C4D30
|
|
bl sub_80C0898
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
bl FreeAllWindowBuffers
|
|
ldr r0, _080C5250 @ =gUnknown_20399FC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x1
|
|
bne _080C5258
|
|
ldr r0, _080C5254 @ =c2_exit_to_overworld_2_switch
|
|
bl SetMainCallback2
|
|
b _080C525E
|
|
.align 2, 0
|
|
_080C5250: .4byte gUnknown_20399FC
|
|
_080C5254: .4byte c2_exit_to_overworld_2_switch
|
|
_080C5258:
|
|
ldr r0, _080C5274 @ =sub_8124AB0
|
|
bl SetMainCallback2
|
|
_080C525E:
|
|
ldr r4, _080C5278 @ =gUnknown_20399FC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080C526E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080C526E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5274: .4byte sub_8124AB0
|
|
_080C5278: .4byte gUnknown_20399FC
|
|
thumb_func_end sub_80C5208
|
|
|
|
thumb_func_start sub_80C527C
|
|
sub_80C527C: @ 80C527C
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
ldr r1, _080C52A4 @ =0xffa80000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ldr r5, _080C52A8 @ =gUnknown_83F2EE0
|
|
lsls r1, r0, 1
|
|
adds r4, r1, r0
|
|
adds r0, r5, 0x2
|
|
adds r1, r4, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080C52AC
|
|
bl sub_805546C
|
|
adds r0, r4, r5
|
|
bl sub_8124C1C
|
|
b _080C52C6
|
|
.align 2, 0
|
|
_080C52A4: .4byte 0xffa80000
|
|
_080C52A8: .4byte gUnknown_83F2EE0
|
|
_080C52AC:
|
|
adds r0, r4, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r1, r5, 0x1
|
|
adds r1, r4, r1
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
bl warp1_set_2
|
|
_080C52C6:
|
|
bl sub_80842C8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C527C
|
|
|
|
thumb_func_start sub_80C52D0
|
|
sub_80C52D0: @ 80C52D0
|
|
push {lr}
|
|
ldr r2, _080C5318 @ =gUnknown_3005334
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [r2]
|
|
ldr r2, _080C531C @ =gUnknown_3005348
|
|
ldrb r1, [r0, 0x1F]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5320 @ =gUnknown_3005330
|
|
ldrb r1, [r0, 0x19]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5324 @ =gUnknown_3005344
|
|
ldrb r1, [r0, 0x1A]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5328 @ =gUnknown_3005340
|
|
ldrb r1, [r0, 0x1B]
|
|
strb r1, [r2]
|
|
ldr r2, _080C532C @ =gUnknown_3005338
|
|
ldrb r1, [r0, 0x1C]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5330 @ =gUnknown_300534C
|
|
ldrb r1, [r0, 0x1D]
|
|
strb r1, [r2]
|
|
ldr r2, _080C5334 @ =gUnknown_300533C
|
|
ldrb r1, [r0, 0x1E]
|
|
strb r1, [r2]
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, 0x22
|
|
bls _080C530C
|
|
b _080C5458
|
|
_080C530C:
|
|
lsls r0, 2
|
|
ldr r1, _080C5338 @ =_080C533C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C5318: .4byte gUnknown_3005334
|
|
_080C531C: .4byte gUnknown_3005348
|
|
_080C5320: .4byte gUnknown_3005330
|
|
_080C5324: .4byte gUnknown_3005344
|
|
_080C5328: .4byte gUnknown_3005340
|
|
_080C532C: .4byte gUnknown_3005338
|
|
_080C5330: .4byte gUnknown_300534C
|
|
_080C5334: .4byte gUnknown_300533C
|
|
_080C5338: .4byte _080C533C
|
|
.align 2, 0
|
|
_080C533C:
|
|
.4byte _080C53C8
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5428
|
|
.4byte _080C5458
|
|
.4byte _080C53CE
|
|
.4byte _080C53D4
|
|
.4byte _080C53E8
|
|
.4byte _080C53FA
|
|
.4byte _080C5458
|
|
.4byte _080C5410
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5416
|
|
.4byte _080C53F4
|
|
.4byte _080C541C
|
|
.4byte _080C5422
|
|
.4byte _080C5458
|
|
.4byte _080C5458
|
|
.4byte _080C5434
|
|
_080C53C8:
|
|
bl sub_80C55D4
|
|
b _080C5458
|
|
_080C53CE:
|
|
bl sub_80C568C
|
|
b _080C5458
|
|
_080C53D4:
|
|
bl sub_80C5884
|
|
ldr r0, _080C53E4 @ =gUnknown_3005348
|
|
ldrb r0, [r0]
|
|
bl sub_80C5748
|
|
b _080C5458
|
|
.align 2, 0
|
|
_080C53E4: .4byte gUnknown_3005348
|
|
_080C53E8:
|
|
bl sub_80C5884
|
|
bl sub_80C59D4
|
|
bl sub_80C57EC
|
|
_080C53F4:
|
|
bl sub_80C59D4
|
|
b _080C5458
|
|
_080C53FA:
|
|
bl sub_80C5884
|
|
bl sub_80C5B9C
|
|
bl sub_80C5B9C
|
|
bl sub_80C5C44
|
|
bl sub_80C57EC
|
|
b _080C5458
|
|
_080C5410:
|
|
bl sub_80C5A6C
|
|
b _080C5458
|
|
_080C5416:
|
|
bl sub_80C5884
|
|
b _080C5458
|
|
_080C541C:
|
|
bl sub_80C5B9C
|
|
b _080C5458
|
|
_080C5422:
|
|
bl sub_80C5C44
|
|
b _080C5458
|
|
_080C5428:
|
|
bl sub_80C55F4
|
|
movs r0, 0x3
|
|
bl sub_80C545C
|
|
b _080C5458
|
|
_080C5434:
|
|
bl sub_80C5884
|
|
bl sub_80C5B9C
|
|
bl sub_80C5C44
|
|
bl sub_80C57EC
|
|
bl sub_80C568C
|
|
bl sub_80C568C
|
|
movs r0, 0x2
|
|
bl sub_80C545C
|
|
movs r0, 0x4
|
|
bl sub_80C5514
|
|
_080C5458:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C52D0
|
|
|
|
thumb_func_start sub_80C545C
|
|
sub_80C545C: @ 80C545C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r2, 0
|
|
ldr r0, _080C54FC @ =gUnknown_3005338
|
|
mov r8, r0
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C54EE
|
|
ldr r1, _080C5500 @ =gUnknown_3005340
|
|
mov r12, r1
|
|
ldr r3, _080C5504 @ =gUnknown_300534C
|
|
mov r10, r3
|
|
ldr r0, _080C5508 @ =gUnknown_3005330
|
|
mov r9, r0
|
|
_080C5482:
|
|
ldr r1, _080C550C @ =gUnknown_3005344
|
|
ldrb r0, [r1]
|
|
adds r0, r2
|
|
mov r3, r10
|
|
ldrb r1, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r3, _080C5510 @ =gUnknown_3005334
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r3, r1, r0
|
|
movs r4, 0
|
|
adds r5, r2, 0x1
|
|
mov r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r4, r0
|
|
bcs _080C54E2
|
|
movs r6, 0x80
|
|
lsls r6, 8
|
|
_080C54AE:
|
|
ldrh r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C54D2
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
adds r0, r7
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x1F
|
|
bls _080C54C8
|
|
movs r2, 0x1F
|
|
_080C54C8:
|
|
lsls r0, r2, 10
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_080C54D2:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r3, 0x2
|
|
mov r1, r12
|
|
ldrb r1, [r1]
|
|
cmp r4, r1
|
|
bcc _080C54AE
|
|
_080C54E2:
|
|
lsls r0, r5, 24
|
|
lsrs r2, r0, 24
|
|
mov r3, r8
|
|
ldrb r3, [r3]
|
|
cmp r2, r3
|
|
bcc _080C5482
|
|
_080C54EE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C54FC: .4byte gUnknown_3005338
|
|
_080C5500: .4byte gUnknown_3005340
|
|
_080C5504: .4byte gUnknown_300534C
|
|
_080C5508: .4byte gUnknown_3005330
|
|
_080C550C: .4byte gUnknown_3005344
|
|
_080C5510: .4byte gUnknown_3005334
|
|
thumb_func_end sub_80C545C
|
|
|
|
thumb_func_start sub_80C5514
|
|
sub_80C5514: @ 80C5514
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r0, _080C55BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C55AC
|
|
ldr r1, _080C55C0 @ =gUnknown_3005340
|
|
mov r10, r1
|
|
_080C5532:
|
|
ldr r3, _080C55C4 @ =gUnknown_3005344
|
|
ldrb r0, [r3]
|
|
adds r0, r2
|
|
ldr r3, _080C55C8 @ =gUnknown_300534C
|
|
ldrb r1, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r3, _080C55CC @ =gUnknown_3005334
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r3, _080C55D0 @ =gUnknown_3005330
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r3, r1, r0
|
|
movs r5, 0
|
|
adds r7, r2, 0x1
|
|
mov r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C55A0
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
mov r9, r1
|
|
movs r0, 0x1F
|
|
mov r12, r0
|
|
mov r1, r8
|
|
subs r6, r0, r1
|
|
_080C5568:
|
|
ldrh r1, [r3]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5590
|
|
movs r4, 0x1F
|
|
mov r2, r12
|
|
ands r2, r1
|
|
cmp r2, r6
|
|
ble _080C5586
|
|
mov r1, r8
|
|
lsrs r0, r1, 1
|
|
subs r0, r4, r0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
_080C5586:
|
|
lsls r0, r2, 10
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
_080C5590:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r3, 0x2
|
|
mov r0, r10
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C5568
|
|
_080C55A0:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r1, _080C55BC @ =gUnknown_3005338
|
|
ldrb r1, [r1]
|
|
cmp r2, r1
|
|
bcc _080C5532
|
|
_080C55AC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C55BC: .4byte gUnknown_3005338
|
|
_080C55C0: .4byte gUnknown_3005340
|
|
_080C55C4: .4byte gUnknown_3005344
|
|
_080C55C8: .4byte gUnknown_300534C
|
|
_080C55CC: .4byte gUnknown_3005334
|
|
_080C55D0: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C5514
|
|
|
|
thumb_func_start sub_80C55D4
|
|
sub_80C55D4: @ 80C55D4
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r5, _080C55F0 @ =0x00000c7f
|
|
_080C55DA:
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
bl sub_80C5CF8
|
|
adds r4, 0x1
|
|
cmp r4, r5
|
|
bls _080C55DA
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C55F0: .4byte 0x00000c7f
|
|
thumb_func_end sub_80C55D4
|
|
|
|
thumb_func_start sub_80C55F4
|
|
sub_80C55F4: @ 80C55F4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5674 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5666
|
|
ldr r0, _080C5678 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C567C @ =gUnknown_3005340
|
|
_080C560C:
|
|
ldr r0, _080C5680 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5684 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5688 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C565A
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5638:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C564C
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C5ECC
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C564C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5638
|
|
_080C565A:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5674 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C560C
|
|
_080C5666:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5674: .4byte gUnknown_3005338
|
|
_080C5678: .4byte gUnknown_3005334
|
|
_080C567C: .4byte gUnknown_3005340
|
|
_080C5680: .4byte gUnknown_3005344
|
|
_080C5684: .4byte gUnknown_300534C
|
|
_080C5688: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C55F4
|
|
|
|
thumb_func_start sub_80C568C
|
|
sub_80C568C: @ 80C568C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r2, 0
|
|
ldr r0, _080C5730 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5722
|
|
ldr r0, _080C5734 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5738 @ =gUnknown_300534C
|
|
_080C56A4:
|
|
ldr r0, _080C573C @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r3]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5740 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
ldrb r0, [r3]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5744 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r7, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5716
|
|
ldr r6, _080C5738 @ =gUnknown_300534C
|
|
_080C56DA:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5700
|
|
ldrb r2, [r6]
|
|
lsls r2, 1
|
|
adds r2, r4, r2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C61BC
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r3, [sp, 0x4]
|
|
_080C5700:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5744 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C56DA
|
|
_080C5716:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5730 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C56A4
|
|
_080C5722:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5730: .4byte gUnknown_3005340
|
|
_080C5734: .4byte gUnknown_3005334
|
|
_080C5738: .4byte gUnknown_300534C
|
|
_080C573C: .4byte gUnknown_3005344
|
|
_080C5740: .4byte gUnknown_3005330
|
|
_080C5744: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C568C
|
|
|
|
thumb_func_start sub_80C5748
|
|
sub_80C5748: @ 80C5748
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r2, 0
|
|
ldr r0, _080C57D4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C57C4
|
|
ldr r0, _080C57D8 @ =gUnknown_3005334
|
|
mov r9, r0
|
|
ldr r3, _080C57DC @ =gUnknown_3005340
|
|
_080C5768:
|
|
ldr r0, _080C57E0 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C57E4 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C57E8 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C57B8
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5794:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C57AA
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
str r3, [sp]
|
|
bl sub_80C5F00
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C57AA:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5794
|
|
_080C57B8:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C57D4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5768
|
|
_080C57C4:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C57D4: .4byte gUnknown_3005338
|
|
_080C57D8: .4byte gUnknown_3005334
|
|
_080C57DC: .4byte gUnknown_3005340
|
|
_080C57E0: .4byte gUnknown_3005344
|
|
_080C57E4: .4byte gUnknown_300534C
|
|
_080C57E8: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C5748
|
|
|
|
thumb_func_start sub_80C57EC
|
|
sub_80C57EC: @ 80C57EC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C586C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C585E
|
|
ldr r0, _080C5870 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5874 @ =gUnknown_3005340
|
|
_080C5804:
|
|
ldr r0, _080C5878 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C587C @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5880 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C5852
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5830:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5844
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C600C
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C5844:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5830
|
|
_080C5852:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C586C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5804
|
|
_080C585E:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C586C: .4byte gUnknown_3005338
|
|
_080C5870: .4byte gUnknown_3005334
|
|
_080C5874: .4byte gUnknown_3005340
|
|
_080C5878: .4byte gUnknown_3005344
|
|
_080C587C: .4byte gUnknown_300534C
|
|
_080C5880: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C57EC
|
|
|
|
thumb_func_start sub_80C5884
|
|
sub_80C5884: @ 80C5884
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r7, 0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcs _080C5910
|
|
ldr r0, _080C59C0 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C589A:
|
|
ldr r0, _080C59C4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r7
|
|
ldr r0, _080C59C8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
ldr r0, _080C59CC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r5, r1, r0
|
|
adds r4, r5, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
movs r6, 0x1
|
|
adds r5, r4, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r7, 0x1
|
|
cmp r6, r0
|
|
bge _080C58FA
|
|
_080C58D2:
|
|
adds r4, r5, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
subs r1, r5, 0x2
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r5, r4, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
blt _080C58D2
|
|
_080C58FA:
|
|
subs r1, r5, 0x2
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
lsls r0, r7, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r7, r0
|
|
bcc _080C589A
|
|
_080C5910:
|
|
movs r6, 0
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcs _080C59B0
|
|
ldr r3, _080C59C0 @ =gUnknown_3005334
|
|
mov r9, r3
|
|
ldr r0, _080C59C8 @ =gUnknown_300534C
|
|
mov r8, r0
|
|
_080C5922:
|
|
ldr r0, _080C59C4 @ =gUnknown_3005344
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
adds r2, r0
|
|
ldr r0, _080C59CC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r6
|
|
lsls r0, 1
|
|
adds r5, r2, r0
|
|
lsls r1, 1
|
|
adds r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
movs r7, 0x1
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, 0x1
|
|
cmp r7, r0
|
|
bge _080C5994
|
|
ldr r4, _080C59C8 @ =gUnknown_300534C
|
|
_080C5962:
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
adds r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
ldrb r1, [r4]
|
|
lsls r1, 1
|
|
subs r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldrb r0, [r4]
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
ldr r0, _080C59BC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r7, r0
|
|
blt _080C5962
|
|
_080C5994:
|
|
mov r2, r8
|
|
ldrb r1, [r2]
|
|
lsls r1, 1
|
|
subs r1, r5, r1
|
|
adds r0, r5, 0
|
|
bl sub_80C603C
|
|
strh r0, [r5]
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080C59D0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _080C5922
|
|
_080C59B0:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C59BC: .4byte gUnknown_3005338
|
|
_080C59C0: .4byte gUnknown_3005334
|
|
_080C59C4: .4byte gUnknown_3005344
|
|
_080C59C8: .4byte gUnknown_300534C
|
|
_080C59CC: .4byte gUnknown_3005330
|
|
_080C59D0: .4byte gUnknown_3005340
|
|
thumb_func_end sub_80C5884
|
|
|
|
thumb_func_start sub_80C59D4
|
|
sub_80C59D4: @ 80C59D4
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5A54 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5A46
|
|
ldr r0, _080C5A58 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r3, _080C5A5C @ =gUnknown_3005340
|
|
_080C59EC:
|
|
ldr r0, _080C5A60 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5A64 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r4, r8
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
ldr r0, _080C5A68 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
adds r6, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcs _080C5A3A
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5A18:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5A2C
|
|
adds r0, r4, 0
|
|
str r3, [sp]
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
ldr r3, [sp]
|
|
_080C5A2C:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r5, r0
|
|
bcc _080C5A18
|
|
_080C5A3A:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5A54 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C59EC
|
|
_080C5A46:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5A54: .4byte gUnknown_3005338
|
|
_080C5A58: .4byte gUnknown_3005334
|
|
_080C5A5C: .4byte gUnknown_3005340
|
|
_080C5A60: .4byte gUnknown_3005344
|
|
_080C5A64: .4byte gUnknown_300534C
|
|
_080C5A68: .4byte gUnknown_3005330
|
|
thumb_func_end sub_80C59D4
|
|
|
|
thumb_func_start sub_80C5A6C
|
|
sub_80C5A6C: @ 80C5A6C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
ldr r0, _080C5B98 @ =gUnknown_3005334
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r5, r0, 0
|
|
_080C5A84:
|
|
movs r7, 0
|
|
_080C5A86:
|
|
ldrh r0, [r4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080C5A96
|
|
adds r0, r4, 0
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
_080C5A96:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r4, 0x2
|
|
cmp r7, 0x3F
|
|
bls _080C5A86
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3F
|
|
bls _080C5A84
|
|
movs r7, 0
|
|
ldr r1, _080C5B98 @ =gUnknown_3005334
|
|
mov r10, r1
|
|
mov r3, sp
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
mov r9, r2
|
|
_080C5ABA:
|
|
lsls r0, r7, 1
|
|
mov r2, r10
|
|
ldr r1, [r2]
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
strh r1, [r3]
|
|
mov r1, r9
|
|
strh r1, [r4]
|
|
movs r6, 0x1
|
|
adds r4, 0x80
|
|
adds r5, r0, 0
|
|
_080C5AD0:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080C5AF0
|
|
adds r2, r4, 0
|
|
adds r2, 0x80
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C62DC
|
|
strh r0, [r4]
|
|
ldr r3, [sp, 0x4]
|
|
strh r0, [r3]
|
|
_080C5AF0:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, 0x80
|
|
cmp r6, 0x3E
|
|
bls _080C5AD0
|
|
mov r0, r9
|
|
strh r0, [r4]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r4, r0, r5
|
|
ldrh r0, [r4]
|
|
strh r0, [r3]
|
|
mov r2, r9
|
|
strh r2, [r4]
|
|
movs r6, 0x1
|
|
adds r4, 0x80
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
mov r8, r0
|
|
_080C5B18:
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
adds r5, r4, 0
|
|
adds r5, 0x80
|
|
cmp r0, 0
|
|
bne _080C5B38
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
str r3, [sp, 0x4]
|
|
bl sub_80C62DC
|
|
strh r0, [r4]
|
|
ldr r3, [sp, 0x4]
|
|
strh r0, [r3]
|
|
_080C5B38:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, r5, 0
|
|
cmp r6, 0x3E
|
|
bls _080C5B18
|
|
mov r2, r9
|
|
strh r2, [r4]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
cmp r7, 0x3F
|
|
bls _080C5ABA
|
|
ldr r0, _080C5B98 @ =gUnknown_3005334
|
|
ldr r4, [r0]
|
|
movs r6, 0
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
mov r8, r0
|
|
_080C5B5E:
|
|
movs r7, 0
|
|
adds r5, r6, 0x1
|
|
_080C5B62:
|
|
ldrh r0, [r4]
|
|
mov r1, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5B74
|
|
adds r0, r4, 0
|
|
bl sub_80C606C
|
|
strh r0, [r4]
|
|
_080C5B74:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r4, 0x2
|
|
cmp r7, 0x3F
|
|
bls _080C5B62
|
|
lsls r0, r5, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0x3F
|
|
bls _080C5B5E
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5B98: .4byte gUnknown_3005334
|
|
thumb_func_end sub_80C5A6C
|
|
|
|
thumb_func_start sub_80C5B9C
|
|
sub_80C5B9C: @ 80C5B9C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C5C2C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5C1E
|
|
ldr r0, _080C5C30 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C5BB2:
|
|
ldr r0, _080C5C34 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C5C38 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C5C3C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
adds r4, 0x2
|
|
ldr r0, _080C5C40 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5C12
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r7, r0, 0
|
|
_080C5BEA:
|
|
ldrh r0, [r4]
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _080C5C00
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80C6098
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
_080C5C00:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C5C40 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C5BEA
|
|
_080C5C12:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5C2C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5BB2
|
|
_080C5C1E:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5C2C: .4byte gUnknown_3005338
|
|
_080C5C30: .4byte gUnknown_3005334
|
|
_080C5C34: .4byte gUnknown_3005344
|
|
_080C5C38: .4byte gUnknown_300534C
|
|
_080C5C3C: .4byte gUnknown_3005330
|
|
_080C5C40: .4byte gUnknown_3005340
|
|
thumb_func_end sub_80C5B9C
|
|
|
|
thumb_func_start sub_80C5C44
|
|
sub_80C5C44: @ 80C5C44
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
movs r2, 0
|
|
ldr r0, _080C5CE0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C5CD2
|
|
ldr r0, _080C5CE4 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
ldr r7, _080C5CE8 @ =gUnknown_300534C
|
|
_080C5C5C:
|
|
ldr r0, _080C5CEC @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r7]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C5CF0 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
adds r0, r2
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
ldrh r1, [r4]
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
movs r5, 0x1
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5CF4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
adds r6, r2, 0x1
|
|
cmp r5, r0
|
|
bge _080C5CC6
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C5C96:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080C5CB0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
str r2, [sp, 0x4]
|
|
bl sub_80C6098
|
|
strh r0, [r4]
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r2, [sp, 0x4]
|
|
_080C5CB0:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldrb r0, [r7]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
ldr r0, _080C5CF4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
blt _080C5C96
|
|
_080C5CC6:
|
|
lsls r0, r6, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C5CE0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C5C5C
|
|
_080C5CD2:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C5CE0: .4byte gUnknown_3005340
|
|
_080C5CE4: .4byte gUnknown_3005334
|
|
_080C5CE8: .4byte gUnknown_300534C
|
|
_080C5CEC: .4byte gUnknown_3005344
|
|
_080C5CF0: .4byte gUnknown_3005330
|
|
_080C5CF4: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C5C44
|
|
|
|
thumb_func_start sub_80C5CF8
|
|
sub_80C5CF8: @ 80C5CF8
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r2, sp
|
|
ldr r3, _080C5D64 @ =gUnknown_83F3024
|
|
lsls r1, r0, 1
|
|
add r1, r10
|
|
adds r0, r1, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r0, r3, 0x1
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r2, 0x1]
|
|
mov r5, sp
|
|
adds r0, r3, 0x2
|
|
adds r1, r0
|
|
ldrb r4, [r1]
|
|
lsls r2, r4, 24
|
|
lsrs r1, r2, 27
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
strh r1, [r5, 0x2]
|
|
lsrs r2, 25
|
|
mov r9, r2
|
|
movs r0, 0x3
|
|
ands r2, r0
|
|
mov r9, r2
|
|
movs r5, 0x1
|
|
ands r5, r4
|
|
movs r4, 0x1
|
|
mov r8, r4
|
|
cmp r8, r1
|
|
bcs _080C5DAA
|
|
mov r3, sp
|
|
_080C5D4A:
|
|
cmp r5, 0
|
|
bne _080C5D68
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
mov r4, sp
|
|
adds r1, r4, r2
|
|
ldrb r0, [r3]
|
|
mov r4, r8
|
|
subs r0, r4
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0x1]
|
|
add r0, r8
|
|
b _080C5D7A
|
|
.align 2, 0
|
|
_080C5D64: .4byte gUnknown_83F3024
|
|
_080C5D68:
|
|
mov r0, r8
|
|
lsls r2, r0, 2
|
|
mov r4, sp
|
|
adds r1, r4, r2
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r3, 0x1]
|
|
subs r0, 0x1
|
|
_080C5D7A:
|
|
strb r0, [r1, 0x1]
|
|
add r2, sp
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3F
|
|
bhi _080C5D8A
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0x3F
|
|
bls _080C5D92
|
|
_080C5D8A:
|
|
mov r0, r8
|
|
subs r0, 0x1
|
|
strh r0, [r3, 0x2]
|
|
b _080C5DAA
|
|
_080C5D92:
|
|
ldrh r0, [r3, 0x2]
|
|
mov r1, r8
|
|
subs r0, r1
|
|
strh r0, [r2, 0x2]
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldrh r0, [r3, 0x2]
|
|
cmp r8, r0
|
|
bcc _080C5D4A
|
|
_080C5DAA:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r8, r0
|
|
bcc _080C5DB8
|
|
b _080C5EBA
|
|
_080C5DB8:
|
|
movs r3, 0x1F
|
|
_080C5DBA:
|
|
ldr r1, _080C5E18 @ =gUnknown_3005334
|
|
mov r4, r8
|
|
lsls r0, r4, 2
|
|
mov r2, sp
|
|
adds r6, r2, r0
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 7
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r6]
|
|
lsls r0, 1
|
|
adds r2, r1, r0
|
|
ldrh r1, [r2]
|
|
movs r4, 0x80
|
|
lsls r4, 8
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C5EA6
|
|
movs r7, 0x1F
|
|
ands r7, r1
|
|
lsls r0, r1, 16
|
|
lsrs r5, r0, 21
|
|
ands r5, r3
|
|
lsrs r4, r0, 26
|
|
ands r4, r3
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
blt _080C5E9C
|
|
cmp r0, 0x1
|
|
ble _080C5E1C
|
|
cmp r0, 0x3
|
|
bgt _080C5E9C
|
|
ldrh r0, [r6, 0x2]
|
|
adds r1, r7, r0
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
adds r1, r5, r0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
adds r0, r4, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r7, 0x1F
|
|
bls _080C5E90
|
|
movs r7, 0x1F
|
|
b _080C5E90
|
|
.align 2, 0
|
|
_080C5E18: .4byte gUnknown_3005334
|
|
_080C5E1C:
|
|
mov r1, r10
|
|
lsls r0, r1, 1
|
|
add r0, r10
|
|
ldr r1, _080C5E50 @ =gUnknown_83F3024
|
|
adds r1, 0x2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsrs r0, 3
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
movs r1, 0x3
|
|
str r2, [sp, 0x18]
|
|
str r3, [sp, 0x1C]
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
cmp r0, 0x1
|
|
beq _080C5E6C
|
|
cmp r0, 0x1
|
|
bgt _080C5E54
|
|
cmp r0, 0
|
|
beq _080C5E5A
|
|
b _080C5E9C
|
|
.align 2, 0
|
|
_080C5E50: .4byte gUnknown_83F3024
|
|
_080C5E54:
|
|
cmp r0, 0x2
|
|
beq _080C5E7E
|
|
b _080C5E9C
|
|
_080C5E5A:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r7, r0
|
|
bcc _080C5E68
|
|
subs r0, r7, r0
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
b _080C5E9C
|
|
_080C5E68:
|
|
movs r7, 0
|
|
b _080C5E9C
|
|
_080C5E6C:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r5, r0
|
|
bcc _080C5E7A
|
|
subs r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
b _080C5E9C
|
|
_080C5E7A:
|
|
movs r5, 0
|
|
b _080C5E9C
|
|
_080C5E7E:
|
|
ldrh r0, [r6, 0x2]
|
|
cmp r4, r0
|
|
bcc _080C5E8C
|
|
subs r0, r4, r0
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
b _080C5E9C
|
|
_080C5E8C:
|
|
movs r4, 0
|
|
b _080C5E9C
|
|
_080C5E90:
|
|
cmp r5, 0x1F
|
|
bls _080C5E96
|
|
movs r5, 0x1F
|
|
_080C5E96:
|
|
cmp r4, 0x1F
|
|
bls _080C5E9C
|
|
movs r4, 0x1F
|
|
_080C5E9C:
|
|
lsls r0, r4, 10
|
|
lsls r1, r5, 5
|
|
orrs r0, r1
|
|
orrs r7, r0
|
|
strh r7, [r2]
|
|
_080C5EA6:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r8, r0
|
|
bcs _080C5EBA
|
|
b _080C5DBA
|
|
_080C5EBA:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C5CF8
|
|
|
|
thumb_func_start sub_80C5ECC
|
|
sub_80C5ECC: @ 80C5ECC
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsls r0, r1, 10
|
|
lsls r2, r1, 5
|
|
orrs r0, r2
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C5ECC
|
|
|
|
thumb_func_start sub_80C5F00
|
|
sub_80C5F00: @ 80C5F00
|
|
push {r4,lr}
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
ldrh r0, [r0]
|
|
movs r2, 0x1F
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r2
|
|
lsrs r0, 26
|
|
ands r0, r2
|
|
cmp r1, 0x10
|
|
bhi _080C5F30
|
|
cmp r3, 0x10
|
|
bhi _080C5F30
|
|
cmp r0, 0x10
|
|
bhi _080C5F30
|
|
adds r0, r4, 0
|
|
bl sub_80C5F3C
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080C5F32
|
|
_080C5F30:
|
|
ldr r0, _080C5F38 @ =0x00007fff
|
|
_080C5F32:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C5F38: .4byte 0x00007fff
|
|
thumb_func_end sub_80C5F00
|
|
|
|
thumb_func_start sub_80C5F3C
|
|
sub_80C5F3C: @ 80C5F3C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
movs r7, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __udivsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0x6
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bhi _080C5FF4
|
|
lsls r0, 2
|
|
ldr r1, _080C5F80 @ =_080C5F84
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C5F80: .4byte _080C5F84
|
|
.align 2, 0
|
|
_080C5F84:
|
|
.4byte _080C5F9C
|
|
.4byte _080C5FAC
|
|
.4byte _080C5FBC
|
|
.4byte _080C5FCA
|
|
.4byte _080C5FD8
|
|
.4byte _080C5FE6
|
|
_080C5F9C:
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
adds r7, r6, 0
|
|
movs r1, 0
|
|
mov r8, r1
|
|
b _080C5FF4
|
|
_080C5FAC:
|
|
movs r7, 0
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r6, r8
|
|
b _080C5FF4
|
|
_080C5FBC:
|
|
movs r0, 0x15
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r6, 0
|
|
mov r8, r7
|
|
b _080C5FF4
|
|
_080C5FCA:
|
|
movs r7, 0
|
|
movs r6, 0
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
b _080C5FF2
|
|
_080C5FD8:
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r6, 0
|
|
mov r8, r6
|
|
b _080C5FF4
|
|
_080C5FE6:
|
|
movs r7, 0
|
|
movs r0, 0x17
|
|
subs r0, r5
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r0, 0
|
|
_080C5FF2:
|
|
mov r8, r0
|
|
_080C5FF4:
|
|
lsls r0, r7, 10
|
|
lsls r1, r6, 5
|
|
orrs r0, r1
|
|
mov r1, r8
|
|
orrs r1, r0
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C5F3C
|
|
|
|
thumb_func_start sub_80C600C
|
|
sub_80C600C: @ 80C600C
|
|
push {lr}
|
|
ldrh r0, [r0]
|
|
movs r2, 0x1F
|
|
movs r1, 0x1F
|
|
ands r1, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r2
|
|
lsrs r0, 26
|
|
ands r0, r2
|
|
cmp r1, 0x10
|
|
bhi _080C6030
|
|
cmp r3, 0x10
|
|
bhi _080C6030
|
|
cmp r0, 0x10
|
|
bhi _080C6030
|
|
movs r0, 0
|
|
b _080C6032
|
|
_080C6030:
|
|
ldr r0, _080C6038 @ =0x00007fff
|
|
_080C6032:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080C6038: .4byte 0x00007fff
|
|
thumb_func_end sub_80C600C
|
|
|
|
thumb_func_start sub_80C603C
|
|
sub_80C603C: @ 80C603C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r3, [r4]
|
|
cmp r3, 0
|
|
beq _080C6064
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080C6056
|
|
adds r0, r2, 0
|
|
b _080C6066
|
|
_080C6056:
|
|
ldrh r1, [r1]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080C6064
|
|
ldrh r0, [r4]
|
|
b _080C6066
|
|
_080C6064:
|
|
movs r0, 0
|
|
_080C6066:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C603C
|
|
|
|
thumb_func_start sub_80C606C
|
|
sub_80C606C: @ 80C606C
|
|
push {r4,lr}
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1F
|
|
movs r3, 0x1F
|
|
ands r3, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
lsrs r1, 26
|
|
subs r3, r0, r3
|
|
adds r4, r0, 0
|
|
bics r4, r2
|
|
adds r2, r4, 0
|
|
bics r0, r1
|
|
lsls r0, 10
|
|
lsls r2, 5
|
|
orrs r0, r2
|
|
orrs r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C606C
|
|
|
|
thumb_func_start sub_80C6098
|
|
sub_80C6098: @ 80C6098
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
adds r7, r1, 0
|
|
ldrh r4, [r0]
|
|
ldrh r5, [r7]
|
|
lsls r6, r4, 16
|
|
lsls r0, r5, 16
|
|
mov r12, r0
|
|
cmp r4, r5
|
|
beq _080C610A
|
|
mov r2, sp
|
|
movs r3, 0x1F
|
|
movs r1, 0x1F
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
strh r0, [r2]
|
|
lsrs r0, r6, 21
|
|
ands r0, r3
|
|
strh r0, [r2, 0x2]
|
|
lsrs r0, r6, 26
|
|
ands r0, r3
|
|
strh r0, [r2, 0x4]
|
|
mov r0, sp
|
|
ands r1, r5
|
|
strh r1, [r0, 0x6]
|
|
mov r1, sp
|
|
mov r2, r12
|
|
lsrs r0, r2, 21
|
|
ands r0, r3
|
|
strh r0, [r1, 0x8]
|
|
lsrs r0, r2, 26
|
|
ands r0, r3
|
|
strh r0, [r1, 0xA]
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x19
|
|
bls _080C60F2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x2]
|
|
cmp r0, 0x19
|
|
bls _080C60F2
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, 0x19
|
|
bhi _080C610A
|
|
_080C60F2:
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x6]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x8]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0xA]
|
|
cmp r0, 0x19
|
|
bls _080C610E
|
|
_080C610A:
|
|
ldrh r0, [r7]
|
|
b _080C61B4
|
|
_080C610E:
|
|
movs r4, 0
|
|
add r6, sp, 0xC
|
|
mov r7, sp
|
|
adds r7, 0x6
|
|
adds r5, r6, 0
|
|
_080C6118:
|
|
lsls r2, r4, 1
|
|
mov r1, sp
|
|
adds r0, r1, r2
|
|
adds r1, r7, r2
|
|
ldrh r3, [r0]
|
|
ldrh r0, [r1]
|
|
cmp r3, r0
|
|
bls _080C612E
|
|
adds r1, r5, r2
|
|
subs r0, r3, r0
|
|
b _080C6132
|
|
_080C612E:
|
|
adds r1, r5, r2
|
|
subs r0, r3
|
|
_080C6132:
|
|
strh r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0x2
|
|
bls _080C6118
|
|
adds r1, r6, 0
|
|
ldrh r0, [r1, 0x2]
|
|
ldrh r3, [r1]
|
|
cmp r3, r0
|
|
bcc _080C6158
|
|
ldrh r2, [r1, 0x4]
|
|
cmp r3, r2
|
|
bcc _080C6152
|
|
adds r2, r3, 0
|
|
b _080C616C
|
|
_080C6152:
|
|
cmp r0, r2
|
|
bcs _080C615E
|
|
b _080C6166
|
|
_080C6158:
|
|
ldrh r2, [r1, 0x4]
|
|
cmp r0, r2
|
|
bcc _080C6162
|
|
_080C615E:
|
|
ldrh r2, [r1, 0x2]
|
|
b _080C616C
|
|
_080C6162:
|
|
cmp r2, r3
|
|
bcc _080C616A
|
|
_080C6166:
|
|
ldrh r2, [r1, 0x4]
|
|
b _080C616C
|
|
_080C616A:
|
|
ldrh r2, [r6]
|
|
_080C616C:
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0x6]
|
|
lsrs r0, r2, 1
|
|
movs r6, 0x1F
|
|
subs r6, r0
|
|
adds r0, r1, 0
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
adds r5, r0, 0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x8]
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0xA]
|
|
muls r0, r6
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
lsls r4, 5
|
|
orrs r0, r4
|
|
orrs r5, r0
|
|
lsls r5, 16
|
|
lsrs r5, 16
|
|
adds r0, r5, 0
|
|
_080C61B4:
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6098
|
|
|
|
thumb_func_start sub_80C61BC
|
|
sub_80C61BC: @ 80C61BC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
mov r10, r1
|
|
str r2, [sp]
|
|
ldrh r1, [r3]
|
|
mov r0, r10
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080C61E4
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bne _080C61E4
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
b _080C62CC
|
|
_080C61E4:
|
|
mov r2, r10
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1F
|
|
mov r9, r1
|
|
movs r4, 0x1F
|
|
adds r5, r4, 0
|
|
ands r5, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r8, r1
|
|
lsrs r0, 26
|
|
mov r2, r9
|
|
ands r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrh r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsls r2, 16
|
|
lsrs r1, r2, 21
|
|
mov r3, r9
|
|
ands r1, r3
|
|
adds r0, r1
|
|
lsrs r2, 26
|
|
ands r2, r3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldr r2, [sp, 0x4]
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, [sp]
|
|
ldrh r1, [r3]
|
|
ands r4, r1
|
|
lsls r1, 16
|
|
lsrs r0, r1, 21
|
|
mov r2, r9
|
|
ands r0, r2
|
|
adds r4, r0
|
|
lsrs r1, 26
|
|
ands r1, r2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r7, r6
|
|
bne _080C6266
|
|
cmp r1, r6
|
|
bne _080C6266
|
|
mov r3, r10
|
|
ldrh r0, [r3]
|
|
b _080C62CC
|
|
_080C6266:
|
|
cmp r7, r6
|
|
bls _080C626E
|
|
subs r0, r7, r6
|
|
b _080C6270
|
|
_080C626E:
|
|
subs r0, r6, r7
|
|
_080C6270:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r1, r6
|
|
bls _080C627C
|
|
subs r0, r1, r6
|
|
b _080C627E
|
|
_080C627C:
|
|
subs r0, r6, r1
|
|
_080C627E:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r2, r0
|
|
bcc _080C6288
|
|
adds r0, r2, 0
|
|
_080C6288:
|
|
lsrs r0, 1
|
|
movs r4, 0x1F
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r0, r8
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
mov r2, r8
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r5, r0
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
_080C62CC:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C61BC
|
|
|
|
thumb_func_start sub_80C62DC
|
|
sub_80C62DC: @ 80C62DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
mov r10, r1
|
|
str r2, [sp]
|
|
ldrh r1, [r3]
|
|
mov r0, r10
|
|
ldrh r0, [r0]
|
|
cmp r1, r0
|
|
bne _080C6304
|
|
ldrh r0, [r2]
|
|
cmp r0, r1
|
|
bne _080C6304
|
|
mov r1, r10
|
|
ldrh r0, [r1]
|
|
b _080C63EA
|
|
_080C6304:
|
|
mov r2, r10
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1F
|
|
mov r9, r1
|
|
movs r4, 0x1F
|
|
adds r5, r4, 0
|
|
ands r5, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r8, r1
|
|
lsrs r0, 26
|
|
mov r2, r9
|
|
ands r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldrh r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsls r2, 16
|
|
lsrs r1, r2, 21
|
|
mov r3, r9
|
|
ands r1, r3
|
|
adds r0, r1
|
|
lsrs r2, 26
|
|
ands r2, r3
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
ldr r2, [sp, 0x4]
|
|
adds r0, r2
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r3, [sp]
|
|
ldrh r1, [r3]
|
|
ands r4, r1
|
|
lsls r1, 16
|
|
lsrs r0, r1, 21
|
|
mov r2, r9
|
|
ands r0, r2
|
|
adds r4, r0
|
|
lsrs r1, 26
|
|
ands r1, r2
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r7, r6
|
|
bne _080C6386
|
|
cmp r1, r6
|
|
bne _080C6386
|
|
mov r3, r10
|
|
ldrh r0, [r3]
|
|
b _080C63EA
|
|
_080C6386:
|
|
cmp r7, r6
|
|
bls _080C638E
|
|
subs r0, r7, r6
|
|
b _080C6390
|
|
_080C638E:
|
|
subs r0, r6, r7
|
|
_080C6390:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r1, r6
|
|
bls _080C639C
|
|
subs r0, r1, r6
|
|
b _080C639E
|
|
_080C639C:
|
|
subs r0, r6, r1
|
|
_080C639E:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r2, r0
|
|
bcc _080C63A8
|
|
adds r0, r2, 0
|
|
_080C63A8:
|
|
movs r4, 0x1F
|
|
subs r4, r0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r5, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r0, r8
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
movs r1, 0x1F
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 6
|
|
mov r2, r8
|
|
lsls r1, r2, 5
|
|
orrs r0, r1
|
|
orrs r5, r0
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
_080C63EA:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C62DC
|
|
|
|
thumb_func_start sub_80C63FC
|
|
sub_80C63FC: @ 80C63FC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
ldrb r1, [r0, 0x1D]
|
|
lsrs r5, r1, 3
|
|
ldrb r1, [r0, 0x1E]
|
|
lsrs r1, 3
|
|
str r1, [sp, 0x8]
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [sp]
|
|
ldr r2, [r0, 0x10]
|
|
str r2, [sp, 0x4]
|
|
ldrh r0, [r0, 0x16]
|
|
cmp r0, 0x2
|
|
bne _080C64AC
|
|
movs r1, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r1, r0
|
|
bcc _080C642A
|
|
b _080C6538
|
|
_080C642A:
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
mov r10, r2
|
|
cmp r0, r5
|
|
bcs _080C649E
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
mov r9, r2
|
|
lsls r1, 3
|
|
mov r8, r1
|
|
_080C643E:
|
|
movs r4, 0
|
|
lsls r6, r0, 4
|
|
adds r7, r0, 0x1
|
|
add r0, r9
|
|
lsls r0, 6
|
|
ldr r1, [sp, 0x4]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
_080C644E:
|
|
lsls r0, r4, 3
|
|
mov r2, r12
|
|
adds r3, r2, r0
|
|
mov r1, r8
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
muls r0, r5
|
|
lsls r0, 1
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
adds r2, r0, r6
|
|
ldrh r0, [r2, 0x2]
|
|
lsls r0, 8
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
ldrh r0, [r2, 0x6]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0x4]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x2]
|
|
ldrh r0, [r2, 0xA]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0x8]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldrh r0, [r2, 0xE]
|
|
lsls r0, 8
|
|
ldrh r1, [r2, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x6]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x7
|
|
bls _080C644E
|
|
lsls r0, r7, 16
|
|
lsrs r0, 16
|
|
cmp r0, r5
|
|
bcc _080C643E
|
|
_080C649E:
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r1, r2
|
|
bcc _080C642A
|
|
b _080C6538
|
|
_080C64AC:
|
|
movs r1, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r1, r0
|
|
bcs _080C6538
|
|
_080C64B4:
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
mov r10, r2
|
|
cmp r0, r5
|
|
bcs _080C652C
|
|
adds r2, r1, 0
|
|
muls r2, r5
|
|
mov r9, r2
|
|
lsls r1, 3
|
|
mov r8, r1
|
|
_080C64C8:
|
|
movs r4, 0
|
|
lsls r6, r0, 4
|
|
adds r7, r0, 0x1
|
|
add r0, r9
|
|
lsls r0, 5
|
|
ldr r1, [sp, 0x4]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
_080C64D8:
|
|
lsls r0, r4, 2
|
|
mov r2, r12
|
|
adds r3, r2, r0
|
|
mov r1, r8
|
|
adds r0, r1, r4
|
|
lsls r0, 3
|
|
muls r0, r5
|
|
lsls r0, 1
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
adds r2, r0, r6
|
|
ldrh r1, [r2, 0x2]
|
|
lsls r1, 4
|
|
ldrh r0, [r2]
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0x6]
|
|
lsls r0, 12
|
|
orrs r1, r0
|
|
strh r1, [r3]
|
|
ldrh r1, [r2, 0xA]
|
|
lsls r1, 4
|
|
ldrh r0, [r2, 0x8]
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0xC]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrh r0, [r2, 0xE]
|
|
lsls r0, 12
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x2]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x7
|
|
bls _080C64D8
|
|
lsls r0, r7, 16
|
|
lsrs r0, 16
|
|
cmp r0, r5
|
|
bcc _080C64C8
|
|
_080C652C:
|
|
mov r1, r10
|
|
lsls r0, r1, 16
|
|
lsrs r1, r0, 16
|
|
ldr r2, [sp, 0x8]
|
|
cmp r1, r2
|
|
bcc _080C64B4
|
|
_080C6538:
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C63FC
|
|
|
|
thumb_func_start sub_80C6548
|
|
sub_80C6548: @ 80C6548
|
|
push {lr}
|
|
ldr r2, _080C6598 @ =gUnknown_3005354
|
|
ldrb r1, [r0, 0x18]
|
|
lsls r1, 4
|
|
strh r1, [r2]
|
|
ldr r3, _080C659C @ =gUnknown_3005350
|
|
ldrh r2, [r2]
|
|
lsls r2, 1
|
|
ldr r1, [r0, 0x8]
|
|
adds r1, r2
|
|
str r1, [r3]
|
|
ldr r2, _080C65A0 @ =gUnknown_3005334
|
|
ldr r1, [r0, 0x4]
|
|
str r1, [r2]
|
|
ldr r2, _080C65A4 @ =gUnknown_3005330
|
|
ldrb r1, [r0, 0x19]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65A8 @ =gUnknown_3005344
|
|
ldrb r1, [r0, 0x1A]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65AC @ =gUnknown_3005340
|
|
ldrb r1, [r0, 0x1B]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B0 @ =gUnknown_3005338
|
|
ldrb r1, [r0, 0x1C]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B4 @ =gUnknown_300534C
|
|
ldrb r1, [r0, 0x1D]
|
|
strb r1, [r2]
|
|
ldr r2, _080C65B8 @ =gUnknown_300533C
|
|
ldrb r1, [r0, 0x1E]
|
|
strb r1, [r2]
|
|
ldrh r0, [r0, 0x14]
|
|
cmp r0, 0x5
|
|
bhi _080C660E
|
|
lsls r0, 2
|
|
ldr r1, _080C65BC @ =_080C65C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080C6598: .4byte gUnknown_3005354
|
|
_080C659C: .4byte gUnknown_3005350
|
|
_080C65A0: .4byte gUnknown_3005334
|
|
_080C65A4: .4byte gUnknown_3005330
|
|
_080C65A8: .4byte gUnknown_3005344
|
|
_080C65AC: .4byte gUnknown_3005340
|
|
_080C65B0: .4byte gUnknown_3005338
|
|
_080C65B4: .4byte gUnknown_300534C
|
|
_080C65B8: .4byte gUnknown_300533C
|
|
_080C65BC: .4byte _080C65C0
|
|
.align 2, 0
|
|
_080C65C0:
|
|
.4byte _080C65D8
|
|
.4byte _080C65E0
|
|
.4byte _080C65E8
|
|
.4byte _080C65F2
|
|
.4byte _080C65FC
|
|
.4byte _080C6606
|
|
_080C65D8:
|
|
movs r0, 0
|
|
bl sub_80C6748
|
|
b _080C660E
|
|
_080C65E0:
|
|
movs r0, 0x1
|
|
bl sub_80C6748
|
|
b _080C660E
|
|
_080C65E8:
|
|
bl sub_80C6614
|
|
bl sub_80C6AB8
|
|
b _080C660E
|
|
_080C65F2:
|
|
bl sub_80C6714
|
|
bl sub_80C6A08
|
|
b _080C660E
|
|
_080C65FC:
|
|
bl sub_80C66D8
|
|
bl sub_80C6958
|
|
b _080C660E
|
|
_080C6606:
|
|
bl sub_80C66BC
|
|
bl sub_80C68A0
|
|
_080C660E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80C6548
|
|
|
|
thumb_func_start sub_80C6614
|
|
sub_80C6614: @ 80C6614
|
|
ldr r2, _080C667C @ =gUnknown_3005350
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r0, [r2]
|
|
ldr r2, _080C6680 @ =0x000018c6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x2]
|
|
ldr r2, _080C6684 @ =0x000077bd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x4]
|
|
ldr r2, _080C6688 @ =0x00002d6b
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x6]
|
|
ldr r2, _080C668C @ =0x000018dd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x8]
|
|
ldr r2, _080C6690 @ =0x00001ba6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xA]
|
|
ldr r2, _080C6694 @ =0x000074c6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xC]
|
|
ldr r2, _080C6698 @ =0x00001bbd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0xE]
|
|
ldr r2, _080C669C @ =0x000074dd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x10]
|
|
ldr r2, _080C66A0 @ =0x000077a6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x12]
|
|
ldr r2, _080C66A4 @ =0x0000197d
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x14]
|
|
ldr r2, _080C66A8 @ =0x00001bab
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x16]
|
|
ldr r2, _080C66AC @ =0x00007566
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x18]
|
|
ldr r2, _080C66B0 @ =0x00002cdd
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1A]
|
|
ldr r2, _080C66B4 @ =0x00002fa6
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1C]
|
|
ldr r2, _080C66B8 @ =0x000074cb
|
|
adds r1, r2, 0
|
|
strh r1, [r0, 0x1E]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C667C: .4byte gUnknown_3005350
|
|
_080C6680: .4byte 0x000018c6
|
|
_080C6684: .4byte 0x000077bd
|
|
_080C6688: .4byte 0x00002d6b
|
|
_080C668C: .4byte 0x000018dd
|
|
_080C6690: .4byte 0x00001ba6
|
|
_080C6694: .4byte 0x000074c6
|
|
_080C6698: .4byte 0x00001bbd
|
|
_080C669C: .4byte 0x000074dd
|
|
_080C66A0: .4byte 0x000077a6
|
|
_080C66A4: .4byte 0x0000197d
|
|
_080C66A8: .4byte 0x00001bab
|
|
_080C66AC: .4byte 0x00007566
|
|
_080C66B0: .4byte 0x00002cdd
|
|
_080C66B4: .4byte 0x00002fa6
|
|
_080C66B8: .4byte 0x000074cb
|
|
thumb_func_end sub_80C6614
|
|
|
|
thumb_func_start sub_80C66BC
|
|
sub_80C66BC: @ 80C66BC
|
|
ldr r2, _080C66D0 @ =gUnknown_3005350
|
|
ldr r0, [r2]
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r2, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r1, _080C66D4 @ =0x00007fff
|
|
adds r0, r1, 0
|
|
strh r0, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080C66D0: .4byte gUnknown_3005350
|
|
_080C66D4: .4byte 0x00007fff
|
|
thumb_func_end sub_80C66BC
|
|
|
|
thumb_func_start sub_80C66D8
|
|
sub_80C66D8: @ 80C66D8
|
|
push {r4,r5,lr}
|
|
ldr r1, _080C6710 @ =gUnknown_3005350
|
|
ldr r0, [r1]
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
ldr r0, [r1]
|
|
strh r2, [r0, 0x2]
|
|
movs r4, 0
|
|
adds r5, r1, 0
|
|
_080C66EA:
|
|
ldr r0, [r5]
|
|
lsls r2, r4, 1
|
|
adds r2, r0
|
|
adds r0, r4, 0x2
|
|
lsls r3, r0, 1
|
|
lsls r1, r0, 11
|
|
lsls r0, 6
|
|
orrs r1, r0
|
|
orrs r1, r3
|
|
strh r1, [r2, 0x4]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xD
|
|
bls _080C66EA
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6710: .4byte gUnknown_3005350
|
|
thumb_func_end sub_80C66D8
|
|
|
|
thumb_func_start sub_80C6714
|
|
sub_80C6714: @ 80C6714
|
|
push {r4,lr}
|
|
ldr r2, _080C6744 @ =gUnknown_3005350
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r3, 0
|
|
adds r4, r2, 0
|
|
_080C6722:
|
|
ldr r0, [r4]
|
|
lsls r2, r3, 1
|
|
adds r2, r0
|
|
lsls r0, r3, 10
|
|
lsls r1, r3, 5
|
|
orrs r0, r1
|
|
orrs r0, r3
|
|
strh r0, [r2, 0x2]
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x1F
|
|
bls _080C6722
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6744: .4byte gUnknown_3005350
|
|
thumb_func_end sub_80C6714
|
|
|
|
thumb_func_start sub_80C6748
|
|
sub_80C6748: @ 80C6748
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
movs r1, 0xDF
|
|
mov r9, r1
|
|
cmp r0, 0
|
|
bne _080C6760
|
|
movs r2, 0xFF
|
|
mov r9, r2
|
|
_080C6760:
|
|
movs r6, 0
|
|
ldr r3, _080C67E4 @ =gUnknown_3005350
|
|
mov r12, r3
|
|
mov r0, r9
|
|
lsls r4, r0, 1
|
|
ldr r5, _080C67E8 @ =gUnknown_3005338
|
|
cmp r6, r9
|
|
bcs _080C6784
|
|
movs r2, 0
|
|
_080C6772:
|
|
ldr r0, [r3]
|
|
lsls r1, r6, 1
|
|
adds r1, r0
|
|
strh r2, [r1]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, r9
|
|
bcc _080C6772
|
|
_080C6784:
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r4, r0
|
|
ldr r2, _080C67EC @ =0x00003def
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
movs r3, 0
|
|
ldrb r5, [r5]
|
|
cmp r3, r5
|
|
bcs _080C6888
|
|
_080C6798:
|
|
ldr r2, _080C67F0 @ =gUnknown_3005334
|
|
ldr r0, _080C67F4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r3
|
|
ldr r0, _080C67F8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
ldr r0, _080C67FC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r6, 0
|
|
ldr r0, _080C6800 @ =gUnknown_3005340
|
|
adds r2, r0, 0
|
|
adds r3, 0x1
|
|
mov r10, r3
|
|
ldrb r3, [r2]
|
|
cmp r6, r3
|
|
bcs _080C687A
|
|
ldr r0, _080C6804 @ =gUnknown_3005354
|
|
mov r8, r0
|
|
_080C67C8:
|
|
ldrh r0, [r4]
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
adds r1, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6808
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
strh r0, [r4]
|
|
adds r6, 0x1
|
|
adds r7, r4, 0x2
|
|
b _080C686E
|
|
.align 2, 0
|
|
_080C67E4: .4byte gUnknown_3005350
|
|
_080C67E8: .4byte gUnknown_3005338
|
|
_080C67EC: .4byte 0x00003def
|
|
_080C67F0: .4byte gUnknown_3005334
|
|
_080C67F4: .4byte gUnknown_3005344
|
|
_080C67F8: .4byte gUnknown_300534C
|
|
_080C67FC: .4byte gUnknown_3005330
|
|
_080C6800: .4byte gUnknown_3005340
|
|
_080C6804: .4byte gUnknown_3005354
|
|
_080C6808:
|
|
adds r0, r4, 0
|
|
bl sub_80C6B68
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
movs r3, 0x1
|
|
adds r6, 0x1
|
|
adds r7, r4, 0x2
|
|
cmp r3, r9
|
|
bcs _080C6864
|
|
ldr r0, _080C6834 @ =gUnknown_3005350
|
|
ldr r2, [r0]
|
|
ldrh r1, [r2, 0x2]
|
|
mov r12, r0
|
|
cmp r1, 0
|
|
bne _080C6838
|
|
strh r5, [r2, 0x2]
|
|
mov r2, r8
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
b _080C6862
|
|
.align 2, 0
|
|
_080C6834: .4byte gUnknown_3005350
|
|
_080C6838:
|
|
mov r2, r12
|
|
ldr r1, [r2]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, r5
|
|
beq _080C685C
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, r9
|
|
bcs _080C6864
|
|
lsls r0, r3, 1
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, 0
|
|
bne _080C6838
|
|
strh r5, [r1]
|
|
_080C685C:
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
adds r0, r3
|
|
_080C6862:
|
|
strh r0, [r4]
|
|
_080C6864:
|
|
ldr r2, _080C6898 @ =gUnknown_3005340
|
|
cmp r3, r9
|
|
bne _080C686E
|
|
mov r3, r9
|
|
strh r3, [r4]
|
|
_080C686E:
|
|
lsls r0, r6, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, r7, 0
|
|
ldrb r0, [r2]
|
|
cmp r6, r0
|
|
bcc _080C67C8
|
|
_080C687A:
|
|
mov r1, r10
|
|
lsls r0, r1, 24
|
|
lsrs r3, r0, 24
|
|
ldr r0, _080C689C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r3, r0
|
|
bcc _080C6798
|
|
_080C6888:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6898: .4byte gUnknown_3005340
|
|
_080C689C: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6748
|
|
|
|
thumb_func_start sub_80C68A0
|
|
sub_80C68A0: @ 80C68A0
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r2, 0
|
|
ldr r0, _080C68F4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6944
|
|
ldr r0, _080C68F8 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C68B4:
|
|
ldr r0, _080C68FC @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6900 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6904 @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r6, 0
|
|
ldr r0, _080C6908 @ =gUnknown_3005340
|
|
adds r3, r0, 0
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r6, r0
|
|
bcs _080C6938
|
|
ldr r5, _080C690C @ =gUnknown_3005354
|
|
_080C68E0:
|
|
ldrh r0, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 8
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6910
|
|
ldrh r0, [r5]
|
|
strh r0, [r4]
|
|
b _080C692A
|
|
.align 2, 0
|
|
_080C68F4: .4byte gUnknown_3005338
|
|
_080C68F8: .4byte gUnknown_3005334
|
|
_080C68FC: .4byte gUnknown_3005344
|
|
_080C6900: .4byte gUnknown_300534C
|
|
_080C6904: .4byte gUnknown_3005330
|
|
_080C6908: .4byte gUnknown_3005340
|
|
_080C690C: .4byte gUnknown_3005354
|
|
_080C6910:
|
|
adds r0, r4, 0
|
|
bl sub_80C600C
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080C6922
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
b _080C6926
|
|
_080C6922:
|
|
ldrh r0, [r5]
|
|
adds r0, 0x2
|
|
_080C6926:
|
|
strh r0, [r4]
|
|
ldr r3, _080C6950 @ =gUnknown_3005340
|
|
_080C692A:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r4, 0x2
|
|
ldrb r0, [r3]
|
|
cmp r6, r0
|
|
bcc _080C68E0
|
|
_080C6938:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6954 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C68B4
|
|
_080C6944:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6950: .4byte gUnknown_3005340
|
|
_080C6954: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C68A0
|
|
|
|
thumb_func_start sub_80C6958
|
|
sub_80C6958: @ 80C6958
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C69AC @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C69F4
|
|
ldr r0, _080C69B0 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C696E:
|
|
ldr r0, _080C69B4 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C69B8 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C69BC @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C69C0 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C69E8
|
|
ldr r6, _080C69C4 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C699E:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C69C8
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C69D8
|
|
.align 2, 0
|
|
_080C69AC: .4byte gUnknown_3005338
|
|
_080C69B0: .4byte gUnknown_3005334
|
|
_080C69B4: .4byte gUnknown_3005344
|
|
_080C69B8: .4byte gUnknown_300534C
|
|
_080C69BC: .4byte gUnknown_3005330
|
|
_080C69C0: .4byte gUnknown_3005340
|
|
_080C69C4: .4byte gUnknown_3005354
|
|
_080C69C8:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6CAC
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C69D8:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6A00 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C699E
|
|
_080C69E8:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6A04 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C696E
|
|
_080C69F4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6A00: .4byte gUnknown_3005340
|
|
_080C6A04: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6958
|
|
|
|
thumb_func_start sub_80C6A08
|
|
sub_80C6A08: @ 80C6A08
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C6A5C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6AA4
|
|
ldr r0, _080C6A60 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C6A1E:
|
|
ldr r0, _080C6A64 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6A68 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6A6C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C6A70 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C6A98
|
|
ldr r6, _080C6A74 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C6A4E:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C6A78
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C6A88
|
|
.align 2, 0
|
|
_080C6A5C: .4byte gUnknown_3005338
|
|
_080C6A60: .4byte gUnknown_3005334
|
|
_080C6A64: .4byte gUnknown_3005344
|
|
_080C6A68: .4byte gUnknown_300534C
|
|
_080C6A6C: .4byte gUnknown_3005330
|
|
_080C6A70: .4byte gUnknown_3005340
|
|
_080C6A74: .4byte gUnknown_3005354
|
|
_080C6A78:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6CE0
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C6A88:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6AB0 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C6A4E
|
|
_080C6A98:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6AB4 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C6A1E
|
|
_080C6AA4:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6AB0: .4byte gUnknown_3005340
|
|
_080C6AB4: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6A08
|
|
|
|
thumb_func_start sub_80C6AB8
|
|
sub_80C6AB8: @ 80C6AB8
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
movs r2, 0
|
|
ldr r0, _080C6B0C @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcs _080C6B54
|
|
ldr r0, _080C6B10 @ =gUnknown_3005334
|
|
mov r8, r0
|
|
_080C6ACE:
|
|
ldr r0, _080C6B14 @ =gUnknown_3005344
|
|
ldrb r1, [r0]
|
|
adds r1, r2
|
|
ldr r0, _080C6B18 @ =gUnknown_300534C
|
|
ldrb r0, [r0]
|
|
muls r0, r1
|
|
lsls r0, 1
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
ldr r0, _080C6B1C @ =gUnknown_3005330
|
|
ldrb r0, [r0]
|
|
lsls r0, 1
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
ldr r0, _080C6B20 @ =gUnknown_3005340
|
|
adds r7, r2, 0x1
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcs _080C6B48
|
|
ldr r6, _080C6B24 @ =gUnknown_3005354
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
adds r2, r0, 0
|
|
_080C6AFE:
|
|
ldrh r0, [r4]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080C6B28
|
|
ldrh r0, [r6]
|
|
strh r0, [r4]
|
|
b _080C6B38
|
|
.align 2, 0
|
|
_080C6B0C: .4byte gUnknown_3005338
|
|
_080C6B10: .4byte gUnknown_3005334
|
|
_080C6B14: .4byte gUnknown_3005344
|
|
_080C6B18: .4byte gUnknown_300534C
|
|
_080C6B1C: .4byte gUnknown_3005330
|
|
_080C6B20: .4byte gUnknown_3005340
|
|
_080C6B24: .4byte gUnknown_3005354
|
|
_080C6B28:
|
|
adds r0, r4, 0
|
|
str r2, [sp]
|
|
bl sub_80C6BDC
|
|
ldrh r1, [r6]
|
|
adds r0, r1
|
|
strh r0, [r4]
|
|
ldr r2, [sp]
|
|
_080C6B38:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r4, 0x2
|
|
ldr r0, _080C6B60 @ =gUnknown_3005340
|
|
ldrb r0, [r0]
|
|
cmp r5, r0
|
|
bcc _080C6AFE
|
|
_080C6B48:
|
|
lsls r0, r7, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080C6B64 @ =gUnknown_3005338
|
|
ldrb r0, [r0]
|
|
cmp r2, r0
|
|
bcc _080C6ACE
|
|
_080C6B54:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080C6B60: .4byte gUnknown_3005340
|
|
_080C6B64: .4byte gUnknown_3005338
|
|
thumb_func_end sub_80C6AB8
|
|
|
|
thumb_func_start sub_80C6B68
|
|
sub_80C6B68: @ 80C6B68
|
|
push {r4,lr}
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1F
|
|
movs r4, 0x1F
|
|
ands r4, r0
|
|
lsls r0, 16
|
|
lsrs r3, r0, 21
|
|
ands r3, r1
|
|
lsrs r2, r0, 26
|
|
ands r2, r1
|
|
movs r1, 0x3
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6B8C
|
|
movs r0, 0x1C
|
|
ands r0, r4
|
|
adds r4, r0, 0x4
|
|
_080C6B8C:
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6B9A
|
|
movs r0, 0x1C
|
|
ands r0, r3
|
|
adds r3, r0, 0x4
|
|
_080C6B9A:
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080C6BA8
|
|
movs r0, 0x1C
|
|
ands r0, r2
|
|
adds r2, r0, 0x4
|
|
_080C6BA8:
|
|
cmp r4, 0x5
|
|
bhi _080C6BAE
|
|
movs r4, 0x6
|
|
_080C6BAE:
|
|
cmp r4, 0x1E
|
|
bls _080C6BB4
|
|
movs r4, 0x1E
|
|
_080C6BB4:
|
|
cmp r3, 0x5
|
|
bhi _080C6BBA
|
|
movs r3, 0x6
|
|
_080C6BBA:
|
|
cmp r3, 0x1E
|
|
bls _080C6BC0
|
|
movs r3, 0x1E
|
|
_080C6BC0:
|
|
cmp r2, 0x5
|
|
bhi _080C6BC6
|
|
movs r2, 0x6
|
|
_080C6BC6:
|
|
cmp r2, 0x1E
|
|
bls _080C6BCC
|
|
movs r2, 0x1E
|
|
_080C6BCC:
|
|
lsls r0, r2, 10
|
|
lsls r1, r3, 5
|
|
orrs r0, r1
|
|
orrs r4, r0
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6B68
|
|
|
|
thumb_func_start sub_80C6BDC
|
|
sub_80C6BDC: @ 80C6BDC
|
|
push {lr}
|
|
ldrh r0, [r0]
|
|
movs r1, 0x1F
|
|
movs r3, 0x1F
|
|
ands r3, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 21
|
|
ands r2, r1
|
|
lsrs r0, 26
|
|
ands r0, r1
|
|
cmp r3, 0xB
|
|
bhi _080C6C00
|
|
cmp r2, 0xA
|
|
bhi _080C6C00
|
|
cmp r0, 0xA
|
|
bhi _080C6C00
|
|
movs r0, 0x1
|
|
b _080C6CA6
|
|
_080C6C00:
|
|
cmp r3, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0x13
|
|
bls _080C6C0C
|
|
cmp r0, 0x13
|
|
bhi _080C6C30
|
|
_080C6C0C:
|
|
cmp r3, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0x13
|
|
bls _080C6C1A
|
|
cmp r0, 0xE
|
|
bhi _080C6C30
|
|
b _080C6C68
|
|
_080C6C1A:
|
|
cmp r0, 0x13
|
|
bls _080C6C24
|
|
cmp r2, 0xE
|
|
bhi _080C6C30
|
|
b _080C6C44
|
|
_080C6C24:
|
|
cmp r2, 0x13
|
|
bls _080C6C34
|
|
cmp r0, 0x13
|
|
bls _080C6C34
|
|
cmp r3, 0xE
|
|
bls _080C6C8C
|
|
_080C6C30:
|
|
movs r0, 0x2
|
|
b _080C6CA6
|
|
_080C6C34:
|
|
cmp r3, 0x13
|
|
bls _080C6C58
|
|
cmp r2, 0xB
|
|
bls _080C6C4C
|
|
cmp r0, 0xB
|
|
bls _080C6C48
|
|
cmp r2, r0
|
|
bcs _080C6C68
|
|
_080C6C44:
|
|
movs r0, 0x8
|
|
b _080C6CA6
|
|
_080C6C48:
|
|
movs r0, 0xA
|
|
b _080C6CA6
|
|
_080C6C4C:
|
|
cmp r0, 0xB
|
|
bls _080C6C54
|
|
movs r0, 0xD
|
|
b _080C6CA6
|
|
_080C6C54:
|
|
movs r0, 0x4
|
|
b _080C6CA6
|
|
_080C6C58:
|
|
cmp r2, 0x13
|
|
bls _080C6C7C
|
|
cmp r3, 0xB
|
|
bls _080C6C70
|
|
cmp r0, 0xB
|
|
bls _080C6C6C
|
|
cmp r3, r0
|
|
bcc _080C6C8C
|
|
_080C6C68:
|
|
movs r0, 0x7
|
|
b _080C6CA6
|
|
_080C6C6C:
|
|
movs r0, 0xB
|
|
b _080C6CA6
|
|
_080C6C70:
|
|
cmp r0, 0xB
|
|
bls _080C6C78
|
|
movs r0, 0xE
|
|
b _080C6CA6
|
|
_080C6C78:
|
|
movs r0, 0x5
|
|
b _080C6CA6
|
|
_080C6C7C:
|
|
cmp r0, 0x13
|
|
bls _080C6CA4
|
|
cmp r3, 0xB
|
|
bls _080C6C90
|
|
cmp r2, 0xB
|
|
bls _080C6C98
|
|
cmp r3, r2
|
|
bcs _080C6C44
|
|
_080C6C8C:
|
|
movs r0, 0x9
|
|
b _080C6CA6
|
|
_080C6C90:
|
|
cmp r2, 0xB
|
|
bls _080C6C98
|
|
movs r0, 0xC
|
|
b _080C6CA6
|
|
_080C6C98:
|
|
cmp r0, 0xB
|
|
bls _080C6CA0
|
|
movs r0, 0xF
|
|
b _080C6CA6
|
|
_080C6CA0:
|
|
movs r0, 0x6
|
|
b _080C6CA6
|
|
_080C6CA4:
|
|
movs r0, 0x3
|
|
_080C6CA6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6BDC
|
|
|
|
thumb_func_start sub_80C6CAC
|
|
sub_80C6CAC: @ 80C6CAC
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
movs r1, 0x1E
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080C6CD8
|
|
lsrs r0, 17
|
|
b _080C6CDA
|
|
_080C6CD8:
|
|
movs r0, 0x1
|
|
_080C6CDA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6CAC
|
|
|
|
thumb_func_start sub_80C6CE0
|
|
sub_80C6CE0: @ 80C6CE0
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
movs r3, 0x1F
|
|
movs r0, 0x1F
|
|
ands r0, r1
|
|
lsls r1, 16
|
|
lsrs r2, r1, 21
|
|
ands r2, r3
|
|
lsrs r1, 26
|
|
ands r1, r3
|
|
adds r0, r2
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80C6CE0
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|