summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 04:04:42 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 04:04:42 -0800
commitb0ef8f839bebb39c1806352cc8f87274927063b6 (patch)
tree173d2f08deb90d2846e2c93bd3c91c3856147332
parent9ad5d4888f98d78a09f67db795e5560c0d6b516d (diff)
split files
-rw-r--r--asm/bg_palette_buffer.s263
-rw-r--r--asm/code_80035F0.s3975
-rw-r--r--asm/code_80047E8.s3540
-rw-r--r--asm/other_random.s48
-rw-r--r--asm/util.s156
-rw-r--r--ld_script.txt4
6 files changed, 4011 insertions, 3975 deletions
diff --git a/asm/bg_palette_buffer.s b/asm/bg_palette_buffer.s
new file mode 100644
index 0000000..9b42ee5
--- /dev/null
+++ b/asm/bg_palette_buffer.s
@@ -0,0 +1,263 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start InitBGPaletteBuffer
+InitBGPaletteBuffer:
+ push {lr}
+ movs r2, 0
+ ldr r1, _0800465C
+ movs r0, 0x80
+ lsls r0, 2
+_0800463E:
+ strh r2, [r1]
+ adds r1, 0x2
+ subs r0, 0x1
+ cmp r0, 0
+ bne _0800463E
+ ldr r1, _08004660
+ movs r2, 0x1
+ adds r0, r1, 0
+ adds r0, 0x1F
+_08004650:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08004650
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800465C: .4byte gUnknown_20251F0
+_08004660: .4byte gUnknown_20251D0
+ thumb_func_end InitBGPaletteBuffer
+
+ thumb_func_start SetBGPaletteBufferColorRGB
+SetBGPaletteBufferColorRGB:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ cmp r2, 0
+ bge _08004670
+ movs r2, 0
+_08004670:
+ cmp r2, 0x1F
+ ble _08004676
+ movs r2, 0x1F
+_08004676:
+ ldr r1, _080046CC
+ adds r0, r4, 0
+ cmp r4, 0
+ bge _08004680
+ adds r0, 0xF
+_08004680:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ cmp r3, 0
+ bne _080046D4
+ ldr r0, _080046D0
+ lsls r1, r4, 1
+ adds r6, r1, r0
+ ldrb r0, [r5, 0x2]
+ muls r0, r2
+ cmp r0, 0
+ bge _0800469C
+ adds r0, 0xFF
+_0800469C:
+ asrs r0, 8
+ movs r3, 0x1F
+ ands r0, r3
+ lsls r4, r0, 10
+ ldrb r0, [r5, 0x1]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046AE
+ adds r0, 0xFF
+_080046AE:
+ asrs r0, 8
+ ands r0, r3
+ lsls r1, r0, 5
+ orrs r1, r4
+ ldrb r0, [r5]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046C0
+ adds r0, 0xFF
+_080046C0:
+ asrs r0, 8
+ ands r0, r3
+ orrs r1, r0
+ strh r1, [r6]
+ b _08004722
+ .align 2, 0
+_080046CC: .4byte gUnknown_20251D0
+_080046D0: .4byte gUnknown_20251F0
+_080046D4:
+ ldr r1, _08004728
+ lsls r0, r4, 1
+ adds r7, r0, r1
+ ldrb r0, [r5, 0x2]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ muls r0, r2
+ cmp r0, 0
+ bge _080046EA
+ adds r0, 0xFF
+_080046EA:
+ asrs r0, 8
+ movs r4, 0x1F
+ ands r0, r4
+ lsls r6, r0, 10
+ ldrb r0, [r5, 0x1]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ muls r0, r2
+ cmp r0, 0
+ bge _08004702
+ adds r0, 0xFF
+_08004702:
+ asrs r0, 8
+ ands r0, r4
+ lsls r1, r0, 5
+ orrs r1, r6
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0]
+ muls r0, r2
+ cmp r0, 0
+ bge _0800471A
+ adds r0, 0xFF
+_0800471A:
+ asrs r0, 8
+ ands r0, r4
+ orrs r1, r0
+ strh r1, [r7]
+_08004722:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004728: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColorRGB
+
+ thumb_func_start SetBGPaletteBufferColorArray
+SetBGPaletteBufferColorArray:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, _08004764
+ cmp r2, 0
+ bge _0800473A
+ adds r0, 0xF
+_0800473A:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08004768
+ lsls r2, 1
+ adds r2, r0
+ ldrb r1, [r3, 0x2]
+ lsrs r1, 3
+ lsls r1, 10
+ ldrb r0, [r3, 0x1]
+ lsrs r0, 3
+ lsls r0, 5
+ orrs r1, r0
+ ldrb r0, [r3]
+ lsrs r0, 3
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004764: .4byte gUnknown_20251D0
+_08004768: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColorArray
+
+ thumb_func_start SetBGPaletteBufferColor
+SetBGPaletteBufferColor:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldr r1, _08004790
+ cmp r2, 0
+ bge _0800477A
+ adds r0, 0xF
+_0800477A:
+ asrs r0, 4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, _08004794
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r3]
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004790: .4byte gUnknown_20251D0
+_08004794: .4byte gUnknown_20251F0
+ thumb_func_end SetBGPaletteBufferColor
+
+ thumb_func_start nullsub_4
+nullsub_4:
+ bx lr
+ thumb_func_end nullsub_4
+
+ thumb_func_start nullsub_5
+nullsub_5:
+ bx lr
+ thumb_func_end nullsub_5
+
+ thumb_func_start nullsub_143
+nullsub_143:
+ bx lr
+ thumb_func_end nullsub_143
+
+ thumb_func_start TransferBGPaletteBuffer
+TransferBGPaletteBuffer:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r4, 0
+ movs r5, 0xA0
+ lsls r5, 19
+_080047AE:
+ ldr r0, _080047DC
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080047CA
+ movs r0, 0
+ strb r0, [r1]
+ lsls r1, r4, 1
+ ldr r0, _080047E0
+ adds r1, r0
+ adds r0, r5, 0
+ movs r2, 0x20
+ bl CpuCopy
+_080047CA:
+ adds r6, 0x1
+ adds r5, 0x20
+ adds r4, 0x10
+ ldr r0, _080047E4
+ cmp r4, r0
+ ble _080047AE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080047DC: .4byte gUnknown_20251D0
+_080047E0: .4byte gUnknown_20251F0
+_080047E4: .4byte 0x000001ff
+ thumb_func_end TransferBGPaletteBuffer
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_80035F0.s b/asm/code_80035F0.s
index 390c54d..93d3646 100644
--- a/asm/code_80035F0.s
+++ b/asm/code_80035F0.s
@@ -2026,3979 +2026,4 @@ _080044F8: .4byte gUnknown_3000C00
_080044FC: .4byte gUnknown_3000400
thumb_func_end sub_8004434
- thumb_func_start OtherRandom
-OtherRandom:
- ldr r1, _08004514
- ldrh r2, [r1]
- movs r0, 0x6D
- muls r0, r2
- ldr r2, _08004518
- adds r0, r2
- strh r0, [r1]
- ldrh r0, [r1]
- bx lr
- .align 2, 0
-_08004514: .4byte gUnknown_203B070
-_08004518: .4byte 0x000003fd
- thumb_func_end OtherRandom
-
- thumb_func_start OtherRandomCapped
-OtherRandomCapped:
- push {r4,lr}
- adds r4, r0, 0
- bl OtherRandom
- muls r0, r4
- asrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end OtherRandomCapped
-
- thumb_func_start OtherRandomRange
-OtherRandomRange:
- push {r4,lr}
- adds r4, r0, 0
- subs r0, r1, r4
- bl OtherRandomCapped
- adds r0, r4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end OtherRandomRange
-
- thumb_func_start ReverseString
-ReverseString:
- push {r4,r5,lr}
- adds r3, r0, 0
- subs r4, r1, 0x1
- adds r2, r3, r4
- movs r5, 0
- cmp r5, r4
- bge _08004566
-_08004552:
- ldrb r1, [r3]
- ldrb r0, [r2]
- strb r0, [r3]
- adds r3, 0x1
- strb r1, [r2]
- subs r2, 0x1
- adds r5, 0x1
- subs r4, 0x1
- cmp r5, r4
- blt _08004552
-_08004566:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ReverseString
-
- thumb_func_start ConvertToDecimal
-ConvertToDecimal:
- push {r4-r7,lr}
- adds r4, r1, 0
- cmp r4, 0
- ble _08004578
- movs r7, 0x1
- b _0800457E
-_08004578:
- negs r4, r4
- movs r7, 0x1
- negs r7, r7
-_0800457E:
- cmp r2, 0
- ble _080045A0
- adds r6, r0, 0
- adds r5, r2, 0
-_08004586:
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- stm r6!, {r0}
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- adds r4, r0, 0
- subs r5, 0x1
- cmp r5, 0
- bne _08004586
-_080045A0:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ConvertToDecimal
-
- thumb_func_start ConvertFromDecimal
-ConvertFromDecimal:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldm r4!, {r1}
- movs r3, 0xA
- cmp r2, 0x1
- ble _080045CA
- subs r2, 0x1
-_080045B8:
- ldm r4!, {r0}
- muls r0, r3
- adds r1, r0
- subs r2, 0x1
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- cmp r2, 0
- bne _080045B8
-_080045CA:
- adds r0, r1, 0
- cmp r5, 0
- bge _080045D2
- negs r0, r0
-_080045D2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ConvertFromDecimal
-
- thumb_func_start ConvertFromBCD
-ConvertFromBCD:
- push {r4,lr}
- adds r1, r0, 0
- movs r2, 0x1
- movs r3, 0
- cmp r1, 0
- ble _080045FA
- movs r4, 0xF
-_080045E6:
- adds r0, r1, 0
- ands r0, r4
- muls r0, r2
- adds r3, r0
- lsls r0, r2, 2
- adds r0, r2
- lsls r2, r0, 1
- asrs r1, 4
- cmp r1, 0
- bgt _080045E6
-_080045FA:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ConvertFromBCD
-
- thumb_func_start ConvertToBCD
-ConvertToBCD:
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- movs r6, 0
- cmp r4, 0
- ble _0800462C
-_08004610:
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, r5
- adds r6, r0
- adds r5, 0x4
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0
- bgt _08004610
-_0800462C:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ConvertToBCD
-
- thumb_func_start InitBGPaletteBuffer
-InitBGPaletteBuffer:
- push {lr}
- movs r2, 0
- ldr r1, _0800465C
- movs r0, 0x80
- lsls r0, 2
-_0800463E:
- strh r2, [r1]
- adds r1, 0x2
- subs r0, 0x1
- cmp r0, 0
- bne _0800463E
- ldr r1, _08004660
- movs r2, 0x1
- adds r0, r1, 0
- adds r0, 0x1F
-_08004650:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08004650
- pop {r0}
- bx r0
- .align 2, 0
-_0800465C: .4byte gUnknown_20251F0
-_08004660: .4byte gUnknown_20251D0
- thumb_func_end InitBGPaletteBuffer
-
- thumb_func_start SetBGPaletteBufferColorRGB
-SetBGPaletteBufferColorRGB:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- cmp r2, 0
- bge _08004670
- movs r2, 0
-_08004670:
- cmp r2, 0x1F
- ble _08004676
- movs r2, 0x1F
-_08004676:
- ldr r1, _080046CC
- adds r0, r4, 0
- cmp r4, 0
- bge _08004680
- adds r0, 0xF
-_08004680:
- asrs r0, 4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- cmp r3, 0
- bne _080046D4
- ldr r0, _080046D0
- lsls r1, r4, 1
- adds r6, r1, r0
- ldrb r0, [r5, 0x2]
- muls r0, r2
- cmp r0, 0
- bge _0800469C
- adds r0, 0xFF
-_0800469C:
- asrs r0, 8
- movs r3, 0x1F
- ands r0, r3
- lsls r4, r0, 10
- ldrb r0, [r5, 0x1]
- muls r0, r2
- cmp r0, 0
- bge _080046AE
- adds r0, 0xFF
-_080046AE:
- asrs r0, 8
- ands r0, r3
- lsls r1, r0, 5
- orrs r1, r4
- ldrb r0, [r5]
- muls r0, r2
- cmp r0, 0
- bge _080046C0
- adds r0, 0xFF
-_080046C0:
- asrs r0, 8
- ands r0, r3
- orrs r1, r0
- strh r1, [r6]
- b _08004722
- .align 2, 0
-_080046CC: .4byte gUnknown_20251D0
-_080046D0: .4byte gUnknown_20251F0
-_080046D4:
- ldr r1, _08004728
- lsls r0, r4, 1
- adds r7, r0, r1
- ldrb r0, [r5, 0x2]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- muls r0, r2
- cmp r0, 0
- bge _080046EA
- adds r0, 0xFF
-_080046EA:
- asrs r0, 8
- movs r4, 0x1F
- ands r0, r4
- lsls r6, r0, 10
- ldrb r0, [r5, 0x1]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- muls r0, r2
- cmp r0, 0
- bge _08004702
- adds r0, 0xFF
-_08004702:
- asrs r0, 8
- ands r0, r4
- lsls r1, r0, 5
- orrs r1, r6
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- muls r0, r2
- cmp r0, 0
- bge _0800471A
- adds r0, 0xFF
-_0800471A:
- asrs r0, 8
- ands r0, r4
- orrs r1, r0
- strh r1, [r7]
-_08004722:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08004728: .4byte gUnknown_20251F0
- thumb_func_end SetBGPaletteBufferColorRGB
-
- thumb_func_start SetBGPaletteBufferColorArray
-SetBGPaletteBufferColorArray:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, _08004764
- cmp r2, 0
- bge _0800473A
- adds r0, 0xF
-_0800473A:
- asrs r0, 4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08004768
- lsls r2, 1
- adds r2, r0
- ldrb r1, [r3, 0x2]
- lsrs r1, 3
- lsls r1, 10
- ldrb r0, [r3, 0x1]
- lsrs r0, 3
- lsls r0, 5
- orrs r1, r0
- ldrb r0, [r3]
- lsrs r0, 3
- orrs r0, r1
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_08004764: .4byte gUnknown_20251D0
-_08004768: .4byte gUnknown_20251F0
- thumb_func_end SetBGPaletteBufferColorArray
-
- thumb_func_start SetBGPaletteBufferColor
-SetBGPaletteBufferColor:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldr r1, _08004790
- cmp r2, 0
- bge _0800477A
- adds r0, 0xF
-_0800477A:
- asrs r0, 4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _08004794
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r3]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08004790: .4byte gUnknown_20251D0
-_08004794: .4byte gUnknown_20251F0
- thumb_func_end SetBGPaletteBufferColor
-
- thumb_func_start nullsub_4
-nullsub_4:
- bx lr
- thumb_func_end nullsub_4
-
- thumb_func_start nullsub_5
-nullsub_5:
- bx lr
- thumb_func_end nullsub_5
-
- thumb_func_start nullsub_143
-nullsub_143:
- bx lr
- thumb_func_end nullsub_143
-
- thumb_func_start TransferBGPaletteBuffer
-TransferBGPaletteBuffer:
- push {r4-r6,lr}
- movs r6, 0
- movs r4, 0
- movs r5, 0xA0
- lsls r5, 19
-_080047AE:
- ldr r0, _080047DC
- adds r1, r6, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _080047CA
- movs r0, 0
- strb r0, [r1]
- lsls r1, r4, 1
- ldr r0, _080047E0
- adds r1, r0
- adds r0, r5, 0
- movs r2, 0x20
- bl CpuCopy
-_080047CA:
- adds r6, 0x1
- adds r5, 0x20
- adds r4, 0x10
- ldr r0, _080047E4
- cmp r4, r0
- ble _080047AE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080047DC: .4byte gUnknown_20251D0
-_080047E0: .4byte gUnknown_20251F0
-_080047E4: .4byte 0x000001ff
- thumb_func_end TransferBGPaletteBuffer
-
- thumb_func_start sub_80047E8
-sub_80047E8:
- ldr r0, _08004840
- movs r3, 0
- movs r2, 0
- strh r2, [r0]
- strh r2, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r2, [r0, 0x6]
- ldr r0, _08004844
- strh r2, [r0]
- strh r2, [r0, 0x2]
- strh r2, [r0, 0x4]
- strh r2, [r0, 0x6]
- ldr r1, _08004848
- ldr r0, _0800484C
- str r0, [r1]
- ldr r0, _08004850
- str r2, [r0, 0x20]
- ldr r1, _08004854
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x1C]
- strh r1, [r0, 0x1E]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- strh r1, [r0, 0x14]
- strh r1, [r0, 0x16]
- adds r1, r0, 0
- adds r1, 0x28
- strb r3, [r1]
- adds r0, 0x29
- strb r3, [r0]
- ldr r0, _08004858
- strh r2, [r0]
- strh r2, [r0, 0x2]
- bx lr
- .align 2, 0
-_08004840: .4byte gUnknown_20255F0
-_08004844: .4byte gUnknown_2025638
-_08004848: .4byte gUnknown_202562C
-_0800484C: .4byte 0x004a14c1
-_08004850: .4byte gUnknown_2025600
-_08004854: .4byte 0x0000ffff
-_08004858: .4byte gUnknown_2025668
- thumb_func_end sub_80047E8
-
- thumb_func_start sub_800485C
-sub_800485C:
- push {r4,r5,lr}
- ldr r2, _080048A8
- ldr r1, _080048AC
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r3, 0
- movs r0, 0
- strh r0, [r2]
- strh r0, [r2, 0x2]
- strh r0, [r2, 0x4]
- strh r0, [r2, 0x6]
- ldr r0, _080048B0
- ldr r1, _080048B4
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- strh r1, [r0, 0x14]
- strh r1, [r0, 0x16]
- adds r1, r0, 0
- adds r1, 0x28
- strb r3, [r1]
- adds r0, 0x29
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080048A8: .4byte gUnknown_2025638
-_080048AC: .4byte gUnknown_20255F0
-_080048B0: .4byte gUnknown_2025600
-_080048B4: .4byte 0x0000ffff
- thumb_func_end sub_800485C
-
- thumb_func_start sub_80048B8
-sub_80048B8:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048B8
-
- thumb_func_start sub_80048BC
-sub_80048BC:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048BC
-
- thumb_func_start sub_80048C0
-sub_80048C0:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048C0
-
- thumb_func_start sub_80048C4
-sub_80048C4:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048C4
-
- thumb_func_start sub_80048C8
-sub_80048C8:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048C8
-
- thumb_func_start sub_80048CC
-sub_80048CC:
- movs r0, 0
- bx lr
- thumb_func_end sub_80048CC
-
- thumb_func_start sub_80048D0
-sub_80048D0:
- ldr r1, _080048E8
- movs r0, 0
- strh r0, [r1, 0x4]
- ldr r1, _080048EC
- str r0, [r1, 0xC]
- strh r0, [r1, 0x8]
- ldr r1, _080048F0
- ldr r0, _080048F4
- strh r0, [r1]
- strh r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_080048E8: .4byte gUnknown_20255F0
-_080048EC: .4byte gUnknown_2025648
-_080048F0: .4byte gUnknown_2025668
-_080048F4: .4byte 0x000003e7
- thumb_func_end sub_80048D0
-
- thumb_func_start sub_80048F8
-sub_80048F8:
- ldr r0, _08004908
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _0800490C
- strh r1, [r0, 0x2]
- ldr r0, _08004910
- strh r1, [r0, 0x2]
- bx lr
- .align 2, 0
-_08004908: .4byte gUnknown_20255F0
-_0800490C: .4byte gUnknown_2025638
-_08004910: .4byte gUnknown_2025648
- thumb_func_end sub_80048F8
-
- thumb_func_start sub_8004914
-sub_8004914:
- ldr r0, _0800494C
- movs r1, 0x5
- str r1, [r0, 0x20]
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x24]
- ldr r1, _08004950
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- strh r1, [r0, 0x14]
- strh r1, [r0, 0x16]
- adds r1, r0, 0
- adds r1, 0x28
- strb r2, [r1]
- adds r0, 0x29
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0800494C: .4byte gUnknown_2025600
-_08004950: .4byte 0x0000ffff
- thumb_func_end sub_8004914
-
- thumb_func_start UpdateInput
-UpdateInput:
- push {r4-r6,lr}
- ldr r4, _08004998
- ldr r5, _0800499C
- adds r1, r4, 0
- adds r0, r5, 0
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r5, 0
- bl ReadKeyInput
- ldrh r0, [r4]
- ldrh r3, [r5]
- eors r0, r3
- ands r0, r3
- strh r0, [r5, 0x2]
- lsls r0, r3, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080049A8
- ldrh r1, [r5, 0x8]
- movs r0, 0xF0
- adds r2, r0, 0
- ands r2, r3
- ands r0, r1
- cmp r0, r2
- bne _080049A0
- ldr r0, [r5, 0xC]
- cmp r0, 0x31
- bgt _080049AC
- adds r0, 0x1
- str r0, [r5, 0xC]
- b _080049AC
- .align 2, 0
-_08004998: .4byte gUnknown_2025658
-_0800499C: .4byte gUnknown_2025648
-_080049A0:
- strh r2, [r5, 0x8]
- movs r0, 0x1
- str r0, [r5, 0xC]
- b _080049AC
-_080049A8:
- str r0, [r5, 0xC]
- strh r0, [r5, 0x8]
-_080049AC:
- ldr r0, _080049C4
- ldr r2, [r0, 0xC]
- adds r3, r0, 0
- cmp r2, 0x1
- bne _080049C8
- ldrh r0, [r3, 0x8]
- movs r1, 0xF0
- ands r1, r0
- ldrh r0, [r3, 0x2]
- orrs r1, r0
- strh r1, [r3, 0x4]
- b _080049E0
- .align 2, 0
-_080049C4: .4byte gUnknown_2025648
-_080049C8:
- cmp r2, 0x30
- bne _080049DC
- movs r0, 0x2B
- str r0, [r3, 0xC]
- ldrh r1, [r3, 0x8]
- movs r0, 0xF0
- ands r0, r1
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- b _080049DE
-_080049DC:
- movs r0, 0
-_080049DE:
- strh r0, [r3, 0x4]
-_080049E0:
- movs r0, 0
- strh r0, [r3, 0x6]
- ldrh r1, [r3]
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08004A0C
- ldr r0, _08004A08
- ldrh r2, [r0]
- movs r4, 0
- ldrsh r1, [r0, r4]
- adds r4, r0, 0
- cmp r1, 0x63
- bgt _08004A20
- adds r0, r2, 0x1
- strh r0, [r4]
- b _08004A20
- .align 2, 0
-_08004A08: .4byte gUnknown_2025668
-_08004A0C:
- ldr r1, _08004A44
- ldrh r0, [r1]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1, 0
- cmp r0, 0x9
- bhi _08004A1E
- strh r5, [r3, 0x6]
-_08004A1E:
- strh r2, [r4]
-_08004A20:
- ldrh r1, [r3]
- movs r5, 0x80
- lsls r5, 1
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08004A48
- ldrh r1, [r4, 0x2]
- movs r6, 0x2
- ldrsh r0, [r4, r6]
- cmp r0, 0x63
- bgt _08004A5E
- adds r0, r1, 0x1
- strh r0, [r4, 0x2]
- b _08004A5E
- .align 2, 0
-_08004A44: .4byte gUnknown_2025668
-_08004A48:
- ldrh r0, [r4, 0x2]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x9
- bhi _08004A5C
- ldrh r1, [r3, 0x6]
- adds r0, r5, 0
- orrs r0, r1
- strh r0, [r3, 0x6]
-_08004A5C:
- strh r2, [r4, 0x2]
-_08004A5E:
- ldr r2, _08004A94
- ldrh r0, [r2]
- ldrh r1, [r3]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- strh r0, [r2, 0x2]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r3, 0x4]
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r2, 0x6]
- ldrh r1, [r3, 0x6]
- orrs r0, r1
- strh r0, [r2, 0x6]
- ldr r2, _08004A98
- ldrh r0, [r3]
- ldr r1, _08004A9C
- orrs r0, r1
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08004A94: .4byte gUnknown_2025638
-_08004A98: .4byte gUnknown_202562C
-_08004A9C: .4byte 0x054a1c41
- thumb_func_end UpdateInput
-
- thumb_func_start nullsub_6
-nullsub_6:
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start sub_8004AA4
-sub_8004AA4:
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r4, [r1, 0x4]
- cmp r2, 0
- ble _08004AE8
-_08004AAE:
- ldm r4!, {r1}
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _08004ADE
- movs r0, 0x80
- lsls r0, 24
- str r0, [r3]
- ldrh r0, [r1, 0x2]
- strh r0, [r3, 0x6]
- ldrh r0, [r1, 0x2]
- strh r0, [r3, 0x4]
- adds r0, r1, 0x4
- str r0, [r3, 0x8]
- str r0, [r3, 0xC]
- movs r5, 0
- ldrsh r0, [r1, r5]
- lsls r0, 2
- adds r0, 0x4
- adds r0, r1, r0
- str r0, [r3, 0x10]
- ldr r0, [r1, 0x4]
- str r0, [r3, 0x14]
- b _08004AE0
-_08004ADE:
- str r0, [r3]
-_08004AE0:
- adds r3, 0x18
- subs r2, 0x1
- cmp r2, 0
- bne _08004AAE
-_08004AE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8004AA4
-
- thumb_func_start sub_8004AF0
-sub_8004AF0:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- cmp r7, r3
- bge _08004B6A
- adds r5, r3, 0
-_08004B08:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D14
- lsls r0, 24
- cmp r0, 0
- beq _08004B60
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D40
- lsls r0, 24
- cmp r0, 0
- bne _08004B60
- mov r1, r8
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _08004B4E
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bcc _08004B42
- ldr r0, [r4, 0x8]
- str r0, [r4, 0xC]
-_08004B42:
- ldr r1, [r4, 0xC]
- ldm r1!, {r0}
- str r0, [r4, 0x14]
- str r1, [r4, 0xC]
- movs r1, 0x1
- movs r7, 0x1
-_08004B4E:
- cmp r1, 0
- beq _08004B60
- adds r1, r4, 0
- adds r1, 0x14
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl SetBGPaletteBufferColorRGB
-_08004B60:
- subs r5, 0x1
- adds r4, 0x18
- adds r6, 0x1
- cmp r5, 0
- bne _08004B08
-_08004B6A:
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8004AF0
-
- thumb_func_start sub_8004B78
-sub_8004B78:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- cmp r7, r3
- bge _08004BF2
- adds r5, r3, 0
-_08004B90:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D14
- lsls r0, 24
- cmp r0, 0
- beq _08004BE8
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D40
- lsls r0, 24
- cmp r0, 0
- bne _08004BE8
- mov r1, r8
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _08004BD6
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bcc _08004BCA
- ldr r0, [r4, 0x8]
- str r0, [r4, 0xC]
-_08004BCA:
- ldr r1, [r4, 0xC]
- ldm r1!, {r0}
- str r0, [r4, 0x14]
- str r1, [r4, 0xC]
- movs r1, 0x1
- movs r7, 0x1
-_08004BD6:
- cmp r1, 0
- beq _08004BE8
- adds r1, r4, 0
- adds r1, 0x14
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- ldr r3, [sp, 0x1C]
- bl nullsub_4
-_08004BE8:
- subs r5, 0x1
- adds r4, 0x18
- adds r6, 0x1
- cmp r5, 0
- bne _08004B90
-_08004BF2:
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8004B78
-
- thumb_func_start sub_8004C00
-sub_8004C00:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r10, r3
- ldr r0, [sp, 0x28]
- mov r8, r0
- movs r1, 0
- mov r9, r1
- cmp r9, r2
- bge _08004CDC
- adds r6, r2, 0
-_08004C20:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D14
- lsls r0, 24
- cmp r0, 0
- beq _08004CD2
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8004D40
- lsls r0, 24
- cmp r0, 0
- bne _08004CD2
- ldrh r0, [r4, 0x6]
- subs r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _08004C64
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x10]
- cmp r1, r0
- bcc _08004C58
- ldr r0, [r4, 0x8]
- str r0, [r4, 0xC]
-_08004C58:
- ldr r1, [r4, 0xC]
- ldm r1!, {r0}
- str r0, [r4, 0x14]
- str r1, [r4, 0xC]
- movs r2, 0x1
- mov r9, r2
-_08004C64:
- mov r3, r8
- movs r5, 0
- ldrsh r0, [r3, r5]
- ldrb r2, [r4, 0x14]
- adds r1, r0, r2
- movs r5, 0x2
- ldrsh r0, [r3, r5]
- ldrb r2, [r4, 0x15]
- adds r3, r0, r2
- mov r5, r8
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- ldrb r2, [r4, 0x16]
- adds r5, r0, r2
- cmp r1, 0xFF
- ble _08004C86
- movs r1, 0xFF
-_08004C86:
- cmp r3, 0xFF
- ble _08004C8C
- movs r3, 0xFF
-_08004C8C:
- cmp r5, 0xFF
- ble _08004C92
- movs r5, 0xFF
-_08004C92:
- cmp r1, 0
- bge _08004C98
- movs r1, 0
-_08004C98:
- cmp r3, 0
- bge _08004C9E
- movs r3, 0
-_08004C9E:
- cmp r5, 0
- bge _08004CA4
- movs r5, 0
-_08004CA4:
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08004CF0
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- lsls r2, r3, 24
- lsrs r2, 16
- ldr r1, _08004CF4
- ands r0, r1
- orrs r0, r2
- lsls r2, r5, 24
- lsrs r2, 8
- ldr r1, _08004CF8
- ands r0, r1
- orrs r0, r2
- str r0, [sp]
- adds r0, r7, 0
- mov r1, sp
- mov r2, r10
- ldr r3, [sp, 0x24]
- bl SetBGPaletteBufferColorRGB
-_08004CD2:
- subs r6, 0x1
- adds r4, 0x18
- adds r7, 0x1
- cmp r6, 0
- bne _08004C20
-_08004CDC:
- mov r0, r9
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08004CF0: .4byte 0xffffff00
-_08004CF4: .4byte 0xffff00ff
-_08004CF8: .4byte 0xff00ffff
- thumb_func_end sub_8004C00
-
- thumb_func_start sub_8004CFC
-sub_8004CFC:
- push {lr}
- cmp r1, 0
- ble _08004D0E
- movs r2, 0
-_08004D04:
- str r2, [r0]
- adds r0, 0x18
- subs r1, 0x1
- cmp r1, 0
- bne _08004D04
-_08004D0E:
- pop {r0}
- bx r0
- thumb_func_end sub_8004CFC
-
- thumb_func_start sub_8004D14
-sub_8004D14:
- push {r4,lr}
- adds r2, r0, 0
- movs r3, 0
- cmp r3, r1
- bge _08004D36
- movs r4, 0x80
- lsls r4, 24
-_08004D22:
- ldr r0, [r2]
- ands r0, r4
- cmp r0, 0
- beq _08004D2E
- movs r0, 0x1
- b _08004D38
-_08004D2E:
- adds r2, 0x18
- adds r3, 0x1
- cmp r3, r1
- blt _08004D22
-_08004D36:
- movs r0, 0
-_08004D38:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8004D14
-
- thumb_func_start sub_8004D40
-sub_8004D40:
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- movs r1, 0
- cmp r1, r4
- bge _08004D70
- movs r6, 0x80
- lsls r6, 24
- movs r5, 0x80
- lsls r5, 22
-_08004D54:
- ldr r2, [r3]
- adds r0, r2, 0
- ands r0, r6
- cmp r0, 0
- beq _08004D6A
- ands r2, r5
- cmp r2, 0
- bne _08004D68
- movs r0, 0
- b _08004D72
-_08004D68:
- adds r3, 0x18
-_08004D6A:
- adds r1, 0x1
- cmp r1, r4
- blt _08004D54
-_08004D70:
- movs r0, 0x1
-_08004D72:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8004D40
-
- thumb_func_start sub_8004D78
-sub_8004D78:
- push {lr}
- movs r0, 0x1
- bl sub_8004D8C
- movs r0, 0
- bl SetSavingIconCoords
- pop {r0}
- bx r0
- thumb_func_end sub_8004D78
-
- thumb_func_start sub_8004D8C
-sub_8004D8C:
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08004E68
- movs r0, 0
- str r0, [r1]
- ldr r1, _08004E6C
- ldr r0, _08004E70
- str r0, [r1]
- ldr r1, _08004E74
- ldr r0, _08004E78
- str r0, [r1]
- ldr r0, _08004E7C
- adds r1, r0, 0
- adds r1, 0x8
- adds r5, r0, 0
- movs r2, 0
- movs r3, 0xF0
-_08004DB0:
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, 0x8
- adds r1, 0x8
- subs r3, 0x10
- cmp r3, 0
- bge _08004DB0
- cmp r4, 0
- beq _08004E50
- movs r2, 0
- ldr r1, _08004E80
- ldr r0, _08004E84
- movs r3, 0x7F
-_08004E42:
- str r2, [r0]
- str r1, [r0, 0x4]
- adds r1, 0x8
- adds r0, 0x8
- subs r3, 0x1
- cmp r3, 0
- bge _08004E42
-_08004E50:
- movs r1, 0x80
- lsls r1, 4
- adds r0, r5, r1
- movs r1, 0
- str r1, [r0]
- ldr r2, _08004E88
- adds r0, r5, r2
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08004E68: .4byte gUnknown_20266A8
-_08004E6C: .4byte gUnknown_2026E30
-_08004E70: .4byte 0x06010000
-_08004E74: .4byte gUnknown_203B074
-_08004E78: .4byte gUnknown_20266B0
-_08004E7C: .4byte gUnknown_20256A0
-_08004E80: .4byte gUnknown_20262A8
-_08004E84: .4byte gUnknown_2025EA8
-_08004E88: .4byte 0x00000804
- thumb_func_end sub_8004D8C
-
- thumb_func_start sub_8004E8C
-sub_8004E8C:
- ldr r1, _08004EA4
- strh r1, [r0]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
- movs r1, 0
- strh r1, [r0, 0x6]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- bx lr
- .align 2, 0
-_08004EA4: .4byte 0x0000ffff
- thumb_func_end sub_8004E8C
-
- thumb_func_start sub_8004EA8
-sub_8004EA8:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- adds r5, r0, 0
- mov r8, r1
- adds r0, r2, 0
- adds r6, r3, 0
- cmp r0, 0
- beq _08004EC2
- bl sub_80052BC
-_08004EC2:
- ldr r0, _08004F40
- ldr r7, [r0]
- mov r12, r0
- cmp r7, 0x7F
- ble _08004ECE
- b _08005082
-_08004ECE:
- mov r2, sp
- ldrh r0, [r5]
- strh r0, [r2]
- ldrh r0, [r5, 0x2]
- strh r0, [r2, 0x2]
- ldrh r4, [r5, 0x4]
- ldr r0, _08004F44
- ands r0, r4
- strh r0, [r2, 0x4]
- ldrh r3, [r5, 0x6]
- ldr r0, _08004F48
- ands r0, r3
- strh r0, [r2, 0x6]
- ldrh r0, [r5, 0x8]
- strh r0, [r2, 0x8]
- movs r1, 0xE0
- lsls r1, 4
- ands r1, r3
- lsrs r1, 9
- ldr r0, _08004F4C
- ands r0, r4
- lsls r0, 4
- orrs r1, r0
- strh r1, [r2, 0xA]
- lsls r1, r7, 3
- ldr r0, _08004F50
- adds r3, r1, r0
- mov r0, r8
- movs r2, 0x16
- ldrsh r1, [r0, r2]
- mov r0, sp
- ldrb r0, [r0, 0x3]
- lsls r0, 24
- asrs r0, 24
- adds r7, r1, r0
- cmp r7, 0
- bge _08004F1A
- movs r7, 0
-_08004F1A:
- cmp r7, 0xFF
- ble _08004F20
- movs r7, 0xFF
-_08004F20:
- cmp r6, 0
- bne _08004F54
- add r2, sp, 0x4
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- ldrh r0, [r2]
- strh r0, [r3, 0x2]
- adds r2, 0x2
- adds r1, r3, 0x4
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- ldrh r0, [r2]
- strh r0, [r1, 0x2]
- b _08004F86
- .align 2, 0
-_08004F40: .4byte gUnknown_20266A8
-_08004F44: .4byte 0x0000fcff
-_08004F48: .4byte 0x0000f1ff
-_08004F4C: .4byte 0x000003ff
-_08004F50: .4byte gUnknown_20262A8
-_08004F54:
- add r4, sp, 0x4
- ldrh r1, [r4]
- ldrh r0, [r6]
- ands r0, r1
- ldrh r1, [r6, 0x6]
- orrs r0, r1
- strh r0, [r3]
- adds r4, 0x2
- ldrh r1, [r4]
- ldrh r0, [r6, 0x2]
- ands r0, r1
- ldrh r1, [r6, 0x8]
- orrs r0, r1
- strh r0, [r3, 0x2]
- adds r4, 0x2
- adds r2, r3, 0x4
- ldrh r1, [r4]
- ldrh r0, [r6, 0x4]
- ands r0, r1
- ldrh r1, [r6, 0xA]
- orrs r0, r1
- strh r0, [r2]
- adds r4, 0x2
- ldrh r0, [r4]
- strh r0, [r2, 0x2]
-_08004F86:
- mov r0, sp
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08004FB0
- ldr r1, _08004FA8
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 1
- adds r1, r0, r1
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08004FB0
- adds r1, r0, 0
- ldr r0, _08004FAC
- ands r1, r0
- b _08004FC0
- .align 2, 0
-_08004FA8: .4byte gUnknown_2025672
-_08004FAC: .4byte 0x000003ff
-_08004FB0:
- ldrh r1, [r3, 0x4]
- ldr r2, _08005090
- ands r1, r2
- mov r6, r8
- movs r4, 0x14
- ldrsh r0, [r6, r4]
- adds r1, r0
- ands r1, r2
-_08004FC0:
- ldrh r2, [r3, 0x4]
- movs r0, 0xFC
- lsls r0, 8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- ldrh r4, [r3, 0x2]
- ldr r5, _08005094
- adds r2, r5, 0
- ands r2, r4
- ldr r6, _08005098
- adds r1, r2, r6
- mov r2, r8
- movs r6, 0
- ldrsh r0, [r2, r6]
- adds r2, r1, r0
- movs r0, 0x40
- negs r0, r0
- mov r9, r0
- cmp r2, r9
- blt _08005082
- cmp r2, 0xEF
- bgt _08005082
- ands r2, r5
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r4
- orrs r0, r2
- strh r0, [r3, 0x2]
- ldrh r0, [r3, 0x6]
- lsls r4, r0, 16
- ldr r1, _0800509C
- adds r5, r1, 0
- lsrs r2, r4, 20
- ldr r6, _080050A0
- adds r1, r2, r6
- mov r2, r8
- movs r6, 0x2
- ldrsh r0, [r2, r6]
- adds r2, r1, r0
- cmp r2, r9
- blt _08005082
- cmp r2, 0x9F
- bgt _08005082
- movs r0, 0xFF
- ands r2, r0
- ldrh r1, [r3]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- orrs r0, r2
- strh r0, [r3]
- lsrs r0, r4, 17
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08005044
- mov r0, r8
- ldrb r1, [r0, 0x1E]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 12
- ldrh r0, [r3, 0x4]
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08005044:
- mov r0, sp
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08005068
- ldr r1, _080050A4
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0xF
- ands r1, r0
- lsls r1, 12
- ldrh r0, [r3, 0x4]
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08005068:
- ldr r0, _080050A8
- mov r4, r12
- ldr r3, [r4]
- lsls r2, r3, 3
- adds r2, r0
- ldr r1, _080050AC
- lsls r0, r7, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r2, [r0]
- adds r3, 0x1
- str r3, [r4]
-_08005082:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08005090: .4byte 0x000003ff
-_08005094: .4byte 0x000001ff
-_08005098: .4byte 0xffffff00
-_0800509C: .4byte 0x00000fff
-_080050A0: .4byte 0xfffffe00
-_080050A4: .4byte gUnknown_2025682
-_080050A8: .4byte gUnknown_2025EA8
-_080050AC: .4byte gUnknown_20256A0
- thumb_func_end sub_8004EA8
-
- thumb_func_start AddSprite
-AddSprite:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r7, r1, 0
- mov r8, r2
- adds r4, r3, 0
- ldr r0, _080050F4
- ldr r0, [r0]
- cmp r0, 0x7F
- bgt _08005168
- lsls r1, r0, 3
- ldr r0, _080050F8
- adds r5, r1, r0
- cmp r7, 0
- bge _080050D2
- movs r7, 0
-_080050D2:
- cmp r7, 0xFF
- ble _080050D8
- movs r7, 0xFF
-_080050D8:
- cmp r4, 0
- bne _080050FC
- ldrh r0, [r6]
- strh r0, [r5]
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2]
- adds r1, r6, 0x4
- adds r2, r5, 0x4
- ldrh r0, [r1]
- strh r0, [r2]
- ldrh r0, [r1, 0x2]
- strh r0, [r2, 0x2]
- b _08005128
- .align 2, 0
-_080050F4: .4byte gUnknown_20266A8
-_080050F8: .4byte gUnknown_20262A8
-_080050FC:
- ldrh r1, [r6]
- ldrh r0, [r4]
- ands r0, r1
- ldrh r1, [r4, 0x6]
- orrs r0, r1
- strh r0, [r5]
- ldrh r1, [r6, 0x2]
- ldrh r0, [r4, 0x2]
- ands r0, r1
- ldrh r1, [r4, 0x8]
- orrs r0, r1
- strh r0, [r5, 0x2]
- adds r2, r6, 0x4
- adds r3, r5, 0x4
- ldrh r1, [r2]
- ldrh r0, [r4, 0x4]
- ands r0, r1
- ldrh r1, [r4, 0xA]
- orrs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0x2]
- strh r0, [r3, 0x2]
-_08005128:
- ldrh r4, [r5, 0x6]
- lsrs r4, 4
- adds r0, r4, 0
- movs r1, 0
- bl nullsub_3
- movs r0, 0xFF
- ands r4, r0
- ldrh r1, [r5]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- orrs r0, r4
- strh r0, [r5]
- mov r0, r8
- cmp r0, 0
- beq _0800514E
- bl sub_80052BC
-_0800514E:
- ldr r0, _08005174
- ldr r4, _08005178
- ldr r3, [r4]
- lsls r2, r3, 3
- adds r2, r0
- ldr r1, _0800517C
- lsls r0, r7, 3
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r2, [r0]
- adds r3, 0x1
- str r3, [r4]
-_08005168:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08005174: .4byte gUnknown_2025EA8
-_08005178: .4byte gUnknown_20266A8
-_0800517C: .4byte gUnknown_20256A0
- thumb_func_end AddSprite
-
- thumb_func_start sub_8005180
-sub_8005180:
- push {lr}
- ldr r2, _080051A8
- adds r1, r2, 0
- cmp r2, 0
- beq _0800519E
-_0800518A:
- ldr r0, [r1, 0x4]
- cmp r0, 0
- beq _08005198
- cmp r2, 0
- beq _08005196
- str r1, [r2]
-_08005196:
- adds r2, r1, 0
-_08005198:
- ldr r1, [r1]
- cmp r1, 0
- bne _0800518A
-_0800519E:
- movs r0, 0
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080051A8: .4byte gUnknown_20256A0
- thumb_func_end sub_8005180
-
- thumb_func_start CopySpritesToOam
-CopySpritesToOam:
- push {r4-r6,lr}
- ldr r3, _08005204
- ldr r2, _08005208
- movs r4, 0
- ldr r6, _0800520C
- cmp r3, 0
- beq _080051E0
- ldr r5, _08005210
-_080051BC:
- ldr r1, [r3, 0x4]
- cmp r1, 0
- beq _080051D6
- subs r2, 0x4
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1]
- strh r0, [r2]
- adds r4, 0x1
-_080051D6:
- ldr r3, [r3]
- cmp r3, 0
- beq _080051E0
- cmp r2, r5
- bhi _080051BC
-_080051E0:
- ldr r1, _08005210
- cmp r2, r1
- bls _080051FA
- movs r0, 0
- movs r3, 0xA0
-_080051EA:
- subs r2, 0x4
- strh r0, [r2]
- subs r2, 0x2
- strh r0, [r2]
- subs r2, 0x2
- strh r3, [r2]
- cmp r2, r1
- bhi _080051EA
-_080051FA:
- strh r4, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08005204: .4byte gUnknown_20256A0
-_08005208: .4byte 0x07000400
-_0800520C: .4byte gUnknown_2025670
-_08005210: .4byte 0x07000008
- thumb_func_end CopySpritesToOam
-
- thumb_func_start SetSavingIconCoords
-SetSavingIconCoords:
- push {lr}
- adds r3, r0, 0
- cmp r3, 0
- bne _0800522C
- ldr r1, _08005228
- strh r3, [r1]
- movs r0, 0xA0
- strh r0, [r1, 0x2]
- b _0800523C
- .align 2, 0
-_08005228: .4byte gUnknown_2025694
-_0800522C:
- ldr r1, _08005240
- ldrh r0, [r3]
- movs r2, 0
- strh r0, [r1]
- ldrh r0, [r3, 0x2]
- strh r0, [r1, 0x2]
- ldr r0, _08005244
- str r2, [r0]
-_0800523C:
- pop {r0}
- bx r0
- .align 2, 0
-_08005240: .4byte gUnknown_2025694
-_08005244: .4byte gUnknown_2025698
- thumb_func_end SetSavingIconCoords
-
- thumb_func_start BlinkSavingIcon
-BlinkSavingIcon:
- push {r4,lr}
- movs r2, 0xE0
- lsls r2, 19
- ldr r0, _08005280
- ldr r1, [r0]
- adds r3, r1, 0
- adds r1, 0x1
- str r1, [r0]
- movs r0, 0x10
- ands r3, r0
- cmp r3, 0
- beq _08005288
- movs r0, 0xA0
- strh r0, [r2]
- adds r2, 0x2
- movs r1, 0x80
- lsls r1, 7
- adds r0, r1, 0
- strh r0, [r2]
- adds r2, 0x2
- ldr r4, _08005284
- adds r0, r4, 0
- strh r0, [r2]
- adds r2, 0x2
- movs r0, 0
- strh r0, [r2]
- b _080052A8
- .align 2, 0
-_08005280: .4byte gUnknown_2025698
-_08005284: .4byte 0x0000f3fc
-_08005288:
- ldr r1, _080052B0
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- ldr r2, _080052B4
- movs r4, 0x80
- lsls r4, 7
- adds r0, r4, 0
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- adds r2, 0x2
- ldr r1, _080052B8
- adds r0, r1, 0
- strh r0, [r2]
- adds r2, 0x2
- strh r3, [r2]
-_080052A8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080052B0: .4byte gUnknown_2025694
-_080052B4: .4byte 0x07000002
-_080052B8: .4byte 0x0000f3fc
- thumb_func_end BlinkSavingIcon
-
- thumb_func_start sub_80052BC
-sub_80052BC:
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x4]
- cmp r0, 0
- beq _080052F2
- ldr r5, _080052F8
- ldr r6, _080052FC
- ldr r4, _08005300
-_080052CC:
- ldr r2, [r5]
- cmp r2, r6
- bcs _080052F2
- ldr r0, [r3, 0x4]
- str r0, [r2]
- ldr r0, [r3]
- str r0, [r2, 0x4]
- ldr r1, [r4]
- str r1, [r2, 0x8]
- ldr r0, [r3, 0x4]
- adds r1, r0
- str r1, [r4]
- adds r0, r2, 0
- adds r0, 0xC
- str r0, [r5]
- adds r3, 0x8
- ldr r0, [r3, 0x4]
- cmp r0, 0
- bne _080052CC
-_080052F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080052F8: .4byte gUnknown_203B074
-_080052FC: .4byte gUnknown_2026E30
-_08005300: .4byte gUnknown_2026E30
- thumb_func_end sub_80052BC
-
- thumb_func_start sub_8005304
-sub_8005304:
- push {r4,lr}
- ldr r4, _0800530C
- b _0800532A
- .align 2, 0
-_0800530C: .4byte gUnknown_20266B0
-_08005310:
- ldr r1, [r4, 0x4]
- cmp r1, 0
- beq _08005320
- ldr r0, [r4, 0x8]
- ldr r2, [r4]
- bl CpuCopy
- b _08005328
-_08005320:
- ldr r0, [r4, 0x8]
- ldr r1, [r4]
- bl CpuClear
-_08005328:
- adds r4, 0xC
-_0800532A:
- ldr r0, _08005338
- ldr r0, [r0]
- cmp r4, r0
- bcc _08005310
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08005338: .4byte gUnknown_203B074
- thumb_func_end sub_8005304
-
- thumb_func_start sub_800533C
-sub_800533C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- adds r5, r2, 0
- adds r7, r3, 0
- ldr r1, [sp, 0x18]
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0x18
- ldrsh r1, [r5, r2]
- lsls r1, 2
- adds r1, r0
- ldr r4, [r1]
- ldr r1, _08005368
- movs r2, 0x14
- ldrsh r0, [r5, r2]
- lsls r0, 5
- ldr r2, _0800536C
- adds r0, r2
- str r0, [r1]
- b _0800538E
- .align 2, 0
-_08005368: .4byte gUnknown_2026E30
-_0800536C: .4byte 0x06010000
-_08005370:
- cmp r6, 0
- beq _08005382
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _08005382
- lsls r0, 2
- add r0, r8
- ldr r2, [r0]
-_08005382:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r3, r7, 0
- bl sub_8004EA8
- adds r4, 0xA
-_0800538E:
- movs r2, 0
- ldrh r1, [r4]
- ldr r0, _080053A8
- cmp r1, r0
- bne _08005370
- ldrh r0, [r4, 0x2]
- cmp r0, r1
- bne _08005370
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080053A8: .4byte 0x0000ffff
- thumb_func_end sub_800533C
-
- thumb_func_start sub_80053AC
-sub_80053AC:
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r1, 0x4]
- str r5, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_80053D0
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80053AC
-
- thumb_func_start sub_80053D0
-sub_80053D0:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, [sp, 0x1C]
- lsls r0, 24
- movs r2, 0
- movs r3, 0x80
- lsls r3, 8
- strh r3, [r4]
- cmp r0, 0
- beq _080053F6
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0, 0
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r4]
-_080053F6:
- strh r2, [r4, 0x2]
- ldr r0, [sp, 0x18]
- strh r0, [r4, 0x4]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- ldr r0, [sp, 0x14]
- strh r0, [r4, 0x1C]
- ldr r0, _08005438
- strh r0, [r4, 0x20]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x22]
- str r2, [r4, 0x14]
- str r2, [r4, 0x18]
- strh r2, [r4, 0x6]
- ldr r1, [r5, 0x4]
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4, 0x28]
- str r0, [r4, 0x2C]
- ldr r0, [r5]
- str r0, [r4, 0x34]
- ldr r0, [r5, 0xC]
- str r0, [r4, 0x38]
- ldr r0, [r5, 0x10]
- str r0, [r4, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08005438: .4byte 0x0000ffff
- thumb_func_end sub_80053D0
-
- thumb_func_start sub_800543C
-sub_800543C:
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r5, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r1, 0x4]
- str r5, [sp]
- str r4, [sp, 0x4]
- bl sub_800545C
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_800543C
-
- thumb_func_start sub_800545C
-sub_800545C:
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- adds r5, r3, 0
- ldr r0, [sp, 0x18]
- lsls r0, 24
- movs r2, 0
- movs r3, 0x80
- lsls r3, 8
- strh r3, [r4]
- cmp r0, 0
- beq _08005482
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0, 0
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r4]
-_08005482:
- strh r2, [r4, 0x2]
- ldr r0, [sp, 0x14]
- strh r0, [r4, 0x4]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0xE]
- strh r5, [r4, 0x1C]
- ldr r0, _080054B8
- strh r0, [r4, 0x20]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x22]
- str r2, [r4, 0x14]
- str r2, [r4, 0x18]
- strh r2, [r4, 0x6]
- ldr r1, [r6, 0x4]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0]
- str r0, [r4, 0x28]
- str r0, [r4, 0x2C]
- ldr r0, [r6]
- str r0, [r4, 0x34]
- str r2, [r4, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080054B8: .4byte 0x0000ffff
- thumb_func_end sub_800545C
-
- thumb_func_start sub_80054BC
-sub_80054BC:
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _080054D0
- movs r0, 0
- b _080054D2
-_080054D0:
- lsrs r0, r1, 15
-_080054D2:
- cmp r0, 0
- beq _08005586
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- ldrh r3, [r4]
- cmp r0, 0
- blt _08005524
- movs r0, 0x80
- lsls r0, 7
- ands r0, r3
- cmp r0, 0
- bne _08005586
- ldrh r2, [r4, 0x6]
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- ldr r0, _0800550C
- cmp r1, r0
- bgt _080054FA
- adds r0, r2, 0x1
- strh r0, [r4, 0x6]
-_080054FA:
- ldrh r1, [r4, 0x4]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08005510
- subs r0, r1, 0x1
- strh r0, [r4, 0x4]
- b _08005586
- .align 2, 0
-_0800550C: .4byte 0x0000752f
-_08005510:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08005524
- subs r0, r1, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bgt _08005586
-_08005524:
- ldr r0, [r4, 0x2C]
- ldrb r0, [r0]
- cmp r0, 0
- bne _08005550
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- cmp r0, 0
- bne _08005542
- movs r1, 0x80
- lsls r1, 6
- adds r0, r1, 0
- orrs r0, r3
- strh r0, [r4]
- b _08005586
-_08005542:
- ldr r0, [r4, 0x28]
- str r0, [r4, 0x2C]
- bl Random
- movs r1, 0x1
- ands r0, r1
- strh r0, [r4, 0x4]
-_08005550:
- ldrh r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r4]
- ldr r1, [r4, 0x2C]
- ldrb r0, [r1]
- strh r0, [r4, 0x2]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0xC]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x10]
- ldrh r0, [r1, 0xA]
- strh r0, [r4, 0x12]
- ldrb r0, [r1, 0x1]
- str r0, [r4, 0x14]
- ldrb r2, [r1, 0x1]
- ldr r0, [r4, 0x18]
- orrs r0, r2
- str r0, [r4, 0x18]
- adds r1, 0xC
- str r1, [r4, 0x2C]
-_08005586:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80054BC
-
- thumb_func_start sub_800558C
-sub_800558C:
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldrh r0, [r5]
- lsrs r0, 15
- cmp r0, 0
- beq _08005602
- movs r1, 0x20
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _080055AE
- adds r0, r5, 0
- bl sub_80054BC
-_080055AE:
- ldrh r0, [r5]
- lsrs r0, 15
- cmp r0, 0
- beq _08005602
- ldrh r0, [r5, 0xC]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xE]
- adds r0, r6
- strh r0, [r5, 0xA]
- adds r1, r5, 0
- adds r1, 0x26
- ldr r0, [sp, 0x18]
- strb r0, [r1]
- strh r7, [r5, 0x1E]
- ldr r0, [r5, 0x34]
- ldr r1, [r5, 0x38]
- adds r2, r5, 0
- adds r2, 0x8
- movs r3, 0x22
- ldrsh r4, [r5, r3]
- movs r6, 0x20
- ldrsh r3, [r5, r6]
- eors r4, r3
- negs r3, r4
- orrs r3, r4
- lsrs r3, 31
- str r3, [sp]
- ldr r3, [sp, 0x1C]
- bl sub_800533C
- ldrh r0, [r5, 0x20]
- strh r0, [r5, 0x22]
- ldrh r1, [r5]
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08005602
- ldr r0, _0800560C
- ands r0, r1
- strh r0, [r5]
-_08005602:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800560C: .4byte 0x0000f7ff
- thumb_func_end sub_800558C
-
- thumb_func_start sub_8005610
-sub_8005610:
- push {lr}
- ldr r0, [r0, 0x4]
- bl sub_800561C
- pop {r0}
- bx r0
- thumb_func_end sub_8005610
-
- thumb_func_start sub_800561C
-sub_800561C:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r0, r1, 0
- adds r7, r2, 0
- adds r6, r3, 0
- ldr r1, [r5, 0x14]
- cmp r1, 0
- beq _0800563A
- lsls r0, 5
- ldr r2, _08005664
- adds r0, r2
- ldr r2, [r5, 0x1C]
- lsls r2, 5
- bl CpuCopy
-_0800563A:
- ldr r0, [r5, 0x18]
- cmp r0, 0
- beq _0800565C
- movs r4, 0
-_08005642:
- movs r1, 0xF0
- lsls r1, 1
- adds r0, r4, r1
- lsls r2, r4, 2
- ldr r1, [r5, 0x18]
- adds r1, r2
- adds r2, r7, 0
- adds r3, r6, 0
- bl SetBGPaletteBufferColorRGB
- adds r4, 0x1
- cmp r4, 0xF
- ble _08005642
-_0800565C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08005664: .4byte 0x06010000
- thumb_func_end sub_800561C
-
- thumb_func_start sub_8005668
-sub_8005668:
- push {lr}
- ldr r0, [r0, 0x4]
- bl sub_8005674
- pop {r1}
- bx r1
- thumb_func_end sub_8005668
-
- thumb_func_start sub_8005674
-sub_8005674:
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, [r4, 0x14]
- cmp r3, 0
- beq _0800568E
- lsls r0, r1, 5
- ldr r1, _08005698
- adds r0, r1
- ldr r2, [r4, 0x1C]
- lsls r2, 5
- adds r1, r3, 0
- bl CpuCopy
-_0800568E:
- ldr r0, [r4, 0x18]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08005698: .4byte 0x06010000
- thumb_func_end sub_8005674
-
- thumb_func_start sub_800569C
-sub_800569C:
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- strh r0, [r3]
- strh r0, [r3, 0x2]
- ldrh r0, [r4]
- lsrs r0, 15
- cmp r0, 0
- beq _080056F8
- cmp r2, 0x3
- bhi _080056F8
- ldr r1, [r4, 0x30]
- cmp r1, 0
- beq _080056F2
- movs r5, 0x20
- ldrsh r0, [r4, r5]
- lsls r0, 4
- adds r5, r1, r0
- lsls r0, r2, 2
- adds r2, r5, r0
- movs r6, 0
- ldrsh r1, [r2, r6]
- cmp r1, 0x63
- bne _080056E0
- movs r6, 0x2
- ldrsh r1, [r2, r6]
- cmp r1, 0x63
- bne _080056E0
- strh r1, [r3]
- strh r1, [r3, 0x2]
- b _080056F8
-_080056E0:
- adds r0, r5, r0
- ldrh r1, [r0]
- ldrh r2, [r4, 0xC]
- adds r1, r2
- strh r1, [r3]
- ldrh r0, [r0, 0x2]
- ldrh r4, [r4, 0xE]
- adds r0, r4
- b _080056F6
-_080056F2:
- movs r0, 0x63
- strh r0, [r3]
-_080056F6:
- strh r0, [r3, 0x2]
-_080056F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_800569C
-
- thumb_func_start sub_8005700
-sub_8005700:
- push {r4,r5,lr}
- adds r3, r0, 0
- ldrh r0, [r1]
- lsrs r0, 15
- cmp r0, 0
- beq _0800575C
- ldr r2, [r1, 0x30]
- cmp r2, 0
- beq _0800574C
- movs r4, 0x20
- ldrsh r0, [r1, r4]
- lsls r0, 4
- adds r2, r0
- adds r4, r2, 0
- adds r4, 0xC
-_0800571E:
- movs r5, 0
- ldrsh r0, [r2, r5]
- cmp r0, 0x63
- bne _08005732
- movs r5, 0x2
- ldrsh r0, [r2, r5]
- cmp r0, 0x63
- bne _08005732
- strh r0, [r3]
- b _08005740
-_08005732:
- ldrh r0, [r2]
- ldrh r5, [r1, 0xC]
- adds r0, r5
- strh r0, [r3]
- ldrh r0, [r2, 0x2]
- ldrh r5, [r1, 0xE]
- adds r0, r5
-_08005740:
- strh r0, [r3, 0x2]
- adds r3, 0x4
- adds r2, 0x4
- cmp r2, r4
- ble _0800571E
- b _0800575C
-_0800574C:
- movs r1, 0x63
- movs r0, 0x3
-_08005750:
- strh r1, [r3]
- strh r1, [r3, 0x2]
- adds r3, 0x4
- subs r0, 0x1
- cmp r0, 0
- bge _08005750
-_0800575C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8005700
-
- thumb_func_start sub_8005764
-sub_8005764:
- push {lr}
- ldr r1, [r1, 0x4]
- bl sub_8005770
- pop {r0}
- bx r0
- thumb_func_end sub_8005764
-
- thumb_func_start sub_8005770
-sub_8005770:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r2
- adds r7, r3, 0
- movs r5, 0
- adds r0, 0x10
- lsls r6, r0, 4
- adds r4, r1, 0
-_08005782:
- adds r0, r6, r5
- adds r1, r4, 0
- mov r2, r8
- adds r3, r7, 0
- bl SetBGPaletteBufferColorRGB
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0xF
- ble _08005782
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8005770
-
- thumb_func_start nullsub_7
-nullsub_7:
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start nullsub_8
-nullsub_8:
- bx lr
- thumb_func_end nullsub_8
-
- thumb_func_start nullsub_9
-nullsub_9:
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start nullsub_10
-nullsub_10:
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start nullsub_144
-nullsub_144:
- bx lr
- thumb_func_end nullsub_144
-
- thumb_func_start nullsub_11
-nullsub_11:
- bx lr
- thumb_func_end nullsub_11
-
- thumb_func_start nullsub_12
-nullsub_12:
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13:
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start nullsub_145
-nullsub_145:
- bx lr
- thumb_func_end nullsub_145
-
- thumb_func_start nullsub_14
-nullsub_14:
- bx lr
- thumb_func_end nullsub_14
-
- thumb_func_start nullsub_146
-nullsub_146:
- bx lr
- thumb_func_end nullsub_146
-
- thumb_func_start nullsub_147
-nullsub_147:
- bx lr
- thumb_func_end nullsub_147
-
- thumb_func_start nullsub_148
-nullsub_148:
- bx lr
- thumb_func_end nullsub_148
-
- thumb_func_start nullsub_149
-nullsub_149:
- bx lr
- thumb_func_end nullsub_149
-
- thumb_func_start sub_80057D8
-sub_80057D8:
- movs r0, 0
- bx lr
- thumb_func_end sub_80057D8
-
- thumb_func_start sub_80057DC
-sub_80057DC:
- movs r0, 0
- bx lr
- thumb_func_end sub_80057DC
-
- thumb_func_start nullsub_150
-nullsub_150:
- bx lr
- thumb_func_end nullsub_150
-
- thumb_func_start nullsub_151
-nullsub_151:
- bx lr
- thumb_func_end nullsub_151
-
- thumb_func_start sub_80057E8
-sub_80057E8:
- ldr r1, _08005814
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _08005818
- movs r2, 0
- str r2, [r0]
- ldr r1, _0800581C
- movs r0, 0x1
- str r0, [r1]
- ldr r0, _08005820
- str r2, [r0]
- ldr r0, _08005824
- str r2, [r0]
- ldr r0, _08005828
- strb r2, [r0]
- ldr r1, _0800582C
- ldr r3, _08005830
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08005834
- str r2, [r0]
- bx lr
- .align 2, 0
-_08005814: .4byte gUnknown_2026E4C
-_08005818: .4byte gUnknown_2026E54
-_0800581C: .4byte gUnknown_2026E50
-_08005820: .4byte gUnknown_2026E58
-_08005824: .4byte gUnknown_2026E3C
-_08005828: .4byte gUnknown_2026E38
-_0800582C: .4byte gUnknown_2026E4E
-_08005830: .4byte 0x0000060c
-_08005834: .4byte gUnknown_203B078
- thumb_func_end sub_80057E8
-
- thumb_func_start sub_8005838
-sub_8005838:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08005880
- ldrb r0, [r0]
- cmp r0, 0
- bne _08005854
- movs r1, 0
-_08005854:
- ldr r0, _08005884
- ldr r0, [r0]
- ldr r3, _08005888
- cmp r0, 0
- bne _08005860
- ldr r3, _0800588C
-_08005860:
- ldr r0, _08005890
- ldr r2, [r0]
- cmp r2, 0
- bne _0800586A
- ldr r2, _08005894
-_0800586A:
- ldr r0, _08005898
- str r3, [r0]
- cmp r1, 0x5
- bls _08005876
- bl _08006094
-_08005876:
- lsls r0, r1, 2
- ldr r1, _0800589C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08005880: .4byte gUnknown_2026E4C
-_08005884: .4byte gUnknown_2026E54
-_08005888: .4byte gUnknown_20270E8
-_0800588C: .4byte gUnknown_2026E60
-_08005890: .4byte gUnknown_203B078
-_08005894: .4byte gUnknown_80B83EA
-_08005898: .4byte gUnknown_2026E58
-_0800589C: .4byte _080058A0
- .align 2, 0
-_080058A0:
- .4byte _080058B8
- .4byte _08005984
- .4byte _08005A98
- .4byte _08005BAC
- .4byte _08005D46
- .4byte _08005E58
-_080058B8:
- movs r1, 0
- movs r7, 0x9
-_080058BC:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _080058BC
- b _08006094
-_08005984:
- ldr r1, _08005A94
- movs r7, 0x9
-_08005988:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- blt _08005A90
- b _08005988
-_08005A90:
- b _08006094
- .align 2, 0
-_08005A94: .4byte gUnknown_80B816A
-_08005A98:
- ldr r1, _08005BA8
- movs r7, 0x9
-_08005A9C:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- blt _08005BA4
- b _08005A9C
-_08005BA4:
- b _08006094
- .align 2, 0
-_08005BA8: .4byte gUnknown_80B802A
-_08005BAC:
- ldr r0, [r5]
- mov r10, r0
- cmp r0, 0
- bge _08005BBA
- ldr r0, [r5, 0x8]
- cmp r0, 0
- blt _08005BDC
-_08005BBA:
- ldr r1, [r5, 0x4]
- cmp r1, 0
- bge _08005BC6
- ldr r0, [r5, 0xC]
- cmp r0, 0
- blt _08005BDC
-_08005BC6:
- mov r4, r10
- cmp r4, 0xEF
- ble _08005BD2
- ldr r0, [r5, 0x8]
- cmp r0, 0xEF
- bgt _08005BDC
-_08005BD2:
- cmp r1, 0x9F
- ble _08005CA8
- ldr r0, [r5, 0xC]
- cmp r0, 0x9F
- ble _08005CA8
-_08005BDC:
- movs r1, 0xF0
- movs r7, 0x9
-_08005BE0:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08005BE0
- b _08006094
-_08005CA8:
- movs r7, 0
- mov r8, r1
- movs r6, 0x80
- lsls r6, 1
- mov r12, r6
- lsls r0, r1, 1
- ldr r1, _08005CCC
- subs r6, r1, r0
- mov r9, r10
-_08005CBA:
- cmp r8, r7
- ble _08005CD0
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- mov r4, r12
- strh r4, [r3]
- b _08005D3A
- .align 2, 0
-_08005CCC: .4byte gUnknown_80B8008
-_08005CD0:
- ldr r1, [r5, 0xC]
- cmp r1, r7
- bgt _08005CE2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- mov r0, r12
- b _08005D38
-_08005CE2:
- mov r4, r8
- subs r0, r7, r4
- cmp r0, 0xF
- bgt _08005CF0
- movs r0, 0
- ldrsh r1, [r6, r0]
- b _08005D00
-_08005CF0:
- subs r0, r1, r7
- cmp r0, 0xF
- bgt _08005D10
- lsls r0, 1
- ldr r1, _08005D0C
- adds r0, r1
- movs r4, 0
- ldrsh r1, [r0, r4]
-_08005D00:
- mov r0, r9
- adds r4, r0, r1
- ldr r0, [r5, 0x8]
- subs r1, r0, r1
- b _08005D14
- .align 2, 0
-_08005D0C: .4byte gUnknown_80B8008
-_08005D10:
- mov r4, r10
- ldr r1, [r5, 0x8]
-_08005D14:
- cmp r4, 0
- bge _08005D1A
- movs r4, 0
-_08005D1A:
- cmp r4, 0xEF
- ble _08005D20
- movs r4, 0xEF
-_08005D20:
- cmp r1, 0
- bgt _08005D26
- movs r1, 0x1
-_08005D26:
- cmp r1, 0xF0
- ble _08005D2C
- movs r1, 0xF0
-_08005D2C:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- lsls r0, r1, 8
- orrs r0, r4
-_08005D38:
- strh r0, [r3]
-_08005D3A:
- adds r3, 0x2
- adds r6, 0x2
- adds r7, 0x1
- cmp r7, 0x9F
- ble _08005CBA
- b _08006094
-_08005D46:
- ldr r1, _08005E54
- movs r7, 0xE
-_08005D4A:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- blt _08005E52
- b _08005D4A
-_08005E52:
- b _08006094
- .align 2, 0
-_08005E54: .4byte gUnknown_80B82AA
-_08005E58:
- ldr r4, _08005FF4
- ldr r5, _08005FF8
- ldr r6, _08005FFC
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0, 0
- movs r7, 0xE
-_08005E66:
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- strh r1, [r3]
- adds r3, 0x2
- subs r7, 0x1
- cmp r7, 0
- bge _08005E66
- ldr r4, [r4]
- str r4, [sp]
- ldr r5, [r5]
- str r5, [sp, 0x4]
- ldr r6, [r6]
- str r6, [sp, 0x8]
- adds r1, r6, 0
- cmp r6, 0
- bge _08005F40
- adds r1, 0xFF
-_08005F40:
- asrs r1, 8
- adds r1, 0x1
- movs r0, 0x80
- lsls r0, 3
- bl __divsi3
- str r0, [sp, 0xC]
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bge _08005F56
- adds r0, 0xFF
-_08005F56:
- asrs r4, r0, 8
- adds r5, r4, 0
- movs r3, 0
- lsls r0, r4, 2
- adds r7, r0, 0x2
- mov r9, r7
-_08005F62:
- adds r0, r3, 0
- str r3, [sp, 0x10]
- bl sub_8009C7C
- ldr r1, [sp, 0x8]
- muls r0, r1
- ldr r3, [sp, 0x10]
- cmp r0, 0
- bge _08005F76
- adds r0, 0xFF
-_08005F76:
- asrs r0, 8
- ldr r2, [sp, 0x4]
- adds r1, r2, r0
- cmp r1, 0
- bge _08005F82
- adds r1, 0xFF
-_08005F82:
- asrs r1, 8
- str r1, [sp, 0x14]
- ldr r6, [sp, 0x4]
- subs r0, r6, r0
- cmp r0, 0
- bge _08005F90
- adds r0, 0xFF
-_08005F90:
- asrs r0, 8
- mov r8, r0
- ldr r0, [sp, 0x14]
- cmp r5, r0
- blt _08005FA4
- ldr r1, [sp, 0xC]
- adds r1, r3
- mov r10, r1
- cmp r4, r8
- ble _0800608A
-_08005FA4:
- adds r0, r3, 0
- str r3, [sp, 0x10]
- bl sub_8009D04
- ldr r2, [sp, 0x8]
- muls r0, r2
- ldr r3, [sp, 0x10]
- cmp r0, 0
- bge _08005FB8
- adds r0, 0xFF
-_08005FB8:
- asrs r0, 8
- ldr r6, [sp]
- subs r1, r6, r0
- cmp r1, 0
- bge _08005FC4
- adds r1, 0xFF
-_08005FC4:
- asrs r1, 8
- ldr r2, [sp]
- adds r0, r2, r0
- cmp r0, 0
- bge _08005FD0
- adds r0, 0xFF
-_08005FD0:
- asrs r0, 8
- cmp r1, 0
- bge _08005FD8
- movs r1, 0
-_08005FD8:
- cmp r0, 0
- bge _08005FDE
- movs r0, 0
-_08005FDE:
- cmp r1, 0xEF
- ble _08005FE4
- movs r1, 0x9F
-_08005FE4:
- cmp r0, 0xEF
- ble _08005FEA
- movs r0, 0x9F
-_08005FEA:
- cmp r1, r0
- ble _08006000
- lsls r2, r1, 8
- orrs r2, r0
- b _08006004
- .align 2, 0
-_08005FF4: .4byte gUnknown_2026E40
-_08005FF8: .4byte gUnknown_2026E44
-_08005FFC: .4byte gUnknown_2026E48
-_08006000:
- lsls r2, r0, 8
- orrs r2, r1
-_08006004:
- ldr r6, [sp, 0xC]
- adds r3, r6
- mov r10, r3
- ldr r0, [sp, 0x14]
- cmp r5, r0
- bge _0800604E
- ldr r1, _08006030
- mov r12, r1
- ldr r3, _08006034
- add r3, r9
- ldr r1, _08006038
- add r1, r9
-_0800601C:
- cmp r5, 0
- blt _0800603E
- cmp r5, 0x9F
- bgt _0800603E
- mov r6, r12
- ldr r0, [r6]
- cmp r0, 0
- bne _0800603C
- strh r2, [r1]
- b _0800603E
- .align 2, 0
-_08006030: .4byte gUnknown_2026E54
-_08006034: .4byte gUnknown_20270E8
-_08006038: .4byte gUnknown_2026E60
-_0800603C:
- strh r2, [r3]
-_0800603E:
- adds r3, 0x4
- adds r1, 0x4
- movs r0, 0x4
- add r9, r0
- adds r5, 0x1
- ldr r6, [sp, 0x14]
- cmp r5, r6
- blt _0800601C
-_0800604E:
- cmp r4, r8
- ble _0800608A
- ldr r6, _08006070
- ldr r0, _08006074
- adds r3, r7, r0
- ldr r0, _08006078
- adds r1, r7, r0
-_0800605C:
- cmp r4, 0
- blt _0800607E
- cmp r4, 0x9F
- bgt _0800607E
- ldr r0, [r6]
- cmp r0, 0
- bne _0800607C
- strh r2, [r1]
- b _0800607E
- .align 2, 0
-_08006070: .4byte gUnknown_2026E54
-_08006074: .4byte gUnknown_20270E8
-_08006078: .4byte gUnknown_2026E60
-_0800607C:
- strh r2, [r3]
-_0800607E:
- subs r3, 0x4
- subs r1, 0x4
- subs r7, 0x4
- subs r4, 0x1
- cmp r4, r8
- bgt _0800605C
-_0800608A:
- mov r3, r10
- ldr r0, _080060A4
- cmp r3, r0
- bgt _08006094
- b _08005F62
-_08006094:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080060A4: .4byte 0x000003ff
- thumb_func_end sub_8005838
-
- thumb_func_start sub_80060A8
-sub_80060A8:
- push {lr}
- ldr r1, _080060D8
- ldr r0, _080060DC
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080060E0
- movs r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _080060BE
- movs r1, 0x1
-_080060BE:
- str r1, [r2]
- ldr r2, _080060E4
- movs r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _080060CC
- movs r1, 0x1
-_080060CC:
- str r1, [r2]
- ldr r1, _080060E8
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080060D8: .4byte gUnknown_2026E3C
-_080060DC: .4byte gUnknown_2026E58
-_080060E0: .4byte gUnknown_2026E54
-_080060E4: .4byte gUnknown_2026E50
-_080060E8: .4byte gUnknown_2026E38
- thumb_func_end sub_80060A8
-
- thumb_func_start sub_80060EC
-sub_80060EC:
- push {lr}
- ldr r1, _08006130
- ldr r0, _08006134
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08006138
- movs r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08006102
- movs r1, 0x1
-_08006102:
- str r1, [r2]
- ldr r2, _0800613C
- movs r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08006110
- movs r1, 0x1
-_08006110:
- str r1, [r2]
- ldr r0, _08006140
- ldrh r2, [r0]
- movs r0, 0xF8
- lsls r0, 5
- ands r0, r2
- lsrs r0, 8
- movs r1, 0x1F
- ands r1, r2
- bl sub_800CC44
- ldr r1, _08006144
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08006130: .4byte gUnknown_2026E3C
-_08006134: .4byte gUnknown_2026E58
-_08006138: .4byte gUnknown_2026E54
-_0800613C: .4byte gUnknown_2026E50
-_08006140: .4byte gUnknown_2026E4E
-_08006144: .4byte gUnknown_2026E38
- thumb_func_end sub_80060EC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_80047E8.s b/asm/code_80047E8.s
new file mode 100644
index 0000000..3128ea8
--- /dev/null
+++ b/asm/code_80047E8.s
@@ -0,0 +1,3540 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80047E8
+sub_80047E8:
+ ldr r0, _08004840
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r2, [r0, 0x6]
+ ldr r0, _08004844
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ strh r2, [r0, 0x4]
+ strh r2, [r0, 0x6]
+ ldr r1, _08004848
+ ldr r0, _0800484C
+ str r0, [r1]
+ ldr r0, _08004850
+ str r2, [r0, 0x20]
+ ldr r1, _08004854
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x1C]
+ strh r1, [r0, 0x1E]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r3, [r1]
+ adds r0, 0x29
+ strb r3, [r0]
+ ldr r0, _08004858
+ strh r2, [r0]
+ strh r2, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08004840: .4byte gUnknown_20255F0
+_08004844: .4byte gUnknown_2025638
+_08004848: .4byte gUnknown_202562C
+_0800484C: .4byte 0x004a14c1
+_08004850: .4byte gUnknown_2025600
+_08004854: .4byte 0x0000ffff
+_08004858: .4byte gUnknown_2025668
+ thumb_func_end sub_80047E8
+
+ thumb_func_start sub_800485C
+sub_800485C:
+ push {r4,r5,lr}
+ ldr r2, _080048A8
+ ldr r1, _080048AC
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ strh r0, [r2, 0x2]
+ strh r0, [r2, 0x4]
+ strh r0, [r2, 0x6]
+ ldr r0, _080048B0
+ ldr r1, _080048B4
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r3, [r1]
+ adds r0, 0x29
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080048A8: .4byte gUnknown_2025638
+_080048AC: .4byte gUnknown_20255F0
+_080048B0: .4byte gUnknown_2025600
+_080048B4: .4byte 0x0000ffff
+ thumb_func_end sub_800485C
+
+ thumb_func_start sub_80048B8
+sub_80048B8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048B8
+
+ thumb_func_start sub_80048BC
+sub_80048BC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048BC
+
+ thumb_func_start sub_80048C0
+sub_80048C0:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C0
+
+ thumb_func_start sub_80048C4
+sub_80048C4:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C4
+
+ thumb_func_start sub_80048C8
+sub_80048C8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048C8
+
+ thumb_func_start sub_80048CC
+sub_80048CC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80048CC
+
+ thumb_func_start sub_80048D0
+sub_80048D0:
+ ldr r1, _080048E8
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ ldr r1, _080048EC
+ str r0, [r1, 0xC]
+ strh r0, [r1, 0x8]
+ ldr r1, _080048F0
+ ldr r0, _080048F4
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ bx lr
+ .align 2, 0
+_080048E8: .4byte gUnknown_20255F0
+_080048EC: .4byte gUnknown_2025648
+_080048F0: .4byte gUnknown_2025668
+_080048F4: .4byte 0x000003e7
+ thumb_func_end sub_80048D0
+
+ thumb_func_start sub_80048F8
+sub_80048F8:
+ ldr r0, _08004908
+ movs r1, 0
+ strh r1, [r0, 0x2]
+ ldr r0, _0800490C
+ strh r1, [r0, 0x2]
+ ldr r0, _08004910
+ strh r1, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_08004908: .4byte gUnknown_20255F0
+_0800490C: .4byte gUnknown_2025638
+_08004910: .4byte gUnknown_2025648
+ thumb_func_end sub_80048F8
+
+ thumb_func_start sub_8004914
+sub_8004914:
+ ldr r0, _0800494C
+ movs r1, 0x5
+ str r1, [r0, 0x20]
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldr r1, _08004950
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ strh r1, [r0, 0xC]
+ strh r1, [r0, 0xE]
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x12]
+ strh r1, [r0, 0x14]
+ strh r1, [r0, 0x16]
+ adds r1, r0, 0
+ adds r1, 0x28
+ strb r2, [r1]
+ adds r0, 0x29
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0800494C: .4byte gUnknown_2025600
+_08004950: .4byte 0x0000ffff
+ thumb_func_end sub_8004914
+
+ thumb_func_start UpdateInput
+UpdateInput:
+ push {r4-r6,lr}
+ ldr r4, _08004998
+ ldr r5, _0800499C
+ adds r1, r4, 0
+ adds r0, r5, 0
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r5, 0
+ bl ReadKeyInput
+ ldrh r0, [r4]
+ ldrh r3, [r5]
+ eors r0, r3
+ ands r0, r3
+ strh r0, [r5, 0x2]
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080049A8
+ ldrh r1, [r5, 0x8]
+ movs r0, 0xF0
+ adds r2, r0, 0
+ ands r2, r3
+ ands r0, r1
+ cmp r0, r2
+ bne _080049A0
+ ldr r0, [r5, 0xC]
+ cmp r0, 0x31
+ bgt _080049AC
+ adds r0, 0x1
+ str r0, [r5, 0xC]
+ b _080049AC
+ .align 2, 0
+_08004998: .4byte gUnknown_2025658
+_0800499C: .4byte gUnknown_2025648
+_080049A0:
+ strh r2, [r5, 0x8]
+ movs r0, 0x1
+ str r0, [r5, 0xC]
+ b _080049AC
+_080049A8:
+ str r0, [r5, 0xC]
+ strh r0, [r5, 0x8]
+_080049AC:
+ ldr r0, _080049C4
+ ldr r2, [r0, 0xC]
+ adds r3, r0, 0
+ cmp r2, 0x1
+ bne _080049C8
+ ldrh r0, [r3, 0x8]
+ movs r1, 0xF0
+ ands r1, r0
+ ldrh r0, [r3, 0x2]
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+ b _080049E0
+ .align 2, 0
+_080049C4: .4byte gUnknown_2025648
+_080049C8:
+ cmp r2, 0x30
+ bne _080049DC
+ movs r0, 0x2B
+ str r0, [r3, 0xC]
+ ldrh r1, [r3, 0x8]
+ movs r0, 0xF0
+ ands r0, r1
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ b _080049DE
+_080049DC:
+ movs r0, 0
+_080049DE:
+ strh r0, [r3, 0x4]
+_080049E0:
+ movs r0, 0
+ strh r0, [r3, 0x6]
+ ldrh r1, [r3]
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08004A0C
+ ldr r0, _08004A08
+ ldrh r2, [r0]
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r4, r0, 0
+ cmp r1, 0x63
+ bgt _08004A20
+ adds r0, r2, 0x1
+ strh r0, [r4]
+ b _08004A20
+ .align 2, 0
+_08004A08: .4byte gUnknown_2025668
+_08004A0C:
+ ldr r1, _08004A44
+ ldrh r0, [r1]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r1, 0
+ cmp r0, 0x9
+ bhi _08004A1E
+ strh r5, [r3, 0x6]
+_08004A1E:
+ strh r2, [r4]
+_08004A20:
+ ldrh r1, [r3]
+ movs r5, 0x80
+ lsls r5, 1
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08004A48
+ ldrh r1, [r4, 0x2]
+ movs r6, 0x2
+ ldrsh r0, [r4, r6]
+ cmp r0, 0x63
+ bgt _08004A5E
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x2]
+ b _08004A5E
+ .align 2, 0
+_08004A44: .4byte gUnknown_2025668
+_08004A48:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _08004A5C
+ ldrh r1, [r3, 0x6]
+ adds r0, r5, 0
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+_08004A5C:
+ strh r2, [r4, 0x2]
+_08004A5E:
+ ldr r2, _08004A94
+ ldrh r0, [r2]
+ ldrh r1, [r3]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ strh r0, [r2, 0x2]
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r3, 0x4]
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r3, 0x6]
+ orrs r0, r1
+ strh r0, [r2, 0x6]
+ ldr r2, _08004A98
+ ldrh r0, [r3]
+ ldr r1, _08004A9C
+ orrs r0, r1
+ ldr r1, [r2]
+ muls r0, r1
+ str r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004A94: .4byte gUnknown_2025638
+_08004A98: .4byte gUnknown_202562C
+_08004A9C: .4byte 0x054a1c41
+ thumb_func_end UpdateInput
+
+ thumb_func_start nullsub_6
+nullsub_6:
+ bx lr
+ thumb_func_end nullsub_6
+
+ thumb_func_start sub_8004AA4
+sub_8004AA4:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r4, [r1, 0x4]
+ cmp r2, 0
+ ble _08004AE8
+_08004AAE:
+ ldm r4!, {r1}
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _08004ADE
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r3]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r3, 0x6]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r3, 0x4]
+ adds r0, r1, 0x4
+ str r0, [r3, 0x8]
+ str r0, [r3, 0xC]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ lsls r0, 2
+ adds r0, 0x4
+ adds r0, r1, r0
+ str r0, [r3, 0x10]
+ ldr r0, [r1, 0x4]
+ str r0, [r3, 0x14]
+ b _08004AE0
+_08004ADE:
+ str r0, [r3]
+_08004AE0:
+ adds r3, 0x18
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08004AAE
+_08004AE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004AA4
+
+ thumb_func_start sub_8004AF0
+sub_8004AF0:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ cmp r7, r3
+ bge _08004B6A
+ adds r5, r3, 0
+_08004B08:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004B60
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004B60
+ mov r1, r8
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004B4E
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004B42
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004B42:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r1, 0x1
+ movs r7, 0x1
+_08004B4E:
+ cmp r1, 0
+ beq _08004B60
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl SetBGPaletteBufferColorRGB
+_08004B60:
+ subs r5, 0x1
+ adds r4, 0x18
+ adds r6, 0x1
+ cmp r5, 0
+ bne _08004B08
+_08004B6A:
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004AF0
+
+ thumb_func_start sub_8004B78
+sub_8004B78:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ cmp r7, r3
+ bge _08004BF2
+ adds r5, r3, 0
+_08004B90:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004BE8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004BE8
+ mov r1, r8
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004BD6
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004BCA
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004BCA:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r1, 0x1
+ movs r7, 0x1
+_08004BD6:
+ cmp r1, 0
+ beq _08004BE8
+ adds r1, r4, 0
+ adds r1, 0x14
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ bl nullsub_4
+_08004BE8:
+ subs r5, 0x1
+ adds r4, 0x18
+ adds r6, 0x1
+ cmp r5, 0
+ bne _08004B90
+_08004BF2:
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004B78
+
+ thumb_func_start sub_8004C00
+sub_8004C00:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r7, r1, 0
+ mov r10, r3
+ ldr r0, [sp, 0x28]
+ mov r8, r0
+ movs r1, 0
+ mov r9, r1
+ cmp r9, r2
+ bge _08004CDC
+ adds r6, r2, 0
+_08004C20:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D14
+ lsls r0, 24
+ cmp r0, 0
+ beq _08004CD2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8004D40
+ lsls r0, 24
+ cmp r0, 0
+ bne _08004CD2
+ ldrh r0, [r4, 0x6]
+ subs r0, 0x1
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08004C64
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x6]
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ cmp r1, r0
+ bcc _08004C58
+ ldr r0, [r4, 0x8]
+ str r0, [r4, 0xC]
+_08004C58:
+ ldr r1, [r4, 0xC]
+ ldm r1!, {r0}
+ str r0, [r4, 0x14]
+ str r1, [r4, 0xC]
+ movs r2, 0x1
+ mov r9, r2
+_08004C64:
+ mov r3, r8
+ movs r5, 0
+ ldrsh r0, [r3, r5]
+ ldrb r2, [r4, 0x14]
+ adds r1, r0, r2
+ movs r5, 0x2
+ ldrsh r0, [r3, r5]
+ ldrb r2, [r4, 0x15]
+ adds r3, r0, r2
+ mov r5, r8
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ ldrb r2, [r4, 0x16]
+ adds r5, r0, r2
+ cmp r1, 0xFF
+ ble _08004C86
+ movs r1, 0xFF
+_08004C86:
+ cmp r3, 0xFF
+ ble _08004C8C
+ movs r3, 0xFF
+_08004C8C:
+ cmp r5, 0xFF
+ ble _08004C92
+ movs r5, 0xFF
+_08004C92:
+ cmp r1, 0
+ bge _08004C98
+ movs r1, 0
+_08004C98:
+ cmp r3, 0
+ bge _08004C9E
+ movs r3, 0
+_08004C9E:
+ cmp r5, 0
+ bge _08004CA4
+ movs r5, 0
+_08004CA4:
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08004CF0
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ lsls r2, r3, 24
+ lsrs r2, 16
+ ldr r1, _08004CF4
+ ands r0, r1
+ orrs r0, r2
+ lsls r2, r5, 24
+ lsrs r2, 8
+ ldr r1, _08004CF8
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp]
+ adds r0, r7, 0
+ mov r1, sp
+ mov r2, r10
+ ldr r3, [sp, 0x24]
+ bl SetBGPaletteBufferColorRGB
+_08004CD2:
+ subs r6, 0x1
+ adds r4, 0x18
+ adds r7, 0x1
+ cmp r6, 0
+ bne _08004C20
+_08004CDC:
+ mov r0, r9
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08004CF0: .4byte 0xffffff00
+_08004CF4: .4byte 0xffff00ff
+_08004CF8: .4byte 0xff00ffff
+ thumb_func_end sub_8004C00
+
+ thumb_func_start sub_8004CFC
+sub_8004CFC:
+ push {lr}
+ cmp r1, 0
+ ble _08004D0E
+ movs r2, 0
+_08004D04:
+ str r2, [r0]
+ adds r0, 0x18
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08004D04
+_08004D0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004CFC
+
+ thumb_func_start sub_8004D14
+sub_8004D14:
+ push {r4,lr}
+ adds r2, r0, 0
+ movs r3, 0
+ cmp r3, r1
+ bge _08004D36
+ movs r4, 0x80
+ lsls r4, 24
+_08004D22:
+ ldr r0, [r2]
+ ands r0, r4
+ cmp r0, 0
+ beq _08004D2E
+ movs r0, 0x1
+ b _08004D38
+_08004D2E:
+ adds r2, 0x18
+ adds r3, 0x1
+ cmp r3, r1
+ blt _08004D22
+_08004D36:
+ movs r0, 0
+_08004D38:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004D14
+
+ thumb_func_start sub_8004D40
+sub_8004D40:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ movs r1, 0
+ cmp r1, r4
+ bge _08004D70
+ movs r6, 0x80
+ lsls r6, 24
+ movs r5, 0x80
+ lsls r5, 22
+_08004D54:
+ ldr r2, [r3]
+ adds r0, r2, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _08004D6A
+ ands r2, r5
+ cmp r2, 0
+ bne _08004D68
+ movs r0, 0
+ b _08004D72
+_08004D68:
+ adds r3, 0x18
+_08004D6A:
+ adds r1, 0x1
+ cmp r1, r4
+ blt _08004D54
+_08004D70:
+ movs r0, 0x1
+_08004D72:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8004D40
+
+ thumb_func_start sub_8004D78
+sub_8004D78:
+ push {lr}
+ movs r0, 0x1
+ bl sub_8004D8C
+ movs r0, 0
+ bl SetSavingIconCoords
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8004D78
+
+ thumb_func_start sub_8004D8C
+sub_8004D8C:
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08004E68
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08004E6C
+ ldr r0, _08004E70
+ str r0, [r1]
+ ldr r1, _08004E74
+ ldr r0, _08004E78
+ str r0, [r1]
+ ldr r0, _08004E7C
+ adds r1, r0, 0
+ adds r1, 0x8
+ adds r5, r0, 0
+ movs r2, 0
+ movs r3, 0xF0
+_08004DB0:
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ adds r0, 0x8
+ adds r1, 0x8
+ subs r3, 0x10
+ cmp r3, 0
+ bge _08004DB0
+ cmp r4, 0
+ beq _08004E50
+ movs r2, 0
+ ldr r1, _08004E80
+ ldr r0, _08004E84
+ movs r3, 0x7F
+_08004E42:
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ adds r1, 0x8
+ adds r0, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08004E42
+_08004E50:
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r5, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r2, _08004E88
+ adds r0, r5, r2
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08004E68: .4byte gUnknown_20266A8
+_08004E6C: .4byte gUnknown_2026E30
+_08004E70: .4byte 0x06010000
+_08004E74: .4byte gUnknown_203B074
+_08004E78: .4byte gUnknown_20266B0
+_08004E7C: .4byte gUnknown_20256A0
+_08004E80: .4byte gUnknown_20262A8
+_08004E84: .4byte gUnknown_2025EA8
+_08004E88: .4byte 0x00000804
+ thumb_func_end sub_8004D8C
+
+ thumb_func_start sub_8004E8C
+sub_8004E8C:
+ ldr r1, _08004EA4
+ strh r1, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xA]
+ bx lr
+ .align 2, 0
+_08004EA4: .4byte 0x0000ffff
+ thumb_func_end sub_8004E8C
+
+ thumb_func_start sub_8004EA8
+sub_8004EA8:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ adds r5, r0, 0
+ mov r8, r1
+ adds r0, r2, 0
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _08004EC2
+ bl sub_80052BC
+_08004EC2:
+ ldr r0, _08004F40
+ ldr r7, [r0]
+ mov r12, r0
+ cmp r7, 0x7F
+ ble _08004ECE
+ b _08005082
+_08004ECE:
+ mov r2, sp
+ ldrh r0, [r5]
+ strh r0, [r2]
+ ldrh r0, [r5, 0x2]
+ strh r0, [r2, 0x2]
+ ldrh r4, [r5, 0x4]
+ ldr r0, _08004F44
+ ands r0, r4
+ strh r0, [r2, 0x4]
+ ldrh r3, [r5, 0x6]
+ ldr r0, _08004F48
+ ands r0, r3
+ strh r0, [r2, 0x6]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r2, 0x8]
+ movs r1, 0xE0
+ lsls r1, 4
+ ands r1, r3
+ lsrs r1, 9
+ ldr r0, _08004F4C
+ ands r0, r4
+ lsls r0, 4
+ orrs r1, r0
+ strh r1, [r2, 0xA]
+ lsls r1, r7, 3
+ ldr r0, _08004F50
+ adds r3, r1, r0
+ mov r0, r8
+ movs r2, 0x16
+ ldrsh r1, [r0, r2]
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ lsls r0, 24
+ asrs r0, 24
+ adds r7, r1, r0
+ cmp r7, 0
+ bge _08004F1A
+ movs r7, 0
+_08004F1A:
+ cmp r7, 0xFF
+ ble _08004F20
+ movs r7, 0xFF
+_08004F20:
+ cmp r6, 0
+ bne _08004F54
+ add r2, sp, 0x4
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3, 0x2]
+ adds r2, 0x2
+ adds r1, r3, 0x4
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ ldrh r0, [r2]
+ strh r0, [r1, 0x2]
+ b _08004F86
+ .align 2, 0
+_08004F40: .4byte gUnknown_20266A8
+_08004F44: .4byte 0x0000fcff
+_08004F48: .4byte 0x0000f1ff
+_08004F4C: .4byte 0x000003ff
+_08004F50: .4byte gUnknown_20262A8
+_08004F54:
+ add r4, sp, 0x4
+ ldrh r1, [r4]
+ ldrh r0, [r6]
+ ands r0, r1
+ ldrh r1, [r6, 0x6]
+ orrs r0, r1
+ strh r0, [r3]
+ adds r4, 0x2
+ ldrh r1, [r4]
+ ldrh r0, [r6, 0x2]
+ ands r0, r1
+ ldrh r1, [r6, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ adds r4, 0x2
+ adds r2, r3, 0x4
+ ldrh r1, [r4]
+ ldrh r0, [r6, 0x4]
+ ands r0, r1
+ ldrh r1, [r6, 0xA]
+ orrs r0, r1
+ strh r0, [r2]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ strh r0, [r2, 0x2]
+_08004F86:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08004FB0
+ ldr r1, _08004FA8
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 1
+ adds r1, r0, r1
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08004FB0
+ adds r1, r0, 0
+ ldr r0, _08004FAC
+ ands r1, r0
+ b _08004FC0
+ .align 2, 0
+_08004FA8: .4byte gUnknown_2025672
+_08004FAC: .4byte 0x000003ff
+_08004FB0:
+ ldrh r1, [r3, 0x4]
+ ldr r2, _08005090
+ ands r1, r2
+ mov r6, r8
+ movs r4, 0x14
+ ldrsh r0, [r6, r4]
+ adds r1, r0
+ ands r1, r2
+_08004FC0:
+ ldrh r2, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r4, [r3, 0x2]
+ ldr r5, _08005094
+ adds r2, r5, 0
+ ands r2, r4
+ ldr r6, _08005098
+ adds r1, r2, r6
+ mov r2, r8
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ adds r2, r1, r0
+ movs r0, 0x40
+ negs r0, r0
+ mov r9, r0
+ cmp r2, r9
+ blt _08005082
+ cmp r2, 0xEF
+ bgt _08005082
+ ands r2, r5
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r4
+ orrs r0, r2
+ strh r0, [r3, 0x2]
+ ldrh r0, [r3, 0x6]
+ lsls r4, r0, 16
+ ldr r1, _0800509C
+ adds r5, r1, 0
+ lsrs r2, r4, 20
+ ldr r6, _080050A0
+ adds r1, r2, r6
+ mov r2, r8
+ movs r6, 0x2
+ ldrsh r0, [r2, r6]
+ adds r2, r1, r0
+ cmp r2, r9
+ blt _08005082
+ cmp r2, 0x9F
+ bgt _08005082
+ movs r0, 0xFF
+ ands r2, r0
+ ldrh r1, [r3]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ lsrs r0, r4, 17
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08005044
+ mov r0, r8
+ ldrb r1, [r0, 0x1E]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 12
+ ldrh r0, [r3, 0x4]
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08005044:
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08005068
+ ldr r1, _080050A4
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 12
+ ldrh r0, [r3, 0x4]
+ ands r0, r5
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08005068:
+ ldr r0, _080050A8
+ mov r4, r12
+ ldr r3, [r4]
+ lsls r2, r3, 3
+ adds r2, r0
+ ldr r1, _080050AC
+ lsls r0, r7, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r2, [r0]
+ adds r3, 0x1
+ str r3, [r4]
+_08005082:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005090: .4byte 0x000003ff
+_08005094: .4byte 0x000001ff
+_08005098: .4byte 0xffffff00
+_0800509C: .4byte 0x00000fff
+_080050A0: .4byte 0xfffffe00
+_080050A4: .4byte gUnknown_2025682
+_080050A8: .4byte gUnknown_2025EA8
+_080050AC: .4byte gUnknown_20256A0
+ thumb_func_end sub_8004EA8
+
+ thumb_func_start AddSprite
+AddSprite:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ mov r8, r2
+ adds r4, r3, 0
+ ldr r0, _080050F4
+ ldr r0, [r0]
+ cmp r0, 0x7F
+ bgt _08005168
+ lsls r1, r0, 3
+ ldr r0, _080050F8
+ adds r5, r1, r0
+ cmp r7, 0
+ bge _080050D2
+ movs r7, 0
+_080050D2:
+ cmp r7, 0xFF
+ ble _080050D8
+ movs r7, 0xFF
+_080050D8:
+ cmp r4, 0
+ bne _080050FC
+ ldrh r0, [r6]
+ strh r0, [r5]
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5, 0x2]
+ adds r1, r6, 0x4
+ adds r2, r5, 0x4
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2, 0x2]
+ b _08005128
+ .align 2, 0
+_080050F4: .4byte gUnknown_20266A8
+_080050F8: .4byte gUnknown_20262A8
+_080050FC:
+ ldrh r1, [r6]
+ ldrh r0, [r4]
+ ands r0, r1
+ ldrh r1, [r4, 0x6]
+ orrs r0, r1
+ strh r0, [r5]
+ ldrh r1, [r6, 0x2]
+ ldrh r0, [r4, 0x2]
+ ands r0, r1
+ ldrh r1, [r4, 0x8]
+ orrs r0, r1
+ strh r0, [r5, 0x2]
+ adds r2, r6, 0x4
+ adds r3, r5, 0x4
+ ldrh r1, [r2]
+ ldrh r0, [r4, 0x4]
+ ands r0, r1
+ ldrh r1, [r4, 0xA]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r3, 0x2]
+_08005128:
+ ldrh r4, [r5, 0x6]
+ lsrs r4, 4
+ adds r0, r4, 0
+ movs r1, 0
+ bl nullsub_3
+ movs r0, 0xFF
+ ands r4, r0
+ ldrh r1, [r5]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r4
+ strh r0, [r5]
+ mov r0, r8
+ cmp r0, 0
+ beq _0800514E
+ bl sub_80052BC
+_0800514E:
+ ldr r0, _08005174
+ ldr r4, _08005178
+ ldr r3, [r4]
+ lsls r2, r3, 3
+ adds r2, r0
+ ldr r1, _0800517C
+ lsls r0, r7, 3
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r2, [r0]
+ adds r3, 0x1
+ str r3, [r4]
+_08005168:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005174: .4byte gUnknown_2025EA8
+_08005178: .4byte gUnknown_20266A8
+_0800517C: .4byte gUnknown_20256A0
+ thumb_func_end AddSprite
+
+ thumb_func_start sub_8005180
+sub_8005180:
+ push {lr}
+ ldr r2, _080051A8
+ adds r1, r2, 0
+ cmp r2, 0
+ beq _0800519E
+_0800518A:
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08005198
+ cmp r2, 0
+ beq _08005196
+ str r1, [r2]
+_08005196:
+ adds r2, r1, 0
+_08005198:
+ ldr r1, [r1]
+ cmp r1, 0
+ bne _0800518A
+_0800519E:
+ movs r0, 0
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080051A8: .4byte gUnknown_20256A0
+ thumb_func_end sub_8005180
+
+ thumb_func_start CopySpritesToOam
+CopySpritesToOam:
+ push {r4-r6,lr}
+ ldr r3, _08005204
+ ldr r2, _08005208
+ movs r4, 0
+ ldr r6, _0800520C
+ cmp r3, 0
+ beq _080051E0
+ ldr r5, _08005210
+_080051BC:
+ ldr r1, [r3, 0x4]
+ cmp r1, 0
+ beq _080051D6
+ subs r2, 0x4
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r4, 0x1
+_080051D6:
+ ldr r3, [r3]
+ cmp r3, 0
+ beq _080051E0
+ cmp r2, r5
+ bhi _080051BC
+_080051E0:
+ ldr r1, _08005210
+ cmp r2, r1
+ bls _080051FA
+ movs r0, 0
+ movs r3, 0xA0
+_080051EA:
+ subs r2, 0x4
+ strh r0, [r2]
+ subs r2, 0x2
+ strh r0, [r2]
+ subs r2, 0x2
+ strh r3, [r2]
+ cmp r2, r1
+ bhi _080051EA
+_080051FA:
+ strh r4, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005204: .4byte gUnknown_20256A0
+_08005208: .4byte 0x07000400
+_0800520C: .4byte gUnknown_2025670
+_08005210: .4byte 0x07000008
+ thumb_func_end CopySpritesToOam
+
+ thumb_func_start SetSavingIconCoords
+SetSavingIconCoords:
+ push {lr}
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _0800522C
+ ldr r1, _08005228
+ strh r3, [r1]
+ movs r0, 0xA0
+ strh r0, [r1, 0x2]
+ b _0800523C
+ .align 2, 0
+_08005228: .4byte gUnknown_2025694
+_0800522C:
+ ldr r1, _08005240
+ ldrh r0, [r3]
+ movs r2, 0
+ strh r0, [r1]
+ ldrh r0, [r3, 0x2]
+ strh r0, [r1, 0x2]
+ ldr r0, _08005244
+ str r2, [r0]
+_0800523C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005240: .4byte gUnknown_2025694
+_08005244: .4byte gUnknown_2025698
+ thumb_func_end SetSavingIconCoords
+
+ thumb_func_start BlinkSavingIcon
+BlinkSavingIcon:
+ push {r4,lr}
+ movs r2, 0xE0
+ lsls r2, 19
+ ldr r0, _08005280
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r1, 0x1
+ str r1, [r0]
+ movs r0, 0x10
+ ands r3, r0
+ cmp r3, 0
+ beq _08005288
+ movs r0, 0xA0
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r1, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ ldr r4, _08005284
+ adds r0, r4, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ movs r0, 0
+ strh r0, [r2]
+ b _080052A8
+ .align 2, 0
+_08005280: .4byte gUnknown_2025698
+_08005284: .4byte 0x0000f3fc
+_08005288:
+ ldr r1, _080052B0
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ ldr r2, _080052B4
+ movs r4, 0x80
+ lsls r4, 7
+ adds r0, r4, 0
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ adds r2, 0x2
+ ldr r1, _080052B8
+ adds r0, r1, 0
+ strh r0, [r2]
+ adds r2, 0x2
+ strh r3, [r2]
+_080052A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080052B0: .4byte gUnknown_2025694
+_080052B4: .4byte 0x07000002
+_080052B8: .4byte 0x0000f3fc
+ thumb_func_end BlinkSavingIcon
+
+ thumb_func_start sub_80052BC
+sub_80052BC:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ beq _080052F2
+ ldr r5, _080052F8
+ ldr r6, _080052FC
+ ldr r4, _08005300
+_080052CC:
+ ldr r2, [r5]
+ cmp r2, r6
+ bcs _080052F2
+ ldr r0, [r3, 0x4]
+ str r0, [r2]
+ ldr r0, [r3]
+ str r0, [r2, 0x4]
+ ldr r1, [r4]
+ str r1, [r2, 0x8]
+ ldr r0, [r3, 0x4]
+ adds r1, r0
+ str r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0xC
+ str r0, [r5]
+ adds r3, 0x8
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ bne _080052CC
+_080052F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080052F8: .4byte gUnknown_203B074
+_080052FC: .4byte gUnknown_2026E30
+_08005300: .4byte gUnknown_2026E30
+ thumb_func_end sub_80052BC
+
+ thumb_func_start sub_8005304
+sub_8005304:
+ push {r4,lr}
+ ldr r4, _0800530C
+ b _0800532A
+ .align 2, 0
+_0800530C: .4byte gUnknown_20266B0
+_08005310:
+ ldr r1, [r4, 0x4]
+ cmp r1, 0
+ beq _08005320
+ ldr r0, [r4, 0x8]
+ ldr r2, [r4]
+ bl CpuCopy
+ b _08005328
+_08005320:
+ ldr r0, [r4, 0x8]
+ ldr r1, [r4]
+ bl CpuClear
+_08005328:
+ adds r4, 0xC
+_0800532A:
+ ldr r0, _08005338
+ ldr r0, [r0]
+ cmp r4, r0
+ bcc _08005310
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005338: .4byte gUnknown_203B074
+ thumb_func_end sub_8005304
+
+ thumb_func_start sub_800533C
+sub_800533C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ adds r5, r2, 0
+ adds r7, r3, 0
+ ldr r1, [sp, 0x18]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0x18
+ ldrsh r1, [r5, r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r4, [r1]
+ ldr r1, _08005368
+ movs r2, 0x14
+ ldrsh r0, [r5, r2]
+ lsls r0, 5
+ ldr r2, _0800536C
+ adds r0, r2
+ str r0, [r1]
+ b _0800538E
+ .align 2, 0
+_08005368: .4byte gUnknown_2026E30
+_0800536C: .4byte 0x06010000
+_08005370:
+ cmp r6, 0
+ beq _08005382
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ blt _08005382
+ lsls r0, 2
+ add r0, r8
+ ldr r2, [r0]
+_08005382:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r3, r7, 0
+ bl sub_8004EA8
+ adds r4, 0xA
+_0800538E:
+ movs r2, 0
+ ldrh r1, [r4]
+ ldr r0, _080053A8
+ cmp r1, r0
+ bne _08005370
+ ldrh r0, [r4, 0x2]
+ cmp r0, r1
+ bne _08005370
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080053A8: .4byte 0x0000ffff
+ thumb_func_end sub_800533C
+
+ thumb_func_start sub_80053AC
+sub_80053AC:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r1, 0x4]
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_80053D0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80053AC
+
+ thumb_func_start sub_80053D0
+sub_80053D0:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, [sp, 0x1C]
+ lsls r0, 24
+ movs r2, 0
+ movs r3, 0x80
+ lsls r3, 8
+ strh r3, [r4]
+ cmp r0, 0
+ beq _080053F6
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ adds r0, r3, 0
+ orrs r0, r1
+ strh r0, [r4]
+_080053F6:
+ strh r2, [r4, 0x2]
+ ldr r0, [sp, 0x18]
+ strh r0, [r4, 0x4]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ ldr r0, [sp, 0x14]
+ strh r0, [r4, 0x1C]
+ ldr r0, _08005438
+ strh r0, [r4, 0x20]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x22]
+ str r2, [r4, 0x14]
+ str r2, [r4, 0x18]
+ strh r2, [r4, 0x6]
+ ldr r1, [r5, 0x4]
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ ldr r0, [r5]
+ str r0, [r4, 0x34]
+ ldr r0, [r5, 0xC]
+ str r0, [r4, 0x38]
+ ldr r0, [r5, 0x10]
+ str r0, [r4, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005438: .4byte 0x0000ffff
+ thumb_func_end sub_80053D0
+
+ thumb_func_start sub_800543C
+sub_800543C:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r1, 0x4]
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ bl sub_800545C
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800543C
+
+ thumb_func_start sub_800545C
+sub_800545C:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ adds r5, r3, 0
+ ldr r0, [sp, 0x18]
+ lsls r0, 24
+ movs r2, 0
+ movs r3, 0x80
+ lsls r3, 8
+ strh r3, [r4]
+ cmp r0, 0
+ beq _08005482
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ adds r0, r3, 0
+ orrs r0, r1
+ strh r0, [r4]
+_08005482:
+ strh r2, [r4, 0x2]
+ ldr r0, [sp, 0x14]
+ strh r0, [r4, 0x4]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0xE]
+ strh r5, [r4, 0x1C]
+ ldr r0, _080054B8
+ strh r0, [r4, 0x20]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x22]
+ str r2, [r4, 0x14]
+ str r2, [r4, 0x18]
+ strh r2, [r4, 0x6]
+ ldr r1, [r6, 0x4]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ str r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ ldr r0, [r6]
+ str r0, [r4, 0x34]
+ str r2, [r4, 0x30]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080054B8: .4byte 0x0000ffff
+ thumb_func_end sub_800545C
+
+ thumb_func_start sub_80054BC
+sub_80054BC:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _080054D0
+ movs r0, 0
+ b _080054D2
+_080054D0:
+ lsrs r0, r1, 15
+_080054D2:
+ cmp r0, 0
+ beq _08005586
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4]
+ cmp r0, 0
+ blt _08005524
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r3
+ cmp r0, 0
+ bne _08005586
+ ldrh r2, [r4, 0x6]
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ ldr r0, _0800550C
+ cmp r1, r0
+ bgt _080054FA
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x6]
+_080054FA:
+ ldrh r1, [r4, 0x4]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08005510
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x4]
+ b _08005586
+ .align 2, 0
+_0800550C: .4byte 0x0000752f
+_08005510:
+ ldrh r1, [r4, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08005524
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _08005586
+_08005524:
+ ldr r0, [r4, 0x2C]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08005550
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r3
+ cmp r0, 0
+ bne _08005542
+ movs r1, 0x80
+ lsls r1, 6
+ adds r0, r1, 0
+ orrs r0, r3
+ strh r0, [r4]
+ b _08005586
+_08005542:
+ ldr r0, [r4, 0x28]
+ str r0, [r4, 0x2C]
+ bl Random
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r4, 0x4]
+_08005550:
+ ldrh r1, [r4]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r1, [r4, 0x2C]
+ ldrb r0, [r1]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x10]
+ ldrh r0, [r1, 0xA]
+ strh r0, [r4, 0x12]
+ ldrb r0, [r1, 0x1]
+ str r0, [r4, 0x14]
+ ldrb r2, [r1, 0x1]
+ ldr r0, [r4, 0x18]
+ orrs r0, r2
+ str r0, [r4, 0x18]
+ adds r1, 0xC
+ str r1, [r4, 0x2C]
+_08005586:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80054BC
+
+ thumb_func_start sub_800558C
+sub_800558C:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldrh r0, [r5]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _08005602
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _080055AE
+ adds r0, r5, 0
+ bl sub_80054BC
+_080055AE:
+ ldrh r0, [r5]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _08005602
+ ldrh r0, [r5, 0xC]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xE]
+ adds r0, r6
+ strh r0, [r5, 0xA]
+ adds r1, r5, 0
+ adds r1, 0x26
+ ldr r0, [sp, 0x18]
+ strb r0, [r1]
+ strh r7, [r5, 0x1E]
+ ldr r0, [r5, 0x34]
+ ldr r1, [r5, 0x38]
+ adds r2, r5, 0
+ adds r2, 0x8
+ movs r3, 0x22
+ ldrsh r4, [r5, r3]
+ movs r6, 0x20
+ ldrsh r3, [r5, r6]
+ eors r4, r3
+ negs r3, r4
+ orrs r3, r4
+ lsrs r3, 31
+ str r3, [sp]
+ ldr r3, [sp, 0x1C]
+ bl sub_800533C
+ ldrh r0, [r5, 0x20]
+ strh r0, [r5, 0x22]
+ ldrh r1, [r5]
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08005602
+ ldr r0, _0800560C
+ ands r0, r1
+ strh r0, [r5]
+_08005602:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800560C: .4byte 0x0000f7ff
+ thumb_func_end sub_800558C
+
+ thumb_func_start sub_8005610
+sub_8005610:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ bl sub_800561C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005610
+
+ thumb_func_start sub_800561C
+sub_800561C:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r0, r1, 0
+ adds r7, r2, 0
+ adds r6, r3, 0
+ ldr r1, [r5, 0x14]
+ cmp r1, 0
+ beq _0800563A
+ lsls r0, 5
+ ldr r2, _08005664
+ adds r0, r2
+ ldr r2, [r5, 0x1C]
+ lsls r2, 5
+ bl CpuCopy
+_0800563A:
+ ldr r0, [r5, 0x18]
+ cmp r0, 0
+ beq _0800565C
+ movs r4, 0
+_08005642:
+ movs r1, 0xF0
+ lsls r1, 1
+ adds r0, r4, r1
+ lsls r2, r4, 2
+ ldr r1, [r5, 0x18]
+ adds r1, r2
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl SetBGPaletteBufferColorRGB
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _08005642
+_0800565C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08005664: .4byte 0x06010000
+ thumb_func_end sub_800561C
+
+ thumb_func_start sub_8005668
+sub_8005668:
+ push {lr}
+ ldr r0, [r0, 0x4]
+ bl sub_8005674
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8005668
+
+ thumb_func_start sub_8005674
+sub_8005674:
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, [r4, 0x14]
+ cmp r3, 0
+ beq _0800568E
+ lsls r0, r1, 5
+ ldr r1, _08005698
+ adds r0, r1
+ ldr r2, [r4, 0x1C]
+ lsls r2, 5
+ adds r1, r3, 0
+ bl CpuCopy
+_0800568E:
+ ldr r0, [r4, 0x18]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08005698: .4byte 0x06010000
+ thumb_func_end sub_8005674
+
+ thumb_func_start sub_800569C
+sub_800569C:
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0
+ strh r0, [r3]
+ strh r0, [r3, 0x2]
+ ldrh r0, [r4]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _080056F8
+ cmp r2, 0x3
+ bhi _080056F8
+ ldr r1, [r4, 0x30]
+ cmp r1, 0
+ beq _080056F2
+ movs r5, 0x20
+ ldrsh r0, [r4, r5]
+ lsls r0, 4
+ adds r5, r1, r0
+ lsls r0, r2, 2
+ adds r2, r5, r0
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ cmp r1, 0x63
+ bne _080056E0
+ movs r6, 0x2
+ ldrsh r1, [r2, r6]
+ cmp r1, 0x63
+ bne _080056E0
+ strh r1, [r3]
+ strh r1, [r3, 0x2]
+ b _080056F8
+_080056E0:
+ adds r0, r5, r0
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0xC]
+ adds r1, r2
+ strh r1, [r3]
+ ldrh r0, [r0, 0x2]
+ ldrh r4, [r4, 0xE]
+ adds r0, r4
+ b _080056F6
+_080056F2:
+ movs r0, 0x63
+ strh r0, [r3]
+_080056F6:
+ strh r0, [r3, 0x2]
+_080056F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800569C
+
+ thumb_func_start sub_8005700
+sub_8005700:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldrh r0, [r1]
+ lsrs r0, 15
+ cmp r0, 0
+ beq _0800575C
+ ldr r2, [r1, 0x30]
+ cmp r2, 0
+ beq _0800574C
+ movs r4, 0x20
+ ldrsh r0, [r1, r4]
+ lsls r0, 4
+ adds r2, r0
+ adds r4, r2, 0
+ adds r4, 0xC
+_0800571E:
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ cmp r0, 0x63
+ bne _08005732
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ cmp r0, 0x63
+ bne _08005732
+ strh r0, [r3]
+ b _08005740
+_08005732:
+ ldrh r0, [r2]
+ ldrh r5, [r1, 0xC]
+ adds r0, r5
+ strh r0, [r3]
+ ldrh r0, [r2, 0x2]
+ ldrh r5, [r1, 0xE]
+ adds r0, r5
+_08005740:
+ strh r0, [r3, 0x2]
+ adds r3, 0x4
+ adds r2, 0x4
+ cmp r2, r4
+ ble _0800571E
+ b _0800575C
+_0800574C:
+ movs r1, 0x63
+ movs r0, 0x3
+_08005750:
+ strh r1, [r3]
+ strh r1, [r3, 0x2]
+ adds r3, 0x4
+ subs r0, 0x1
+ cmp r0, 0
+ bge _08005750
+_0800575C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005700
+
+ thumb_func_start sub_8005764
+sub_8005764:
+ push {lr}
+ ldr r1, [r1, 0x4]
+ bl sub_8005770
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005764
+
+ thumb_func_start sub_8005770
+sub_8005770:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r2
+ adds r7, r3, 0
+ movs r5, 0
+ adds r0, 0x10
+ lsls r6, r0, 4
+ adds r4, r1, 0
+_08005782:
+ adds r0, r6, r5
+ adds r1, r4, 0
+ mov r2, r8
+ adds r3, r7, 0
+ bl SetBGPaletteBufferColorRGB
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08005782
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8005770
+
+ thumb_func_start nullsub_7
+nullsub_7:
+ bx lr
+ thumb_func_end nullsub_7
+
+ thumb_func_start nullsub_8
+nullsub_8:
+ bx lr
+ thumb_func_end nullsub_8
+
+ thumb_func_start nullsub_9
+nullsub_9:
+ bx lr
+ thumb_func_end nullsub_9
+
+ thumb_func_start nullsub_10
+nullsub_10:
+ bx lr
+ thumb_func_end nullsub_10
+
+ thumb_func_start nullsub_144
+nullsub_144:
+ bx lr
+ thumb_func_end nullsub_144
+
+ thumb_func_start nullsub_11
+nullsub_11:
+ bx lr
+ thumb_func_end nullsub_11
+
+ thumb_func_start nullsub_12
+nullsub_12:
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13:
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start nullsub_145
+nullsub_145:
+ bx lr
+ thumb_func_end nullsub_145
+
+ thumb_func_start nullsub_14
+nullsub_14:
+ bx lr
+ thumb_func_end nullsub_14
+
+ thumb_func_start nullsub_146
+nullsub_146:
+ bx lr
+ thumb_func_end nullsub_146
+
+ thumb_func_start nullsub_147
+nullsub_147:
+ bx lr
+ thumb_func_end nullsub_147
+
+ thumb_func_start nullsub_148
+nullsub_148:
+ bx lr
+ thumb_func_end nullsub_148
+
+ thumb_func_start nullsub_149
+nullsub_149:
+ bx lr
+ thumb_func_end nullsub_149
+
+ thumb_func_start sub_80057D8
+sub_80057D8:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80057D8
+
+ thumb_func_start sub_80057DC
+sub_80057DC:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80057DC
+
+ thumb_func_start nullsub_150
+nullsub_150:
+ bx lr
+ thumb_func_end nullsub_150
+
+ thumb_func_start nullsub_151
+nullsub_151:
+ bx lr
+ thumb_func_end nullsub_151
+
+ thumb_func_start sub_80057E8
+sub_80057E8:
+ ldr r1, _08005814
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08005818
+ movs r2, 0
+ str r2, [r0]
+ ldr r1, _0800581C
+ movs r0, 0x1
+ str r0, [r1]
+ ldr r0, _08005820
+ str r2, [r0]
+ ldr r0, _08005824
+ str r2, [r0]
+ ldr r0, _08005828
+ strb r2, [r0]
+ ldr r1, _0800582C
+ ldr r3, _08005830
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08005834
+ str r2, [r0]
+ bx lr
+ .align 2, 0
+_08005814: .4byte gUnknown_2026E4C
+_08005818: .4byte gUnknown_2026E54
+_0800581C: .4byte gUnknown_2026E50
+_08005820: .4byte gUnknown_2026E58
+_08005824: .4byte gUnknown_2026E3C
+_08005828: .4byte gUnknown_2026E38
+_0800582C: .4byte gUnknown_2026E4E
+_08005830: .4byte 0x0000060c
+_08005834: .4byte gUnknown_203B078
+ thumb_func_end sub_80057E8
+
+ thumb_func_start sub_8005838
+sub_8005838:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08005880
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08005854
+ movs r1, 0
+_08005854:
+ ldr r0, _08005884
+ ldr r0, [r0]
+ ldr r3, _08005888
+ cmp r0, 0
+ bne _08005860
+ ldr r3, _0800588C
+_08005860:
+ ldr r0, _08005890
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _0800586A
+ ldr r2, _08005894
+_0800586A:
+ ldr r0, _08005898
+ str r3, [r0]
+ cmp r1, 0x5
+ bls _08005876
+ bl _08006094
+_08005876:
+ lsls r0, r1, 2
+ ldr r1, _0800589C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08005880: .4byte gUnknown_2026E4C
+_08005884: .4byte gUnknown_2026E54
+_08005888: .4byte gUnknown_20270E8
+_0800588C: .4byte gUnknown_2026E60
+_08005890: .4byte gUnknown_203B078
+_08005894: .4byte gUnknown_80B83EA
+_08005898: .4byte gUnknown_2026E58
+_0800589C: .4byte _080058A0
+ .align 2, 0
+_080058A0:
+ .4byte _080058B8
+ .4byte _08005984
+ .4byte _08005A98
+ .4byte _08005BAC
+ .4byte _08005D46
+ .4byte _08005E58
+_080058B8:
+ movs r1, 0
+ movs r7, 0x9
+_080058BC:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080058BC
+ b _08006094
+_08005984:
+ ldr r1, _08005A94
+ movs r7, 0x9
+_08005988:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005A90
+ b _08005988
+_08005A90:
+ b _08006094
+ .align 2, 0
+_08005A94: .4byte gUnknown_80B816A
+_08005A98:
+ ldr r1, _08005BA8
+ movs r7, 0x9
+_08005A9C:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005BA4
+ b _08005A9C
+_08005BA4:
+ b _08006094
+ .align 2, 0
+_08005BA8: .4byte gUnknown_80B802A
+_08005BAC:
+ ldr r0, [r5]
+ mov r10, r0
+ cmp r0, 0
+ bge _08005BBA
+ ldr r0, [r5, 0x8]
+ cmp r0, 0
+ blt _08005BDC
+_08005BBA:
+ ldr r1, [r5, 0x4]
+ cmp r1, 0
+ bge _08005BC6
+ ldr r0, [r5, 0xC]
+ cmp r0, 0
+ blt _08005BDC
+_08005BC6:
+ mov r4, r10
+ cmp r4, 0xEF
+ ble _08005BD2
+ ldr r0, [r5, 0x8]
+ cmp r0, 0xEF
+ bgt _08005BDC
+_08005BD2:
+ cmp r1, 0x9F
+ ble _08005CA8
+ ldr r0, [r5, 0xC]
+ cmp r0, 0x9F
+ ble _08005CA8
+_08005BDC:
+ movs r1, 0xF0
+ movs r7, 0x9
+_08005BE0:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08005BE0
+ b _08006094
+_08005CA8:
+ movs r7, 0
+ mov r8, r1
+ movs r6, 0x80
+ lsls r6, 1
+ mov r12, r6
+ lsls r0, r1, 1
+ ldr r1, _08005CCC
+ subs r6, r1, r0
+ mov r9, r10
+_08005CBA:
+ cmp r8, r7
+ ble _08005CD0
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ mov r4, r12
+ strh r4, [r3]
+ b _08005D3A
+ .align 2, 0
+_08005CCC: .4byte gUnknown_80B8008
+_08005CD0:
+ ldr r1, [r5, 0xC]
+ cmp r1, r7
+ bgt _08005CE2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ mov r0, r12
+ b _08005D38
+_08005CE2:
+ mov r4, r8
+ subs r0, r7, r4
+ cmp r0, 0xF
+ bgt _08005CF0
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ b _08005D00
+_08005CF0:
+ subs r0, r1, r7
+ cmp r0, 0xF
+ bgt _08005D10
+ lsls r0, 1
+ ldr r1, _08005D0C
+ adds r0, r1
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+_08005D00:
+ mov r0, r9
+ adds r4, r0, r1
+ ldr r0, [r5, 0x8]
+ subs r1, r0, r1
+ b _08005D14
+ .align 2, 0
+_08005D0C: .4byte gUnknown_80B8008
+_08005D10:
+ mov r4, r10
+ ldr r1, [r5, 0x8]
+_08005D14:
+ cmp r4, 0
+ bge _08005D1A
+ movs r4, 0
+_08005D1A:
+ cmp r4, 0xEF
+ ble _08005D20
+ movs r4, 0xEF
+_08005D20:
+ cmp r1, 0
+ bgt _08005D26
+ movs r1, 0x1
+_08005D26:
+ cmp r1, 0xF0
+ ble _08005D2C
+ movs r1, 0xF0
+_08005D2C:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ lsls r0, r1, 8
+ orrs r0, r4
+_08005D38:
+ strh r0, [r3]
+_08005D3A:
+ adds r3, 0x2
+ adds r6, 0x2
+ adds r7, 0x1
+ cmp r7, 0x9F
+ ble _08005CBA
+ b _08006094
+_08005D46:
+ ldr r1, _08005E54
+ movs r7, 0xE
+_08005D4A:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ ldrh r0, [r1]
+ strh r0, [r3]
+ adds r1, 0x2
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08005E52
+ b _08005D4A
+_08005E52:
+ b _08006094
+ .align 2, 0
+_08005E54: .4byte gUnknown_80B82AA
+_08005E58:
+ ldr r4, _08005FF4
+ ldr r5, _08005FF8
+ ldr r6, _08005FFC
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r0, 0
+ movs r7, 0xE
+_08005E66:
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r2, 0x2
+ adds r3, 0x2
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08005E66
+ ldr r4, [r4]
+ str r4, [sp]
+ ldr r5, [r5]
+ str r5, [sp, 0x4]
+ ldr r6, [r6]
+ str r6, [sp, 0x8]
+ adds r1, r6, 0
+ cmp r6, 0
+ bge _08005F40
+ adds r1, 0xFF
+_08005F40:
+ asrs r1, 8
+ adds r1, 0x1
+ movs r0, 0x80
+ lsls r0, 3
+ bl __divsi3
+ str r0, [sp, 0xC]
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _08005F56
+ adds r0, 0xFF
+_08005F56:
+ asrs r4, r0, 8
+ adds r5, r4, 0
+ movs r3, 0
+ lsls r0, r4, 2
+ adds r7, r0, 0x2
+ mov r9, r7
+_08005F62:
+ adds r0, r3, 0
+ str r3, [sp, 0x10]
+ bl sub_8009C7C
+ ldr r1, [sp, 0x8]
+ muls r0, r1
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ bge _08005F76
+ adds r0, 0xFF
+_08005F76:
+ asrs r0, 8
+ ldr r2, [sp, 0x4]
+ adds r1, r2, r0
+ cmp r1, 0
+ bge _08005F82
+ adds r1, 0xFF
+_08005F82:
+ asrs r1, 8
+ str r1, [sp, 0x14]
+ ldr r6, [sp, 0x4]
+ subs r0, r6, r0
+ cmp r0, 0
+ bge _08005F90
+ adds r0, 0xFF
+_08005F90:
+ asrs r0, 8
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ cmp r5, r0
+ blt _08005FA4
+ ldr r1, [sp, 0xC]
+ adds r1, r3
+ mov r10, r1
+ cmp r4, r8
+ ble _0800608A
+_08005FA4:
+ adds r0, r3, 0
+ str r3, [sp, 0x10]
+ bl sub_8009D04
+ ldr r2, [sp, 0x8]
+ muls r0, r2
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ bge _08005FB8
+ adds r0, 0xFF
+_08005FB8:
+ asrs r0, 8
+ ldr r6, [sp]
+ subs r1, r6, r0
+ cmp r1, 0
+ bge _08005FC4
+ adds r1, 0xFF
+_08005FC4:
+ asrs r1, 8
+ ldr r2, [sp]
+ adds r0, r2, r0
+ cmp r0, 0
+ bge _08005FD0
+ adds r0, 0xFF
+_08005FD0:
+ asrs r0, 8
+ cmp r1, 0
+ bge _08005FD8
+ movs r1, 0
+_08005FD8:
+ cmp r0, 0
+ bge _08005FDE
+ movs r0, 0
+_08005FDE:
+ cmp r1, 0xEF
+ ble _08005FE4
+ movs r1, 0x9F
+_08005FE4:
+ cmp r0, 0xEF
+ ble _08005FEA
+ movs r0, 0x9F
+_08005FEA:
+ cmp r1, r0
+ ble _08006000
+ lsls r2, r1, 8
+ orrs r2, r0
+ b _08006004
+ .align 2, 0
+_08005FF4: .4byte gUnknown_2026E40
+_08005FF8: .4byte gUnknown_2026E44
+_08005FFC: .4byte gUnknown_2026E48
+_08006000:
+ lsls r2, r0, 8
+ orrs r2, r1
+_08006004:
+ ldr r6, [sp, 0xC]
+ adds r3, r6
+ mov r10, r3
+ ldr r0, [sp, 0x14]
+ cmp r5, r0
+ bge _0800604E
+ ldr r1, _08006030
+ mov r12, r1
+ ldr r3, _08006034
+ add r3, r9
+ ldr r1, _08006038
+ add r1, r9
+_0800601C:
+ cmp r5, 0
+ blt _0800603E
+ cmp r5, 0x9F
+ bgt _0800603E
+ mov r6, r12
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0800603C
+ strh r2, [r1]
+ b _0800603E
+ .align 2, 0
+_08006030: .4byte gUnknown_2026E54
+_08006034: .4byte gUnknown_20270E8
+_08006038: .4byte gUnknown_2026E60
+_0800603C:
+ strh r2, [r3]
+_0800603E:
+ adds r3, 0x4
+ adds r1, 0x4
+ movs r0, 0x4
+ add r9, r0
+ adds r5, 0x1
+ ldr r6, [sp, 0x14]
+ cmp r5, r6
+ blt _0800601C
+_0800604E:
+ cmp r4, r8
+ ble _0800608A
+ ldr r6, _08006070
+ ldr r0, _08006074
+ adds r3, r7, r0
+ ldr r0, _08006078
+ adds r1, r7, r0
+_0800605C:
+ cmp r4, 0
+ blt _0800607E
+ cmp r4, 0x9F
+ bgt _0800607E
+ ldr r0, [r6]
+ cmp r0, 0
+ bne _0800607C
+ strh r2, [r1]
+ b _0800607E
+ .align 2, 0
+_08006070: .4byte gUnknown_2026E54
+_08006074: .4byte gUnknown_20270E8
+_08006078: .4byte gUnknown_2026E60
+_0800607C:
+ strh r2, [r3]
+_0800607E:
+ subs r3, 0x4
+ subs r1, 0x4
+ subs r7, 0x4
+ subs r4, 0x1
+ cmp r4, r8
+ bgt _0800605C
+_0800608A:
+ mov r3, r10
+ ldr r0, _080060A4
+ cmp r3, r0
+ bgt _08006094
+ b _08005F62
+_08006094:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080060A4: .4byte 0x000003ff
+ thumb_func_end sub_8005838
+
+ thumb_func_start sub_80060A8
+sub_80060A8:
+ push {lr}
+ ldr r1, _080060D8
+ ldr r0, _080060DC
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _080060E0
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080060BE
+ movs r1, 0x1
+_080060BE:
+ str r1, [r2]
+ ldr r2, _080060E4
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _080060CC
+ movs r1, 0x1
+_080060CC:
+ str r1, [r2]
+ ldr r1, _080060E8
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080060D8: .4byte gUnknown_2026E3C
+_080060DC: .4byte gUnknown_2026E58
+_080060E0: .4byte gUnknown_2026E54
+_080060E4: .4byte gUnknown_2026E50
+_080060E8: .4byte gUnknown_2026E38
+ thumb_func_end sub_80060A8
+
+ thumb_func_start sub_80060EC
+sub_80060EC:
+ push {lr}
+ ldr r1, _08006130
+ ldr r0, _08006134
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08006138
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08006102
+ movs r1, 0x1
+_08006102:
+ str r1, [r2]
+ ldr r2, _0800613C
+ movs r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08006110
+ movs r1, 0x1
+_08006110:
+ str r1, [r2]
+ ldr r0, _08006140
+ ldrh r2, [r0]
+ movs r0, 0xF8
+ lsls r0, 5
+ ands r0, r2
+ lsrs r0, 8
+ movs r1, 0x1F
+ ands r1, r2
+ bl sub_800CC44
+ ldr r1, _08006144
+ movs r0, 0x1
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08006130: .4byte gUnknown_2026E3C
+_08006134: .4byte gUnknown_2026E58
+_08006138: .4byte gUnknown_2026E54
+_0800613C: .4byte gUnknown_2026E50
+_08006140: .4byte gUnknown_2026E4E
+_08006144: .4byte gUnknown_2026E38
+ thumb_func_end sub_80060EC
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/other_random.s b/asm/other_random.s
new file mode 100644
index 0000000..751fc20
--- /dev/null
+++ b/asm/other_random.s
@@ -0,0 +1,48 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start OtherRandom
+OtherRandom:
+ ldr r1, _08004514
+ ldrh r2, [r1]
+ movs r0, 0x6D
+ muls r0, r2
+ ldr r2, _08004518
+ adds r0, r2
+ strh r0, [r1]
+ ldrh r0, [r1]
+ bx lr
+ .align 2, 0
+_08004514: .4byte gUnknown_203B070
+_08004518: .4byte 0x000003fd
+ thumb_func_end OtherRandom
+
+ thumb_func_start OtherRandomCapped
+OtherRandomCapped:
+ push {r4,lr}
+ adds r4, r0, 0
+ bl OtherRandom
+ muls r0, r4
+ asrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end OtherRandomCapped
+
+ thumb_func_start OtherRandomRange
+OtherRandomRange:
+ push {r4,lr}
+ adds r4, r0, 0
+ subs r0, r1, r4
+ bl OtherRandomCapped
+ adds r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end OtherRandomRange
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/util.s b/asm/util.s
new file mode 100644
index 0000000..3b3f95a
--- /dev/null
+++ b/asm/util.s
@@ -0,0 +1,156 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start ReverseString
+ReverseString:
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ subs r4, r1, 0x1
+ adds r2, r3, r4
+ movs r5, 0
+ cmp r5, r4
+ bge _08004566
+_08004552:
+ ldrb r1, [r3]
+ ldrb r0, [r2]
+ strb r0, [r3]
+ adds r3, 0x1
+ strb r1, [r2]
+ subs r2, 0x1
+ adds r5, 0x1
+ subs r4, 0x1
+ cmp r5, r4
+ blt _08004552
+_08004566:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ReverseString
+
+ thumb_func_start ConvertToDecimal
+ConvertToDecimal:
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ cmp r4, 0
+ ble _08004578
+ movs r7, 0x1
+ b _0800457E
+_08004578:
+ negs r4, r4
+ movs r7, 0x1
+ negs r7, r7
+_0800457E:
+ cmp r2, 0
+ ble _080045A0
+ adds r6, r0, 0
+ adds r5, r2, 0
+_08004586:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ stm r6!, {r0}
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0, 0
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08004586
+_080045A0:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertToDecimal
+
+ thumb_func_start ConvertFromDecimal
+ConvertFromDecimal:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldm r4!, {r1}
+ movs r3, 0xA
+ cmp r2, 0x1
+ ble _080045CA
+ subs r2, 0x1
+_080045B8:
+ ldm r4!, {r0}
+ muls r0, r3
+ adds r1, r0
+ subs r2, 0x1
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r3, r0, 1
+ cmp r2, 0
+ bne _080045B8
+_080045CA:
+ adds r0, r1, 0
+ cmp r5, 0
+ bge _080045D2
+ negs r0, r0
+_080045D2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertFromDecimal
+
+ thumb_func_start ConvertFromBCD
+ConvertFromBCD:
+ push {r4,lr}
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r3, 0
+ cmp r1, 0
+ ble _080045FA
+ movs r4, 0xF
+_080045E6:
+ adds r0, r1, 0
+ ands r0, r4
+ muls r0, r2
+ adds r3, r0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r2, r0, 1
+ asrs r1, 4
+ cmp r1, 0
+ bgt _080045E6
+_080045FA:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertFromBCD
+
+ thumb_func_start ConvertToBCD
+ConvertToBCD:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ movs r6, 0
+ cmp r4, 0
+ ble _0800462C
+_08004610:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, r5
+ adds r6, r0
+ adds r5, 0x4
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0
+ bgt _08004610
+_0800462C:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end ConvertToBCD
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 7869f1b..1eb1602 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -37,6 +37,10 @@ SECTIONS {
asm/code.o(.text);
asm/memory.o(.text);
asm/code_80035F0.o(.text);
+ asm/other_random.o(.text);
+ asm/util.o(.text);
+ asm/bg_palette_buffer.o(.text);
+ asm/code_80047E8.o(.text);
src/random.o(.text);
asm/code_8006218.o(.text);
src/main.o(.text);