summaryrefslogtreecommitdiff
path: root/asm/event_flag.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/event_flag.s')
-rw-r--r--asm/event_flag.s2591
1 files changed, 2591 insertions, 0 deletions
diff --git a/asm/event_flag.s b/asm/event_flag.s
new file mode 100644
index 0000000..3fdcf00
--- /dev/null
+++ b/asm/event_flag.s
@@ -0,0 +1,2591 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_800135C
+sub_800135C:
+ push {r4-r7,lr}
+ movs r1, 0
+ ldr r4, _0800138C
+ ldr r3, _08001390
+ movs r2, 0
+_08001366:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, r4
+ ble _08001366
+ movs r6, 0
+_08001372:
+ lsls r1, r6, 4
+ ldr r0, _08001394
+ adds r5, r1, r0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r7, r6, 0x1
+ cmp r0, 0
+ beq _080013B4
+ cmp r0, 0x8
+ beq _080013B4
+ movs r4, 0
+ b _080013AC
+ .align 2, 0
+_0800138C: .4byte 0x000003ff
+_08001390: .4byte gUnknown_2000A88
+_08001394: .4byte gUnknown_80B7394
+_08001398:
+ movs r0, 0xA
+ ldrsh r3, [r5, r0]
+ movs r0, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_800199C
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080013AC:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ blt _08001398
+_080013B4:
+ lsls r0, r7, 16
+ asrs r6, r0, 16
+ cmp r6, 0x50
+ ble _08001372
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80015C0
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x7
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x8
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0xA
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0xA2
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0xF
+ movs r2, 0xA2
+ bl sub_80018D8
+ movs r4, 0x1
+ negs r4, r4
+ movs r0, 0
+ movs r1, 0x10
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0x24
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x12
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x13
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x14
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x18
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x1B
+ adds r2, r4, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x1C
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x1D
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x1E
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x24
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x25
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x26
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x27
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x29
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ bl sub_80018D8
+ movs r0, 0
+ movs r1, 0x2B
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2C
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2D
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2E
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x2F
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x30
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x31
+ bl sub_80015C0
+ movs r0, 0
+ movs r1, 0x41
+ bl sub_80015C0
+ bl sub_80972F4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800135C
+
+ thumb_func_start sub_8001564
+sub_8001564:
+ push {lr}
+ bl nullsub_128
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001564
+
+ thumb_func_start sub_8001570
+sub_8001570:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ asrs r6, r1, 16
+ ldr r0, _08001584
+ cmp r6, r0
+ bgt _0800158C
+ lsls r1, r6, 4
+ ldr r0, _08001588
+ b _08001590
+ .align 2, 0
+_08001584: .4byte 0x000003ff
+_08001588: .4byte gUnknown_80B7394
+_0800158C:
+ lsls r1, r6, 4
+ ldr r0, _08001598
+_08001590:
+ adds r5, r1, r0
+ movs r4, 0
+ b _080015B0
+ .align 2, 0
+_08001598: .4byte 0x080b2d30
+_0800159C:
+ movs r0, 0xA
+ ldrsh r3, [r5, r0]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_800199C
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080015B0:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ blt _0800159C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001570
+
+ thumb_func_start sub_80015C0
+sub_80015C0:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ asrs r6, r1, 16
+ ldr r0, _080015D4
+ cmp r6, r0
+ bgt _080015DC
+ lsls r1, r6, 4
+ ldr r0, _080015D8
+ b _080015E0
+ .align 2, 0
+_080015D4: .4byte 0x000003ff
+_080015D8: .4byte gUnknown_80B7394
+_080015DC:
+ lsls r1, r6, 4
+ ldr r0, _080015E8
+_080015E0:
+ adds r5, r1, r0
+ movs r4, 0
+ b _080015FE
+ .align 2, 0
+_080015E8: .4byte 0x080b2d30
+_080015EC:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_800199C
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_080015FE:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ blt _080015EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80015C0
+
+ thumb_func_start sub_800160C
+sub_800160C:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r2, 16
+ asrs r1, r2, 16
+ ldr r0, _08001630
+ cmp r1, r0
+ bgt _0800163C
+ lsls r1, 4
+ ldr r0, _08001634
+ adds r1, r0
+ str r1, [r3]
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ ldr r1, _08001638
+ adds r0, r1
+ b _0800164C
+ .align 2, 0
+_08001630: .4byte 0x000003ff
+_08001634: .4byte gUnknown_80B7394
+_08001638: .4byte gUnknown_2000A88
+_0800163C:
+ lsls r1, 4
+ ldr r0, _08001654
+ adds r1, r0
+ str r1, [r3]
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ lsls r0, 2
+ adds r0, r4, r0
+_0800164C:
+ str r0, [r3, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001654: .4byte 0x080b2d30
+ thumb_func_end sub_800160C
+
+ thumb_func_start sub_8001658
+sub_8001658:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ lsls r1, 16
+ asrs r4, r1, 16
+ mov r0, sp
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl sub_800160C
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bls _0800167C
+ b _08001778
+_0800167C:
+ lsls r0, 2
+ ldr r1, _08001688
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08001688: .4byte _0800168C
+ .align 2, 0
+_0800168C:
+ .4byte _080016AC
+ .4byte _080016C2
+ .4byte _080016C8
+ .4byte _080016D2
+ .4byte _080016D8
+ .4byte _080016E0
+ .4byte _080016C2
+ .4byte _080016E6
+_080016AC:
+ ldr r0, [sp]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r1, 24
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0]
+ ands r1, r0
+ b _0800173E
+_080016C2:
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0]
+ b _0800177A
+_080016C8:
+ ldr r0, [sp, 0x4]
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _0800177A
+_080016D2:
+ ldr r0, [sp, 0x4]
+ ldrh r0, [r0]
+ b _0800177A
+_080016D8:
+ ldr r0, [sp, 0x4]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ b _0800177A
+_080016E0:
+ ldr r0, [sp, 0x4]
+ ldr r0, [r0]
+ b _0800177A
+_080016E6:
+ adds r0, r4, 0
+ subs r0, 0x17
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _08001778
+ lsls r0, 2
+ ldr r1, _080016FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080016FC: .4byte _08001700
+ .align 2, 0
+_08001700:
+ .4byte _08001734
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001778
+ .4byte _08001746
+ .4byte _0800174C
+ .4byte _08001754
+ .4byte _08001764
+_08001734:
+ bl sub_8098F94
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+_0800173E:
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _0800177A
+_08001746:
+ bl sub_808D480
+ b _0800177A
+_0800174C:
+ movs r0, 0
+ bl sub_808D544
+ b _0800177A
+_08001754:
+ ldr r0, _08001760
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ b _0800176C
+ .align 2, 0
+_08001760: .4byte gUnknown_203B460
+_08001764:
+ ldr r0, _08001774
+ ldr r0, [r0]
+ movs r1, 0x99
+ lsls r1, 2
+_0800176C:
+ adds r0, r1
+ ldr r0, [r0]
+ b _0800177A
+ .align 2, 0
+_08001774: .4byte gUnknown_203B460
+_08001778:
+ movs r0, 0
+_0800177A:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001658
+
+ thumb_func_start sub_8001784
+sub_8001784:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ lsls r1, 16
+ asrs r5, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ mov r0, sp
+ adds r1, r3, 0
+ adds r2, r5, 0
+ bl sub_800160C
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bls _080017AC
+ b _080018CC
+_080017AC:
+ lsls r0, 2
+ ldr r1, _080017B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080017B8: .4byte _080017BC
+ .align 2, 0
+_080017BC:
+ .4byte _080017DC
+ .4byte _08001800
+ .4byte _08001808
+ .4byte _08001814
+ .4byte _0800181E
+ .4byte _0800182A
+ .4byte _08001800
+ .4byte _08001834
+_080017DC:
+ ldr r0, [sp]
+ ldrh r1, [r0, 0x6]
+ adds r1, r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 19
+ ldr r2, [sp, 0x4]
+ adds r2, r0
+ movs r0, 0xE0
+ lsls r0, 11
+ ands r0, r1
+ lsrs r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ lsls r1, r0
+ lsrs r1, 24
+ ldrb r0, [r2]
+ ands r1, r0
+ b _0800188E
+_08001800:
+ ldr r0, [sp, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ b _080018CE
+_08001808:
+ ldr r0, [sp, 0x4]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ b _080018CE
+_08001814:
+ ldr r0, [sp, 0x4]
+ lsls r1, r4, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ b _080018CE
+_0800181E:
+ ldr r0, [sp, 0x4]
+ lsls r1, r4, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ b _080018CE
+_0800182A:
+ ldr r0, [sp, 0x4]
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ b _080018CE
+_08001834:
+ adds r0, r5, 0
+ subs r0, 0x17
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bhi _080018CC
+ lsls r0, 2
+ ldr r1, _0800184C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800184C: .4byte _08001850
+ .align 2, 0
+_08001850:
+ .4byte _08001884
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _080018CC
+ .4byte _08001896
+ .4byte _0800189C
+ .4byte _080018A4
+ .4byte _080018B8
+_08001884:
+ bl sub_8098F94
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+_0800188E:
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _080018CE
+_08001896:
+ bl sub_808D480
+ b _080018CE
+_0800189C:
+ movs r0, 0
+ bl sub_808D544
+ b _080018CE
+_080018A4:
+ ldr r0, _080018B4
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _080018CE
+ .align 2, 0
+_080018B4: .4byte gUnknown_203B460
+_080018B8:
+ ldr r0, _080018C8
+ ldr r0, [r0]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r2
+ ldr r0, [r0]
+ b _080018CE
+ .align 2, 0
+_080018C8: .4byte gUnknown_203B460
+_080018CC:
+ movs r0, 0
+_080018CE:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001784
+
+ thumb_func_start sub_80018D8
+sub_80018D8:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r1, 16
+ asrs r5, r1, 16
+ mov r0, sp
+ adds r1, r3, 0
+ adds r2, r5, 0
+ bl sub_800160C
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bhi _08001990
+ lsls r0, 2
+ ldr r1, _08001908
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08001908: .4byte _0800190C
+ .align 2, 0
+_0800190C:
+ .4byte _0800192C
+ .4byte _08001958
+ .4byte _08001958
+ .4byte _0800195E
+ .4byte _0800195E
+ .4byte _08001964
+ .4byte _08001958
+ .4byte _08001968
+_0800192C:
+ ldr r0, [sp]
+ movs r2, 0x6
+ ldrsh r1, [r0, r2]
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r1
+ lsrs r3, r0, 24
+ cmp r4, 0
+ beq _0800194A
+ ldr r2, [sp, 0x4]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ orrs r0, r1
+ strb r0, [r2]
+ b _08001990
+_0800194A:
+ ldr r2, [sp, 0x4]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ orrs r0, r1
+ eors r0, r3
+ strb r0, [r2]
+ b _08001990
+_08001958:
+ ldr r0, [sp, 0x4]
+ strb r4, [r0]
+ b _08001990
+_0800195E:
+ ldr r0, [sp, 0x4]
+ strh r4, [r0]
+ b _08001990
+_08001964:
+ ldr r0, [sp, 0x4]
+ b _0800198E
+_08001968:
+ cmp r5, 0x22
+ beq _08001972
+ cmp r5, 0x23
+ beq _08001984
+ b _08001990
+_08001972:
+ ldr r0, _08001980
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r1
+ b _0800198E
+ .align 2, 0
+_08001980: .4byte gUnknown_203B460
+_08001984:
+ ldr r0, _08001998
+ ldr r0, [r0]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r2
+_0800198E:
+ str r4, [r0]
+_08001990:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001998: .4byte gUnknown_203B460
+ thumb_func_end sub_80018D8
+
+ thumb_func_start sub_800199C
+sub_800199C:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r6, r3, 0
+ lsls r1, 16
+ asrs r7, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_800160C
+ ldr r0, [sp]
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bhi _08001A68
+ lsls r0, 2
+ ldr r1, _080019D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080019D0: .4byte _080019D4
+ .align 2, 0
+_080019D4:
+ .4byte _080019F4
+ .4byte _08001A2C
+ .4byte _08001A2C
+ .4byte _08001A34
+ .4byte _08001A34
+ .4byte _08001A3E
+ .4byte _08001A2C
+ .4byte _08001A44
+_080019F4:
+ ldr r0, [sp]
+ ldrh r0, [r0, 0x6]
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 19
+ ldr r1, [sp, 0x4]
+ adds r3, r1, r2
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r1
+ lsrs r2, r0, 24
+ cmp r6, 0
+ beq _08001A20
+ ldrb r1, [r3]
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r3]
+ b _08001A68
+_08001A20:
+ ldrb r1, [r3]
+ adds r0, r2, 0
+ orrs r0, r1
+ eors r0, r2
+ strb r0, [r3]
+ b _08001A68
+_08001A2C:
+ ldr r0, [sp, 0x4]
+ adds r0, r5
+ strb r6, [r0]
+ b _08001A68
+_08001A34:
+ ldr r1, [sp, 0x4]
+ lsls r0, r5, 1
+ adds r0, r1
+ strh r6, [r0]
+ b _08001A68
+_08001A3E:
+ ldr r1, [sp, 0x4]
+ lsls r0, r5, 2
+ b _08001A64
+_08001A44:
+ cmp r7, 0x22
+ beq _08001A4E
+ cmp r7, 0x23
+ beq _08001A5C
+ b _08001A68
+_08001A4E:
+ ldr r0, _08001A58
+ ldr r0, [r0]
+ movs r1, 0x98
+ lsls r1, 2
+ b _08001A64
+ .align 2, 0
+_08001A58: .4byte gUnknown_203B460
+_08001A5C:
+ ldr r0, _08001A70
+ ldr r0, [r0]
+ movs r1, 0x99
+ lsls r1, 2
+_08001A64:
+ adds r0, r1
+ str r6, [r0]
+_08001A68:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08001A70: .4byte gUnknown_203B460
+ thumb_func_end sub_800199C
+
+ thumb_func_start sub_8001A74
+sub_8001A74:
+ push {lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ bl sub_800160C
+ ldr r0, [sp, 0x4]
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001A74
+
+ thumb_func_start sub_8001A90
+sub_8001A90:
+ push {lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ lsls r2, 16
+ asrs r2, 16
+ mov r0, sp
+ movs r1, 0
+ bl sub_800160C
+ ldr r0, [sp]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001A90
+
+ thumb_func_start sub_8001AB0
+sub_8001AB0:
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r7, r0, 0
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r6, 0
+ mov r0, sp
+ movs r1, 0
+ adds r2, r5, 0
+ bl sub_800160C
+ movs r4, 0
+ ldr r0, [sp]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r6, r0
+ bge _08001AEC
+_08001AD2:
+ lsls r2, r4, 16
+ lsrs r2, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_8001784
+ adds r6, r0
+ adds r4, 0x1
+ ldr r0, [sp]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r4, r0
+ blt _08001AD2
+_08001AEC:
+ adds r0, r6, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001AB0
+
+ thumb_func_start sub_8001AF8
+sub_8001AF8:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r3, 16
+ asrs r3, 16
+ mov r0, sp
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_800160C
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ b _08001B1C
+_08001B16:
+ strb r0, [r4]
+ adds r4, 0x1
+ adds r2, 0x1
+_08001B1C:
+ cmp r2, r5
+ bge _08001B28
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0
+ bne _08001B16
+_08001B28:
+ movs r0, 0
+ strb r0, [r4]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001AF8
+
+ thumb_func_start sub_8001B34
+sub_8001B34:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r3, 16
+ asrs r3, 16
+ mov r0, sp
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_800160C
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ b _08001B56
+_08001B50:
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r2, 0x1
+_08001B56:
+ cmp r2, r4
+ bge _08001B62
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, 0
+ bne _08001B50
+_08001B62:
+ ldr r0, [sp]
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ cmp r2, r0
+ bge _08001B7E
+ movs r3, 0
+_08001B6E:
+ strb r3, [r1]
+ adds r1, 0x1
+ adds r2, 0x1
+ ldr r0, [sp]
+ movs r4, 0x8
+ ldrsh r0, [r0, r4]
+ cmp r2, r0
+ blt _08001B6E
+_08001B7E:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001B34
+
+ thumb_func_start sub_8001B88
+sub_8001B88:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8001784
+ str r0, [r5]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8001784
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001B88
+
+ thumb_func_start sub_8001BB4
+sub_8001BB4:
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r0, 16
+ asrs r4, r0, 16
+ add r2, sp, 0x10
+ adds r0, r4, 0
+ add r1, sp, 0xC
+ bl sub_8001B88
+ ldr r1, _08001C20
+ ldr r3, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r0, 0x6
+ adds r2, r4, 0
+ bl Log
+ cmp r4, 0x3
+ bne _08001BF8
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bne _08001BEE
+ ldr r0, [sp, 0x10]
+ cmp r6, r0
+ beq _08001BF8
+_08001BEE:
+ movs r0, 0
+ movs r1, 0x19
+ movs r2, 0
+ bl sub_80018D8
+_08001BF8:
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ adds r3, r5, 0
+ bl sub_800199C
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ adds r3, r6, 0
+ bl sub_800199C
+ cmp r4, 0x4
+ beq _08001C76
+ cmp r4, 0x4
+ bgt _08001C24
+ cmp r4, 0x3
+ beq _08001C2A
+ b _08001CBA
+ .align 2, 0
+_08001C20: .4byte gUnknown_80B72CC
+_08001C24:
+ cmp r4, 0xC
+ beq _08001CA4
+ b _08001CBA
+_08001C2A:
+ subs r0, r5, 0x1
+ cmp r0, 0x1A
+ bhi _08001CBA
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x8
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001C48
+ movs r0, 0
+ bl sub_80976F8
+_08001C48:
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0x3
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001C5E
+ movs r0, 0x1
+ bl sub_80976F8
+_08001C5E:
+ movs r0, 0x3
+ movs r1, 0x11
+ movs r2, 0
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001CBA
+ movs r0, 0x2
+ bl sub_80976F8
+ b _08001CBA
+_08001C76:
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08001C8C
+ movs r0, 0x4
+ bl sub_80976F8
+_08001C8C:
+ movs r0, 0x4
+ movs r1, 0x20
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08001CBA
+ movs r0, 0x5
+ bl sub_80976F8
+ b _08001CBA
+_08001CA4:
+ movs r0, 0xC
+ movs r1, 0x37
+ movs r2, 0x2
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08001CBA
+ movs r0, 0x3
+ bl sub_80976F8
+_08001CBA:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8001BB4
+
+ thumb_func_start sub_8001CC4
+sub_8001CC4:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8001784
+ adds r5, r0, 0
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8001784
+ cmp r5, 0x3A
+ beq _08001CFE
+ cmp r5, r6
+ bcc _08001CFA
+ cmp r7, 0
+ blt _08001CFE
+ cmp r5, r6
+ bne _08001CFE
+ cmp r0, r7
+ bge _08001CFE
+_08001CFA:
+ movs r0, 0x1
+ b _08001D00
+_08001CFE:
+ movs r0, 0
+_08001D00:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001CC4
+
+ thumb_func_start sub_8001D08
+sub_8001D08:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8001784
+ adds r5, r0, 0
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8001784
+ cmp r5, r6
+ bne _08001D3A
+ cmp r7, 0
+ blt _08001D36
+ cmp r0, r7
+ bne _08001D3A
+_08001D36:
+ movs r0, 0x1
+ b _08001D3C
+_08001D3A:
+ movs r0, 0
+_08001D3C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001D08
+
+ thumb_func_start sub_8001D44
+sub_8001D44:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8001784
+ adds r5, r0, 0
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_8001784
+ cmp r5, 0x3A
+ beq _08001D7E
+ cmp r5, r6
+ bhi _08001D7A
+ cmp r7, 0
+ blt _08001D7E
+ cmp r5, r6
+ bne _08001D7E
+ cmp r0, r7
+ ble _08001D7E
+_08001D7A:
+ movs r0, 0x1
+ b _08001D80
+_08001D7E:
+ movs r0, 0
+_08001D80:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8001D44
+
+ thumb_func_start sub_8001D88
+sub_8001D88:
+ push {lr}
+ sub sp, 0x8
+ add r2, sp, 0x4
+ movs r0, 0x3
+ mov r1, sp
+ bl sub_8001B88
+ ldr r0, [sp]
+ subs r0, 0x1
+ cmp r0, 0x1A
+ bls _08001DA0
+ b _080020D4
+_08001DA0:
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E08
+ movs r0, 0x3
+ movs r1, 0xF
+ movs r2, 0x7
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001DDE
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_8001BB4
+ movs r0, 0xE
+ movs r1, 0x1
+ bl sub_8097418
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0x2
+ bl sub_80018D8
+ b _08001E08
+_08001DDE:
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E08
+ movs r0, 0x3
+ movs r1, 0xF
+ movs r2, 0x3
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E08
+ movs r0, 0x4
+ movs r1, 0x1D
+ movs r2, 0x1
+ bl sub_8001BB4
+_08001E08:
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E36
+ movs r0, 0xE
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E36
+ movs r0, 0x4
+ movs r1, 0x1F
+ movs r2, 0x1
+ bl sub_8001BB4
+ movs r0, 0xF
+ movs r1, 0x1
+ bl sub_809733C
+_08001E36:
+ ldr r0, [sp]
+ cmp r0, 0x11
+ bhi _08001E3E
+ b _080020D4
+_08001E3E:
+ movs r0, 0x25
+ movs r1, 0x1
+ bl sub_80973A8
+ movs r0, 0xE7
+ bl sub_8091130
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08001E72
+ ldr r0, _080020DC
+ ldr r0, [r0]
+ ldr r1, _080020E0
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08001E72
+ movs r0, 0x5
+ movs r1, 0x21
+ movs r2, 0x3
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E7A
+_08001E72:
+ movs r0, 0x22
+ movs r1, 0x1
+ bl sub_80973A8
+_08001E7A:
+ movs r0, 0x2B
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001E8E
+ movs r0, 0x1F
+ movs r1, 0x1
+ bl sub_80973A8
+_08001E8E:
+ movs r0, 0x24
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001EA2
+ movs r0, 0x20
+ movs r1, 0x1
+ bl sub_80973A8
+_08001EA2:
+ movs r0, 0x23
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001EB6
+ movs r0, 0x21
+ movs r1, 0x1
+ bl sub_80973A8
+_08001EB6:
+ movs r0, 0x19
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001ECA
+ movs r0, 0x23
+ movs r1, 0x1
+ bl sub_80973A8
+_08001ECA:
+ movs r0, 0x3
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001EE6
+ movs r0, 0x24
+ movs r1, 0x1
+ bl sub_80973A8
+ movs r0, 0x28
+ movs r1, 0x1
+ bl sub_80973A8
+_08001EE6:
+ movs r0, 0x2C
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F06
+ movs r0, 0x2D
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F06
+ movs r0, 0x26
+ movs r1, 0x1
+ bl sub_80973A8
+_08001F06:
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F20
+ movs r0, 0x5
+ movs r1, 0x21
+ movs r2, 0x1
+ bl sub_8001BB4
+_08001F20:
+ movs r0, 0xE2
+ bl sub_8091130
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08001F3E
+ ldr r0, _080020DC
+ ldr r0, [r0]
+ movs r1, 0x85
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08001F7E
+_08001F3E:
+ movs r0, 0x7
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F58
+ movs r0, 0x7
+ movs r1, 0x26
+ movs r2, 0x1
+ bl sub_8001BB4
+_08001F58:
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F7E
+ movs r0, 0x37
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001F7E
+ movs r0, 0x9
+ movs r1, 0x2E
+ movs r2, 0x1
+ bl sub_8001BB4
+_08001F7E:
+ movs r0, 0x9
+ movs r1, 0x30
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800202A
+ movs r0, 0x5
+ movs r1, 0x22
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001FCC
+ movs r0, 0x90
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001FCC
+ movs r0, 0x91
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001FCC
+ movs r0, 0x92
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ beq _08001FCC
+ movs r0, 0x5
+ movs r1, 0x22
+ movs r2, 0x1
+ bl sub_8001BB4
+_08001FCC:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002002
+ movs r0, 0x5
+ movs r1, 0x21
+ movs r2, 0x3
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002002
+ movs r0, 0xE
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002002
+ movs r0, 0xB
+ movs r1, 0x33
+ movs r2, 0x1
+ bl sub_8001BB4
+_08002002:
+ movs r0, 0xE
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002016
+ movs r0, 0x27
+ movs r1, 0x1
+ bl sub_80973A8
+_08002016:
+ movs r0, 0xE
+ bl sub_8092600
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800202A
+ movs r0, 0x29
+ movs r1, 0x1
+ bl sub_80973A8
+_0800202A:
+ movs r0, 0x5
+ movs r1, 0x22
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002086
+ movs r0, 0xA
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800205C
+ movs r0, 0xA
+ movs r1, 0x31
+ movs r2, 0x1
+ bl sub_8001BB4
+ movs r0, 0x1B
+ movs r1, 0x1
+ bl sub_809733C
+_0800205C:
+ movs r0, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002086
+ movs r0, 0xB
+ movs r1, 0x34
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002086
+ movs r0, 0xC
+ movs r1, 0x35
+ movs r2, 0x1
+ bl sub_8001BB4
+_08002086:
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _080020AE
+ movs r0, 0x89
+ lsls r0, 1
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ beq _080020AE
+ movs r0, 0x6
+ movs r1, 0x24
+ movs r2, 0x1
+ bl sub_8001BB4
+_080020AE:
+ movs r0, 0x8
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ beq _080020D4
+ ldr r0, _080020E4
+ bl sub_808E734
+ lsls r0, 24
+ cmp r0, 0
+ beq _080020D4
+ movs r0, 0x8
+ movs r1, 0x2C
+ movs r2, 0x1
+ bl sub_8001BB4
+_080020D4:
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080020DC: .4byte gUnknown_203B460
+_080020E0: .4byte 0x0000021e
+_080020E4: .4byte 0x00000113
+ thumb_func_end sub_8001D88
+
+ thumb_func_start sub_80020E8
+sub_80020E8:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0xB
+ bhi _08002182
+ lsls r0, r2, 2
+ ldr r1, _080020FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080020FC: .4byte _08002100
+ .align 2, 0
+_08002100:
+ .4byte _08002130
+ .4byte _08002134
+ .4byte _08002138
+ .4byte _0800213C
+ .4byte _08002142
+ .4byte _0800214C
+ .4byte _08002156
+ .4byte _0800215C
+ .4byte _08002162
+ .4byte _08002168
+ .4byte _08002170
+ .4byte _0800217A
+_08002130:
+ adds r0, r4, 0
+ b _08002194
+_08002134:
+ subs r0, r3, r4
+ b _08002194
+_08002138:
+ adds r0, r3, r4
+ b _08002194
+_0800213C:
+ adds r0, r3, 0
+ muls r0, r4
+ b _08002194
+_08002142:
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl __divsi3
+ b _08002194
+_0800214C:
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl __modsi3
+ b _08002194
+_08002156:
+ ands r3, r4
+ adds r0, r3, 0
+ b _08002194
+_0800215C:
+ orrs r3, r4
+ adds r0, r3, 0
+ b _08002194
+_08002162:
+ eors r3, r4
+ adds r0, r3, 0
+ b _08002194
+_08002168:
+ movs r0, 0x1
+ lsls r0, r4
+ orrs r0, r3
+ b _08002194
+_08002170:
+ movs r0, 0x1
+ lsls r0, r4
+ bics r3, r0
+ adds r0, r3, 0
+ b _08002194
+_0800217A:
+ adds r0, r4, 0
+ bl OtherRandomCapped
+ b _08002194
+_08002182:
+ ldr r0, _0800218C
+ ldr r1, _08002190
+ bl FatalError
+ .align 2, 0
+_0800218C: .4byte gUnknown_80B7318
+_08002190: .4byte gUnknown_80B7324
+_08002194:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80020E8
+
+ thumb_func_start sub_800219C
+sub_800219C:
+ push {r4,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ cmp r2, 0xA
+ bhi _08002248
+ lsls r0, r2, 2
+ ldr r1, _080021B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080021B0: .4byte _080021B4
+ .align 2, 0
+_080021B4:
+ .4byte _080021E0
+ .4byte _080021E4
+ .4byte _080021E8
+ .4byte _080021FE
+ .4byte _08002212
+ .4byte _08002208
+ .4byte _0800221C
+ .4byte _080021F2
+ .4byte _08002226
+ .4byte _08002232
+ .4byte _0800223E
+_080021E0:
+ movs r0, 0x1
+ b _08002258
+_080021E4:
+ movs r0, 0
+ b _08002258
+_080021E8:
+ movs r0, 0
+ cmp r3, r4
+ bne _08002258
+ movs r0, 0x1
+ b _08002258
+_080021F2:
+ adds r1, r3, 0
+ eors r1, r4
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _08002258
+_080021FE:
+ movs r0, 0
+ cmp r3, r4
+ ble _08002258
+ movs r0, 0x1
+ b _08002258
+_08002208:
+ movs r0, 0
+ cmp r3, r4
+ blt _08002258
+ movs r0, 0x1
+ b _08002258
+_08002212:
+ movs r0, 0
+ cmp r3, r4
+ bge _08002258
+ movs r0, 0x1
+ b _08002258
+_0800221C:
+ movs r0, 0
+ cmp r3, r4
+ bgt _08002258
+ movs r0, 0x1
+ b _08002258
+_08002226:
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08002258
+ movs r0, 0x1
+ b _08002258
+_08002232:
+ adds r0, r3, 0
+ eors r0, r4
+ cmp r0, 0
+ beq _08002258
+ movs r0, 0x1
+ b _08002258
+_0800223E:
+ asrs r3, r4
+ movs r0, 0x1
+ ands r3, r0
+ adds r0, r3, 0
+ b _08002258
+_08002248:
+ ldr r0, _08002250
+ ldr r1, _08002254
+ bl FatalError
+ .align 2, 0
+_08002250: .4byte gUnknown_80B7350
+_08002254: .4byte gUnknown_80B735C
+_08002258:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800219C
+
+ thumb_func_start sub_8002260
+sub_8002260:
+ push {lr}
+ bl sub_80020E8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8002260
+
+ thumb_func_start sub_800226C
+sub_800226C:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl sub_8001658
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_80020E8
+ adds r2, r0, 0
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80018D8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800226C
+
+ thumb_func_start sub_80022A0
+sub_80022A0:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ mov r9, r3
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ bl sub_8001658
+ adds r6, r0, 0
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_8001658
+ adds r1, r0, 0
+ adds r0, r6, 0
+ mov r2, r9
+ bl sub_80020E8
+ adds r2, r0, 0
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_80018D8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80022A0
+
+ thumb_func_start sub_80022E8
+sub_80022E8:
+ push {lr}
+ bl sub_800219C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80022E8
+
+ thumb_func_start sub_80022F8
+sub_80022F8:
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ adds r5, r3, 0
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8001658
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_800219C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80022F8
+
+ thumb_func_start sub_8002318
+sub_8002318:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ adds r4, r2, 0
+ mov r8, r3
+ lsls r1, 16
+ asrs r1, 16
+ lsls r4, 16
+ asrs r4, 16
+ bl sub_8001658
+ adds r5, r0, 0
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8001658
+ adds r1, r0, 0
+ adds r0, r5, 0
+ mov r2, r8
+ bl sub_800219C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8002318
+
+ thumb_func_start sub_8002354
+sub_8002354:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0x3A
+ bls _08002362
+ movs r0, 0x1
+ negs r0, r0
+ b _0800236C
+_08002362:
+ ldr r0, _08002370
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+_0800236C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08002370: .4byte gUnknown_80B6D90
+ thumb_func_end sub_8002354
+
+ thumb_func_start sub_8002374
+sub_8002374:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0x3A
+ bls _08002384
+ ldr r0, _08002380
+ b _0800238C
+ .align 2, 0
+_08002380: .4byte gUnknown_80B7378
+_08002384:
+ ldr r0, _08002390
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, [r1]
+_0800238C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08002390: .4byte gUnknown_80B6D90
+ thumb_func_end sub_8002374
+
+ thumb_func_start sub_8002394
+sub_8002394:
+ push {lr}
+ adds r1, r0, 0
+ subs r1, 0x12
+ cmp r1, 0x8
+ bhi _080023AC
+ ldr r0, _080023A8
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ b _080023BA
+ .align 2, 0
+_080023A8: .4byte gUnknown_80B714C
+_080023AC:
+ cmp r0, 0xF
+ beq _080023B8
+ ldr r0, _080023B4
+ b _080023BA
+ .align 2, 0
+_080023B4: .4byte gUnknown_80B7144
+_080023B8:
+ ldr r0, _080023C0
+_080023BA:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080023C0: .4byte gUnknown_80B7388
+ thumb_func_end sub_8002394
+
+ thumb_func_start sub_80023C4
+sub_80023C4:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0x3
+ bls _080023D4
+ ldr r0, _080023D0
+ b _080023DC
+ .align 2, 0
+_080023D0: .4byte gUnknown_80B7144
+_080023D4:
+ ldr r0, _080023E0
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+_080023DC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080023E0: .4byte gUnknown_80B71A0
+ thumb_func_end sub_80023C4
+
+ thumb_func_start sub_80023E4
+sub_80023E4:
+ push {r4,lr}
+ cmp r0, 0x1D
+ bls _080023EC
+ b _0800264E
+_080023EC:
+ lsls r0, 2
+ ldr r1, _080023F8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080023F8: .4byte _080023FC
+ .align 2, 0
+_080023FC:
+ .4byte _08002474
+ .4byte _08002482
+ .4byte _0800248E
+ .4byte _0800249A
+ .4byte _080024A6
+ .4byte _080024BE
+ .4byte _080024E6
+ .4byte _080024F4
+ .4byte _08002500
+ .4byte _0800250C
+ .4byte _0800251A
+ .4byte _08002526
+ .4byte _08002532
+ .4byte _0800255A
+ .4byte _08002566
+ .4byte _0800257A
+ .4byte _0800258E
+ .4byte _0800259C
+ .4byte _080025AA
+ .4byte _080025B8
+ .4byte _080025C6
+ .4byte _080025D4
+ .4byte _080025E2
+ .4byte _080025F0
+ .4byte _080025FE
+ .4byte _0800260C
+ .4byte _0800261A
+ .4byte _08002628
+ .4byte _08002630
+ .4byte _08002644
+_08002474:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x2
+ bl sub_8001D44
+ b _08002648
+_08002482:
+ movs r0, 0x3
+ movs r1, 0x3
+ movs r2, 0x3
+ bl sub_8001D44
+ b _08002648
+_0800248E:
+ movs r0, 0x3
+ movs r1, 0x4
+ movs r2, 0x3
+ bl sub_8001D44
+ b _08002648
+_0800249A:
+ movs r0, 0x3
+ movs r1, 0x5
+ movs r2, 0
+ bl sub_8001D44
+ b _08002648
+_080024A6:
+ movs r4, 0
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002556
+ movs r0, 0x3
+ movs r1, 0xD
+ b _080024D4
+_080024BE:
+ movs r4, 0
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0x3
+ bl sub_8001D44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08002556
+ movs r0, 0x3
+ movs r1, 0xF
+_080024D4:
+ movs r2, 0
+ bl sub_8001CC4
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ b _08002556
+_080024E6:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x11
+ bl sub_8001D44
+ b _08002648
+_080024F4:
+ movs r0, 0x3
+ movs r1, 0x12
+ movs r2, 0x2
+ bl sub_8001D44
+ b _08002648
+_08002500:
+ movs r0, 0x3
+ movs r1, 0x12
+ movs r2, 0x3
+ bl sub_8001D44
+ b _08002648
+_0800250C:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x12
+ bl sub_8001D44
+ b _08002648
+_0800251A:
+ movs r0, 0x3
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_8001D44
+ b _08002648
+_08002526:
+ movs r0, 0x3
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_8001D44
+ b _08002648
+_08002532:
+ movs r4, 0
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0x2
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002556
+ movs r0, 0x3
+ movs r1, 0xB
+ movs r2, 0x3
+ bl sub_8001D08
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002556
+ movs r4, 0x1
+_08002556:
+ adds r0, r4, 0
+ b _08002650
+_0800255A:
+ movs r0, 0x3
+ movs r1, 0x10
+ movs r2, 0x2
+ bl sub_8001D08
+ b _08002648
+_08002566:
+ movs r0, 0x3
+ movs r1, 0x5
+ movs r2, 0x7
+ bl sub_8001CC4
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002640
+ b _0800263E
+_0800257A:
+ movs r0, 0x3
+ movs r1, 0xF
+ movs r2, 0
+ bl sub_8001CC4
+ movs r1, 0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08002640
+ b _0800263E
+_0800258E:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x7
+ bl sub_8001D44
+ b _08002648
+_0800259C:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0xC
+ bl sub_8001D44
+ b _08002648
+_080025AA:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0xD
+ bl sub_8001D44
+ b _08002648
+_080025B8:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0xF
+ bl sub_8001D44
+ b _08002648
+_080025C6:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x3
+ movs r1, 0x10
+ bl sub_8001D44
+ b _08002648
+_080025D4:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x5
+ movs r1, 0x21
+ bl sub_8001D44
+ b _08002648
+_080025E2:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x5
+ movs r1, 0x22
+ bl sub_8001D44
+ b _08002648
+_080025F0:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x6
+ movs r1, 0x24
+ bl sub_8001D44
+ b _08002648
+_080025FE:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x7
+ movs r1, 0x2A
+ bl sub_8001D44
+ b _08002648
+_0800260C:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x8
+ movs r1, 0x2C
+ bl sub_8001D44
+ b _08002648
+_0800261A:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0xA
+ movs r1, 0x31
+ bl sub_8001D44
+ b _08002648
+_08002628:
+ movs r0, 0x29
+ bl sub_80973F4
+ b _08002648
+_08002630:
+ bl sub_8092178
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08002640
+_0800263E:
+ movs r1, 0x1
+_08002640:
+ adds r0, r1, 0
+ b _08002650
+_08002644:
+ bl sub_809761C
+_08002648:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08002650
+_0800264E:
+ movs r0, 0
+_08002650:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80023E4
+
+ thumb_func_start sub_8002658
+sub_8002658:
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ ldr r1, _0800267C
+ ldrh r2, [r1]
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ movs r3, 0x1
+ negs r3, r3
+ cmp r0, r3
+ beq _0800268C
+_0800266E:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, r4
+ bne _08002680
+ ldrb r0, [r1, 0x2]
+ b _0800268E
+ .align 2, 0
+_0800267C: .4byte gUnknown_80B71E4
+_08002680:
+ adds r1, 0x4
+ ldrh r2, [r1]
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r3
+ bne _0800266E
+_0800268C:
+ movs r0, 0
+_0800268E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8002658
+
+ thumb_func_start sub_8002694
+sub_8002694:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080026B4
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r2, 0x1
+ negs r2, r2
+ cmp r0, r2
+ beq _080026C2
+_080026A8:
+ ldrb r0, [r1, 0x2]
+ cmp r0, r3
+ bne _080026B8
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ b _080026C6
+ .align 2, 0
+_080026B4: .4byte gUnknown_80B71E4
+_080026B8:
+ adds r1, 0x4
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r2
+ bne _080026A8
+_080026C2:
+ movs r0, 0x1
+ negs r0, r0
+_080026C6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8002694
+
+ thumb_func_start sub_80026CC
+sub_80026CC:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8002658
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8092600
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80026CC
+
+ thumb_func_start sub_80026E8
+sub_80026E8:
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8002658
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80925EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80026E8
+
+ thumb_func_start sub_8002700
+sub_8002700:
+ push {lr}
+ ldr r1, _08002714
+ movs r2, 0x80
+ lsls r2, 3
+ bl MemoryCopy8
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08002714: .4byte gUnknown_2000A88
+ thumb_func_end sub_8002700
+
+ thumb_func_start sub_8002718
+sub_8002718:
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ bl sub_800160C
+ ldr r0, _08002748
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r4, 0
+ bl MemoryCopy8
+ ldr r0, [sp]
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ ldr r0, [sp, 0x4]
+ ldr r0, [r0]
+ cmp r1, r0
+ bne _0800274C
+ movs r0, 0x1
+ b _0800274E
+ .align 2, 0
+_08002748: .4byte gUnknown_2000A88
+_0800274C:
+ movs r0, 0
+_0800274E:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8002718
+
+ thumb_func_start sub_8002758
+sub_8002758:
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0x9
+ bl sub_800226C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8002758
+
+ thumb_func_start sub_800276C
+sub_800276C:
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_800276C
+
+ thumb_func_start nullsub_140
+nullsub_140:
+ bx lr
+ thumb_func_end nullsub_140
+
+ .align 2, 0 @ Don't pad with nop.