summaryrefslogtreecommitdiff
path: root/asm/battle_frontier_1.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_frontier_1.s')
-rwxr-xr-xasm/battle_frontier_1.s16014
1 files changed, 16014 insertions, 0 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
new file mode 100755
index 000000000..135918627
--- /dev/null
+++ b/asm/battle_frontier_1.s
@@ -0,0 +1,16014 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_818E9AC
+sub_818E9AC: @ 818E9AC
+ push {lr}
+ ldr r1, =gUnknown_0860D090
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E9AC
+
+ thumb_func_start sub_818E9CC
+sub_818E9CC: @ 818E9CC
+ push {r4-r7,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r6, 0
+ strb r6, [r0]
+ ldr r1, [r4]
+ adds r2, 0xA
+ adds r0, r1, r2
+ strh r6, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r4, [r4]
+ ldr r0, =0x00000cdc
+ adds r3, r4, r0
+ ldr r2, =gUnknown_0860D0EC
+ lsls r1, r5, 2
+ lsls r0, r7, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _0818EA3E
+ lsls r0, r5, 1
+ lsls r1, r7, 2
+ adds r0, r1
+ ldr r2, =0x00000d0c
+ adds r1, r4, r2
+ adds r1, r0
+ strh r6, [r1]
+_0818EA3E:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ ldr r0, =gTrainerBattleOpponent_A
+ strh r6, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E9CC
+
+ thumb_func_start sub_818EA84
+sub_818EA84: @ 818EA84
+ push {r4-r6,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x9
+ bls _0818EAA8
+ b _0818ED10
+_0818EAA8:
+ lsls r0, 2
+ ldr r1, =_0818EAC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0818EAC8:
+ .4byte _0818EAF0
+ .4byte _0818EB14
+ .4byte _0818EB48
+ .4byte _0818EB64
+ .4byte _0818EB80
+ .4byte _0818EB98
+ .4byte _0818EBB4
+ .4byte _0818EC40
+ .4byte _0818ECD0
+ .4byte _0818ECF4
+_0818EAF0:
+ ldr r3, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r5, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ ldr r2, =0x00000d0c
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+ b _0818ED10
+ .pool
+_0818EB14:
+ ldr r4, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r3, =0x00000cdc
+ adds r2, r3
+ ldr r3, =gUnknown_0860D0EC
+ lsls r0, r5, 2
+ lsls r1, r6, 3
+ adds r0, r1
+ adds r0, r3
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ strh r0, [r4]
+ b _0818ED10
+ .pool
+_0818EB48:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _0818ECBE
+ .pool
+_0818EB64:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 30
+ b _0818ECBE
+ .pool
+_0818EB80:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ b _0818ECBA
+ .pool
+_0818EB98:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 28
+ b _0818ECBE
+ .pool
+_0818EBB4:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0818EC04
+ cmp r5, 0
+ beq _0818EBE8
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 26
+ b _0818ECBE
+ .pool
+_0818EBE8:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 27
+ b _0818ECBE
+ .pool
+_0818EC04:
+ cmp r5, 0
+ beq _0818EC24
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ b _0818ECBE
+ .pool
+_0818EC24:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _0818ECBE
+ .pool
+_0818EC40:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0818EC90
+ cmp r5, 0
+ beq _0818EC74
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ ldrb r0, [r0]
+ lsrs r0, 7
+ strh r0, [r1]
+ b _0818ED10
+ .pool
+_0818EC74:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 25
+ b _0818ECBE
+ .pool
+_0818EC90:
+ cmp r5, 0
+ beq _0818ECB0
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d08
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 28
+ b _0818ECBE
+ .pool
+_0818ECB0:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d08
+ adds r0, r3
+_0818ECBA:
+ ldrb r0, [r0]
+ lsls r0, 29
+_0818ECBE:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _0818ED10
+ .pool
+_0818ECD0:
+ bl sub_81B8558
+ ldr r2, =gUnknown_0203CEF8
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xCB
+ lsls r1, 4
+ adds r0, r1
+ ldrh r1, [r0]
+ strb r1, [r2]
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r2, 0x1]
+ b _0818ED10
+ .pool
+_0818ECF4:
+ ldr r2, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r3, =0x00000d0a
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r3, 0x1
+ adds r1, r3
+ ldr r3, =0x0000fffd
+ adds r0, r3
+ ldrb r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_0818ED10:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818EA84
+
+ thumb_func_start sub_818ED28
+sub_818ED28: @ 818ED28
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r4, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x8
+ bls _0818ED4C
+ b _0818F01E
+_0818ED4C:
+ lsls r0, 2
+ ldr r1, =_0818ED6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0818ED6C:
+ .4byte _0818ED90
+ .4byte _0818EDB4
+ .4byte _0818EE10
+ .4byte _0818EE34
+ .4byte _0818EE5C
+ .4byte _0818EE78
+ .4byte _0818EEA0
+ .4byte _0818EF50
+ .4byte _0818F008
+_0818ED90:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ lsls r1, r5, 2
+ adds r0, r1
+ ldr r1, =0x00000d0c
+ adds r2, r1
+ adds r2, r0
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _0818F01E
+ .pool
+_0818EDB4:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0818EDE8
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_0860D0EC
+ lsls r1, r4, 2
+ lsls r0, r5, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ orrs r0, r1
+ str r0, [r2]
+ b _0818F01E
+ .pool
+_0818EDE8:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, =0x00000cdc
+ adds r2, r1
+ ldr r3, =gUnknown_0860D0FC
+ lsls r1, r4, 2
+ lsls r0, r5, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ ands r0, r1
+ str r0, [r2]
+ b _0818F01E
+ .pool
+_0818EE10:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000d08
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ b _0818EF74
+ .pool
+_0818EE34:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EE5C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000d08
+ adds r3, r1
+ b _0818EFE8
+ .pool
+_0818EE78:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EEA0:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bne _0818EF00
+ cmp r4, 0
+ beq _0818EEDC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+ ands r1, r0
+ lsls r1, 5
+ ldrb r2, [r3]
+ movs r0, 0x21
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EEDC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+ ands r1, r0
+ lsls r1, 4
+ ldrb r2, [r3]
+ movs r0, 0x11
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EF00:
+ cmp r4, 0
+ beq _0818EF2C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000d08
+ adds r3, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EF2C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000d08
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ b _0818EF74
+ .pool
+_0818EF50:
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1
+ bne _0818EFB0
+ cmp r4, 0
+ beq _0818EF8C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r1, [r0]
+ ldr r0, =0x00000d08
+ adds r2, r0
+ lsls r1, 7
+ ldrb r3, [r2]
+ movs r0, 0x7F
+_0818EF74:
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _0818F01E
+ .pool
+_0818EF8C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+ ands r1, r0
+ lsls r1, 6
+ ldrb r2, [r3]
+ movs r0, 0x41
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EFB0:
+ cmp r4, 0
+ beq _0818EFDC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000d08
+ adds r3, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3]
+ movs r0, 0x9
+ negs r0, r0
+ b _0818EFF4
+ .pool
+_0818EFDC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000d08
+ adds r3, r2
+_0818EFE8:
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+_0818EFF4:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _0818F01E
+ .pool
+_0818F008:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gUnknown_0203CEF8
+ ldrb r1, [r0]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0xCB
+ lsls r0, 4
+ adds r2, r0
+ strh r1, [r2]
+_0818F01E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818ED28
+
+ thumb_func_start sub_818F02C
+sub_818F02C: @ 818F02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x20
+ bl AllocZeroed
+ str r0, [sp, 0x18]
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [sp, 0x1C]
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r0, 0x1
+ ldr r3, =0x00000d0a
+ adds r1, r3
+ strb r0, [r1]
+ ldr r0, =0x000040ce
+ bl VarGet
+ ldr r1, [r4]
+ adds r0, 0x1
+ ldr r5, =0x00000d0b
+ adds r1, r5
+ strb r0, [r1]
+ ldr r2, [r4]
+ ldr r7, =0x00000d24
+ adds r3, r2, r7
+ ldrh r0, [r3]
+ ldr r5, =0x000003ff
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r3]
+ ldr r3, =0x00000d25
+ adds r2, r3
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x1F
+ ands r0, r2
+ strb r0, [r1]
+ movs r7, 0
+ mov r10, r7
+ mov r8, r4
+ ldr r0, =gBattleScripting + 0x14
+ mov r9, r0
+ movs r4, 0
+_0818F0BA:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r3, 0x64
+ muls r0, r3
+ add r0, r9
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ mov r5, r8
+ ldr r1, [r5]
+ ldr r7, =0x00000d64
+ adds r1, r7
+ adds r1, r4
+ strh r0, [r1]
+ movs r5, 0
+ mov r0, r10
+ lsls r7, r0, 4
+ adds r6, r7, 0
+_0818F0E8:
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r3, 0x64
+ muls r0, r3
+ add r0, r9
+ adds r1, r5, 0
+ adds r1, 0xD
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r3, =0x00000efc
+ adds r1, r3
+ adds r1, r6
+ strh r0, [r1]
+ adds r6, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0818F0E8
+ movs r5, 0
+ ldr r6, =gSaveBlock2Ptr
+_0818F11C:
+ ldr r0, [r6]
+ ldr r1, =0x00000caa
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r2, 0x64
+ muls r0, r2
+ add r0, r9
+ adds r1, r5, 0
+ adds r1, 0x1A
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [r6]
+ adds r2, r5, r7
+ ldr r3, =0x00000f04
+ adds r1, r3
+ adds r1, r2
+ strb r0, [r1]
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0818F11C
+ mov r5, r8
+ ldr r0, [r5]
+ ldr r1, =0x00000caa
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r2, 0x64
+ muls r0, r2
+ add r0, r9
+ bl GetNature
+ ldr r1, [r5]
+ adds r1, r7
+ ldr r3, =0x00000f0a
+ adds r1, r3
+ strb r0, [r1]
+ adds r4, 0x2
+ movs r5, 0x1
+ add r10, r5
+ mov r7, r10
+ cmp r7, 0x2
+ ble _0818F0BA
+ mov r10, r5
+ movs r0, 0x4
+ str r0, [sp, 0x34]
+ movs r1, 0x6
+ str r1, [sp, 0x38]
+_0818F17E:
+ mov r2, r10
+ cmp r2, 0x5
+ ble _0818F22C
+_0818F184:
+ bl sub_81A39C4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0x1
+ cmp r5, r10
+ bge _0818F1CA
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r7, =0x00000d28
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r2, r3, 0
+ cmp r0, r4
+ beq _0818F1CA
+ ldr r3, =0x00000d24
+_0818F1B2:
+ adds r5, 0x1
+ cmp r5, r10
+ bge _0818F1CA
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r4
+ bne _0818F1B2
+_0818F1CA:
+ cmp r5, r10
+ bne _0818F184
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r1, [sp, 0x34]
+ adds r3, r1
+ ldr r2, =0x00000d24
+ adds r3, r2
+ ldr r5, =0x000003ff
+ adds r0, r5, 0
+ adds r2, r4, 0
+ ands r2, r0
+ ldrh r0, [r3]
+ ldr r7, =0xfffffc00
+ adds r1, r7, 0
+ b _0818F292
+ .pool
+_0818F22C:
+ bl sub_81A39C4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r5, 0x1
+ cmp r5, r10
+ bge _0818F274
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000d28
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ adds r2, r1, 0
+ cmp r0, r4
+ beq _0818F274
+ ldr r3, =0x00000d24
+_0818F25C:
+ adds r5, 0x1
+ cmp r5, r10
+ bge _0818F274
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r4
+ bne _0818F25C
+_0818F274:
+ cmp r5, r10
+ bne _0818F22C
+ ldr r5, =gSaveBlock2Ptr
+ ldr r3, [r5]
+ ldr r7, [sp, 0x34]
+ adds r3, r7
+ ldr r0, =0x00000d24
+ adds r3, r0
+ ldr r1, =0x000003ff
+ adds r0, r1, 0
+ adds r2, r4, 0
+ ands r2, r0
+ ldrh r0, [r3]
+ ldr r5, =0xfffffc00
+ adds r1, r5, 0
+_0818F292:
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ movs r5, 0
+ lsls r4, 16
+ str r4, [sp, 0x2C]
+ ldr r7, [sp, 0x38]
+ str r7, [sp, 0x20]
+_0818F2A2:
+ lsls r0, r5, 1
+ mov r9, r0
+ adds r1, r5, 0x1
+ str r1, [sp, 0x24]
+ lsls r2, r5, 2
+ str r2, [sp, 0x28]
+_0818F2AE:
+ ldr r3, [sp, 0x2C]
+ lsrs r0, r3, 16
+ bl sub_8163524
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r7, 0
+ cmp r7, r5
+ bge _0818F300
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, [sp, 0x8]
+ mov r8, r1
+ ldr r2, [sp, 0xC]
+ mov r12, r2
+ ldr r3, =0x00000d64
+ adds r0, r3
+ ldr r1, [sp, 0x20]
+ adds r4, r1, r0
+_0818F2D4:
+ ldrh r3, [r4]
+ cmp r3, r6
+ beq _0818F300
+ ldr r2, =gUnknown_0203BC8C
+ ldr r1, [r2]
+ lsls r0, r6, 4
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ cmp r8, r0
+ beq _0818F300
+ cmp r12, r0
+ beq _0818F300
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xA]
+ ldrb r2, [r2, 0xA]
+ cmp r0, r2
+ beq _0818F300
+ adds r4, 0x2
+ adds r7, 0x1
+ cmp r7, r5
+ blt _0818F2D4
+_0818F300:
+ cmp r7, r5
+ bne _0818F2AE
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r1, [sp, 0x38]
+ add r1, r9
+ ldr r5, =0x00000d64
+ adds r0, r5
+ adds r0, r1
+ strh r6, [r0]
+ ldr r2, [sp, 0x28]
+ add r2, sp
+ adds r2, 0x8
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ lsls r0, r6, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [r2]
+ ldr r5, [sp, 0x24]
+ cmp r5, 0x2
+ ble _0818F2A2
+ ldr r2, [r3]
+ ldr r7, [sp, 0x34]
+ adds r2, r7
+ ldr r0, =0x00000d25
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r3, 0x5
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r5, =gSaveBlock2Ptr
+ ldr r2, [r5]
+ adds r2, r7
+ ldr r7, =0x00000d25
+ adds r2, r7
+ ldrb r0, [r2]
+ subs r3, 0x14
+ adds r1, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, [r5]
+ ldr r5, [sp, 0x34]
+ adds r1, r5
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x1F
+ ands r0, r2
+ strb r0, [r1]
+ adds r5, 0x4
+ str r5, [sp, 0x34]
+ ldr r7, [sp, 0x38]
+ adds r7, 0x6
+ str r7, [sp, 0x38]
+ movs r0, 0x1
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0xF
+ bgt _0818F37C
+ b _0818F17E
+_0818F37C:
+ movs r7, 0
+ ldr r2, [sp, 0x18]
+ strh r7, [r2]
+ movs r3, 0
+ mov r10, r3
+ ldr r6, =gBitTable
+ ldr r5, =gBaseStats
+_0818F38A:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ mov r2, r10
+ lsls r1, r2, 1
+ ldr r3, =0x00000caa
+ adds r0, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r4, r0, 0x1
+ movs r0, 0x64
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x3B
+ movs r2, 0
+ bl GetMonData
+ ldr r2, [sp, 0x18]
+ ldrh r1, [r2]
+ adds r1, r0
+ strh r1, [r2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ movs r2, 0
+ bl GetMonData
+ ldr r3, [sp, 0x18]
+ ldrh r1, [r3]
+ adds r1, r0
+ strh r1, [r3]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ movs r2, 0
+ bl GetMonData
+ ldr r2, [sp, 0x18]
+ ldrh r1, [r2]
+ adds r1, r0
+ strh r1, [r2]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ movs r2, 0
+ bl GetMonData
+ ldr r3, [sp, 0x18]
+ ldrh r1, [r3]
+ adds r1, r0
+ strh r1, [r3]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ movs r2, 0
+ bl GetMonData
+ ldr r2, [sp, 0x18]
+ ldrh r1, [r2]
+ adds r1, r0
+ strh r1, [r2]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r3, [sp, 0x18]
+ ldrh r1, [r3]
+ adds r1, r0
+ strh r1, [r3]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x6]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ orrs r7, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x7]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ orrs r7, r0
+ movs r0, 0x1
+ add r10, r0
+ mov r1, r10
+ cmp r1, 0x2
+ ble _0818F38A
+ movs r4, 0
+ movs r1, 0x1
+ movs r5, 0x1F
+_0818F458:
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0818F462
+ adds r4, 0x1
+_0818F462:
+ asrs r7, 1
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0818F458
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ adds r2, r0, 0
+ adds r0, r4, 0
+ muls r0, r2
+ movs r1, 0x14
+ bl __divsi3
+ ldr r3, [sp, 0x18]
+ ldrh r1, [r3]
+ adds r1, r0
+ strh r1, [r3]
+ movs r5, 0x1
+ mov r10, r5
+ adds r6, r3, 0
+ adds r6, 0x2
+ movs r7, 0x2
+ str r7, [sp, 0x30]
+_0818F494:
+ movs r7, 0
+ strh r7, [r6]
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ mov r2, r10
+ lsls r1, r2, 2
+ adds r0, r1
+ ldr r3, =0x00000d24
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ bl sub_8190168
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, [sp, 0x30]
+ mov r9, r0
+_0818F4BC:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ mov r4, r9
+ add r4, r10
+ adds r4, r5
+ lsls r4, 1
+ ldr r2, =0x00000d64
+ adds r0, r2
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r3, =gUnknown_0203BC8C
+ ldr r0, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrb r3, [r1, 0xB]
+ ldrb r1, [r1, 0xC]
+ str r1, [sp]
+ ldr r1, [sp, 0x1C]
+ str r1, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ mov r2, r8
+ bl sub_818F720
+ ldr r2, [sp, 0x1C]
+ ldr r1, [r2, 0x4]
+ ldrh r0, [r6]
+ adds r0, r1
+ ldr r1, [r2, 0x8]
+ adds r0, r1
+ ldr r1, [r2, 0x10]
+ adds r0, r1
+ ldr r1, [r2, 0x14]
+ adds r0, r1
+ ldr r1, [r2, 0xC]
+ adds r0, r1
+ ldr r1, [r2]
+ adds r0, r1
+ strh r0, [r6]
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r1, =0x00000d64
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ ldr r2, =gUnknown_0203BC8C
+ ldr r1, [r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r3, =gBaseStats
+ adds r1, r3
+ ldrb r0, [r1, 0x6]
+ lsls r0, 2
+ ldr r2, =gBitTable
+ adds r0, r2
+ ldr r0, [r0]
+ orrs r7, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ orrs r7, r0
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _0818F4BC
+ movs r4, 0
+ movs r1, 0x1
+ movs r5, 0x1F
+_0818F54C:
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0818F556
+ adds r4, 0x1
+_0818F556:
+ asrs r7, 1
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0818F54C
+ ldr r3, [sp, 0x14]
+ adds r0, r4, 0
+ muls r0, r3
+ movs r1, 0x14
+ bl __divsi3
+ ldrh r1, [r6]
+ adds r1, r0
+ strh r1, [r6]
+ adds r6, 0x2
+ ldr r5, [sp, 0x30]
+ adds r5, 0x2
+ str r5, [sp, 0x30]
+ movs r7, 0x1
+ add r10, r7
+ mov r0, r10
+ cmp r0, 0xF
+ ble _0818F494
+ movs r1, 0
+ mov r10, r1
+ ldr r2, =0x000003ff
+ mov r8, r2
+_0818F58A:
+ mov r5, r10
+ adds r5, 0x1
+ adds r7, r5, 0
+ cmp r5, 0xF
+ bgt _0818F626
+ mov r3, r10
+ lsls r0, r3, 1
+ ldr r1, [sp, 0x18]
+ adds r6, r0, r1
+ lsls r0, r5, 1
+ adds r4, r0, r1
+_0818F5A0:
+ ldrh r1, [r6]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bcc _0818F5C2
+ cmp r1, r0
+ bne _0818F61E
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1, r0
+ ldr r2, =0x00000d24
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r2, r0, 22
+ lsrs r0, r2, 22
+ cmp r0, r8
+ bne _0818F602
+_0818F5C2:
+ mov r0, r10
+ adds r1, r5, 0
+ ldr r2, [sp, 0x18]
+ bl sub_818F904
+ b _0818F600
+ .pool
+_0818F600:
+ b _0818F61E
+_0818F602:
+ mov r3, r10
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ cmp r0, r2
+ bls _0818F61E
+ mov r0, r10
+ adds r1, r5, 0
+ ldr r2, [sp, 0x18]
+ bl sub_818F904
+_0818F61E:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0818F5A0
+_0818F626:
+ mov r10, r7
+ mov r2, r10
+ cmp r2, 0xE
+ ble _0818F58A
+ bl sub_81A3610
+ lsls r0, 24
+ cmp r0, 0
+ beq _0818F6EE
+ movs r3, 0
+ mov r10, r3
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r4, =0x00000d24
+ adds r1, r4
+ ldrh r1, [r1]
+ lsls r1, 22
+ lsrs r1, 22
+ ldr r3, =0x000003ff
+ adds r2, r0, 0
+ ldr r6, =gUnknown_0860D3F1
+ cmp r1, r3
+ beq _0818F674
+ adds r5, r2, 0
+_0818F656:
+ movs r7, 0x1
+ add r10, r7
+ mov r0, r10
+ cmp r0, 0xF
+ bgt _0818F674
+ ldr r0, [r5]
+ mov r7, r10
+ lsls r1, r7, 2
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r3
+ bne _0818F656
+_0818F674:
+ mov r1, r10
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0818F6AC
+ movs r5, 0
+ ldr r2, [r2]
+ ldr r3, =0x00000d24
+ adds r2, r3
+ ldrh r1, [r2]
+ ldr r0, =0xfffffc00
+ ands r0, r1
+ ldr r7, =0x000003fe
+ adds r1, r7, 0
+ b _0818F6BE
+ .pool
+_0818F6AC:
+ movs r5, 0x1
+ ldr r2, [r2]
+ ldr r0, =0x00000d28
+ adds r2, r0
+ ldrh r1, [r2]
+ ldr r0, =0xfffffc00
+ ands r0, r1
+ ldr r3, =0x000003fe
+ adds r1, r3, 0
+_0818F6BE:
+ orrs r0, r1
+ strh r0, [r2]
+ movs r7, 0
+ mov r10, r7
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r4, r0, 1
+_0818F6CC:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_81A4FF0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00000d64
+ adds r1, r2
+ adds r1, r4
+ strh r0, [r1]
+ adds r4, 0x2
+ movs r3, 0x1
+ add r10, r3
+ mov r5, r10
+ cmp r5, 0x2
+ ble _0818F6CC
+_0818F6EE:
+ ldr r0, [sp, 0x18]
+ bl Free
+ ldr r0, [sp, 0x1C]
+ bl Free
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818F02C
+
+ thumb_func_start sub_818F720
+sub_818F720: @ 818F720
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r7, r1, 0
+ mov r9, r2
+ ldr r1, [sp, 0x3C]
+ ldr r2, [sp, 0x40]
+ mov r8, r2
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ movs r1, 0
+ adds r4, r5, 0
+ movs r3, 0x1
+ movs r2, 0x5
+_0818F74C:
+ adds r0, r4, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0818F756
+ adds r1, 0x1
+_0818F756:
+ lsrs r4, 1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0818F74C
+ movs r0, 0xFF
+ lsls r0, 1
+ bl __divsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r0, r6, 3
+ mov r10, r0
+ movs r1, 0
+ mov r12, r1
+ mov r1, sp
+ movs r2, 0x5
+_0818F776:
+ mov r0, r12
+ str r0, [r1]
+ adds r0, r5, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0818F784
+ str r3, [r1]
+_0818F784:
+ lsls r0, r4, 25
+ lsrs r4, r0, 24
+ adds r1, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0818F776
+ ldr r0, =0x0000012f
+ cmp r6, r0
+ bne _0818F7A0
+ movs r0, 0x1
+ b _0818F7CA
+ .pool
+_0818F7A0:
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 2
+ ldr r1, =gBaseStats
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldr r0, [sp]
+ cmp r0, 0
+ bge _0818F7BA
+ adds r0, 0x3
+_0818F7BA:
+ asrs r0, 2
+ adds r0, r1, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r0, r7
+ adds r0, 0xA
+_0818F7CA:
+ mov r1, r8
+ str r0, [r1]
+ mov r2, r10
+ subs r0, r2, r6
+ lsls r0, 2
+ ldr r1, =gBaseStats
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x1]
+ lsls r0, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bge _0818F7E8
+ adds r0, 0x3
+_0818F7E8:
+ asrs r0, 2
+ adds r0, r1, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ adds r1, 0x5
+ mov r0, r8
+ str r1, [r0, 0x4]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ movs r2, 0x1
+ bl nature_stat_mod
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ str r0, [r1, 0x4]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bge _0818F820
+ adds r0, 0x3
+_0818F820:
+ asrs r0, 2
+ adds r0, r1, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ adds r1, 0x5
+ mov r0, r8
+ str r1, [r0, 0x8]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ movs r2, 0x2
+ bl nature_stat_mod
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ str r0, [r1, 0x8]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bge _0818F858
+ adds r0, 0x3
+_0818F858:
+ asrs r0, 2
+ adds r0, r1, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ adds r1, 0x5
+ mov r0, r8
+ str r1, [r0, 0xC]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ movs r2, 0x3
+ bl nature_stat_mod
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ str r0, [r1, 0xC]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 1
+ mov r2, r9
+ adds r1, r0, r2
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bge _0818F890
+ adds r0, 0x3
+_0818F890:
+ asrs r0, 2
+ adds r0, r1, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ adds r1, 0x5
+ mov r0, r8
+ str r1, [r0, 0x10]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ movs r2, 0x4
+ bl nature_stat_mod
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ str r0, [r1, 0x10]
+ ldrb r0, [r4, 0x5]
+ lsls r0, 1
+ mov r1, r9
+ adds r2, r0, r1
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bge _0818F8C8
+ adds r0, 0x3
+_0818F8C8:
+ asrs r0, 2
+ adds r0, r2, r0
+ muls r0, r7
+ movs r1, 0x64
+ bl __divsi3
+ adds r1, r0, 0
+ adds r1, 0x5
+ mov r2, r8
+ str r1, [r2, 0x14]
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ movs r2, 0x5
+ bl nature_stat_mod
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ str r0, [r1, 0x14]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818F720
+
+ thumb_func_start sub_818F904
+sub_818F904: @ 818F904
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r3, r0, 1
+ mov r12, r3
+ adds r4, r3, r2
+ ldrh r5, [r4]
+ lsls r7, r1, 1
+ mov r9, r7
+ add r2, r9
+ ldrh r3, [r2]
+ strh r3, [r4]
+ strh r5, [r2]
+ ldr r2, =gSaveBlock2Ptr
+ ldr r5, [r2]
+ lsls r6, r0, 2
+ adds r6, r5, r6
+ ldr r3, =0x00000d24
+ adds r6, r3
+ ldrh r7, [r6]
+ mov r10, r7
+ mov r2, r10
+ lsls r2, 22
+ mov r8, r2
+ lsls r2, r1, 2
+ adds r5, r2
+ adds r5, r3
+ ldrh r4, [r5]
+ lsls r4, 22
+ lsrs r4, 22
+ ldr r3, =0xfffffc00
+ adds r2, r3, 0
+ mov r7, r10
+ ands r2, r7
+ orrs r2, r4
+ strh r2, [r6]
+ mov r2, r8
+ lsrs r2, 22
+ mov r8, r2
+ ldrh r2, [r5]
+ ands r3, r2
+ mov r7, r8
+ orrs r3, r7
+ strh r3, [r5]
+ ldr r2, =gSaveBlock2Ptr
+ mov r8, r2
+ add r12, r0
+ add r9, r1
+ mov r3, r9
+ lsls r4, r3, 1
+ mov r7, r12
+ lsls r3, r7, 1
+ ldr r7, =0x00000d64
+ movs r6, 0x2
+_0818F974:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r7
+ adds r2, r0, r3
+ ldrh r5, [r2]
+ adds r0, r4
+ ldrh r1, [r0]
+ strh r1, [r2]
+ strh r5, [r0]
+ adds r4, 0x2
+ adds r3, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0818F974
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818F904
+
+ thumb_func_start sub_818F9B0
+sub_818F9B0: @ 818F9B0
+ push {lr}
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085CCD20
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r3, =0x00000cb2
+ adds r1, r3
+ ldrh r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818F9B0
+
+ thumb_func_start sub_818F9E0
+sub_818F9E0: @ 818F9E0
+ push {lr}
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085CCD20
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r3, =0x00000cb2
+ adds r1, r3
+ ldrh r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r0, =gStringVar2
+ ldr r1, =gTrainerBattleOpponent_A
+ ldrh r1, [r1]
+ bl sub_8195898
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818F9E0
+
+ thumb_func_start sub_818FA20
+sub_818FA20: @ 818FA20
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_0203CD70
+ movs r0, 0
+ str r0, [r1]
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r5, =gUnknown_0203CD74
+ str r0, [r5]
+ adds r4, 0x64
+ adds r0, r4, 0
+ movs r1, 0x3A
+ movs r2, 0
+ bl GetMonData
+ ldr r1, [r5]
+ adds r1, r0
+ str r1, [r5]
+ bl CalculatePlayerPartyCount
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ bl sub_8195358
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_818FBDC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818FA20
+
+ thumb_func_start sub_818FA74
+sub_818FA74: @ 818FA74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x30
+ adds r5, r2, 0
+ str r3, [sp, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x28]
+ lsls r5, 24
+ lsrs r5, 24
+ add r0, sp, 0xC
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ ldr r0, [sp, 0x28]
+ bl sub_8190168
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ str r6, [sp, 0x2C]
+ bl sub_8165C40
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x64
+ ldr r4, [sp, 0x10]
+ adds r3, r4, 0
+ muls r3, r0
+ str r3, [sp, 0x18]
+ ldr r6, =gEnemyParty
+ adds r0, r3, r6
+ ldr r7, =gSaveBlock2Ptr
+ ldr r4, [r7]
+ lsls r5, 1
+ ldr r3, [sp, 0x28]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 1
+ adds r1, r5, r1
+ ldr r6, =0x00000d64
+ adds r4, r6
+ adds r4, r1
+ ldrh r3, [r4]
+ ldr r7, =gUnknown_0203BC8C
+ ldr r7, [r7]
+ mov r8, r7
+ lsls r3, 4
+ add r3, r8
+ ldrh r1, [r3]
+ ldrb r3, [r3, 0xC]
+ ldr r6, [sp, 0x2C]
+ str r6, [sp]
+ ldrh r4, [r4]
+ lsls r4, 4
+ add r4, r8
+ ldrb r4, [r4, 0xB]
+ str r4, [sp, 0x4]
+ ldr r7, [sp, 0x14]
+ str r7, [sp, 0x8]
+ bl sub_8068634
+ add r0, sp, 0xC
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ movs r6, 0
+ ldr r2, [sp, 0x18]
+ str r2, [sp, 0x1C]
+ mov r10, r5
+ ldr r3, =0x00000d64
+ mov r9, r3
+ ldr r3, =gUnknown_0203BC8C
+ mov r4, r10
+ str r4, [sp, 0x20]
+_0818FB18:
+ ldr r7, =gSaveBlock2Ptr
+ ldr r1, [r7]
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 1
+ mov r8, r0
+ mov r5, r10
+ add r5, r8
+ add r1, r9
+ adds r1, r5
+ ldrh r0, [r1]
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ lsls r4, r6, 1
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r1, [r0]
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r12, r2
+ ldr r7, [sp, 0x1C]
+ ldr r2, =gEnemyParty
+ adds r0, r7, r2
+ mov r2, r12
+ str r3, [sp, 0x24]
+ bl SetMonMoveSlot
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ add r0, r9
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, [sp, 0x24]
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ adds r0, 0x2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0xDA
+ bne _0818FB74
+ movs r1, 0
+ add r0, sp, 0xC
+ strb r1, [r0]
+_0818FB74:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0818FB18
+ movs r0, 0x64
+ ldr r1, [sp, 0x10]
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, [sp, 0x20]
+ add r1, r8
+ ldr r2, =0x00000d64
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ add sp, 0x30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818FA74
+
+ thumb_func_start sub_818FBDC
+sub_818FBDC: @ 818FBDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r6, 0
+ bl ZeroEnemyPartyMons
+ mov r0, r8
+ bl sub_818FC78
+ adds r5, r0, 0
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r7, r4, 16
+ lsls r0, 16
+ orrs r7, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bls _0818FC46
+ movs r4, 0
+_0818FC20:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0818FC3C
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ mov r1, r8
+ adds r3, r7, 0
+ bl sub_818FA74
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0818FC3C:
+ asrs r5, 1
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0818FC20
+ b _0818FC6C
+_0818FC46:
+ movs r4, 0x2
+_0818FC48:
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ beq _0818FC64
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ mov r1, r8
+ adds r3, r7, 0
+ bl sub_818FA74
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0818FC64:
+ lsls r5, 1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0818FC48
+_0818FC6C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818FBDC
+
+ thumb_func_start sub_818FC78
+sub_818FC78: @ 818FC78
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r5, r4, 0
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0818FCA2
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_818FCBC
+ cmp r0, 0
+ bne _0818FCB6
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_818FDB8
+ b _0818FCB6
+_0818FCA2:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_818FDB8
+ cmp r0, 0
+ bne _0818FCB6
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_818FCBC
+_0818FCB6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818FC78
+
+ thumb_func_start sub_818FCBC
+sub_818FCBC: @ 818FCBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ movs r0, 0
+ mov r9, r0
+ mov r1, r8
+ lsls r1, 2
+ str r1, [sp, 0x18]
+_0818FCDE:
+ mov r2, r9
+ lsls r0, r2, 2
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0
+ str r0, [r1]
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ adds r5, r1, 0
+ mov r1, r9
+ lsls r1, 1
+ str r1, [sp, 0x10]
+_0818FCFA:
+ movs r6, 0
+ adds r2, r7, 0x1
+ mov r10, r2
+_0818FD00:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, [sp, 0x18]
+ adds r0, r1, r2
+ ldr r2, =0x00000d24
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ ldr r2, =0x000003fe
+ cmp r0, r2
+ bne _0818FD3C
+ mov r1, r9
+ lsls r0, r1, 24
+ lsls r1, r7, 24
+ lsrs r0, 24
+ lsrs r1, 24
+ bl sub_81A5060
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ b _0818FD60
+ .pool
+_0818FD3C:
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 1
+ ldr r2, [sp, 0x10]
+ adds r0, r2, r0
+ ldr r2, =0x00000d64
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ lsls r1, r7, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r4, [r0]
+_0818FD60:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_818FFC0
+ ldr r1, [r5]
+ adds r1, r0
+ str r1, [r5]
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _0818FD00
+ mov r7, r10
+ cmp r7, 0x3
+ ble _0818FCFA
+ ldr r0, [sp, 0x14]
+ mov r9, r0
+ cmp r0, 0x2
+ ble _0818FCDE
+ mov r0, sp
+ ldr r1, [sp, 0xC]
+ bl sub_818FEB4
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818FCBC
+
+ thumb_func_start sub_818FDB8
+sub_818FDB8: @ 818FDB8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ movs r0, 0
+ mov r9, r0
+ mov r1, r8
+ lsls r1, 2
+ str r1, [sp, 0x18]
+_0818FDDA:
+ mov r2, r9
+ lsls r0, r2, 2
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0
+ str r0, [r1]
+ movs r7, 0
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ adds r5, r1, 0
+ mov r1, r9
+ lsls r1, 1
+ str r1, [sp, 0x10]
+_0818FDF6:
+ movs r6, 0
+ adds r2, r7, 0x1
+ mov r10, r2
+_0818FDFC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, [sp, 0x18]
+ adds r0, r1, r2
+ ldr r2, =0x00000d24
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ ldr r2, =0x000003fe
+ cmp r0, r2
+ bne _0818FE38
+ mov r1, r9
+ lsls r0, r1, 24
+ lsls r1, r7, 24
+ lsrs r0, 24
+ lsrs r1, 24
+ bl sub_81A5060
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ b _0818FE5C
+ .pool
+_0818FE38:
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 1
+ ldr r2, [sp, 0x10]
+ adds r0, r2, r0
+ ldr r2, =0x00000d64
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ lsls r1, r7, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r4, [r0]
+_0818FE5C:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_818FFC0
+ ldr r1, [r5]
+ adds r1, r0
+ str r1, [r5]
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _0818FDFC
+ mov r7, r10
+ cmp r7, 0x3
+ ble _0818FDF6
+ ldr r0, [sp, 0x14]
+ mov r9, r0
+ cmp r0, 0x2
+ ble _0818FDDA
+ mov r0, sp
+ ldr r1, [sp, 0xC]
+ bl sub_818FEB4
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818FDB8
+
+ thumb_func_start sub_818FEB4
+sub_818FEB4: @ 818FEB4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r3, 0x2
+ add r0, sp, 0x8
+_0818FECE:
+ str r3, [r0]
+ subs r0, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0818FECE
+ mov r3, r10
+ ldr r2, [r3]
+ ldr r0, [r3, 0x4]
+ cmp r2, r0
+ bne _0818FF20
+ ldr r0, [r3, 0x8]
+ cmp r2, r0
+ bne _0818FF20
+ cmp r1, 0
+ beq _0818FFAA
+ movs r3, 0
+ ldr r4, =gBitTable
+_0818FEF0:
+ str r3, [sp, 0x14]
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ ldr r3, [sp, 0x14]
+ cmp r1, 0x3
+ beq _0818FF16
+ lsls r0, r1, 2
+ adds r0, r4
+ ldr r1, [r0]
+ ldr r0, [sp, 0xC]
+ ands r0, r1
+ cmp r0, 0
+ bne _0818FF16
+ ldr r0, [sp, 0xC]
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ adds r3, 0x1
+_0818FF16:
+ cmp r3, 0x2
+ bne _0818FEF0
+ b _0818FFAA
+ .pool
+_0818FF20:
+ movs r3, 0
+ mov r9, sp
+ mov r8, r10
+_0818FF26:
+ adds r2, r3, 0x1
+ cmp r2, 0x2
+ bgt _0818FF84
+ mov r6, r8
+ mov r7, r9
+ lsls r0, r2, 2
+ mov r1, sp
+ adds r5, r0, r1
+ mov r1, r10
+ adds r4, r0, r1
+_0818FF3A:
+ ldr r0, [r6]
+ ldr r1, [r4]
+ cmp r0, r1
+ bge _0818FF4E
+ str r1, [r6]
+ str r0, [r4]
+ ldr r1, [r7]
+ ldr r0, [r5]
+ str r0, [r7]
+ str r1, [r5]
+_0818FF4E:
+ ldr r1, [r6]
+ ldr r0, [r4]
+ cmp r1, r0
+ bne _0818FF7A
+ str r2, [sp, 0x10]
+ str r3, [sp, 0x14]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ cmp r1, 0
+ beq _0818FF7A
+ ldr r1, [r6]
+ ldr r0, [r4]
+ str r0, [r6]
+ str r1, [r4]
+ ldr r1, [r7]
+ ldr r0, [r5]
+ str r0, [r7]
+ str r1, [r5]
+_0818FF7A:
+ adds r5, 0x4
+ adds r4, 0x4
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0818FF3A
+_0818FF84:
+ movs r4, 0x4
+ add r9, r4
+ add r8, r4
+ adds r3, 0x1
+ cmp r3, 0x1
+ ble _0818FF26
+ ldr r2, =gBitTable
+ mov r1, sp
+ movs r3, 0x1
+_0818FF96:
+ ldm r1!, {r0}
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r4, [sp, 0xC]
+ orrs r4, r0
+ str r4, [sp, 0xC]
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0818FF96
+_0818FFAA:
+ ldr r0, [sp, 0xC]
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818FEB4
+
+ thumb_func_start sub_818FFC0
+sub_818FFC0: @ 818FFC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ adds r4, r1, 0
+ str r2, [sp]
+ movs r6, 0
+ movs r2, 0x14
+ cmp r3, 0
+ beq _0818FFF0
+ ldr r0, =0x0000ffff
+ cmp r3, r0
+ beq _0818FFF0
+ ldr r0, =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ bne _0818FFFC
+_0818FFF0:
+ movs r0, 0
+ b _08190156
+ .pool
+_0818FFFC:
+ ldr r1, =gBaseStats
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ mov r10, r1
+ ldrb r1, [r0, 0x7]
+ mov r9, r1
+ ldrb r0, [r0, 0x16]
+ mov r8, r0
+ ldrb r3, [r3, 0x2]
+ str r3, [sp, 0x4]
+ cmp r0, 0x1A
+ bne _0819002C
+ cmp r3, 0x4
+ bne _0819002C
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bne _081900AA
+ movs r2, 0x8
+ b _081900A4
+ .pool
+_0819002C:
+ ldr r0, =gUnknown_0831ACE8
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ ldr r7, =gUnknown_0831ACE8
+ cmp r0, 0xFF
+ beq _081900A4
+ adds r4, r1, 0
+_0819003A:
+ ldrb r0, [r4]
+ cmp r0, 0xFE
+ beq _08190096
+ ldrb r0, [r4]
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bne _08190096
+ ldrb r0, [r4, 0x1]
+ adds r5, r6, 0x1
+ cmp r0, r10
+ bne _0819006C
+ adds r1, r6, 0x2
+ mov r0, r8
+ cmp r0, 0x19
+ bne _0819005E
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x28
+ bne _0819006C
+_0819005E:
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ muls r0, r2
+ movs r1, 0xA
+ bl __divsi3
+ adds r2, r0, 0
+_0819006C:
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ cmp r0, r9
+ bne _08190096
+ cmp r10, r9
+ beq _08190096
+ adds r1, r6, 0x2
+ mov r0, r8
+ cmp r0, 0x19
+ bne _08190088
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ cmp r0, 0x28
+ bne _08190096
+_08190088:
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ muls r0, r2
+ movs r1, 0xA
+ bl __divsi3
+ adds r2, r0, 0
+_08190096:
+ adds r4, 0x3
+ adds r6, 0x3
+ ldr r1, =gUnknown_0831ACE8
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0819003A
+_081900A4:
+ ldr r0, [sp]
+ cmp r0, 0x1
+ beq _081900E0
+_081900AA:
+ ldr r1, [sp]
+ cmp r1, 0x1
+ bgt _081900BC
+ cmp r1, 0
+ beq _081900C4
+ b _08190154
+ .pool
+_081900BC:
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08190114
+ b _08190154
+_081900C4:
+ cmp r2, 0xA
+ beq _08190146
+ cmp r2, 0xA
+ ble _08190146
+ cmp r2, 0x28
+ beq _0819014A
+ cmp r2, 0x28
+ bgt _081900DA
+ cmp r2, 0x14
+ beq _08190104
+ b _08190146
+_081900DA:
+ cmp r2, 0x50
+ bne _08190146
+ b _08190100
+_081900E0:
+ cmp r2, 0xA
+ beq _08190104
+ cmp r2, 0xA
+ bgt _081900F2
+ cmp r2, 0
+ beq _08190100
+ cmp r2, 0x5
+ beq _0819014A
+ b _08190146
+_081900F2:
+ cmp r2, 0x28
+ beq _08190108
+ cmp r2, 0x28
+ ble _08190146
+ cmp r2, 0x50
+ beq _0819010E
+ b _08190146
+_08190100:
+ movs r2, 0x8
+ b _08190154
+_08190104:
+ movs r2, 0x2
+ b _08190154
+_08190108:
+ movs r2, 0x2
+ negs r2, r2
+ b _08190154
+_0819010E:
+ movs r2, 0x4
+ negs r2, r2
+ b _08190154
+_08190114:
+ cmp r2, 0xA
+ beq _08190146
+ cmp r2, 0xA
+ bgt _08190126
+ cmp r2, 0
+ beq _0819013A
+ cmp r2, 0x5
+ beq _08190140
+ b _08190146
+_08190126:
+ cmp r2, 0x28
+ beq _0819014E
+ cmp r2, 0x28
+ bgt _08190134
+ cmp r2, 0x14
+ beq _0819014A
+ b _08190146
+_08190134:
+ cmp r2, 0x50
+ beq _08190152
+ b _08190146
+_0819013A:
+ movs r2, 0x10
+ negs r2, r2
+ b _08190154
+_08190140:
+ movs r2, 0x8
+ negs r2, r2
+ b _08190154
+_08190146:
+ movs r2, 0
+ b _08190154
+_0819014A:
+ movs r2, 0x4
+ b _08190154
+_0819014E:
+ movs r2, 0xC
+ b _08190154
+_08190152:
+ movs r2, 0x14
+_08190154:
+ adds r0, r2, 0
+_08190156:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818FFC0
+
+ thumb_func_start sub_8190168
+sub_8190168: @ 8190168
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ cmp r0, 0x63
+ bls _0819019A
+ movs r1, 0x6
+ cmp r0, 0x77
+ bls _0819019A
+ movs r1, 0x9
+ cmp r0, 0x8B
+ bls _0819019A
+ movs r1, 0xC
+ cmp r0, 0x9F
+ bls _0819019A
+ movs r1, 0xF
+ cmp r0, 0xB3
+ bls _0819019A
+ movs r1, 0x12
+ cmp r0, 0xC7
+ bls _0819019A
+ movs r1, 0x1F
+ cmp r0, 0xDB
+ bhi _0819019A
+ movs r1, 0x15
+_0819019A:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8190168
+
+ thumb_func_start sub_81901A0
+sub_81901A0: @ 81901A0
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ movs r5, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r4, =0x00000d24
+ adds r1, r4
+ ldrh r1, [r1]
+ lsls r1, 22
+ lsrs r1, 22
+ mov r12, r0
+ ldr r6, =gUnknown_0860D10C
+ cmp r1, r2
+ beq _081901D8
+ mov r7, r12
+_081901C0:
+ adds r5, 0x1
+ cmp r5, 0xF
+ bgt _081901D8
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r2
+ bne _081901C0
+_081901D8:
+ cmp r3, 0
+ beq _0819026C
+ cmp r3, 0x3
+ bne _081901FC
+ lsls r0, r5, 2
+ adds r1, r0, 0x3
+ adds r1, r6
+ ldrb r1, [r1]
+ adds r4, r1, 0
+ adds r4, 0x8
+ b _08190206
+ .pool
+_081901FC:
+ lsls r0, r5, 2
+ adds r1, r3, r0
+ adds r1, r6
+ ldrb r1, [r1]
+ adds r4, r1, 0x4
+_08190206:
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r2, [r0]
+ cmp r2, r4
+ bge _08190256
+ ldr r1, =gUnknown_0860D14C
+ adds r0, r2, r1
+ ldrb r3, [r0]
+ adds r6, r1, 0
+ cmp r3, r5
+ beq _08190234
+ mov r1, r12
+ ldr r0, [r1]
+ lsls r1, r3, 2
+ adds r0, r1
+ ldr r3, =0x00000d25
+ adds r0, r3
+ b _0819024E
+ .pool
+_08190234:
+ adds r2, 0x1
+ cmp r2, r4
+ bge _08190256
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ cmp r1, r5
+ beq _08190234
+ mov r3, r12
+ ldr r0, [r3]
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, =0x00000d25
+ adds r0, r1
+_0819024E:
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08190234
+_08190256:
+ cmp r2, r4
+ beq _08190286
+ ldr r0, =gUnknown_0860D14C
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ b _08190292
+ .pool
+_0819026C:
+ mov r3, r12
+ ldr r1, [r3]
+ lsls r0, r5, 2
+ adds r0, r6
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r1, r0
+ ldr r0, =0x00000d25
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08190290
+_08190286:
+ movs r0, 0xFF
+ b _08190292
+ .pool
+_08190290:
+ adds r0, r2, 0
+_08190292:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81901A0
+
+ thumb_func_start sub_8190298
+sub_8190298: @ 8190298
+ push {lr}
+ bl sub_81902AC
+ ldr r1, =gTrainerBattleOpponent_A
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190298
+
+ thumb_func_start sub_81902AC
+sub_81902AC: @ 81902AC
+ push {r4,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ ldr r1, =0x000003ff
+ bl sub_81901A0
+ lsls r0, 2
+ adds r4, r0
+ ldr r0, =0x00000d24
+ adds r4, r0
+ ldrh r0, [r4]
+ lsls r0, 22
+ lsrs r0, 22
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81902AC
+
+ thumb_func_start sub_81902E4
+sub_81902E4: @ 81902E4
+ push {lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_8162614
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81902E4
+
+ thumb_func_start sub_81902F8
+sub_81902F8: @ 81902F8
+ push {r4,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ strb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r1, [r4]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_81A4C30
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81902F8
+
+ thumb_func_start sub_819033C
+sub_819033C: @ 819033C
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r4, [r0]
+ lsls r4, 30
+ lsrs r4, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ ldr r1, [r5]
+ lsls r4, 1
+ lsrs r0, 22
+ adds r4, r0
+ ldr r3, =0x00000d0c
+ adds r1, r3
+ adds r1, r4
+ ldrh r0, [r1]
+ ldr r2, =0x000003e6
+ cmp r0, r2
+ bhi _0819036E
+ adds r0, 0x1
+ strh r0, [r1]
+_0819036E:
+ ldr r0, [r5]
+ ldr r1, =0x00000d1c
+ adds r0, r1
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, r2
+ bhi _08190380
+ adds r0, 0x1
+ strh r0, [r1]
+_08190380:
+ ldr r0, [r5]
+ adds r1, r0, r3
+ adds r1, r4
+ ldr r2, =0x00000d14
+ adds r0, r2
+ adds r0, r4
+ ldrh r1, [r1]
+ ldrh r2, [r0]
+ cmp r1, r2
+ bls _08190396
+ strh r1, [r0]
+_08190396:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819033C
+
+ thumb_func_start sub_81903B8
+sub_81903B8: @ 81903B8
+ push {r4,r5,lr}
+ ldr r0, =sub_8190400
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ bl sub_81902AC
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8195358
+ strh r0, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ ldr r0, =sub_8194B54
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81903B8
+
+ thumb_func_start sub_8190400
+sub_8190400: @ 8190400
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r10
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r0, 0xA
+ ldrsh r5, [r6, r0]
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ mov r9, r1
+ movs r0, 0xE
+ ldrsh r7, [r6, r0]
+ movs r1, 0x8
+ ldrsh r4, [r6, r1]
+ cmp r4, 0x1
+ beq _08190508
+ cmp r4, 0x1
+ bgt _08190440
+ cmp r4, 0
+ beq _0819044E
+ b _08190772
+ .pool
+_08190440:
+ cmp r4, 0x2
+ bne _08190446
+ b _08190570
+_08190446:
+ cmp r4, 0x3
+ bne _0819044C
+ b _08190634
+_0819044C:
+ b _08190772
+_0819044E:
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x1
+ bl EnableInterrupts
+ str r4, [sp, 0x4]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ add r0, sp, 0x4
+ bl CpuSet
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_0860CE84
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_0860CEB4
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ ldr r0, =gUnknown_02022E14
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E20
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E22
+ strh r4, [r0]
+ mov r2, r9
+ cmp r2, 0x2
+ bne _081904DC
+ ldr r0, =gUnknown_02022E1C
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E1E
+ strh r4, [r0]
+ b _081904E6
+ .pool
+_081904DC:
+ ldr r0, =gUnknown_02022E1C
+ strh r4, [r0]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+_081904E6:
+ ldr r0, =gTasks
+ mov r2, r10
+ lsls r1, r2, 2
+ add r1, r10
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08190772
+ .pool
+_08190508:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4C
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x40
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x44
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x42
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x46
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x3F
+ bl SetGpuReg
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ b _08190602
+ .pool
+_08190570:
+ ldr r1, =gUnknown_08D83D50
+ movs r5, 0x80
+ lsls r5, 6
+ movs r7, 0
+ str r7, [sp]
+ movs r0, 0x2
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08D84970
+ movs r4, 0x1
+ str r4, [sp]
+ movs r0, 0x2
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08D84F00
+ movs r2, 0x80
+ lsls r2, 4
+ str r4, [sp]
+ movs r0, 0x3
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r0, =gUnknown_0860CF50
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08D85358
+ movs r4, 0x80
+ lsls r4, 2
+ movs r1, 0
+ adds r2, r4, 0
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_08D85444
+ movs r1, 0x80
+ lsls r1, 1
+ adds r2, r4, 0
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_08D85600
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r0, r9
+ cmp r0, 0x2
+ bne _081905DE
+ ldr r0, =gUnknown_08D854C8
+ movs r1, 0x50
+ movs r2, 0x20
+ bl LoadCompressedPalette
+_081905DE:
+ str r7, [sp, 0x8]
+ add r0, sp, 0x8
+ ldr r1, =gPlttBufferFaded
+ ldr r2, =0x05000100
+ bl CpuSet
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+_08190602:
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _08190772
+ .pool
+_08190634:
+ ldr r0, =sub_8194B70
+ bl SetVBlankCallback
+ ldr r4, =gUnknown_0203CD78
+ movs r0, 0x14
+ bl AllocZeroed
+ str r0, [r4]
+ movs r6, 0
+ lsls r5, 24
+ movs r2, 0xFF
+_0819064A:
+ ldr r1, [r4]
+ adds r1, r6
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0819064A
+ bl sub_80D2F04
+ ldr r0, =sub_8190CD4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xC]
+ mov r1, r9
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x10]
+ mov r2, r9
+ cmp r2, 0x2
+ bne _081906A8
+ lsrs r1, r5, 24
+ movs r0, 0
+ bl sub_819314C
+ ldr r0, =gUnknown_0203CD78
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+ b _081906B0
+ .pool
+_081906A8:
+ lsrs r1, r5, 24
+ movs r0, 0
+ bl sub_81924E0
+_081906B0:
+ movs r1, 0xFA
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ mov r0, r9
+ cmp r0, 0
+ beq _0819076C
+ ldr r5, =gUnknown_0860D068
+ adds r0, r5, 0
+ movs r1, 0x78
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ ldr r1, =gSprites
+ mov r8, r1
+ add r4, r8
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ adds r0, r5, 0
+ movs r1, 0x78
+ movs r2, 0x9C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ add r4, r8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ ldr r5, =gUnknown_0860D050
+ adds r0, r5, 0
+ movs r1, 0x6
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ mov r2, r8
+ adds r4, r0, r2
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ mov r1, r9
+ cmp r1, 0x1
+ bne _08190746
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08190746:
+ adds r0, r5, 0
+ movs r1, 0xEA
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ add r4, r8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+ movs r0, 0x1
+ strh r0, [r4, 0x30]
+_0819076C:
+ mov r0, r10
+ bl DestroyTask
+_08190772:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190400
+
+ thumb_func_start sub_8190790
+sub_8190790: @ 8190790
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x22]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x22]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _081907D4
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ blt _081907BC
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_081907BC:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ bne _081907F0
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ b _081907F0
+ .pool
+_081907D4:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xBF
+ ble _081907F0
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrh r0, [r2, 0x34]
+ bl sub_818D8F0
+_081907F0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190790
+
+ thumb_func_start sub_81907F8
+sub_81907F8: @ 81907F8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x22]
+ subs r1, r0, 0x4
+ strh r1, [r2, 0x22]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08190838
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xC0
+ bgt _08190820
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_08190820:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ bne _08190858
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ b _08190858
+ .pool
+_08190838:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _08190858
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrh r0, [r2, 0x34]
+ bl sub_818D8F0
+_08190858:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81907F8
+
+ thumb_func_start sub_8190860
+sub_8190860: @ 8190860
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ adds r1, r0, 0x4
+ strh r1, [r2, 0x20]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _081908A4
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ blt _0819088C
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_0819088C:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _081908C0
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ b _081908C0
+ .pool
+_081908A4:
+ lsls r1, 16
+ ldr r0, =0x010f0000
+ cmp r1, r0
+ ble _081908C0
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrh r0, [r2, 0x34]
+ bl sub_818D8F0
+_081908C0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190860
+
+ thumb_func_start sub_81908CC
+sub_81908CC: @ 81908CC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r1, r0, 0x4
+ strh r1, [r2, 0x20]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08190910
+ lsls r1, 16
+ movs r0, 0x88
+ lsls r0, 17
+ cmp r1, r0
+ bgt _081908F6
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+_081908F6:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _08190930
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+ b _08190930
+ .pool
+_08190910:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _08190930
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrh r0, [r2, 0x34]
+ bl sub_818D8F0
+_08190930:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81908CC
+
+ thumb_func_start sub_8190938
+sub_8190938: @ 8190938
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x34
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0819094A
+ adds r0, r1, 0
+ bl sub_80D30DC
+_0819094A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8190938
+
+ thumb_func_start sub_8190950
+sub_8190950: @ 8190950
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08190962
+ adds r0, r4, 0
+ bl sub_80D30DC
+_08190962:
+ ldrh r0, [r4, 0x22]
+ adds r1, r0, 0x4
+ strh r1, [r4, 0x22]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081909A4
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ blt _0819098A
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0819098A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ bne _081909C0
+ ldr r0, =sub_8190938
+ str r0, [r4, 0x1C]
+ b _081909C0
+ .pool
+_081909A4:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xAF
+ ble _081909C0
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80D2EF8
+_081909C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190950
+
+ thumb_func_start sub_81909CC
+sub_81909CC: @ 81909CC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081909DE
+ adds r0, r4, 0
+ bl sub_80D30DC
+_081909DE:
+ ldrh r0, [r4, 0x22]
+ subs r1, r0, 0x4
+ strh r1, [r4, 0x22]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08190A1C
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xB0
+ bgt _08190A02
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08190A02:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ bne _08190A3C
+ ldr r0, =sub_8190938
+ str r0, [r4, 0x1C]
+ b _08190A3C
+ .pool
+_08190A1C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _08190A3C
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80D2EF8
+_08190A3C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81909CC
+
+ thumb_func_start sub_8190A48
+sub_8190A48: @ 8190A48
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08190A5A
+ adds r0, r4, 0
+ bl sub_80D30DC
+_08190A5A:
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0x4
+ strh r1, [r4, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08190A9C
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ blt _08190A82
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08190A82:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _08190AB8
+ ldr r0, =sub_8190938
+ str r0, [r4, 0x1C]
+ b _08190AB8
+ .pool
+_08190A9C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08190AB8
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80D2EF8
+_08190AB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190A48
+
+ thumb_func_start sub_8190AC4
+sub_8190AC4: @ 8190AC4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08190AD6
+ adds r0, r4, 0
+ bl sub_80D30DC
+_08190AD6:
+ ldrh r0, [r4, 0x20]
+ subs r1, r0, 0x4
+ strh r1, [r4, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08190B14
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bgt _08190AFC
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08190AFC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ bne _08190B34
+ ldr r0, =sub_8190938
+ str r0, [r4, 0x1C]
+ b _08190B34
+ .pool
+_08190B14:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bgt _08190B34
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl sub_80D2EF8
+_08190B34:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190AC4
+
+ thumb_func_start sub_8190B40
+sub_8190B40: @ 8190B40
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r6, [r3, r0]
+ ldr r2, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r2
+ movs r7, 0x10
+ ldrsh r1, [r4, r7]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ ldr r1, =gUnknown_0860D080
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r5, [r1]
+ ldr r7, =0x00000cb2
+ adds r0, r5, r7
+ ldrh r0, [r0]
+ mov r12, r0
+ movs r7, 0xE
+ ldrsh r0, [r4, r7]
+ mov r9, r2
+ mov r8, r1
+ cmp r0, 0x1
+ bne _08190C0C
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08190BFC
+ mov r2, r10
+ lsls r0, r2, 2
+ adds r1, r5, r0
+ ldr r7, =0x00000d25
+ adds r1, r7
+ ldrb r2, [r1]
+ lsls r1, r2, 29
+ adds r4, r0, 0
+ cmp r1, 0
+ bge _08190BB6
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x10]
+ subs r1, 0x1
+ lsls r0, r2, 27
+ lsrs r0, 30
+ cmp r1, r0
+ blt _08190C32
+_08190BB6:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4
+ ldr r2, =0x00000d25
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08190BD4
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ subs r0, 0x1
+ cmp r0, r12
+ blt _08190C32
+_08190BD4:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ add r0, r9
+ movs r7, 0x8
+ ldrsh r0, [r0, r7]
+ b _08190C4C
+ .pool
+_08190BFC:
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08190C32
+ b _08190C48
+ .pool
+_08190C0C:
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _08190C28
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bls _08190C32
+ movs r7, 0x8
+ ldrsh r0, [r4, r7]
+ b _08190C4C
+ .pool
+_08190C28:
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _08190C48
+_08190C32:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _08190C5C
+ .pool
+_08190C48:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+_08190C4C:
+ cmp r0, 0x2
+ bne _08190C5C
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08190C5C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8190B40
+
+ thumb_func_start sub_8190C6C
+sub_8190C6C: @ 8190C6C
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ ldr r2, =gTasks
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _08190C9C
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08190CA6
+ b _08190CC0
+ .pool
+_08190C9C:
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ beq _08190CC0
+_08190CA6:
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ bne _08190CCE
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08190CCE
+ .pool
+_08190CC0:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08190CCE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8190C6C
+
+ thumb_func_start sub_8190CD4
+sub_8190CD4: @ 8190CD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xE
+ ldrsh r2, [r0, r3]
+ mov r9, r2
+ movs r4, 0x10
+ ldrsh r7, [r0, r4]
+ movs r5, 0x8
+ ldrsh r0, [r0, r5]
+ cmp r0, 0x8
+ bls _08190D06
+ bl _08192202
+_08190D06:
+ lsls r0, 2
+ ldr r1, =_08190D18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08190D18:
+ .4byte _08190D3C
+ .4byte _08190D7C
+ .4byte _08190DA8
+ .4byte _08190E48
+ .4byte _08191FF8
+ .4byte _08192038
+ .4byte _08192078
+ .4byte _081920BC
+ .4byte _08192106
+_08190D3C:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08190D50
+ bl _08192202
+_08190D50:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ mov r6, r8
+ lsls r0, r6, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ bl _08192202
+ .pool
+_08190D7C:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08190D8C
+ bl _08192202
+_08190D8C:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ bl _08192202
+ .pool
+_08190DA8:
+ mov r0, r8
+ bl sub_819221C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x8
+ bgt _08190DBE
+ cmp r6, 0x1
+ bge _08190DF0
+ bl _08192202
+_08190DBE:
+ cmp r6, 0x9
+ beq _08190DC6
+ bl _08192202
+_08190DC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ strh r1, [r0, 0x8]
+ bl _08192202
+ .pool
+_08190DF0:
+ ldr r1, =gTasks
+ mov r4, r8
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x12]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ movs r1, 0
+ mov r9, r2
+ cmp r0, 0
+ beq _08190E0C
+ movs r1, 0x9
+_08190E0C:
+ adds r6, r1, 0
+ adds r0, r6, 0
+ adds r0, 0x9
+ cmp r6, r0
+ bge _08190E32
+ adds r5, r0, 0
+_08190E18:
+ lsls r4, r6, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r6, 0x1
+ cmp r6, r5
+ blt _08190E18
+_08190E32:
+ ldr r0, =gTasks
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ bl _08192202
+ .pool
+_08190E48:
+ mov r6, r8
+ lsls r1, r6, 2
+ adds r0, r1, r6
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r0, r2
+ movs r3, 0x12
+ ldrsh r6, [r0, r3]
+ subs r0, r6, 0x1
+ mov r9, r1
+ cmp r0, 0x7
+ bls _08190E64
+ bl _08192202
+_08190E64:
+ lsls r0, 2
+ ldr r1, =_08190E78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08190E78:
+ .4byte _08190E98
+ .4byte _08191234
+ .4byte _081915CC
+ .4byte _08191B08
+ .4byte _08190E98
+ .4byte _08191234
+ .4byte _0819187C
+ .4byte _08191D68
+_08190E98:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _08190ED4
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E1A
+ movs r0, 0xA0
+ strh r0, [r1]
+ b _08190EE6
+ .pool
+_08190ED4:
+ ldr r0, =gUnknown_02022E14
+ strh r2, [r0]
+ ldr r1, =gUnknown_02022E16
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_08190EE6:
+ cmp r6, 0x1
+ bne _08190F9C
+ ldr r5, =gUnknown_0203CD78
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x10]
+ cmp r1, 0
+ bne _08190F50
+ ldr r0, =gUnknown_02022E1C
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E1E
+ movs r6, 0xA0
+ lsls r6, 1
+ adds r0, r6, 0
+ strh r0, [r1]
+ ldr r3, =gUnknown_0860D080
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r4, 0xA
+ ldrsh r1, [r0, r4]
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x10
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_81924E0
+ b _08191084
+ .pool
+_08190F50:
+ ldr r1, =gUnknown_02022E1C
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E1E
+ movs r4, 0
+ strh r4, [r0]
+ ldr r3, =gUnknown_0860D080
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r6, 0xA
+ ldrsh r1, [r0, r6]
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x10
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_81924E0
+ ldr r0, [r5]
+ strb r4, [r0, 0x10]
+ b _08191084
+ .pool
+_08190F9C:
+ ldr r6, =gUnknown_0203CD78
+ ldr r1, [r6]
+ ldrb r5, [r1, 0x10]
+ cmp r5, 0
+ bne _08190FF8
+ ldr r4, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r0, 0
+ subs r2, 0x10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, 0x11
+ bl sub_8192F08
+ ldr r0, =gUnknown_02022E1C
+ strh r5, [r0]
+ ldr r1, =gUnknown_02022E1E
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r2, [r6]
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r4
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x10
+ orrs r0, r1
+ ldrb r1, [r2, 0x11]
+ bl sub_81924E0
+ b _08191084
+ .pool
+_08190FF8:
+ cmp r5, 0x2
+ bne _0819104C
+ ldr r4, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ adds r2, r0, 0
+ subs r2, 0x10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, 0x11
+ bl sub_8192F08
+ ldr r1, =gUnknown_02022E1C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, [r6]
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r4
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x10
+ orrs r0, r1
+ ldrb r1, [r2, 0x12]
+ bl sub_81924E0
+ b _08191084
+ .pool
+_0819104C:
+ ldr r1, =gUnknown_02022E1C
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r4, 0xA
+ ldrsh r0, [r0, r4]
+ adds r2, r0, 0
+ subs r2, 0x10
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x10
+ orrs r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ bl sub_819314C
+_08191084:
+ movs r6, 0
+ ldr r5, =gUnknown_0203CD78
+ mov r10, r5
+ ldr r3, =gSprites
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ mov r12, r6
+ adds r4, r3, 0
+ adds r4, 0x1C
+ movs r7, 0x1
+_0819109E:
+ cmp r6, 0x1
+ bgt _0819110C
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191150
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190790
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191150
+ .pool
+_0819110C:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191150
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190950
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191150:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _0819109E
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_0819116E:
+ cmp r6, 0x9
+ bgt _081911D4
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191214
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190790
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191214
+ .pool
+_081911D4:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191214
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190950
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191214:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0819116E
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r2, 0
+ movs r1, 0x4
+ bl _08191FE8
+ .pool
+_08191234:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _08191278
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E1A
+ ldr r2, =0x0000ff60
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _0819128C
+ .pool
+_08191278:
+ ldr r0, =gUnknown_02022E14
+ strh r2, [r0]
+ ldr r1, =gUnknown_02022E16
+ ldr r3, =0x0000ff60
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_0819128C:
+ cmp r6, 0x2
+ bne _0819133C
+ ldr r5, =gUnknown_0203CD78
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x10]
+ cmp r1, 0
+ bne _081912F4
+ ldr r0, =gUnknown_02022E1C
+ strh r1, [r0]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r3, =gUnknown_0860D080
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r4, 0xA
+ ldrsh r1, [r0, r4]
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x4
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_81924E0
+ b _0819141C
+ .pool
+_081912F4:
+ ldr r0, =gUnknown_02022E1C
+ movs r4, 0
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E1E
+ strh r4, [r0]
+ ldr r3, =gUnknown_0860D080
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r6, 0xA
+ ldrsh r1, [r0, r6]
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x4
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_81924E0
+ ldr r0, [r5]
+ strb r4, [r0, 0x10]
+ b _0819141C
+ .pool
+_0819133C:
+ ldr r6, =gUnknown_0203CD78
+ ldr r1, [r6]
+ ldrb r5, [r1, 0x10]
+ cmp r5, 0
+ bne _08191394
+ ldr r4, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r2, 0xA
+ ldrsh r0, [r0, r2]
+ adds r2, r0, 0
+ subs r2, 0x10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, 0x11
+ bl sub_8192F08
+ ldr r0, =gUnknown_02022E1C
+ strh r5, [r0]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r2, [r6]
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r4
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x4
+ orrs r0, r1
+ ldrb r1, [r2, 0x11]
+ bl sub_81924E0
+ b _0819141C
+ .pool
+_08191394:
+ cmp r5, 0x2
+ bne _081913E4
+ ldr r4, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r0, [r0, r3]
+ adds r2, r0, 0
+ subs r2, 0x10
+ lsls r0, r2, 24
+ lsrs r0, 24
+ adds r1, 0x11
+ bl sub_8192F08
+ ldr r1, =gUnknown_02022E1C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r2, [r6]
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r4
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x4
+ orrs r0, r1
+ ldrb r1, [r2, 0x12]
+ bl sub_81924E0
+ b _0819141C
+ .pool
+_081913E4:
+ ldr r1, =gUnknown_02022E1C
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ adds r2, r0, 0
+ subs r2, 0x10
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x4
+ orrs r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ bl sub_819314C
+_0819141C:
+ movs r6, 0
+ ldr r0, =gUnknown_0203CD78
+ mov r10, r0
+ ldr r3, =gSprites
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ mov r12, r6
+ adds r4, r3, 0
+ adds r4, 0x1C
+ movs r7, 0x1
+_08191436:
+ cmp r6, 0x1
+ bgt _081914A4
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _081914E8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_81907F8
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _081914E8
+ .pool
+_081914A4:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _081914E8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_81909CC
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_081914E8:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08191436
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_08191506:
+ cmp r6, 0x9
+ bgt _0819156C
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _081915AC
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81907F8
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _081915AC
+ .pool
+_0819156C:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _081915AC
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81909CC
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_081915AC:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08191506
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r2, 0
+ movs r1, 0x5
+ bl _08191FE8
+ .pool
+_081915CC:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _0819160C
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r2, =gUnknown_02022E18
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6, 0
+ strh r0, [r2]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ b _08191622
+ .pool
+_0819160C:
+ ldr r1, =gUnknown_02022E14
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E16
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_08191622:
+ ldr r0, =gUnknown_0203CD78
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ bne _08191688
+ ldr r1, =gUnknown_02022E1C
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r3, =gUnknown_0860D080
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r5, 0xA
+ ldrsh r1, [r0, r5]
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x8
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_81924E0
+ b _081916C6
+ .pool
+_08191688:
+ ldr r1, =gUnknown_02022E1C
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0
+ strh r0, [r1]
+ ldr r3, =gUnknown_0860D15C
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r5, 0xA
+ ldrsh r1, [r0, r5]
+ lsls r1, 2
+ subs r1, 0x1
+ ldrb r4, [r4, 0x10]
+ adds r1, r4
+ adds r1, r3
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0xC]
+ movs r0, 0x8
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_819314C
+_081916C6:
+ movs r6, 0
+ ldr r0, =gUnknown_0203CD78
+ mov r10, r0
+ ldr r3, =gSprites
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ mov r12, r6
+ adds r4, r3, 0
+ adds r4, 0x1C
+ movs r7, 0x1
+_081916E0:
+ cmp r6, 0x1
+ bgt _08191754
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191798
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190860
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191798
+ .pool
+_08191754:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191798
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190A48
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191798:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _081916E0
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_081917B6:
+ cmp r6, 0x9
+ bgt _0819181C
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _0819185C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190860
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _0819185C
+ .pool
+_0819181C:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _0819185C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190A48
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_0819185C:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _081917B6
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r2, 0
+ movs r1, 0x6
+ b _08191FE8
+ .pool
+_0819187C:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _081918BC
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r2, =gUnknown_02022E18
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r6, 0
+ strh r0, [r2]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ b _081918D2
+ .pool
+_081918BC:
+ ldr r1, =gUnknown_02022E14
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E16
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_081918D2:
+ ldr r0, =gUnknown_0203CD78
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0
+ bne _08191924
+ ldr r1, =gUnknown_02022E1C
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x8
+ orrs r0, r1
+ ldrb r1, [r2, 0x11]
+ bl sub_81924E0
+ b _08191958
+ .pool
+_08191924:
+ ldr r1, =gUnknown_02022E1C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ adds r2, r0, 0
+ subs r2, 0x10
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x8
+ orrs r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ bl sub_819314C
+_08191958:
+ movs r6, 0
+ ldr r0, =gUnknown_0203CD78
+ mov r10, r0
+ ldr r3, =gSprites
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ mov r12, r6
+ adds r4, r3, 0
+ adds r4, 0x1C
+ movs r7, 0x1
+_08191972:
+ cmp r6, 0x1
+ bgt _081919E0
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191A24
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190860
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191A24
+ .pool
+_081919E0:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191A24
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190A48
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191A24:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08191972
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_08191A42:
+ cmp r6, 0x9
+ bgt _08191AA8
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191AE8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190860
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191AE8
+ .pool
+_08191AA8:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191AE8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190A48
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191AE8:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08191A42
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r2, 0
+ movs r1, 0x6
+ b _08191FE8
+ .pool
+_08191B08:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _08191B48
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r2, =gUnknown_02022E18
+ movs r6, 0xFF
+ lsls r6, 8
+ adds r0, r6, 0
+ strh r0, [r2]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ b _08191B5E
+ .pool
+_08191B48:
+ ldr r1, =gUnknown_02022E14
+ movs r3, 0xFF
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E16
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_08191B5E:
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _08191B94
+ ldr r1, =gUnknown_02022E1C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ b _08191B9E
+ .pool
+_08191B94:
+ ldr r0, =gUnknown_02022E1C
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E1E
+ strh r1, [r0]
+_08191B9E:
+ ldr r4, =gUnknown_0860D15C
+ ldr r5, =gUnknown_0203CD78
+ ldr r3, [r5]
+ ldr r2, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ movs r6, 0xA
+ ldrsh r1, [r0, r6]
+ lsls r1, 2
+ subs r1, 0x1
+ ldrb r3, [r3, 0x10]
+ adds r1, r3
+ adds r1, r4
+ mov r4, r9
+ add r4, r8
+ lsls r4, 3
+ adds r4, r2
+ ldrb r2, [r4, 0xC]
+ movs r0, 0x2
+ orrs r0, r2
+ ldrb r1, [r1]
+ bl sub_819314C
+ movs r6, 0
+ ldr r7, =gSprites
+ mov r12, r6
+ mov r10, r5
+ adds r5, r7, 0
+ adds r5, 0x1C
+_08191BDC:
+ cmp r6, 0x1
+ bgt _08191C50
+ mov r1, r10
+ ldr r0, [r1]
+ adds r3, r0, r6
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _08191C96
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =sub_81908CC
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r1, [r4, 0xC]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ mov r2, r12
+ strh r2, [r0, 0x30]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r6, [r0, 0x32]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r1, [r0, 0x34]
+ b _08191C96
+ .pool
+_08191C50:
+ mov r3, r10
+ ldr r0, [r3]
+ adds r3, r0, r6
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _08191C96
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, =sub_8190AC4
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r1, [r4, 0xC]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r6, [r0, 0x32]
+_08191C96:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08191BDC
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_08191CB4:
+ cmp r6, 0x9
+ bgt _08191D1C
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191D5C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81908CC
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191D5C
+ .pool
+_08191D1C:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191D5C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190AC4
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191D5C:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08191CB4
+ b _08191FDA
+ .pool
+_08191D68:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r0, r4
+ movs r5, 0xC
+ ldrsh r2, [r0, r5]
+ cmp r2, 0
+ beq _08191DA8
+ ldr r0, =gUnknown_02022E14
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r1, [r0]
+ ldr r2, =gUnknown_02022E18
+ movs r6, 0xFF
+ lsls r6, 8
+ adds r0, r6, 0
+ strh r0, [r2]
+ ldr r0, =gUnknown_02022E1A
+ strh r1, [r0]
+ b _08191DBE
+ .pool
+_08191DA8:
+ ldr r1, =gUnknown_02022E14
+ movs r3, 0xFF
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, =gUnknown_02022E16
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r2, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r2, [r0]
+_08191DBE:
+ ldr r0, =gUnknown_0203CD78
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0x2
+ bne _08191E10
+ ldr r1, =gUnknown_02022E1C
+ movs r4, 0x80
+ lsls r4, 1
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x2
+ orrs r0, r1
+ ldrb r1, [r2, 0x12]
+ bl sub_81924E0
+ b _08191E44
+ .pool
+_08191E10:
+ ldr r1, =gUnknown_02022E1C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r5, 0xA
+ ldrsh r0, [r0, r5]
+ adds r2, r0, 0
+ subs r2, 0x10
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x2
+ orrs r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ bl sub_819314C
+_08191E44:
+ movs r6, 0
+ ldr r0, =gUnknown_0203CD78
+ mov r10, r0
+ ldr r3, =gSprites
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r5, r0, r1
+ mov r12, r6
+ adds r4, r3, 0
+ adds r4, 0x1C
+ movs r7, 0x1
+_08191E5E:
+ cmp r6, 0x1
+ bgt _08191ECC
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191F10
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_81908CC
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191F10
+ .pool
+_08191ECC:
+ mov r2, r10
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191F10
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, =sub_8190AC4
+ str r1, [r0]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r5, 0xC]
+ eors r0, r7
+ strh r0, [r1, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191F10:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08191E5E
+ movs r6, 0x8
+ ldr r2, =gUnknown_0203CD78
+ mov r12, r2
+ ldr r3, =gSprites
+ ldr r1, =gTasks
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r4, 0
+ adds r7, r3, 0
+ adds r7, 0x1C
+_08191F2E:
+ cmp r6, 0x9
+ bgt _08191F94
+ mov r1, r12
+ ldr r0, [r1]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191FD4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81908CC
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r1, [r0, 0x34]
+ b _08191FD4
+ .pool
+_08191F94:
+ mov r2, r12
+ ldr r0, [r2]
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _08191FD4
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_8190AC4
+ str r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r5, 0xC]
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r4, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r6, [r0, 0x32]
+_08191FD4:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08191F2E
+_08191FDA:
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r2, 0
+ movs r1, 0x7
+_08191FE8:
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0x12]
+ b _08192202
+ .pool
+_08191FF8:
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r5, =gTasks
+ adds r1, r0, r5
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ beq _08192100
+ ldr r1, =gUnknown_02022E16
+ ldrh r0, [r1]
+ subs r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1A
+ ldrh r0, [r1]
+ subs r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ b _081920A4
+ .pool
+_08192038:
+ mov r6, r8
+ lsls r0, r6, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ beq _08192100
+ ldr r1, =gUnknown_02022E16
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1A
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1E
+ b _081920E8
+ .pool
+_08192078:
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r4, =gTasks
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x41
+ beq _08192100
+ ldr r1, =gUnknown_02022E14
+ ldrh r0, [r1]
+ subs r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E18
+ ldrh r0, [r1]
+ subs r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1C
+_081920A4:
+ ldrh r0, [r1]
+ subs r0, 0x4
+ strh r0, [r1]
+ b _08192202
+ .pool
+_081920BC:
+ mov r5, r8
+ lsls r0, r5, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r6, =gTasks
+ adds r1, r0, r6
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x41
+ beq _08192100
+ ldr r1, =gUnknown_02022E14
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E18
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E1C
+_081920E8:
+ ldrh r0, [r1]
+ adds r0, 0x4
+ strh r0, [r1]
+ b _08192202
+ .pool
+_08192100:
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ b _08192202
+_08192106:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08192202
+ movs r6, 0
+ ldr r4, =gUnknown_0203CD78
+_08192116:
+ cmp r6, 0x1
+ bgt _08192134
+ ldr r0, [r4]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0819214E
+ bl sub_818D8F0
+ b _0819214E
+ .pool
+_08192134:
+ ldr r0, [r4]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0819214E
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl sub_80D2EF8
+_0819214E:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _08192116
+ movs r6, 0x8
+ ldr r4, =gUnknown_0203CD78
+_08192158:
+ cmp r6, 0x9
+ bgt _08192174
+ ldr r0, [r4]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0819218E
+ bl sub_818D8F0
+ b _0819218E
+ .pool
+_08192174:
+ ldr r0, [r4]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0819218E
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl sub_80D2EF8
+_0819218E:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08192158
+ bl sub_80D2F9C
+ ldr r4, =gUnknown_0203CD78
+ ldr r0, [r4]
+ bl Free
+ movs r5, 0
+ str r5, [r4]
+ bl FreeAllWindowBuffers
+ mov r0, r9
+ cmp r0, 0
+ bne _081921C4
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ b _081921FC
+ .pool
+_081921C4:
+ ldr r0, =sub_8194220
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r2
+ strh r5, [r1, 0x8]
+ strh r5, [r1, 0xA]
+ movs r0, 0x3
+ strh r0, [r1, 0xC]
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x10]
+ strh r0, [r1, 0xE]
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x14]
+ strh r0, [r1, 0x10]
+_081921FC:
+ mov r0, r8
+ bl DestroyTask
+_08192202:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8190CD4
+
+ thumb_func_start sub_819221C
+sub_819221C: @ 819221C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r7, 0
+ ldr r2, =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r2
+ mov r12, r0
+ movs r1, 0x10
+ ldrsh r6, [r0, r1]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r2
+ movs r3, 0xA
+ ldrsh r5, [r0, r3]
+ ldr r0, =gUnknown_0860D080
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r0
+ ldr r1, =gMain
+ ldrh r4, [r1, 0x2E]
+ movs r0, 0x3
+ ands r0, r4
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _0819226E
+ movs r7, 0x9
+_0819226E:
+ mov r3, r12
+ movs r1, 0xE
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _0819227A
+ b _081924CC
+_0819227A:
+ cmp r0, 0x1
+ beq _08192280
+ b _081923B0
+_08192280:
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ beq _081922BA
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _081922BA
+ cmp r5, 0
+ bne _081922B4
+ movs r5, 0xF
+ b _081922B6
+ .pool
+_081922B4:
+ subs r5, 0x1
+_081922B6:
+ movs r7, 0x1
+ b _08192360
+_081922BA:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081922E2
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _081922E2
+ cmp r5, 0xF
+ bne _081922DC
+ movs r5, 0
+ b _081922DE
+ .pool
+_081922DC:
+ adds r5, 0x1
+_081922DE:
+ movs r7, 0x2
+ b _08192360
+_081922E2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08192304
+ ldr r0, =gUnknown_0203CD78
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0
+ beq _08192304
+ subs r0, 0x1
+ strb r0, [r1, 0x10]
+ movs r7, 0x3
+ b _08192360
+ .pool
+_08192304:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08192360
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ mov r3, r10
+ lsls r1, r3, 2
+ adds r0, r1
+ ldr r2, =0x00000d25
+ adds r0, r2
+ ldrb r3, [r0]
+ lsls r0, r3, 29
+ mov r12, r1
+ cmp r0, 0
+ bge _0819233C
+ ldr r0, =gUnknown_0203CD78
+ ldr r2, [r0]
+ ldrb r4, [r2, 0x10]
+ subs r1, r4, 0x1
+ lsls r0, r3, 27
+ lsrs r0, 30
+ cmp r1, r0
+ bge _0819233C
+ adds r0, r4, 0x1
+ strb r0, [r2, 0x10]
+ movs r7, 0x4
+_0819233C:
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ add r0, r12
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08192360
+ ldr r0, =gUnknown_0203CD78
+ ldr r3, [r0]
+ ldrb r1, [r3, 0x10]
+ subs r0, r1, 0x1
+ cmp r0, r8
+ bge _08192360
+ adds r0, r1, 0x1
+ strb r0, [r3, 0x10]
+ movs r7, 0x4
+_08192360:
+ cmp r7, 0x9
+ beq _08192366
+ b _081924A0
+_08192366:
+ ldr r0, =gUnknown_0203CD78
+ ldr r3, [r0]
+ ldrb r0, [r3, 0x10]
+ cmp r0, 0
+ beq _081923A0
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ ldr r2, =gTasks
+ adds r1, r2
+ ldr r2, =gUnknown_0860D1A0
+ lsrs r0, r5, 31
+ adds r0, r5, r0
+ asrs r0, 1
+ lsls r0, 2
+ subs r0, 0x1
+ ldrb r3, [r3, 0x10]
+ adds r0, r3
+ b _08192482
+ .pool
+_081923A0:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ b _0819249E
+ .pool
+_081923B0:
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ beq _081923DE
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _081923DE
+ cmp r5, 0x10
+ bne _081923D8
+ ldr r0, =gUnknown_0860D19C
+ add r0, r8
+ ldrb r5, [r0]
+ b _081923DA
+ .pool
+_081923D8:
+ subs r5, 0x1
+_081923DA:
+ movs r7, 0x5
+ b _08192446
+_081923DE:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819240E
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _0819240E
+ ldr r0, =gUnknown_0860D19C
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _08192408
+ movs r5, 0x10
+ b _0819240A
+ .pool
+_08192408:
+ adds r5, 0x1
+_0819240A:
+ movs r7, 0x6
+ b _08192446
+_0819240E:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819242C
+ ldr r0, =gUnknown_0203CD78
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0
+ beq _0819242C
+ movs r7, 0x7
+ subs r0, 0x1
+ b _08192444
+ .pool
+_0819242C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08192446
+ ldr r0, =gUnknown_0203CD78
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x1
+ bhi _08192446
+ movs r7, 0x8
+ adds r0, 0x1
+_08192444:
+ strb r0, [r1, 0x10]
+_08192446:
+ cmp r7, 0x9
+ bne _081924A0
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x10]
+ cmp r1, 0
+ bne _08192470
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ ldr r2, =gTasks
+ adds r1, r2
+ ldr r2, =gUnknown_0860D1C0
+ ldrb r0, [r0, 0x11]
+ b _08192482
+ .pool
+_08192470:
+ cmp r1, 0x2
+ bne _08192494
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ ldr r3, =gTasks
+ adds r1, r3
+ ldr r2, =gUnknown_0860D1C0
+ ldrb r0, [r0, 0x12]
+_08192482:
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0xA]
+ b _081924A0
+ .pool
+_08192494:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r0, r1
+_0819249E:
+ strh r5, [r0, 0xA]
+_081924A0:
+ cmp r7, 0
+ beq _081924CC
+ cmp r7, 0x9
+ beq _081924CC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xC]
+ movs r2, 0x1
+ eors r1, r2
+ strh r1, [r0, 0xC]
+_081924CC:
+ adds r0, r7, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_819221C
+
+ thumb_func_start sub_81924E0
+sub_81924E0: @ 81924E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x20]
+ movs r5, 0
+ movs r0, 0
+ str r0, [sp, 0x28]
+ movs r1, 0
+ str r1, [sp, 0x2C]
+ movs r2, 0
+ str r2, [sp, 0x30]
+ movs r4, 0
+ movs r0, 0x24
+ bl AllocZeroed
+ mov r8, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r3, [sp, 0x20]
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ ldr r2, =0x00000d24
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ str r0, [sp, 0x24]
+ movs r0, 0x1
+ ldr r3, [sp, 0x1C]
+ ands r0, r3
+ cmp r0, 0
+ beq _08192538
+ movs r5, 0x8
+ movs r4, 0x9
+ str r4, [sp, 0x28]
+ movs r4, 0x2
+_08192538:
+ movs r0, 0x2
+ ldr r2, [sp, 0x1C]
+ ands r0, r2
+ cmp r0, 0
+ beq _08192548
+ movs r3, 0x80
+ lsls r3, 1
+ str r3, [sp, 0x2C]
+_08192548:
+ movs r0, 0x4
+ ldr r2, [sp, 0x1C]
+ ands r0, r2
+ cmp r0, 0
+ beq _08192556
+ movs r3, 0xA0
+ str r3, [sp, 0x30]
+_08192556:
+ movs r0, 0x8
+ ldr r2, [sp, 0x1C]
+ ands r0, r2
+ cmp r0, 0
+ beq _08192564
+ ldr r3, =0xffffff00
+ str r3, [sp, 0x2C]
+_08192564:
+ movs r0, 0x10
+ ldr r2, [sp, 0x1C]
+ ands r0, r2
+ cmp r0, 0
+ beq _08192574
+ movs r3, 0xA0
+ negs r3, r3
+ str r3, [sp, 0x30]
+_08192574:
+ ldr r0, =0x000003ff
+ ldr r2, [sp, 0x24]
+ cmp r2, r0
+ bne _08192598
+ ldrb r0, [r1, 0x8]
+ bl sub_806F000
+ lsls r0, 16
+ lsrs r0, 16
+ b _081925B6
+ .pool
+_08192598:
+ ldr r0, =0x000003fe
+ ldr r3, [sp, 0x24]
+ cmp r3, r0
+ bne _081925AC
+ bl sub_8195910
+ b _081925B2
+ .pool
+_081925AC:
+ ldr r0, [sp, 0x24]
+ bl sub_8162AA0
+_081925B2:
+ lsls r0, 24
+ lsrs r0, 24
+_081925B6:
+ ldr r2, [sp, 0x2C]
+ adds r2, 0x30
+ ldr r3, [sp, 0x30]
+ adds r3, 0x40
+ adds r1, r4, 0
+ adds r1, 0xC
+ str r1, [sp]
+ ldr r1, =0x0000ffff
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ bl sub_818D8AC
+ ldr r1, =gUnknown_0203CD78
+ ldr r1, [r1]
+ adds r1, r5
+ strb r0, [r1]
+ movs r0, 0x1E
+ ldr r4, [sp, 0x1C]
+ ands r0, r4
+ cmp r0, 0
+ beq _081925FC
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_081925FC:
+ movs r7, 0
+ ldr r0, [sp, 0x20]
+ lsls r0, 1
+ str r0, [sp, 0x3C]
+ adds r1, r5, 0x2
+ ldr r2, [sp, 0x28]
+ lsls r2, 24
+ str r2, [sp, 0x44]
+ ldr r3, [sp, 0x28]
+ adds r3, 0x4
+ str r3, [sp, 0x40]
+ ldr r4, [sp, 0x20]
+ adds r0, r4
+ ldr r6, =gUnknown_0203CD78
+ ldr r2, =gSprites
+ mov r10, r2
+ adds r4, r1, 0
+ lsls r5, r0, 1
+ movs r3, 0
+ mov r9, r3
+_08192624:
+ ldr r0, =0x000003ff
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192660
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000d64
+ adds r0, r2
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r1, =gUnknown_0860D340
+ adds r1, r7, r1
+ ldrb r2, [r1]
+ ldr r3, [sp, 0x2C]
+ orrs r2, r3
+ b _081926B0
+ .pool
+_08192660:
+ ldr r0, =0x000003fe
+ ldr r3, [sp, 0x24]
+ cmp r3, r0
+ bne _08192690
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000d64
+ adds r0, r1
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r1, =gUnknown_0860D340
+ adds r1, r7, r1
+ ldrb r2, [r1]
+ ldr r3, [sp, 0x2C]
+ orrs r2, r3
+ b _081926B0
+ .pool
+_08192690:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d64
+ adds r0, r3
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, 4
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =gUnknown_0860D340
+ adds r1, r7, r1
+ ldrb r2, [r1]
+ ldr r1, [sp, 0x2C]
+ orrs r2, r1
+_081926B0:
+ ldr r1, =gUnknown_0860D343
+ adds r1, r7, r1
+ ldrb r3, [r1]
+ ldr r1, [sp, 0x30]
+ adds r3, r1
+ mov r1, r9
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ ldr r1, =sub_8190938
+ bl sub_80D2CC4
+ ldr r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrb r1, [r0, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r0, 0x1E
+ ldr r3, [sp, 0x1C]
+ ands r0, r3
+ cmp r0, 0
+ beq _0819270A
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0819270A:
+ adds r4, 0x1
+ adds r5, 0x2
+ adds r7, 0x1
+ cmp r7, 0x2
+ ble _08192624
+ add r0, sp, 0xC
+ movs r2, 0
+ movs r3, 0x2
+ strb r3, [r0, 0x5]
+ strb r2, [r0, 0x6]
+ strb r2, [r0, 0x7]
+ adds r1, r0, 0
+ adds r0, r2, 0
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ adds r0, r1, 0
+ strb r3, [r0, 0xA]
+ strb r2, [r0, 0xB]
+ adds r3, r0, 0
+ ldrb r2, [r3, 0xC]
+ movs r1, 0x10
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ adds r2, r3, 0
+ movs r0, 0xE0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ strb r1, [r2, 0xD]
+ adds r1, r2, 0
+ movs r0, 0xD0
+ strb r0, [r1, 0xD]
+ movs r7, 0
+ ldr r0, =0x000003ff
+ ldr r4, [sp, 0x24]
+ cmp r4, r0
+ bne _08192784
+ ldr r0, =gTrainerClassToNameIndex
+ adds r0, 0x3C
+ ldrb r5, [r0]
+ b _081927A2
+ .pool
+_08192784:
+ ldr r0, =0x000003fe
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192798
+ bl sub_8195924
+ b _0819279E
+ .pool
+_08192798:
+ ldr r0, [sp, 0x24]
+ bl GetFrontierOpponentClass
+_0819279E:
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081927A2:
+ ldr r2, =gTrainerClassNames
+ movs r0, 0xD
+ adds r1, r5, 0
+ muls r1, r0
+ adds r0, r7, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _081927CA
+ ldr r3, =gStringVar1
+ adds r0, r1, r2
+ adds r2, r7, r0
+_081927BA:
+ adds r0, r7, r3
+ ldrb r1, [r2]
+ strb r1, [r0]
+ adds r2, 0x1
+ adds r7, 0x1
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ bne _081927BA
+_081927CA:
+ ldr r5, =gStringVar1
+ adds r1, r7, r5
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r7, 0x1
+ adds r0, r5
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, =0x000003ff
+ ldr r2, [sp, 0x24]
+ cmp r2, r0
+ bne _08192800
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ b _08192836
+ .pool
+_08192800:
+ ldr r0, =0x000003fe
+ ldr r3, [sp, 0x24]
+ cmp r3, r0
+ bne _08192824
+ ldr r4, =gStringVar2
+ adds r0, r4, 0
+ bl sub_8195938
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+ b _08192836
+ .pool
+_08192824:
+ ldr r4, =gStringVar2
+ ldr r1, [sp, 0x24]
+ adds r0, r4, 0
+ bl sub_8195898
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringAppend
+_08192836:
+ add r0, sp, 0xC
+ ldrb r0, [r0, 0x5]
+ ldr r4, =gStringVar1
+ add r1, sp, 0xC
+ ldrb r3, [r1, 0xA]
+ adds r1, r4, 0
+ movs r2, 0xD0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ add r1, sp, 0xC
+ movs r5, 0
+ strb r0, [r1, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r1, 0
+ add r4, sp, 0x28
+ ldrb r4, [r4]
+ strb r4, [r0, 0x4]
+ ldr r0, [sp, 0x44]
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ add r0, sp, 0xC
+ strb r5, [r0, 0xA]
+ movs r7, 0
+ adds r6, r0, 0
+ ldr r1, [sp, 0x3C]
+ ldr r2, [sp, 0x20]
+ adds r0, r1, r2
+ lsls r0, 1
+ mov r9, r0
+ movs r3, 0xB
+ mov r10, r3
+_0819288A:
+ ldr r0, =gUnknown_0860D346
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ strb r0, [r6, 0x9]
+ ldr r0, =0x000003ff
+ ldr r4, [sp, 0x24]
+ cmp r4, r0
+ bne _081928C0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r7, 1
+ add r0, r9
+ ldr r2, =0x00000d64
+ adds r1, r2
+ b _081928FA
+ .pool
+_081928C0:
+ ldr r0, =0x000003fe
+ ldr r4, [sp, 0x24]
+ cmp r4, r0
+ bne _081928E4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r7, 1
+ add r0, r9
+ ldr r2, =0x00000d64
+ adds r1, r2
+ b _081928FA
+ .pool
+_081928E4:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ lsls r0, r7, 1
+ add r0, r9
+ ldr r2, =0x00000d64
+ adds r1, r2
+ adds r1, r0
+ ldrh r1, [r1]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, 4
+_081928FA:
+ adds r1, r0
+ ldrh r0, [r1]
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ ldr r1, =gSpeciesNames
+ adds r0, r1
+ str r0, [sp, 0xC]
+ adds r0, r7, 0x1
+ ldr r4, [sp, 0x28]
+ adds r0, r4
+ movs r1, 0
+ strb r0, [r6, 0x4]
+ cmp r7, 0x1
+ bne _08192930
+ movs r0, 0x7
+ strb r0, [r6, 0x8]
+ b _08192932
+ .pool
+_08192930:
+ strb r1, [r6, 0x8]
+_08192932:
+ adds r5, r7, 0x1
+ ldr r0, [sp, 0x28]
+ adds r4, r5, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ adds r7, r5, 0
+ cmp r7, 0x2
+ ble _0819288A
+ ldr r4, [sp, 0x40]
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =0x000003fe
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192980
+ ldr r0, =gUnknown_0860D1D0
+ ldr r0, [r0, 0x40]
+ b _0819298A
+ .pool
+_08192980:
+ ldr r0, =gUnknown_0860D1D0
+ ldr r2, [sp, 0x20]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r0, [r1]
+_0819298A:
+ str r0, [sp, 0xC]
+ add r1, sp, 0xC
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r1, 0
+ add r3, sp, 0x40
+ ldrb r3, [r3]
+ strb r3, [r0, 0x4]
+ strb r2, [r0, 0x8]
+ movs r1, 0x4
+ strb r1, [r0, 0x7]
+ strb r1, [r0, 0x9]
+ movs r1, 0
+ bl AddTextPrinter
+ movs r7, 0
+ ldr r3, =gUnknown_0860B358
+_081929AE:
+ movs r5, 0
+ adds r4, r7, 0x1
+ str r4, [sp, 0x38]
+ lsls r0, r7, 1
+ str r0, [sp, 0x34]
+ lsls r2, r7, 4
+_081929BA:
+ movs r6, 0
+ lsls r1, r5, 1
+ mov r10, r1
+ mov r4, r8
+ mov r9, r2
+_081929C4:
+ ldr r0, =0x000003fe
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192A00
+ lsls r0, r7, 24
+ lsls r1, r5, 24
+ lsrs r0, 24
+ lsrs r1, 24
+ str r2, [sp, 0x48]
+ str r3, [sp, 0x4C]
+ bl sub_81A5060
+ lsls r0, 16
+ lsrs r0, 12
+ adds r0, r6, r0
+ ldr r3, [sp, 0x4C]
+ adds r0, r3
+ ldrh r1, [r4]
+ ldrb r0, [r0]
+ adds r1, r0
+ strh r1, [r4]
+ ldr r2, [sp, 0x48]
+ b _08192A58
+ .pool
+_08192A00:
+ ldr r0, =0x000003ff
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192A20
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000efc
+ adds r0, r1
+ add r0, r9
+ b _08192A48
+ .pool
+_08192A20:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ mov r12, r0
+ ldr r0, [sp, 0x3C]
+ ldr r1, [sp, 0x20]
+ adds r0, r1
+ str r0, [sp, 0x50]
+ lsls r0, 1
+ ldr r1, [sp, 0x34]
+ adds r0, r1, r0
+ ldr r1, =0x00000d64
+ add r1, r12
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ adds r0, 0x2
+ add r0, r10
+_08192A48:
+ ldrh r0, [r0]
+ lsls r0, 4
+ adds r0, r6, r0
+ adds r0, r3
+ ldrh r1, [r4]
+ ldrb r0, [r0]
+ adds r1, r0
+ strh r1, [r4]
+_08192A58:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _081929C4
+ adds r2, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081929BA
+ ldr r7, [sp, 0x38]
+ cmp r7, 0x2
+ ble _081929AE
+ movs r7, 0
+ ldr r2, =gUnknown_0860D214
+ mov r9, r2
+ ldr r3, =gUnknown_0860C988
+ mov r10, r3
+_08192A78:
+ movs r4, 0
+ movs r6, 0
+ movs r5, 0
+ mov r3, r8
+ lsls r0, r7, 4
+ mov r1, r10
+ adds r2, r0, r1
+_08192A86:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08192A9E
+ adds r4, 0x1
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08192A9E
+ ldrb r1, [r2]
+ cmp r0, r1
+ blt _08192A9E
+ adds r6, 0x1
+_08192A9E:
+ adds r3, 0x2
+ adds r2, 0x1
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08192A86
+ cmp r4, r6
+ beq _08192AB2
+ adds r7, 0x1
+ cmp r7, 0x1E
+ bls _08192A78
+_08192AB2:
+ lsls r0, r7, 2
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ movs r1, 0x14
+ strb r1, [r0, 0x7]
+ strb r1, [r0, 0x9]
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ movs r1, 0
+ mov r0, r8
+ adds r0, 0x22
+_08192AD0:
+ strh r1, [r0]
+ subs r0, 0x2
+ cmp r0, r8
+ bge _08192AD0
+ ldr r2, [sp, 0x24]
+ ldr r3, =0xfffffc02
+ adds r0, r2, r3
+ cmp r0, 0x1
+ bls _08192AE4
+ b _08192C24
+_08192AE4:
+ movs r7, 0
+ movs r4, 0
+ mov r9, r4
+_08192AEA:
+ movs r5, 0
+ mov r4, r8
+ mov r6, r9
+_08192AF0:
+ ldr r0, =0x000003fe
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192B24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ lsrs r0, r6, 24
+ bl sub_81A50F0
+ lsls r0, 24
+ lsrs r0, 24
+ b _08192B34
+ .pool
+_08192B24:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r7, 4
+ adds r1, r5, r1
+ ldr r2, =0x00000f04
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+_08192B34:
+ strh r0, [r4]
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08192AF0
+ mov r3, r8
+ ldrh r0, [r3]
+ ldrh r4, [r3, 0xC]
+ adds r0, r4
+ strh r0, [r3, 0xC]
+ movs r5, 0
+ mov r4, r8
+_08192B4C:
+ ldr r0, =0x000003fe
+ ldr r1, [sp, 0x24]
+ cmp r1, r0
+ bne _08192B70
+ mov r2, r9
+ lsrs r0, r2, 24
+ bl sub_81A50B0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ b _08192B7E
+ .pool
+_08192B70:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r7, 4
+ adds r0, r1
+ ldr r3, =0x00000f0a
+ adds r0, r3
+ ldrb r2, [r0]
+_08192B7E:
+ ldr r1, =gNatureStatTable
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r0, r5, r0
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _08192BB4
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r0, 0x6E
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ ldrh r1, [r4, 0xE]
+ adds r1, r0
+ strh r1, [r4, 0xE]
+ b _08192BDC
+ .pool
+_08192BB4:
+ cmp r0, 0
+ bge _08192BD4
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r0, 0x5A
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ ldrh r1, [r4, 0xE]
+ adds r1, r0
+ strh r1, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ b _08192BDC
+_08192BD4:
+ ldrh r0, [r4, 0x2]
+ ldrh r3, [r4, 0xE]
+ adds r0, r3
+ strh r0, [r4, 0xE]
+_08192BDC:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08192B4C
+ movs r4, 0x80
+ lsls r4, 17
+ add r9, r4
+ adds r7, 0x1
+ cmp r7, 0x2
+ bgt _08192BF2
+ b _08192AEA
+_08192BF2:
+ movs r5, 0
+ mov r1, r8
+ movs r7, 0x5
+_08192BF8:
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ adds r5, r0
+ adds r1, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08192BF8
+ movs r6, 0x64
+ mov r4, r8
+ movs r7, 0x5
+_08192C0C:
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ muls r0, r6
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4]
+ adds r4, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08192C0C
+ b _08192D70
+_08192C24:
+ ldr r4, =gUnknown_0203BC8C
+ mov r10, r4
+ ldr r1, [sp, 0x3C]
+ ldr r2, [sp, 0x20]
+ adds r0, r1, r2
+ lsls r0, 1
+ mov r9, r0
+ movs r7, 0x2
+_08192C34:
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r4, =0x00000d64
+ adds r0, r4
+ add r0, r9
+ ldrh r0, [r0]
+ mov r2, r10
+ ldr r1, [r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r2, [r0, 0xB]
+ movs r6, 0
+ movs r4, 0
+ movs r3, 0x1
+ mov r1, r8
+ movs r5, 0x5
+_08192C54:
+ strh r4, [r1]
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08192C60
+ adds r6, 0x1
+_08192C60:
+ asrs r2, 1
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08192C54
+ movs r0, 0xFF
+ lsls r0, 1
+ adds r1, r6, 0
+ bl __divsi3
+ adds r6, r0, 0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r4, =0x00000d64
+ adds r0, r4
+ add r0, r9
+ ldrh r0, [r0]
+ mov r2, r10
+ ldr r1, [r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r2, [r0, 0xB]
+ movs r3, 0x1
+ mov r1, r8
+ movs r5, 0x5
+_08192C92:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08192C9C
+ strh r6, [r1]
+_08192C9C:
+ asrs r2, 1
+ adds r1, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08192C92
+ mov r3, r8
+ ldrh r0, [r3]
+ ldrh r4, [r3, 0xC]
+ adds r0, r4
+ strh r0, [r3, 0xC]
+ movs r5, 0
+ mov r4, r8
+_08192CB4:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000d64
+ adds r0, r2
+ add r0, r9
+ ldrh r0, [r0]
+ mov r3, r10
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r2, [r0, 0xC]
+ lsls r0, r2, 2
+ adds r0, r2
+ adds r0, r5, r0
+ ldr r1, =gNatureStatTable
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _08192D04
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ movs r0, 0x6E
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ ldrh r1, [r4, 0xE]
+ adds r1, r0
+ strh r1, [r4, 0xE]
+ b _08192D2C
+ .pool
+_08192D04:
+ cmp r0, 0
+ bge _08192D24
+ movs r3, 0x2
+ ldrsh r1, [r4, r3]
+ movs r0, 0x5A
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ ldrh r1, [r4, 0xE]
+ adds r1, r0
+ strh r1, [r4, 0xE]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x1
+ strh r0, [r4, 0x1A]
+ b _08192D2C
+_08192D24:
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r4, 0xE]
+ adds r0, r1
+ strh r0, [r4, 0xE]
+_08192D2C:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08192CB4
+ movs r2, 0x2
+ add r9, r2
+ subs r7, 0x1
+ cmp r7, 0
+ blt _08192D40
+ b _08192C34
+_08192D40:
+ movs r5, 0
+ mov r1, r8
+ movs r7, 0x5
+_08192D46:
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ adds r5, r0
+ adds r1, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08192D46
+ movs r6, 0x64
+ mov r4, r8
+ movs r7, 0x5
+_08192D5A:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ muls r0, r6
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4]
+ adds r4, 0x2
+ subs r7, 0x1
+ cmp r7, 0
+ bge _08192D5A
+_08192D70:
+ movs r7, 0
+ movs r5, 0
+ movs r6, 0
+ mov r4, r8
+ mov r10, r8
+ mov r9, r8
+_08192D7C:
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ cmp r1, 0x1D
+ ble _08192DDE
+ cmp r7, 0x2
+ bne _08192DD4
+ mov r3, r8
+ movs r0, 0xC
+ ldrsh r3, [r3, r0]
+ mov r12, r3
+ cmp r12, r1
+ bge _08192DC6
+ mov r2, r8
+ ldrh r2, [r2, 0xE]
+ add r3, sp, 0x54
+ strh r2, [r3]
+ mov r2, r8
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, r1
+ bge _08192DBA
+ cmp r12, r0
+ bge _08192DB4
+ add r0, sp, 0x54
+ ldrh r0, [r0]
+ strh r0, [r2, 0xC]
+ strh r6, [r2, 0xE]
+ b _08192DDE
+_08192DB4:
+ mov r1, r8
+ strh r6, [r1, 0xE]
+ b _08192DDE
+_08192DBA:
+ add r2, sp, 0x54
+ ldrh r3, [r2]
+ mov r2, r8
+ strh r3, [r2, 0xC]
+ strh r6, [r2, 0xE]
+ b _08192DDE
+_08192DC6:
+ mov r3, r8
+ movs r2, 0xE
+ ldrsh r0, [r3, r2]
+ cmp r0, r1
+ bge _08192DDE
+ strh r6, [r3, 0xE]
+ b _08192DDE
+_08192DD4:
+ mov r3, r9
+ strh r6, [r3, 0xC]
+ movs r0, 0x2
+ add r9, r0
+ adds r7, 0x1
+_08192DDE:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08192E64
+ cmp r5, 0x2
+ bne _08192E5A
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ bgt _08192E18
+ cmp r0, 0x1
+ bne _08192E64
+ mov r3, r8
+ movs r1, 0x10
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ add r0, r8
+ movs r2, 0x18
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _08192E22
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 1
+ add r0, r8
+ movs r2, 0x18
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _08192E22
+_08192E18:
+ mov r3, r8
+ ldrh r0, [r3, 0x12]
+ strh r0, [r3, 0x10]
+ strh r6, [r3, 0x12]
+ b _08192E64
+_08192E22:
+ movs r1, 0x18
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _08192E64
+ mov r2, r8
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ add r0, r8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08192E44
+ ldrh r0, [r2, 0x12]
+ strh r0, [r2, 0x10]
+ strh r6, [r2, 0x12]
+ b _08192E64
+_08192E44:
+ mov r2, r8
+ movs r3, 0x12
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ add r0, r8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08192E64
+ strh r6, [r2, 0x12]
+ b _08192E64
+_08192E5A:
+ mov r2, r10
+ strh r6, [r2, 0x10]
+ movs r3, 0x2
+ add r10, r3
+ adds r5, 0x1
+_08192E64:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08192D7C
+ cmp r7, 0x2
+ bne _08192E8C
+ ldr r0, =gUnknown_0860D349
+ mov r4, r8
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ adds r0, r2, r0
+ movs r3, 0xE
+ ldrsh r1, [r4, r3]
+ subs r1, 0x1
+ subs r1, r2
+ ldrb r0, [r0]
+ adds r7, r1, r0
+ b _08192ED2
+ .pool
+_08192E8C:
+ cmp r7, 0x1
+ bne _08192E9C
+ mov r4, r8
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ adds r7, r0, 0
+ adds r7, 0xF
+ b _08192ED2
+_08192E9C:
+ cmp r5, 0x2
+ bne _08192EC0
+ ldr r0, =gUnknown_0860D349
+ mov r3, r8
+ movs r4, 0x10
+ ldrsh r2, [r3, r4]
+ adds r0, r2, r0
+ movs r4, 0x12
+ ldrsh r1, [r3, r4]
+ subs r1, 0x1
+ subs r1, r2
+ ldrb r0, [r0]
+ adds r1, r0
+ adds r7, r1, 0
+ adds r7, 0x15
+ b _08192ED2
+ .pool
+_08192EC0:
+ cmp r5, 0x1
+ bne _08192ED0
+ mov r1, r8
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ adds r7, r0, 0
+ adds r7, 0x24
+ b _08192ED2
+_08192ED0:
+ movs r7, 0x2A
+_08192ED2:
+ lsls r0, r7, 2
+ ldr r3, =gUnknown_0860D294
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ movs r1, 0x24
+ strb r1, [r0, 0x7]
+ strb r1, [r0, 0x9]
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ mov r0, r8
+ bl Free
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81924E0
+
+ thumb_func_start sub_8192F08
+sub_8192F08: @ 8192F08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ str r0, [sp, 0x4]
+ mov r8, r0
+ ldr r2, =gUnknown_0860D3C4
+ lsls r0, r7, 1
+ adds r0, r7
+ adds r1, r0, r2
+ ldrb r6, [r1]
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ adds r3, r2, 0
+ cmp r6, r0
+ bge _08192FD4
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, =0x000003ff
+ mov r10, r1
+ ldr r2, =0x000003fe
+ mov r9, r2
+_08192F42:
+ ldr r0, =gUnknown_0860D3B4
+ adds r0, r6, r0
+ ldrb r4, [r0]
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r2, =0x00000d25
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08192FBE
+ ldr r0, [sp]
+ add r0, r8
+ strb r4, [r0]
+ ldr r2, [r5]
+ adds r0, r2, r1
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r0, 22
+ lsrs r0, r1, 22
+ cmp r0, r10
+ bne _08192F9C
+ ldr r0, =gStringVar1
+ adds r1, r2, 0
+ bl StringCopy
+ b _08192FB8
+ .pool
+_08192F9C:
+ lsrs r0, r1, 22
+ cmp r0, r9
+ bne _08192FB0
+ ldr r0, =gStringVar1
+ bl sub_8195938
+ b _08192FB8
+ .pool
+_08192FB0:
+ lsrs r1, 22
+ ldr r0, =gStringVar1
+ bl sub_8195898
+_08192FB8:
+ movs r2, 0x1
+ add r8, r2
+ ldr r3, =gUnknown_0860D3C4
+_08192FBE:
+ adds r6, 0x1
+ lsls r1, r7, 1
+ adds r1, r7
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ adds r0, r3, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r2, r0
+ cmp r6, r2
+ blt _08192F42
+_08192FD4:
+ mov r5, r8
+ cmp r5, 0x2
+ bne _08192FE8
+ movs r0, 0
+ b _0819313C
+ .pool
+_08192FE8:
+ mov r12, r3
+ lsls r3, r7, 1
+ adds r0, r3, r7
+ mov r2, r12
+ adds r1, r0, r2
+ ldrb r6, [r1]
+ mov r1, r12
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ str r3, [sp, 0x8]
+ cmp r6, r0
+ blt _08193006
+ b _08193126
+_08193006:
+ ldr r5, =gSaveBlock2Ptr
+ mov r10, r5
+ ldr r0, =0x00000d25
+ mov r9, r0
+_0819300E:
+ ldr r0, =gUnknown_0860D3B4
+ adds r0, r6, r0
+ ldrb r4, [r0]
+ mov r1, r10
+ ldr r0, [r1]
+ lsls r2, r4, 2
+ str r2, [sp, 0xC]
+ adds r0, r2
+ add r0, r9
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ cmp r0, 0
+ bge _08193100
+ lsls r2, 27
+ adds r1, r3, r7
+ mov r0, r12
+ adds r0, 0x2
+ adds r1, r0
+ lsrs r2, 30
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcc _08193100
+ ldr r0, [sp]
+ add r0, r8
+ strb r4, [r0]
+ movs r5, 0x1
+ add r8, r5
+ mov r0, r10
+ ldr r3, [r0]
+ ldr r5, [sp, 0xC]
+ adds r2, r3, r5
+ adds r0, r2, 0
+ add r0, r9
+ ldrb r5, [r0]
+ mov r12, r5
+ mov r0, r12
+ lsls r0, 27
+ lsrs r0, 30
+ cmp r0, r1
+ bne _081930BC
+ lsls r4, 1
+ movs r1, 0xEC
+ lsls r1, 4
+ adds r0, r3, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ ldr r0, =gStringVar2
+ bl StringCopy
+ mov r2, r10
+ ldr r1, [r2]
+ ldr r5, [sp, 0xC]
+ adds r0, r1, r5
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r2, r0, 24
+ lsrs r0, r2, 29
+ lsls r0, 1
+ str r0, [sp, 0x4]
+ movs r0, 0xEC
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r4
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08193100
+ lsrs r0, r2, 29
+ cmp r0, 0
+ bne _08193100
+ movs r1, 0x4
+ str r1, [sp, 0x4]
+ b _08193100
+ .pool
+_081930BC:
+ ldr r5, =0x00000d24
+ adds r0, r2, r5
+ ldrh r0, [r0]
+ lsls r1, r0, 22
+ ldr r0, =0xffc00000
+ cmp r1, r0
+ bne _081930E0
+ ldr r0, =gStringVar1
+ adds r1, r3, 0
+ bl StringCopy
+ b _08193100
+ .pool
+_081930E0:
+ ldr r0, =0xff800000
+ cmp r1, r0
+ bne _081930F8
+ ldr r0, =gStringVar1
+ bl sub_8195938
+ b _08193100
+ .pool
+_081930F8:
+ lsrs r1, 22
+ ldr r0, =gStringVar1
+ bl sub_8195898
+_08193100:
+ mov r0, r8
+ cmp r0, 0x2
+ beq _08193126
+ adds r6, 0x1
+ ldr r1, =gUnknown_0860D3C4
+ mov r12, r1
+ ldr r3, [sp, 0x8]
+ adds r1, r3, r7
+ mov r2, r12
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r2, r0
+ cmp r6, r2
+ bge _08193126
+ b _0819300E
+_08193126:
+ cmp r7, 0xE
+ beq _08193138
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ b _0819313C
+ .pool
+_08193138:
+ ldr r0, [sp, 0x4]
+ adds r0, 0x2
+_0819313C:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8192F08
+
+ thumb_func_start sub_819314C
+sub_819314C: @ 819314C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x80
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x34]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r0, 0
+ str r0, [sp, 0x3C]
+ movs r7, 0
+ movs r1, 0
+ str r1, [sp, 0x40]
+ movs r2, 0
+ str r2, [sp, 0x44]
+ mov r9, r2
+ movs r0, 0x1
+ ldr r3, [sp, 0x34]
+ ands r0, r3
+ cmp r0, 0
+ beq _08193186
+ movs r7, 0x8
+ str r7, [sp, 0x3C]
+ movs r7, 0x9
+ movs r0, 0x2
+ mov r9, r0
+_08193186:
+ movs r0, 0x2
+ ldr r1, [sp, 0x34]
+ ands r0, r1
+ cmp r0, 0
+ beq _08193196
+ movs r2, 0x80
+ lsls r2, 1
+ str r2, [sp, 0x40]
+_08193196:
+ movs r0, 0x4
+ ldr r3, [sp, 0x34]
+ ands r0, r3
+ cmp r0, 0
+ beq _081931A4
+ movs r0, 0xA0
+ str r0, [sp, 0x44]
+_081931A4:
+ movs r0, 0x8
+ ldr r1, [sp, 0x34]
+ ands r0, r1
+ cmp r0, 0
+ beq _081931B2
+ ldr r2, =0xffffff00
+ str r2, [sp, 0x40]
+_081931B2:
+ movs r0, 0x10
+ ldr r3, [sp, 0x34]
+ ands r0, r3
+ cmp r0, 0
+ beq _081931C2
+ movs r0, 0xA0
+ negs r0, r0
+ str r0, [sp, 0x44]
+_081931C2:
+ ldr r4, =gUnknown_0203CD78
+ ldr r1, [r4]
+ adds r1, 0x11
+ adds r0, r6, 0
+ bl sub_8192F08
+ str r0, [sp, 0x38]
+ movs r5, 0
+ mov r1, sp
+ adds r1, 0x1C
+ str r1, [sp, 0x48]
+ mov r2, sp
+ adds r2, 0x24
+ str r2, [sp, 0x4C]
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r3, 0x2C
+ str r3, [sp, 0x50]
+ ldr r0, [sp, 0x40]
+ adds r0, 0x30
+ mov r8, r0
+ ldr r2, [sp, 0x44]
+ adds r2, 0x58
+ str r2, [sp, 0x78]
+ movs r3, 0xC
+ add r3, r9
+ mov r10, r3
+ ldr r0, [sp, 0x40]
+ adds r0, 0xC0
+ str r0, [sp, 0x7C]
+ mov r2, r9
+ adds r2, 0xD
+ str r2, [sp, 0x74]
+ ldr r3, [sp, 0x3C]
+ adds r3, 0x1
+ mov r9, r3
+ ldr r0, [sp, 0x3C]
+ adds r0, 0x2
+ str r0, [sp, 0x54]
+ ldr r2, [sp, 0x3C]
+ adds r2, 0x5
+ str r2, [sp, 0x5C]
+ adds r3, r7, 0
+ adds r3, 0x8
+ str r3, [sp, 0x6C]
+ adds r0, r7, 0x6
+ str r0, [sp, 0x64]
+ adds r2, r7, 0x7
+ str r2, [sp, 0x68]
+ lsls r3, r6, 2
+ str r3, [sp, 0x58]
+ adds r0, r7, 0x5
+ str r0, [sp, 0x60]
+ ldr r0, [r4]
+ adds r0, 0x11
+ mov r12, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r0, =gUnknown_0860D3C6
+ movs r3, 0
+ adds r1, r6
+ adds r1, r0
+ ldrb r6, [r1]
+_08193240:
+ ldr r1, [sp, 0x48]
+ adds r2, r3, r1
+ mov r7, r12
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ str r0, [r2]
+ ldr r7, [sp, 0x4C]
+ adds r1, r3, r7
+ lsls r0, 2
+ adds r0, r4, r0
+ ldr r7, =0x00000d24
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ str r0, [r1]
+ ldr r0, [r2]
+ lsls r0, 2
+ adds r0, r4, r0
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 27
+ lsrs r0, 30
+ cmp r0, r6
+ bhi _0819329C
+ lsls r0, r1, 29
+ cmp r0, 0
+ bge _0819329C
+ ldr r2, [sp, 0x50]
+ adds r1, r3, r2
+ movs r0, 0x1
+ b _081932A2
+ .pool
+_0819329C:
+ ldr r7, [sp, 0x50]
+ adds r1, r3, r7
+ movs r0, 0
+_081932A2:
+ str r0, [r1]
+ adds r3, 0x4
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _08193240
+ ldr r1, [sp, 0x24]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _081932D4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bl sub_806F000
+ lsls r0, 16
+ lsrs r0, 16
+ mov r2, r8
+ ldr r3, [sp, 0x78]
+ mov r1, r10
+ str r1, [sp]
+ b _081932F8
+ .pool
+_081932D4:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _081932E4
+ bl sub_8195910
+ b _081932EC
+ .pool
+_081932E4:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl sub_8162AA0
+_081932EC:
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldr r3, [sp, 0x78]
+ mov r7, r10
+ str r7, [sp]
+_081932F8:
+ ldr r1, =0x0000ffff
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ bl sub_818D8AC
+ ldr r1, =gUnknown_0203CD78
+ ldr r1, [r1]
+ ldr r2, [sp, 0x3C]
+ adds r1, r2
+ strb r0, [r1]
+ movs r0, 0x1E
+ ldr r3, [sp, 0x34]
+ ands r0, r3
+ cmp r0, 0
+ beq _08193334
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldr r7, [sp, 0x3C]
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08193334:
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ beq _0819335A
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ ldr r1, [sp, 0x3C]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x30
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_0819335A:
+ ldr r2, [sp, 0x4C]
+ ldr r1, [r2, 0x4]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _08193388
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bl sub_806F000
+ lsls r0, 16
+ lsrs r0, 16
+ b _081933B0
+ .pool
+_08193388:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _081933A4
+ bl sub_8195910
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x7C]
+ ldr r3, [sp, 0x78]
+ ldr r1, [sp, 0x74]
+ str r1, [sp]
+ b _081933B8
+ .pool
+_081933A4:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl sub_8162AA0
+ lsls r0, 24
+ lsrs r0, 24
+_081933B0:
+ ldr r2, [sp, 0x7C]
+ ldr r3, [sp, 0x78]
+ ldr r7, [sp, 0x74]
+ str r7, [sp]
+_081933B8:
+ ldr r1, =0x0000ffff
+ str r1, [sp, 0x4]
+ movs r1, 0x1
+ bl sub_818D8AC
+ ldr r1, =gUnknown_0203CD78
+ ldr r1, [r1]
+ add r1, r9
+ strb r0, [r1]
+ movs r0, 0x1E
+ ldr r1, [sp, 0x34]
+ ands r0, r1
+ cmp r0, 0
+ beq _081933F0
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_081933F0:
+ ldr r2, [sp, 0x50]
+ ldr r0, [r2, 0x4]
+ cmp r0, 0
+ beq _08193416
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x30
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_08193416:
+ movs r5, 0
+ ldr r3, [sp, 0x38]
+ lsls r3, 2
+ str r3, [sp, 0x70]
+ mov r8, r5
+ ldr r6, =gUnknown_0203CD78
+ ldr r7, =gSprites
+ ldr r4, [sp, 0x54]
+ mov r9, r5
+ movs r0, 0x1
+ mov r10, r0
+_0819342C:
+ ldr r1, [sp, 0x24]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _08193464
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ b _081934B0
+ .pool
+_08193464:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _08193490
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ b _081934B0
+ .pool
+_08193490:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r1, [r2]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, 4
+ adds r1, r0
+ ldrh r0, [r1]
+_081934B0:
+ ldr r1, =gUnknown_0860D3A8
+ adds r1, r5, r1
+ ldrb r2, [r1]
+ ldr r3, [sp, 0x40]
+ orrs r2, r3
+ ldr r1, =gUnknown_0860D3AB
+ adds r1, r5, r1
+ ldrb r3, [r1]
+ ldr r1, [sp, 0x44]
+ adds r3, r1
+ mov r1, r8
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ ldr r1, =sub_8190938
+ bl sub_80D2CC4
+ ldr r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r0, 0x1E
+ ldr r1, [sp, 0x34]
+ ands r0, r1
+ cmp r0, 0
+ beq _08193516
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08193516:
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0
+ beq _08193548
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x30
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ mov r2, r10
+ strh r2, [r0, 0x34]
+_08193548:
+ adds r4, 0x1
+ movs r3, 0x2
+ add r9, r3
+ adds r5, 0x1
+ cmp r5, 0x2
+ bgt _08193556
+ b _0819342C
+_08193556:
+ movs r5, 0
+ ldr r6, =gUnknown_0203CD78
+ ldr r7, =gSprites
+ mov r8, r7
+ ldr r4, [sp, 0x5C]
+ mov r9, r5
+ movs r7, 0
+_08193564:
+ ldr r0, [sp, 0x4C]
+ ldr r1, [r0, 0x4]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _081935AC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r3, [sp, 0x48]
+ ldr r1, [r3, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ b _081935FA
+ .pool
+_081935AC:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _081935D8
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, [sp, 0x48]
+ ldr r1, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ b _081935FA
+ .pool
+_081935D8:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, [sp, 0x48]
+ ldr r1, [r0, 0x4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r9
+ ldr r1, =0x00000d64
+ adds r2, r1
+ adds r2, r0
+ ldrh r1, [r2]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, 4
+ adds r1, r0
+ ldrh r0, [r1]
+_081935FA:
+ ldr r1, =gUnknown_0860D3AE
+ adds r1, r5, r1
+ ldrb r2, [r1]
+ ldr r3, [sp, 0x40]
+ orrs r2, r3
+ ldr r1, =gUnknown_0860D3B1
+ adds r1, r5, r1
+ ldrb r3, [r1]
+ ldr r1, [sp, 0x44]
+ adds r3, r1
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ ldr r1, =sub_8190938
+ bl sub_80D2CC4
+ ldr r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ movs r0, 0x1E
+ ldr r1, [sp, 0x34]
+ ands r0, r1
+ cmp r0, 0
+ beq _0819365E
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0819365E:
+ ldr r2, [sp, 0x50]
+ ldr r0, [r2, 0x4]
+ cmp r0, 0
+ beq _08193692
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x30
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ movs r1, 0x1
+ strh r1, [r0, 0x34]
+_08193692:
+ adds r4, 0x1
+ movs r3, 0x2
+ add r9, r3
+ adds r5, 0x1
+ cmp r5, 0x2
+ bgt _081936A0
+ b _08193564
+_081936A0:
+ add r0, sp, 0xC
+ movs r5, 0
+ strb r5, [r0, 0x6]
+ adds r1, r0, 0
+ movs r0, 0x2
+ strb r0, [r1, 0x7]
+ adds r0, r1, 0
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ adds r0, r1, 0
+ strb r5, [r0, 0xA]
+ strb r5, [r0, 0xB]
+ adds r3, r0, 0
+ ldrb r2, [r3, 0xC]
+ movs r1, 0x10
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ adds r2, r3, 0
+ movs r0, 0xE0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ strb r1, [r2, 0xD]
+ adds r1, r2, 0
+ movs r0, 0xD0
+ strb r0, [r1, 0xD]
+ ldr r4, =gStringVar4
+ ldr r0, =gUnknown_0860D38C
+ ldr r7, [sp, 0x70]
+ adds r0, r7, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ str r4, [sp, 0xC]
+ add r0, sp, 0xC
+ add r1, sp, 0x6C
+ ldrb r1, [r1]
+ strb r1, [r0, 0x4]
+ adds r1, r0, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r4, [sp, 0x6C]
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ strb r5, [r0, 0x8]
+ adds r1, r0, 0
+ strb r5, [r0, 0x7]
+ strb r5, [r1, 0x9]
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ ldr r1, [sp, 0x24]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _0819375C
+ ldr r0, =gStringVar1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ bl StringCopy
+ b _0819377E
+ .pool
+_0819375C:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _08193774
+ ldr r0, =gStringVar1
+ bl sub_8195938
+ b _0819377E
+ .pool
+_08193774:
+ ldr r0, =gStringVar1
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8195898
+_0819377E:
+ add r0, sp, 0xC
+ movs r4, 0x2
+ strb r4, [r0, 0x5]
+ strb r4, [r0, 0xA]
+ ldr r5, =gStringVar1
+ str r5, [sp, 0xC]
+ add r2, sp, 0x64
+ ldrb r2, [r2]
+ strb r2, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ ldr r1, [sp, 0xC]
+ add r2, sp, 0xC
+ ldrb r3, [r2, 0xA]
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ add r1, sp, 0xC
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ strb r4, [r0, 0x7]
+ strb r4, [r1, 0x9]
+ ldr r4, [sp, 0x64]
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ ldr r3, [sp, 0x4C]
+ ldr r1, [r3, 0x4]
+ ldr r0, =0x000003ff
+ cmp r1, r0
+ bne _081937E4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringCopy
+ b _08193802
+ .pool
+_081937E4:
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _081937F8
+ adds r0, r5, 0
+ bl sub_8195938
+ b _08193802
+ .pool
+_081937F8:
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8195898
+_08193802:
+ ldr r0, =gStringVar1
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ movs r6, 0
+ add r7, sp, 0x68
+ ldrb r7, [r7]
+ strb r7, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ ldr r1, [sp, 0xC]
+ add r2, sp, 0xC
+ ldrb r3, [r2, 0xA]
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ add r1, sp, 0xC
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ movs r5, 0x2
+ strb r5, [r0, 0x7]
+ strb r5, [r1, 0x9]
+ ldr r4, [sp, 0x68]
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ add r0, sp, 0xC
+ strb r6, [r0, 0xA]
+ ldr r0, =gUnknown_0860D350
+ ldr r1, [sp, 0x58]
+ adds r0, r1, r0
+ ldr r0, [r0]
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ add r2, sp, 0x60
+ ldrb r2, [r2]
+ strb r2, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ ldr r1, [sp, 0xC]
+ add r2, sp, 0xC
+ ldrb r3, [r2, 0xA]
+ movs r2, 0xA0
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ add r1, sp, 0xC
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ strb r5, [r0, 0x7]
+ strb r5, [r1, 0x9]
+ ldr r4, [sp, 0x60]
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add r0, sp, 0xC
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ add sp, 0x80
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819314C
+
+ thumb_func_start sub_81938A4
+sub_81938A4: @ 81938A4
+ push {lr}
+ ldr r0, =sub_8194220
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ movs r0, 0x2
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0x10]
+ ldr r0, =sub_8194B54
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81938A4
+
+ thumb_func_start sub_81938E0
+sub_81938E0: @ 81938E0
+ push {r4,lr}
+ bl sub_8194D48
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ ldr r1, =0x00000d0a
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ subs r1, 0x1
+ ldr r0, =0x00000ca9
+ adds r2, r0
+ movs r0, 0x3
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r4]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ movs r4, 0
+ movs r1, 0x3
+ strh r1, [r0]
+ ldr r0, =sub_8194220
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ movs r0, 0x2
+ strh r0, [r1, 0xC]
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ ldr r0, =sub_8194B54
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81938E0
+
+ thumb_func_start sub_819395C
+sub_819395C: @ 819395C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r7, [r0, r2]
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x7
+ bls _0819397E
+ b _08193BC2
+_0819397E:
+ lsls r0, 2
+ ldr r1, =_08193990
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08193990:
+ .4byte _081939B0
+ .4byte _08193A00
+ .4byte _08193A20
+ .4byte _08193AA8
+ .4byte _08193BC2
+ .4byte _08193B20
+ .4byte _08193BC2
+ .4byte _08193B84
+_081939B0:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _081939C2
+ b _08193BC2
+_081939C2:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08193BC2
+ .pool
+_08193A00:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08193A0E
+ b _08193BC2
+_08193A0E:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ b _08193BC2
+ .pool
+_08193A20:
+ adds r0, r5, 0
+ bl sub_8193BDC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08193A30
+ b _08193BC2
+_08193A30:
+ cmp r0, 0x1
+ ble _08193A3C
+ cmp r0, 0x2
+ beq _08193A60
+ cmp r0, 0x3
+ beq _08193A84
+_08193A3C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0x8]
+ b _08193BC2
+ .pool
+_08193A60:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ b _08193BC2
+ .pool
+_08193A84:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x5
+ strh r1, [r0, 0x8]
+ b _08193BC2
+ .pool
+_08193AA8:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _08193ABA
+ b _08193BC2
+_08193ABA:
+ bl FreeAllWindowBuffers
+ bl remove_some_task
+ ldr r4, =gUnknown_0203CD7C
+ ldr r0, [r4]
+ bl Free
+ str r6, [r4]
+ ldr r0, =sub_8190400
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gTasks
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0
+ strh r6, [r1, 0x8]
+ ldr r0, =gUnknown_0860D080
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0xA]
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ ldr r0, =gUnknown_0203CD78
+ ldr r0, [r0]
+ strb r3, [r0, 0x10]
+ b _08193BC2
+ .pool
+_08193B20:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08193BC2
+ bl FreeAllWindowBuffers
+ bl remove_some_task
+ ldr r4, =gUnknown_0203CD7C
+ ldr r0, [r4]
+ bl Free
+ str r6, [r4]
+ ldr r0, =sub_8190400
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gTasks
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r2
+ strh r6, [r0, 0x8]
+ adds r1, r7, 0
+ subs r1, 0x10
+ strh r1, [r0, 0xA]
+ movs r1, 0x2
+ strh r1, [r0, 0xC]
+ strh r5, [r0, 0xE]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x8]
+ b _08193BC2
+ .pool
+_08193B84:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08193BC2
+ bl FreeAllWindowBuffers
+ bl remove_some_task
+ ldr r4, =gUnknown_0203CD7C
+ ldr r0, [r4]
+ bl Free
+ str r6, [r4]
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ bl DestroyTask
+ adds r0, r5, 0
+ bl DestroyTask
+_08193BC2:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819395C
+
+ thumb_func_start sub_8193BDC
+sub_8193BDC: @ 8193BDC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x1
+ mov r9, r0
+ movs r1, 0x4
+ mov r8, r1
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r5, [r0, r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r6, [r0]
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ adds r2, r1, 0
+ adds r3, r0, 0
+ cmp r2, 0x2
+ beq _08193C20
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _08193C58
+ cmp r5, 0x1F
+ bne _08193C3C
+_08193C20:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ mov r9, r0
+ b _08193CDE
+ .pool
+_08193C3C:
+ cmp r5, 0xF
+ bgt _08193C4C
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ mov r9, r1
+ b _08193CDE
+_08193C4C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x3
+ mov r9, r0
+ b _08193CDE
+_08193C58:
+ cmp r2, 0x40
+ bne _08193C78
+ ldr r0, =gUnknown_0860CBF1
+ lsls r1, r5, 2
+ adds r1, r5
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08193C78
+ movs r1, 0
+ mov r8, r1
+ b _08193CDE
+ .pool
+_08193C78:
+ ldrh r0, [r3, 0x2E]
+ cmp r0, 0x80
+ bne _08193C9C
+ ldr r0, =gUnknown_0860CBF1
+ lsls r1, r5, 2
+ adds r1, r5
+ adds r1, r6
+ lsls r1, 2
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08193C9C
+ movs r0, 0x1
+ b _08193CDC
+ .pool
+_08193C9C:
+ ldrh r0, [r3, 0x2E]
+ cmp r0, 0x20
+ bne _08193CC0
+ ldr r0, =gUnknown_0860CBF1
+ lsls r1, r5, 2
+ adds r1, r5
+ adds r1, r6
+ lsls r1, 2
+ adds r0, 0x2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08193CC0
+ movs r1, 0x2
+ mov r8, r1
+ b _08193CDE
+ .pool
+_08193CC0:
+ ldrh r0, [r3, 0x2E]
+ cmp r0, 0x10
+ bne _08193CDE
+ ldr r0, =gUnknown_0860CBF1
+ lsls r1, r5, 2
+ adds r1, r5
+ adds r1, r6
+ lsls r1, 2
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08193CDE
+ movs r0, 0x3
+_08193CDC:
+ mov r8, r0
+_08193CDE:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _08193D26
+ movs r0, 0x5
+ bl PlaySE
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r2, =gUnknown_0860CBF1
+ lsls r1, r6, 2
+ add r1, r8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r2
+ ldrb r5, [r1]
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+_08193D26:
+ mov r0, r9
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8193BDC
+
+ thumb_func_start sub_8193D40
+sub_8193D40: @ 8193D40
+ push {lr}
+ ldr r0, =sub_8194220
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+ movs r0, 0x2
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0x10]
+ ldr r0, =sub_8194B54
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8193D40
+
+ thumb_func_start sub_8193D7C
+sub_8193D7C: @ 8193D7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, =gSpecialVar_0x8005
+ ldrh r0, [r7]
+ cmp r0, 0x1
+ bne _08193E10
+ ldr r5, =gTrainerBattleOpponent_A
+ ldrh r0, [r5]
+ bl sub_8195358
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ lsls r0, 2
+ adds r2, r0
+ ldr r6, =0x00000d25
+ adds r2, r6
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r5]
+ bl sub_8195358
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r2, =0x00000cb2
+ mov r8, r2
+ add r1, r8
+ adds r0, r6
+ movs r3, 0x3
+ ldrb r2, [r1]
+ ands r2, r3
+ lsls r2, 3
+ ldrb r3, [r0]
+ movs r1, 0x19
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0]
+ ldrh r0, [r5]
+ bl sub_8195358
+ ldr r2, [r4]
+ lsls r0, 1
+ movs r3, 0xEC
+ lsls r3, 4
+ adds r1, r2, r3
+ adds r1, r0
+ ldr r0, =gBattleResults
+ ldrh r0, [r0, 0x22]
+ strh r0, [r1]
+ add r2, r8
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bhi _08193EAE
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8195438
+ b _08193EAE
+ .pool
+_08193E10:
+ ldr r5, =0x000003ff
+ adds r0, r5, 0
+ bl sub_8195358
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ lsls r0, 2
+ adds r2, r0
+ ldr r6, =0x00000d25
+ adds r2, r6
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_8195358
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r2, =0x00000cb2
+ adds r1, r2
+ adds r0, r6
+ movs r3, 0x3
+ ldrb r2, [r1]
+ ands r2, r3
+ lsls r2, 3
+ ldrb r3, [r0]
+ movs r1, 0x19
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8195358
+ ldr r1, [r4]
+ lsls r0, 1
+ movs r3, 0xEC
+ lsls r3, 4
+ adds r1, r3
+ adds r1, r0
+ ldr r0, =gBattleResults
+ ldrh r0, [r0, 0x24]
+ strh r0, [r1]
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ beq _08193E78
+ ldrh r0, [r7]
+ cmp r0, 0x9
+ bne _08193E92
+_08193E78:
+ adds r0, r5, 0
+ bl sub_8195358
+ ldr r2, [r4]
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r6
+ ldrb r1, [r2]
+ movs r0, 0x1F
+ ands r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+_08193E92:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r4, [r0]
+ cmp r4, 0x3
+ bgt _08193EAE
+_08193EA0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_8195438
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08193EA0
+_08193EAE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8193D7C
+
+ thumb_func_start sub_8193ED0
+sub_8193ED0: @ 8193ED0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x84
+ str r0, [sp, 0x48]
+ str r1, [sp, 0x4C]
+ lsls r4, r2, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp, 0x54]
+ movs r1, 0
+ str r1, [sp, 0x58]
+ bl sub_8165C40
+ movs r2, 0
+ str r2, [sp, 0x50]
+ add r3, sp, 0x30
+ mov r10, r3
+ ldr r5, [sp, 0x4C]
+ lsls r5, 1
+ str r5, [sp, 0x70]
+ subs r4, 0x1
+ str r4, [sp, 0x78]
+_08193F02:
+ movs r0, 0
+ mov r9, r0
+ ldr r1, [sp, 0x50]
+ lsls r1, 2
+ str r1, [sp, 0x74]
+ ldr r2, [sp, 0x48]
+ lsls r2, 2
+ str r2, [sp, 0x6C]
+ ldr r3, [sp, 0x50]
+ adds r3, 0x1
+ str r3, [sp, 0x60]
+_08193F18:
+ ldr r4, [sp, 0x74]
+ add r4, r9
+ lsls r0, r4, 2
+ mov r5, sp
+ adds r1, r5, r0
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r1, [sp, 0x6C]
+ adds r0, r3, r1
+ ldr r2, =0x00000d24
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ ldr r1, =0xff800000
+ cmp r0, r1
+ bne _08193F60
+ ldr r3, [sp, 0x50]
+ lsls r0, r3, 24
+ mov r5, r9
+ lsls r1, r5, 24
+ lsrs r1, 24
+ lsrs r0, 24
+ bl sub_81A5060
+ lsls r1, r4, 1
+ add r1, r10
+ strh r0, [r1]
+ b _08193F8C
+ .pool
+_08193F60:
+ lsls r2, r4, 1
+ add r2, r10
+ ldr r1, [sp, 0x48]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r4, [sp, 0x50]
+ adds r0, r4
+ lsls r0, 1
+ ldr r5, =0x00000d64
+ adds r1, r3, r5
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ mov r3, r9
+ lsls r1, r3, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+_08193F8C:
+ ldr r0, =gBattleMoves
+ ldr r1, [sp, 0x74]
+ add r1, r9
+ lsls r1, 1
+ add r1, r10
+ ldrh r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r6, [r1, 0x1]
+ cmp r6, 0
+ bne _08193FB8
+ movs r6, 0x28
+ b _08193FD0
+ .pool
+_08193FB8:
+ cmp r6, 0x1
+ bne _08193FC0
+ movs r6, 0x3C
+ b _08193FD0
+_08193FC0:
+ adds r1, r2, 0
+ cmp r1, 0x78
+ beq _08193FCA
+ cmp r1, 0x99
+ bne _08193FD0
+_08193FCA:
+ lsrs r0, r6, 31
+ adds r0, r6, r0
+ asrs r6, r0, 1
+_08193FD0:
+ movs r1, 0
+ mov r4, r9
+ adds r4, 0x1
+ str r4, [sp, 0x64]
+ ldr r5, [sp, 0x70]
+ ldr r2, [sp, 0x4C]
+ adds r0, r5, r2
+ lsls r0, 1
+ str r0, [sp, 0x5C]
+_08193FE2:
+ lsls r7, r1, 1
+ adds r1, 0x1
+ str r1, [sp, 0x68]
+ ldr r3, [sp, 0x5C]
+ adds r3, r7
+ mov r8, r3
+_08193FEE:
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r5, r4, 16
+ lsls r0, 16
+ orrs r5, r0
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r4, =0x00000d64
+ adds r0, r4
+ add r0, r8
+ ldrh r4, [r0]
+ ldr r3, =gUnknown_0203BC8C
+ ldr r0, [r3]
+ lsls r4, 4
+ adds r4, r0
+ adds r0, r5, 0
+ str r2, [sp, 0x7C]
+ str r3, [sp, 0x80]
+ bl GetNatureFromPersonality
+ ldrb r1, [r4, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x7C]
+ ldr r3, [sp, 0x80]
+ cmp r1, r0
+ bne _08193FEE
+ ldr r0, [r2]
+ ldr r2, [sp, 0x5C]
+ adds r1, r7, r2
+ ldr r4, =0x00000d64
+ adds r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r5, r0
+ cmp r5, 0
+ beq _08194068
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r5, =gBaseStats
+ adds r0, r5
+ ldrb r2, [r0, 0x17]
+ b _08194074
+ .pool
+_08194068:
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, =gBaseStats
+ adds r0, r2
+ ldrb r2, [r0, 0x16]
+_08194074:
+ ldr r4, [sp, 0x74]
+ add r4, r9
+ lsls r0, r4, 1
+ add r0, r10
+ ldrh r0, [r0]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x6
+ ands r0, r5
+ cmp r0, 0x6
+ bne _0819409C
+ lsls r0, r4, 2
+ mov r3, sp
+ adds r1, r3, r0
+ b _081940D8
+ .pool
+_0819409C:
+ movs r0, 0x29
+ ands r0, r5
+ cmp r0, 0
+ bne _081940DE
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _081940B6
+ lsls r0, r4, 2
+ mov r5, sp
+ adds r2, r5, r0
+ lsls r1, r6, 1
+ b _081940CA
+_081940B6:
+ movs r0, 0x4
+ ands r5, r0
+ cmp r5, 0
+ beq _081940D2
+ lsls r0, r4, 2
+ mov r1, sp
+ adds r2, r1, r0
+ lsrs r1, r6, 31
+ adds r1, r6, r1
+ asrs r1, 1
+_081940CA:
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+ b _081940DE
+_081940D2:
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r1, r2, r0
+_081940D8:
+ ldr r0, [r1]
+ adds r0, r6
+ str r0, [r1]
+_081940DE:
+ ldr r1, [sp, 0x68]
+ cmp r1, 0x2
+ bgt _081940E6
+ b _08193FE2
+_081940E6:
+ ldr r2, [sp, 0x74]
+ add r2, r9
+ lsls r0, r2, 2
+ add r0, sp
+ ldr r1, [r0]
+ ldr r3, [sp, 0x54]
+ cmp r3, r1
+ bge _08194104
+ lsls r0, r2, 16
+ lsrs r0, 16
+ str r0, [sp, 0x58]
+ lsls r0, r1, 16
+ lsrs r0, 16
+ str r0, [sp, 0x54]
+ b _08194122
+_08194104:
+ ldr r4, [sp, 0x54]
+ cmp r4, r1
+ bne _08194122
+ ldr r5, [sp, 0x58]
+ lsls r0, r5, 1
+ add r0, r10
+ lsls r1, r2, 1
+ add r1, r10
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bcs _08194122
+ lsls r0, r2, 16
+ lsrs r0, 16
+ str r0, [sp, 0x58]
+_08194122:
+ ldr r0, [sp, 0x64]
+ mov r9, r0
+ cmp r0, 0x3
+ bgt _0819412C
+ b _08193F18
+_0819412C:
+ ldr r1, [sp, 0x60]
+ str r1, [sp, 0x50]
+ cmp r1, 0x2
+ bgt _08194136
+ b _08193F02
+_08194136:
+ ldr r2, [sp, 0x58]
+ mov r9, r2
+ b _08194182
+_0819413C:
+ movs r3, 0
+ mov r9, r3
+ movs r1, 0
+ mov r4, r10
+ mov r3, r10
+ mov r2, sp
+_08194148:
+ ldr r0, [r2]
+ ldr r5, [sp, 0x54]
+ cmp r5, r0
+ bge _0819415A
+ mov r9, r1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x54]
+ b _08194170
+_0819415A:
+ ldr r5, [sp, 0x54]
+ cmp r5, r0
+ bne _08194170
+ mov r5, r9
+ lsls r0, r5, 1
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ ldrh r5, [r3]
+ cmp r0, r5
+ bcs _08194170
+ mov r9, r1
+_08194170:
+ adds r3, 0x2
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, 0xB
+ ble _08194148
+ ldr r0, [sp, 0x50]
+ ldr r1, [sp, 0x78]
+ cmp r0, r1
+ beq _081941F4
+_08194182:
+ movs r2, 0
+ str r2, [sp, 0x50]
+ mov r3, r9
+ lsls r7, r3, 2
+ ldr r4, [sp, 0x78]
+ cmp r2, r4
+ bge _081941CA
+ lsls r0, r3, 1
+ mov r5, r10
+ adds r6, r5, r0
+ ldr r0, [sp, 0x48]
+ lsls r5, r0, 24
+_0819419A:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r2, [sp, 0x50]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ lsrs r0, r5, 24
+ bl sub_81953E8
+ lsls r0, 24
+ lsrs r0, 23
+ movs r3, 0xEC
+ lsls r3, 4
+ adds r4, r3
+ adds r4, r0
+ ldrh r0, [r4]
+ ldrh r4, [r6]
+ cmp r0, r4
+ beq _081941CA
+ ldr r0, [sp, 0x50]
+ adds r0, 0x1
+ str r0, [sp, 0x50]
+ ldr r1, [sp, 0x78]
+ cmp r0, r1
+ blt _0819419A
+_081941CA:
+ ldr r2, [sp, 0x50]
+ ldr r3, [sp, 0x78]
+ cmp r2, r3
+ beq _081941F4
+ mov r4, sp
+ adds r1, r4, r7
+ movs r0, 0
+ str r0, [r1]
+ movs r5, 0
+ str r5, [sp, 0x54]
+ mov r9, r5
+ mov r2, sp
+ movs r1, 0xB
+_081941E4:
+ ldm r2!, {r0}
+ add r9, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081941E4
+ mov r0, r9
+ cmp r0, 0
+ bne _0819413C
+_081941F4:
+ mov r1, r9
+ lsls r0, r1, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08194204
+ ldr r2, [sp, 0x58]
+ mov r9, r2
+_08194204:
+ mov r3, r9
+ lsls r0, r3, 1
+ add r0, r10
+ ldrh r0, [r0]
+ add sp, 0x84
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8193ED0
+
+ thumb_func_start sub_8194220
+sub_8194220: @ 8194220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ mov r10, r1
+ movs r3, 0xC
+ ldrsh r4, [r0, r3]
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ bls _08194250
+ b _081948C2
+_08194250:
+ lsls r0, 2
+ ldr r1, =_08194264
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08194264:
+ .4byte _0819427C
+ .4byte _0819431C
+ .4byte _0819438C
+ .4byte _0819447C
+ .4byte _081944FC
+ .4byte _081947C8
+_0819427C:
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x3
+ bl EnableInterrupts
+ movs r4, 0
+ str r4, [sp, 0x14]
+ add r0, sp, 0x14
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ bl CpuSet
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_0860CE74
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_0860CE94
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ ldr r0, =gUnknown_02022E14
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E16
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E18
+ strh r4, [r0]
+ ldr r0, =gUnknown_02022E1A
+ strh r4, [r0]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r1, 0xB0
+ lsls r1, 4
+ movs r0, 0x3
+ movs r2, 0
+ bl ChangeBgY
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ b _0819443C
+ .pool
+_0819431C:
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4C
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00005860
+ movs r0, 0x40
+ bl SetGpuReg
+ movs r0, 0x44
+ movs r1, 0x9F
+ bl SetGpuReg
+ ldr r1, =0x00009098
+ movs r0, 0x42
+ bl SetGpuReg
+ movs r0, 0x46
+ movs r1, 0x9F
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x3F
+ bl SetGpuReg
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, =gTasks
+ mov r3, r8
+ lsls r0, r3, 2
+ b _0819443C
+ .pool
+_0819438C:
+ ldr r4, =gUnknown_0203CD7C
+ movs r0, 0x80
+ lsls r0, 4
+ bl AllocZeroed
+ adds r1, r0, 0
+ str r1, [r4]
+ ldr r0, =gUnknown_08D83900
+ bl LZDecompressWram
+ ldr r1, [r4]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ ldr r1, =gUnknown_08D82F10
+ movs r5, 0x80
+ lsls r5, 6
+ movs r6, 0
+ str r6, [sp]
+ movs r0, 0x1
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08D834FC
+ str r6, [sp]
+ movs r0, 0x2
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08D83B2C
+ movs r4, 0x1
+ str r4, [sp]
+ movs r0, 0x2
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r1, =gUnknown_08D83C3C
+ str r4, [sp]
+ movs r0, 0x3
+ adds r2, r5, 0
+ movs r3, 0
+ bl copy_decompressed_tile_data_to_vram_autofree
+ ldr r0, =gUnknown_08D85358
+ movs r4, 0x80
+ lsls r4, 2
+ movs r1, 0
+ adds r2, r4, 0
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_08D85444
+ movs r1, 0x80
+ lsls r1, 1
+ adds r2, r4, 0
+ bl LoadCompressedPalette
+ ldr r0, =gUnknown_08D85600
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ str r6, [sp, 0x18]
+ add r0, sp, 0x18
+ ldr r1, =gPlttBufferFaded
+ ldr r2, =0x05000100
+ bl CpuSet
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ ldr r1, =gTasks
+ mov r4, r8
+ lsls r0, r4, 2
+_0819443C:
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _081948C2
+ .pool
+_0819447C:
+ ldr r0, =gUnknown_0860CF50
+ bl LoadCompressedObjectPic
+ mov r0, r8
+ lsls r0, 2
+ str r0, [sp, 0x1C]
+ mov r1, r10
+ cmp r1, 0
+ bne _081944E8
+ movs r5, 0
+ ldr r4, =gUnknown_0860D411
+_08194492:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ ldr r0, =gUnknown_0860CFA8
+ movs r3, 0
+ bl CreateSprite
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x1E
+ bls _08194492
+ ldr r0, =gTasks
+ ldr r1, [sp, 0x1C]
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _081944DC
+ ldr r0, =gUnknown_0860D008
+ movs r1, 0xDA
+ movs r2, 0xC
+ movs r3, 0
+ bl CreateSprite
+ b _081944E8
+ .pool
+_081944DC:
+ ldr r0, =gUnknown_0860CFD8
+ movs r1, 0xDA
+ movs r2, 0xC
+ movs r3, 0
+ bl CreateSprite
+_081944E8:
+ ldr r1, =0x00007f40
+ movs r0, 0
+ bl SetGpuReg
+ b _081947A6
+ .pool
+_081944FC:
+ add r0, sp, 0x4
+ movs r2, 0
+ movs r1, 0x2
+ strb r1, [r0, 0x5]
+ ldr r0, =gUnknown_085CCCEE
+ str r0, [sp, 0x4]
+ add r0, sp, 0x4
+ strb r1, [r0, 0x4]
+ strb r2, [r0, 0x6]
+ strb r2, [r0, 0x7]
+ strb r1, [r0, 0xA]
+ strb r2, [r0, 0xB]
+ ldrb r0, [r0, 0x5]
+ ldr r1, [sp, 0x4]
+ add r2, sp, 0x4
+ ldrb r3, [r2, 0xA]
+ movs r2, 0x70
+ bl GetStringCenterAlignXOffsetWithLetterSpacing
+ add r1, sp, 0x4
+ strb r0, [r1, 0x8]
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ adds r3, r1, 0
+ ldrb r2, [r3, 0xC]
+ movs r1, 0x10
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ adds r2, r3, 0
+ movs r0, 0xE0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ strb r1, [r2, 0xD]
+ adds r1, r2, 0
+ movs r0, 0xD0
+ strb r0, [r1, 0xD]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ mov r3, r8
+ lsls r3, 2
+ str r3, [sp, 0x1C]
+ add r4, sp, 0x4
+ movs r0, 0xF
+ mov r9, r0
+ movs r1, 0
+ str r1, [sp, 0x20]
+ movs r2, 0
+ str r2, [sp, 0x24]
+ movs r7, 0
+ movs r5, 0xF
+_0819456C:
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ adds r0, r7
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 22
+ lsrs r1, 22
+ ldr r0, =gDisplayedStringBattle
+ bl sub_8195898
+ mov r2, r10
+ cmp r2, 0x1
+ bne _081945C4
+ ldr r3, =gSaveBlock2Ptr
+ ldr r2, [r3]
+ adds r0, r2, r7
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _081945DC
+ ldr r3, =0x00000cb2
+ adds r0, r2, r3
+ ldrh r1, [r0]
+ cmp r1, 0x1
+ beq _08194634
+ ldr r2, [sp, 0x24]
+ lsrs r0, r2, 24
+ subs r1, 0x2
+ b _081945EA
+ .pool
+_081945C4:
+ mov r3, r10
+ cmp r3, 0
+ bne _08194634
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ adds r0, r2, r7
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 29
+ cmp r0, 0
+ bge _081945FC
+_081945DC:
+ lsls r1, 27
+ lsrs r0, r1, 30
+ cmp r0, 0
+ beq _08194634
+ subs r1, r0, 0x1
+ ldr r2, [sp, 0x24]
+ lsrs r0, r2, 24
+_081945EA:
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_81948EC
+ b _08194634
+ .pool
+_081945FC:
+ ldr r3, =0x00000cb2
+ adds r1, r2, r3
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08194634
+ ldr r0, [sp, 0x1C]
+ add r0, r8
+ lsls r0, 3
+ ldr r2, =gTasks
+ adds r0, r2
+ movs r3, 0x10
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ beq _08194624
+ ldrh r1, [r1]
+ b _08194628
+ .pool
+_08194624:
+ ldrh r0, [r1]
+ subs r1, r0, 0x1
+_08194628:
+ ldr r2, [sp, 0x24]
+ lsrs r0, r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_81948EC
+_08194634:
+ ldr r0, [sp, 0x1C]
+ add r0, r8
+ lsls r0, 3
+ ldr r3, =gTasks
+ adds r0, r3
+ movs r1, 0x10
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08194660
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r3, =0x00000cb2
+ adds r0, r3
+ ldrh r3, [r0]
+ adds r6, r2, 0
+ b _0819466E
+ .pool
+_08194660:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000cb2
+ adds r0, r2
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r6, r1, 0
+_0819466E:
+ mov r0, r10
+ cmp r0, 0x1
+ bne _0819468E
+ ldr r2, [r6]
+ adds r0, r2, r7
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 27
+ lsrs r1, 30
+ ldr r0, =0x00000cb2
+ adds r2, r0
+ ldrh r0, [r2]
+ subs r0, 0x1
+ cmp r1, r0
+ blt _081946A6
+_0819468E:
+ mov r1, r10
+ cmp r1, 0
+ bne _081946FA
+ ldr r0, [r6]
+ adds r0, r7
+ ldr r2, =0x00000d25
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 30
+ cmp r0, r3
+ bgt _081946FA
+_081946A6:
+ ldr r0, [r6]
+ adds r1, r0, r7
+ ldr r3, =0x00000d25
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _081946FA
+ ldr r2, =0x00000d24
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ ldr r3, =0x000003ff
+ cmp r0, r3
+ bne _081946F0
+ ldrb r1, [r4, 0xC]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r4, 0xC]
+ ldrb r1, [r4, 0xD]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x40
+ b _08194740
+ .pool
+_081946F0:
+ ldrb r1, [r4, 0xC]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0xB0
+ b _08194734
+_081946FA:
+ ldr r0, [r6]
+ adds r0, r7
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ ldr r2, =0x000003ff
+ cmp r0, r2
+ bne _0819472C
+ ldrb r1, [r4, 0xC]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x30
+ orrs r0, r1
+ strb r0, [r4, 0xC]
+ ldrb r1, [r4, 0xD]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x40
+ b _08194740
+ .pool
+_0819472C:
+ ldrb r1, [r4, 0xC]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0xE0
+_08194734:
+ orrs r0, r1
+ strb r0, [r4, 0xC]
+ ldrb r1, [r4, 0xD]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0xD0
+_08194740:
+ orrs r0, r1
+ strb r0, [r4, 0xD]
+ ldr r0, =gUnknown_0860D3F1
+ ldr r3, [sp, 0x20]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08194768
+ ldrb r0, [r4, 0x5]
+ ldrb r3, [r4, 0xA]
+ ldr r1, =gDisplayedStringBattle
+ movs r2, 0x3D
+ bl GetStringWidthDifference
+ b _0819476A
+ .pool
+_08194768:
+ movs r0, 0x3
+_0819476A:
+ strb r0, [r4, 0x8]
+ ldr r0, =gDisplayedStringBattle
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_0860D3F1
+ ldr r1, [sp, 0x20]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ strb r0, [r4, 0x4]
+ ldr r2, =gUnknown_0860D3F2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r4, 0x9]
+ add r0, sp, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+ ldr r3, [sp, 0x20]
+ adds r3, 0x2
+ str r3, [sp, 0x20]
+ ldr r0, [sp, 0x24]
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ str r0, [sp, 0x24]
+ adds r7, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ blt _081947A6
+ b _0819456C
+_081947A6:
+ ldr r0, =gTasks
+ ldr r1, [sp, 0x1C]
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _081948C2
+ .pool
+_081947C8:
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =sub_8194BEC
+ bl SetHBlankCallback
+ ldr r0, =sub_8194CE4
+ bl SetVBlankCallback
+ cmp r4, 0x2
+ bne _0819485C
+ mov r2, r10
+ cmp r2, 0
+ bne _08194844
+ ldr r0, =sub_819395C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ mov r3, r10
+ strh r3, [r1, 0x8]
+ strh r3, [r1, 0xA]
+ mov r4, r8
+ lsls r0, r4, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x10]
+ strh r0, [r1, 0x14]
+ b _08194878
+ .pool
+_08194844:
+ ldr r0, =sub_8194950
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ b _0819486C
+ .pool
+_0819485C:
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xE
+ ldrsh r5, [r0, r3]
+_0819486C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+_08194878:
+ bl dp12_8087EA4
+ ldr r0, =gUnknown_02038C28
+ ldr r2, =0x00001f0a
+ movs r4, 0xF0
+ lsls r4, 3
+ adds r1, r0, r4
+ movs r5, 0x5A
+_08194888:
+ strh r2, [r0]
+ strh r2, [r1]
+ adds r1, 0x2
+ adds r0, 0x2
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08194888
+ movs r5, 0x5B
+ ldr r3, =gUnknown_0860CF44
+ ldr r0, =gUnknown_02038C28
+ ldr r2, =0x00001f09
+ ldr r4, =0x00000836
+ adds r1, r0, r4
+ adds r0, 0xB6
+_081948A4:
+ strh r2, [r0]
+ strh r2, [r1]
+ adds r1, 0x2
+ adds r0, 0x2
+ adds r5, 0x1
+ cmp r5, 0x9F
+ ble _081948A4
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ ldr r2, [r3, 0x8]
+ bl sub_80BA038
+ mov r0, r8
+ bl DestroyTask
+_081948C2:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194220
+
+ thumb_func_start sub_81948EC
+sub_81948EC: @ 81948EC
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, =gUnknown_0860DD10
+ lsls r2, r1, 2
+ lsls r3, r0, 4
+ adds r2, r3
+ adds r2, r4
+ ldr r3, [r2]
+ ldr r2, =gUnknown_0860DE10
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08194938
+ movs r7, 0x1
+ adds r4, r3, 0
+ adds r5, r4, 0x2
+ adds r6, r0, 0
+_0819491A:
+ ldrb r2, [r4]
+ ldrb r3, [r4, 0x1]
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ adds r1, r5, 0
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ adds r4, 0x4
+ adds r5, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0819491A
+_08194938:
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81948EC
+
+ thumb_func_start sub_8194950
+sub_8194950: @ 8194950
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _08194974
+ b _08194B3C
+_08194974:
+ lsls r0, 2
+ ldr r1, =_08194988
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08194988:
+ .4byte _0819499C
+ .4byte _081949C0
+ .4byte _08194AD4
+ .4byte _08194AEE
+ .4byte _08194B24
+_0819499C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08194B3C
+ .pool
+_081949C0:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081949CE
+ b _08194B3C
+_081949CE:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0
+ movs r3, 0x2
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ movs r1, 0x40
+ strh r1, [r0, 0xE]
+ add r0, sp, 0x4
+ strb r3, [r0, 0x5]
+ strb r2, [r0, 0x6]
+ strb r2, [r0, 0x7]
+ strb r3, [r0, 0xA]
+ strb r2, [r0, 0xB]
+ adds r3, r0, 0
+ ldrb r2, [r3, 0xC]
+ subs r1, 0x50
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ adds r2, r3, 0
+ movs r0, 0xB0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ strb r1, [r2, 0xD]
+ adds r1, r2, 0
+ movs r0, 0xD0
+ strb r0, [r1, 0xD]
+ movs r7, 0
+ ldr r0, =gDisplayedStringBattle
+ mov r9, r0
+ ldr r1, =gSaveBlock2Ptr
+ mov r8, r1
+ adds r4, r2, 0
+ ldr r6, =gUnknown_0860D3F1
+ movs r5, 0
+_08194A1C:
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r5
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r1, 22
+ lsrs r1, 22
+ mov r0, r9
+ bl sub_8195898
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, r5
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r3, [r0]
+ lsls r1, r3, 27
+ lsrs r1, 30
+ ldr r0, =0x00000cb2
+ adds r2, r0
+ ldrh r0, [r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08194A9E
+ lsls r0, r3, 29
+ cmp r0, 0
+ bge _08194A9E
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _08194A84
+ ldrb r0, [r4, 0x5]
+ ldrb r3, [r4, 0xA]
+ mov r1, r9
+ movs r2, 0x3D
+ bl GetStringWidthDifference
+ b _08194A86
+ .pool
+_08194A84:
+ movs r0, 0x3
+_08194A86:
+ strb r0, [r4, 0x8]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ ldrb r0, [r6]
+ strb r0, [r4, 0x4]
+ ldrb r0, [r6, 0x1]
+ strb r0, [r4, 0x9]
+ add r0, sp, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl AddTextPrinter
+_08194A9E:
+ mov r2, r8
+ ldr r1, [r2]
+ adds r0, r1, r5
+ ldr r2, =0x00000d25
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08194AC4
+ subs r2, 0x73
+ adds r0, r1, r2
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r7, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_81948EC
+_08194AC4:
+ adds r6, 0x2
+ adds r5, 0x4
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _08194A1C
+ b _08194B3C
+ .pool
+_08194AD4:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xE]
+ subs r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08194B3C
+ movs r0, 0x3
+ strh r0, [r1, 0x8]
+ b _08194B3C
+_08194AEE:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08194B3C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x4
+ strh r1, [r0, 0x8]
+ b _08194B3C
+ .pool
+_08194B24:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08194B3C
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08194B3C:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194950
+
+ thumb_func_start sub_8194B54
+sub_8194B54: @ 8194B54
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTextPrinters
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8194B54
+
+ thumb_func_start sub_8194B70
+sub_8194B70: @ 8194B70
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x1
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x2
+ bl ChangeBgY
+ ldr r0, =gUnknown_02022E14
+ ldrh r1, [r0]
+ movs r0, 0x10
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E16
+ ldrh r1, [r0]
+ movs r0, 0x12
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E18
+ ldrh r1, [r0]
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E1A
+ ldrh r1, [r0]
+ movs r0, 0x16
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E1C
+ ldrh r1, [r0]
+ movs r0, 0x18
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E1E
+ ldrh r1, [r0]
+ movs r0, 0x1A
+ bl SetGpuReg
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194B70
+
+ thumb_func_start sub_8194BEC
+sub_8194BEC: @ 8194BEC
+ push {lr}
+ ldr r0, =0x04000006
+ ldrh r0, [r0]
+ adds r1, r0, 0
+ cmp r0, 0x29
+ bls _08194CC8
+ cmp r0, 0x31
+ bhi _08194C1C
+ ldr r1, =0x04000048
+ ldr r2, =0x00003b3b
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x989b5558
+ b _08194CD4
+ .pool
+_08194C1C:
+ cmp r0, 0x39
+ bls _08194CC8
+ cmp r0, 0x4A
+ bhi _08194C40
+ ldr r1, =0x04000048
+ ldr r2, =0x00003b3b
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x90985860
+ b _08194CD4
+ .pool
+_08194C40:
+ cmp r0, 0x51
+ bhi _08194C60
+ ldr r1, =0x04000048
+ ldr r2, =0x00003b3b
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x989b5558
+ b _08194CD4
+ .pool
+_08194C60:
+ cmp r0, 0x5E
+ bls _08194CC8
+ cmp r0, 0x66
+ bhi _08194C84
+ ldr r1, =0x04000048
+ ldr r2, =0x00003737
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x989b5558
+ b _08194CD4
+ .pool
+_08194C84:
+ cmp r0, 0x76
+ bhi _08194CA4
+ ldr r1, =0x04000048
+ ldr r2, =0x00003737
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x90985860
+ b _08194CD4
+ .pool
+_08194CA4:
+ cmp r0, 0x7E
+ bls _08194CC8
+ cmp r1, 0x86
+ bhi _08194CC8
+ ldr r1, =0x04000048
+ ldr r2, =0x00003737
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ ldr r0, =0x989b5558
+ b _08194CD4
+ .pool
+_08194CC8:
+ ldr r1, =0x04000048
+ ldr r2, =0x00003f3f
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ movs r0, 0
+_08194CD4:
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194BEC
+
+ thumb_func_start sub_8194CE4
+sub_8194CE4: @ 8194CE4
+ push {lr}
+ ldr r0, =gUnknown_02022E14
+ ldrh r1, [r0]
+ movs r0, 0x10
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E16
+ ldrh r1, [r0]
+ movs r0, 0x12
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E18
+ ldrh r1, [r0]
+ movs r0, 0x14
+ bl SetGpuReg
+ ldr r0, =gUnknown_02022E1A
+ ldrh r1, [r0]
+ movs r0, 0x16
+ bl SetGpuReg
+ movs r0, 0x2
+ movs r1, 0x80
+ movs r2, 0x2
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0x80
+ movs r2, 0x1
+ bl ChangeBgY
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_80BA0A8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194CE4
+
+ thumb_func_start sub_8194D48
+sub_8194D48: @ 8194D48
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8194D48
+
+ thumb_func_start sub_8194D68
+sub_8194D68: @ 8194D68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r3, 0
+_08194D76:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =gUnknown_0203CEF8
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 1
+ ldr r2, =0x00000caa
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ mov r10, r0
+ movs r6, 0
+ adds r0, r3, 0x1
+ str r0, [sp]
+ movs r1, 0x64
+ mov r0, r10
+ muls r0, r1
+ movs r2, 0x8E
+ lsls r2, 2
+ adds r2, r0
+ mov r9, r2
+ adds r7, r3, 0
+ muls r7, r1
+_08194DA8:
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r8, r0
+ b _08194DBE
+ .pool
+_08194DBC:
+ adds r5, 0x1
+_08194DBE:
+ cmp r5, 0x3
+ bgt _08194DEA
+ ldr r1, =gSaveBlock1Ptr
+ ldr r0, [r1]
+ add r0, r9
+ adds r1, r5, 0
+ adds r1, 0xD
+ movs r2, 0
+ str r3, [sp, 0x4]
+ bl GetMonData
+ adds r4, r0, 0
+ adds r1, r6, 0
+ adds r1, 0xD
+ ldr r2, =gPlayerParty
+ adds r0, r7, r2
+ movs r2, 0
+ bl GetMonData
+ ldr r3, [sp, 0x4]
+ cmp r4, r0
+ bne _08194DBC
+_08194DEA:
+ cmp r5, 0x4
+ bne _08194E00
+ lsls r2, r6, 24
+ lsrs r2, 24
+ ldr r1, =gPlayerParty
+ adds r0, r7, r1
+ movs r1, 0xA6
+ str r3, [sp, 0x4]
+ bl SetMonMoveSlot
+ ldr r3, [sp, 0x4]
+_08194E00:
+ mov r6, r8
+ cmp r6, 0x3
+ ble _08194DA8
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ movs r2, 0x64
+ mov r1, r10
+ muls r1, r2
+ adds r0, r1
+ movs r1, 0x8E
+ lsls r1, 2
+ adds r0, r1
+ adds r1, r3, 0
+ muls r1, r2
+ ldr r2, =gPlayerParty
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+ ldr r3, [sp]
+ cmp r3, 0x1
+ ble _08194D76
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194D68
+
+ thumb_func_start sub_8194E44
+sub_8194E44: @ 8194E44
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r7, =gSaveBlock1Ptr
+ movs r6, 0x64
+ movs r5, 0
+_08194E50:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =gUnknown_0203CEF8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ lsls r0, 1
+ ldr r2, =0x00000caa
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r6
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r7]
+ adds r0, r1
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, =gPlayerParty
+ adds r0, r5, r0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x64
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08194E50
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194E44
+
+ thumb_func_start sub_8194EB4
+sub_8194EB4: @ 8194EB4
+ push {lr}
+ bl sub_80F94E8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8194EB4
+
+ thumb_func_start sub_8194EC0
+sub_8194EC0: @ 8194EC0
+ push {r4,lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ bl sub_8195358
+ adds r4, r0, 0
+ ldr r0, =0x000003ff
+ bl sub_8195358
+ cmp r4, r0
+ ble _08194EE8
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _08194EEC
+ .pool
+_08194EE8:
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+_08194EEC:
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194EC0
+
+ thumb_func_start sub_8194EF8
+sub_8194EF8: @ 8194EF8
+ push {r4,lr}
+ bl sub_8194D48
+ movs r2, 0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r1, =0x00000d25
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08194F2A
+ adds r4, r3, 0
+ adds r3, r1, 0
+_08194F14:
+ adds r2, 0x1
+ cmp r2, 0xF
+ bgt _08194F2A
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08194F14
+_08194F2A:
+ ldr r0, =gStringVar1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsls r2, 2
+ adds r1, r2
+ ldr r2, =0x00000d24
+ adds r1, r2
+ ldrh r1, [r1]
+ lsls r1, 22
+ lsrs r1, 22
+ bl sub_8195898
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194EF8
+
+ thumb_func_start sub_8194F58
+sub_8194F58: @ 8194F58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ ldr r5, =0x00000d0a
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ ldr r6, =0x00000d0b
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmn r1, r0
+ beq _08194F8C
+ ldr r1, =0x00000ca8
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08194F8C
+ b _0819533E
+_08194F8C:
+ movs r0, 0x20
+ bl AllocZeroed
+ str r0, [sp, 0x18]
+ movs r0, 0x18
+ bl AllocZeroed
+ str r0, [sp, 0x1C]
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r0, r2, 30
+ lsrs r0, 30
+ str r0, [sp, 0x14]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x1
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r6
+ strb r1, [r0]
+ movs r3, 0
+ mov r10, r3
+ movs r4, 0
+ str r4, [sp, 0x38]
+ movs r5, 0
+ str r5, [sp, 0x3C]
+_08194FCC:
+ mov r0, r10
+ cmp r0, 0x4
+ bgt _08194FFC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _08195030
+ .pool
+_08194FFC:
+ mov r1, r10
+ cmp r1, 0xE
+ bgt _0819501A
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, 0
+ adds r4, 0xA
+ b _08195030
+_0819501A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, 0
+ adds r4, 0x1E
+_08195030:
+ movs r6, 0
+ cmp r6, r10
+ bge _08195064
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r3, =0x00000d24
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r4
+ beq _08195064
+ adds r3, r2, 0
+ ldr r2, =0x00000d24
+_0819504C:
+ adds r6, 0x1
+ cmp r6, r10
+ bge _08195064
+ ldr r0, [r3]
+ lsls r1, r6, 2
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r4
+ bne _0819504C
+_08195064:
+ cmp r6, r10
+ bne _08194FCC
+ ldr r5, =gSaveBlock2Ptr
+ ldr r3, [r5]
+ ldr r0, [sp, 0x38]
+ adds r3, r0
+ ldr r1, =0x00000d24
+ adds r3, r1
+ ldr r2, =0x000003ff
+ adds r0, r2, 0
+ adds r2, r4, 0
+ ands r2, r0
+ ldrh r0, [r3]
+ ldr r5, =0xfffffc00
+ adds r1, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+ movs r6, 0
+ lsls r4, 16
+ str r4, [sp, 0x30]
+ ldr r0, [sp, 0x3C]
+ str r0, [sp, 0x20]
+_08195092:
+ adds r1, r6, 0x1
+ str r1, [sp, 0x24]
+ lsls r2, r6, 2
+ str r2, [sp, 0x2C]
+ lsls r3, r6, 1
+ str r3, [sp, 0x28]
+_0819509E:
+ ldr r4, [sp, 0x30]
+ lsrs r0, r4, 16
+ bl sub_8163524
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r7, 0
+ cmp r7, r6
+ bge _081950F4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gUnknown_0203BC8C
+ mov r9, r1
+ ldr r2, [sp, 0x8]
+ mov r8, r2
+ ldr r3, [sp, 0xC]
+ mov r12, r3
+ ldr r4, =0x00000d64
+ adds r0, r4
+ ldr r1, [sp, 0x20]
+ adds r4, r1, r0
+_081950C8:
+ ldrh r3, [r4]
+ cmp r3, r5
+ beq _081950F4
+ mov r2, r9
+ ldr r1, [r2]
+ lsls r0, r5, 4
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ cmp r8, r0
+ beq _081950F4
+ cmp r12, r0
+ beq _081950F4
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xA]
+ ldrb r2, [r2, 0xA]
+ cmp r0, r2
+ beq _081950F4
+ adds r4, 0x2
+ adds r7, 0x1
+ cmp r7, r6
+ blt _081950C8
+_081950F4:
+ cmp r7, r6
+ bne _0819509E
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r4, [sp, 0x28]
+ ldr r2, [sp, 0x3C]
+ adds r1, r4, r2
+ ldr r3, =0x00000d64
+ adds r0, r3
+ adds r0, r1
+ strh r5, [r0]
+ ldr r2, [sp, 0x2C]
+ add r2, sp
+ adds r2, 0x8
+ ldr r3, =gUnknown_0203BC8C
+ ldr r1, [r3]
+ lsls r0, r5, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [r2]
+ ldr r6, [sp, 0x24]
+ cmp r6, 0x2
+ ble _08195092
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ ldr r5, [sp, 0x38]
+ adds r2, r5
+ ldr r0, =0x00000d25
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r4, 0x5
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r5, =gSaveBlock2Ptr
+ ldr r2, [r5]
+ ldr r0, [sp, 0x38]
+ adds r2, r0
+ ldr r1, =0x00000d25
+ adds r2, r1
+ ldrb r0, [r2]
+ subs r4, 0x14
+ adds r1, r4, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r1, [r5]
+ ldr r5, [sp, 0x38]
+ adds r1, r5
+ ldr r0, =0x00000d25
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x1F
+ ands r0, r2
+ strb r0, [r1]
+ adds r5, 0x4
+ str r5, [sp, 0x38]
+ ldr r1, [sp, 0x3C]
+ adds r1, 0x6
+ str r1, [sp, 0x3C]
+ movs r2, 0x1
+ add r10, r2
+ mov r4, r10
+ cmp r4, 0xF
+ bgt _08195178
+ b _08194FCC
+_08195178:
+ movs r5, 0
+ mov r10, r5
+ ldr r5, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x34]
+_08195182:
+ movs r7, 0
+ strh r7, [r5]
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ mov r2, r10
+ lsls r1, r2, 2
+ adds r0, r1
+ ldr r3, =0x00000d24
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ bl sub_8190168
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r6, 0
+ ldr r4, [sp, 0x34]
+ mov r9, r4
+_081951AA:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ mov r4, r9
+ add r4, r10
+ adds r4, r6
+ lsls r4, 1
+ ldr r2, =0x00000d64
+ adds r0, r2
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r3, =gUnknown_0203BC8C
+ ldr r0, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrh r0, [r1]
+ ldrb r3, [r1, 0xB]
+ ldrb r1, [r1, 0xC]
+ str r1, [sp]
+ ldr r1, [sp, 0x1C]
+ str r1, [sp, 0x4]
+ movs r1, 0x32
+ mov r2, r8
+ bl sub_818F720
+ ldr r2, [sp, 0x1C]
+ ldr r1, [r2, 0x4]
+ ldrh r0, [r5]
+ adds r0, r1
+ ldr r1, [r2, 0x8]
+ adds r0, r1
+ ldr r1, [r2, 0x10]
+ adds r0, r1
+ ldr r1, [r2, 0x14]
+ adds r0, r1
+ ldr r1, [r2, 0xC]
+ adds r0, r1
+ ldr r1, [r2]
+ adds r0, r1
+ strh r0, [r5]
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ ldr r1, =0x00000d64
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ ldr r2, =gUnknown_0203BC8C
+ ldr r1, [r2]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r3, =gBaseStats
+ adds r1, r3
+ ldrb r0, [r1, 0x6]
+ lsls r0, 2
+ ldr r4, =gBitTable
+ adds r0, r4
+ ldr r0, [r0]
+ orrs r7, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ orrs r7, r0
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _081951AA
+ movs r4, 0
+ movs r1, 0x1
+ movs r6, 0x1F
+_0819523A:
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08195244
+ adds r4, 0x1
+_08195244:
+ asrs r7, 1
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0819523A
+ movs r1, 0x32
+ adds r0, r4, 0
+ muls r0, r1
+ movs r1, 0x14
+ bl __divsi3
+ ldrh r1, [r5]
+ adds r1, r0
+ strh r1, [r5]
+ adds r5, 0x2
+ ldr r2, [sp, 0x34]
+ adds r2, 0x2
+ str r2, [sp, 0x34]
+ movs r3, 0x1
+ add r10, r3
+ mov r4, r10
+ cmp r4, 0xF
+ ble _08195182
+ movs r5, 0
+ mov r10, r5
+ ldr r7, [sp, 0x18]
+_08195276:
+ mov r6, r10
+ adds r6, 0x1
+ cmp r6, 0xF
+ bgt _081952F8
+ mov r8, r7
+ ldr r5, =0x00000d24
+ lsls r0, r6, 1
+ ldr r1, [sp, 0x18]
+ adds r4, r0, r1
+_08195288:
+ mov r2, r8
+ ldrh r1, [r2]
+ ldrh r0, [r4]
+ cmp r1, r0
+ bcs _081952C4
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r2, [sp, 0x18]
+ bl sub_818F904
+ b _081952F0
+ .pool
+_081952C4:
+ cmp r1, r0
+ bne _081952F0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r3, r10
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ adds r0, r5
+ ldrh r2, [r0]
+ lsls r2, 22
+ lsls r0, r6, 2
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ lsls r0, 22
+ cmp r2, r0
+ bls _081952F0
+ mov r0, r10
+ adds r1, r6, 0
+ ldr r2, [sp, 0x18]
+ bl sub_818F904
+_081952F0:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _08195288
+_081952F8:
+ adds r7, 0x2
+ movs r4, 0x1
+ add r10, r4
+ mov r5, r10
+ cmp r5, 0xE
+ ble _08195276
+ ldr r0, [sp, 0x18]
+ bl Free
+ ldr r0, [sp, 0x1C]
+ bl Free
+ movs r0, 0
+ mov r10, r0
+_08195314:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl sub_8195438
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x3
+ ble _08195314
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r4, =0x00000ca9
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ ldr r5, [sp, 0x14]
+ orrs r0, r5
+ strb r0, [r1]
+_0819533E:
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8194F58
+
+ thumb_func_start sub_8195358
+sub_8195358: @ 8195358
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r3
+ beq _0819538E
+ adds r5, r4, 0
+ adds r4, r1, 0
+_08195376:
+ adds r2, 0x1
+ cmp r2, 0xF
+ bgt _0819538E
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r3
+ bne _08195376
+_0819538E:
+ adds r0, r2, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8195358
+
+ thumb_func_start sub_81953A0
+sub_81953A0: @ 81953A0
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r3
+ beq _081953D6
+ adds r5, r4, 0
+ adds r4, r1, 0
+_081953BE:
+ adds r2, 0x1
+ cmp r2, 0xF
+ bgt _081953D6
+ ldr r0, [r5]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ lsls r0, 22
+ lsrs r0, 22
+ cmp r0, r3
+ bne _081953BE
+_081953D6:
+ adds r0, r2, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81953A0
+
+ thumb_func_start sub_81953E8
+sub_81953E8: @ 81953E8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_0860D1A0
+ ldr r0, =gUnknown_0860D1C0
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ bl sub_8192F08
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0819542C
+ mov r0, sp
+ ldrb r0, [r0]
+ b _08195430
+ .pool
+_0819542C:
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+_08195430:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81953E8
+
+ thumb_func_start sub_8195438
+sub_8195438: @ 8195438
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r1, 0
+ str r1, [sp, 0x10]
+ movs r5, 0
+ movs r1, 0x3
+ ldr r0, [sp]
+ ands r0, r1
+ lsls r0, 3
+ str r0, [sp, 0x14]
+_0819545E:
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ lsls r4, r5, 2
+ adds r1, r0, r4
+ ldr r3, =0x00000d25
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 29
+ adds r2, r5, 0x1
+ str r2, [sp, 0x24]
+ cmp r0, 0
+ bge _08195478
+ b _08195876
+_08195478:
+ subs r3, 0x1
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ lsls r1, r0, 22
+ ldr r0, =0xffc00000
+ cmp r1, r0
+ bne _08195488
+ b _08195876
+_08195488:
+ str r5, [sp, 0x4]
+ lsrs r1, 22
+ ldr r0, [sp]
+ bl sub_81901A0
+ str r0, [sp, 0x8]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ adds r0, r3, r4
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ ldr r1, =0xff800000
+ cmp r0, r1
+ bne _08195504
+ ldr r2, [sp, 0x8]
+ cmp r2, 0xFF
+ beq _08195504
+ lsls r2, 2
+ adds r1, r3, r2
+ ldr r3, =0x00000d25
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r1, r2
+ ldr r2, =0x00000d25
+ adds r1, r2
+ ldrb r0, [r1]
+ subs r3, 0x1D
+ ands r0, r3
+ ldr r2, [sp, 0x14]
+ orrs r0, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r5, [sp, 0x8]
+ lsls r2, r5, 1
+ movs r3, 0xEC
+ lsls r3, 4
+ adds r1, r3
+ adds r1, r2
+ b _08195874
+ .pool
+_08195504:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r3, [r4]
+ ldr r0, [sp, 0x8]
+ lsls r2, r0, 2
+ adds r0, r3, r2
+ ldr r1, =0x00000d24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 22
+ ldr r1, =0xff800000
+ str r2, [sp, 0x30]
+ cmp r0, r1
+ bne _0819557C
+ ldr r2, [sp, 0x4]
+ cmp r2, 0xFF
+ beq _0819557C
+ lsls r2, 2
+ adds r1, r3, r2
+ ldr r3, =0x00000d25
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, r2
+ ldr r0, =0x00000d25
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ ldr r3, [sp, 0x14]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r1, [r4]
+ ldr r3, [sp, 0x4]
+ lsls r2, r3, 1
+ movs r3, 0xEC
+ lsls r3, 4
+ adds r1, r3
+ adds r1, r2
+ strh r0, [r1]
+ adds r5, 0x1
+ str r5, [sp, 0x24]
+ b _08195876
+ .pool
+_0819557C:
+ adds r5, 0x1
+ str r5, [sp, 0x24]
+ ldr r5, [sp, 0x8]
+ cmp r5, 0xFF
+ bne _08195588
+ b _08195876
+_08195588:
+ movs r0, 0
+ mov r10, r0
+ lsls r1, r5, 1
+ str r1, [sp, 0x2C]
+ ldr r2, [sp, 0x4]
+ lsls r2, 1
+ str r2, [sp, 0x28]
+ ldr r3, [sp, 0x4]
+ adds r0, r2, r3
+ lsls r0, 1
+ mov r9, r0
+ adds r0, r1, r5
+ lsls r0, 1
+ str r0, [sp, 0x18]
+_081955A4:
+ movs r5, 0
+ mov r0, r9
+ str r0, [sp, 0x38]
+_081955AA:
+ movs r6, 0
+ lsls r7, r5, 1
+ ldr r4, [sp, 0x18]
+_081955B0:
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ ldr r3, =0x00000d64
+ adds r1, r3
+ ldr r2, [sp, 0x38]
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ ldr r3, =gUnknown_0203BC8C
+ mov r8, r3
+ ldr r2, [r3]
+ lsls r0, 4
+ adds r0, r2
+ adds r0, 0x2
+ adds r0, r7
+ ldrh r0, [r0]
+ adds r1, r4
+ ldrh r1, [r1]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r2, 0x2
+ bl sub_818FFC0
+ ldr r1, [sp, 0xC]
+ adds r1, r0
+ str r1, [sp, 0xC]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _081955B0
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081955AA
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r3, =0x00000d64
+ adds r0, r3
+ add r0, r9
+ ldrh r0, [r0]
+ mov r5, r8
+ ldr r1, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r0, =gBaseStats
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r1, 0x1]
+ adds r0, r2
+ ldrb r2, [r1, 0x2]
+ adds r0, r2
+ ldrb r2, [r1, 0x3]
+ adds r0, r2
+ ldrb r3, [r1, 0x4]
+ adds r0, r3
+ ldrb r1, [r1, 0x5]
+ adds r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ ldr r5, [sp, 0xC]
+ adds r5, r0
+ str r5, [sp, 0xC]
+ movs r0, 0x2
+ add r9, r0
+ movs r1, 0x1
+ add r10, r1
+ mov r2, r10
+ cmp r2, 0x2
+ ble _081955A4
+ bl Random
+ movs r1, 0x1F
+ ands r1, r0
+ adds r5, r1
+ ldr r3, [sp, 0x4]
+ adds r5, r3
+ str r5, [sp, 0xC]
+ movs r5, 0
+ mov r10, r5
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x8]
+ adds r0, r1, r2
+ lsls r0, 1
+ str r0, [sp, 0x1C]
+ ldr r5, [sp, 0x28]
+ adds r0, r5, r3
+ lsls r0, 1
+ str r0, [sp, 0x20]
+_08195668:
+ movs r5, 0
+ mov r0, r10
+ lsls r3, r0, 1
+ movs r1, 0x1
+ add r10, r1
+ ldr r2, [sp, 0x1C]
+ adds r2, r3
+ mov r8, r2
+_08195678:
+ movs r6, 0
+ lsls r7, r5, 1
+ adds r5, 0x1
+ str r5, [sp, 0x3C]
+ ldr r4, [sp, 0x20]
+_08195682:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r0, =0x00000d64
+ adds r1, r0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ ldr r5, =gUnknown_0203BC8C
+ mov r9, r5
+ ldr r2, [r5]
+ lsls r0, 4
+ adds r0, r2
+ adds r0, 0x2
+ adds r0, r7
+ ldrh r0, [r0]
+ adds r1, r4
+ ldrh r1, [r1]
+ lsls r1, 4
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r2, 0x2
+ str r3, [sp, 0x34]
+ bl sub_818FFC0
+ ldr r1, [sp, 0x10]
+ adds r1, r0
+ str r1, [sp, 0x10]
+ adds r4, 0x2
+ adds r6, 0x1
+ ldr r3, [sp, 0x34]
+ cmp r6, 0x2
+ ble _08195682
+ ldr r5, [sp, 0x3C]
+ cmp r5, 0x3
+ ble _08195678
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r5, [sp, 0x1C]
+ adds r1, r3, r5
+ ldr r2, =0x00000d64
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r3, r9
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r0, =gBaseStats
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r1, 0x1]
+ adds r0, r2
+ ldrb r5, [r1, 0x2]
+ adds r0, r5
+ ldrb r2, [r1, 0x3]
+ adds r0, r2
+ ldrb r2, [r1, 0x4]
+ adds r0, r2
+ ldrb r1, [r1, 0x5]
+ adds r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ ldr r3, [sp, 0x10]
+ adds r3, r0
+ str r3, [sp, 0x10]
+ mov r5, r10
+ cmp r5, 0x2
+ ble _08195668
+ bl Random
+ movs r1, 0x1F
+ ands r1, r0
+ ldr r0, [sp, 0x10]
+ adds r0, r1
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ str r0, [sp, 0x10]
+ ldr r2, [sp, 0xC]
+ cmp r2, r0
+ ble _08195784
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r5, [sp, 0x30]
+ adds r1, r5
+ ldr r0, =0x00000d25
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, r5
+ ldr r3, =0x00000d25
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r5, 0x19
+ negs r5, r5
+ ands r0, r5
+ ldr r2, [sp, 0x14]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ movs r5, 0xEC
+ lsls r5, 4
+ adds r1, r5
+ ldr r2, [sp, 0x2C]
+ adds r1, r2
+ b _08195874
+ .pool
+_08195784:
+ ldr r3, [sp, 0xC]
+ ldr r5, [sp, 0x10]
+ cmp r3, r5
+ bge _081957DC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r3, [sp, 0x4]
+ lsls r2, r3, 2
+ adds r1, r2
+ ldr r5, =0x00000d25
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ adds r1, r2
+ ldr r0, =0x00000d25
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ ldr r3, [sp, 0x14]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r1, [r5]
+ movs r5, 0xEC
+ lsls r5, 4
+ adds r1, r5
+ ldr r2, [sp, 0x28]
+ adds r1, r2
+ b _08195874
+ .pool
+_081957DC:
+ ldr r3, [sp, 0x4]
+ ldr r5, [sp, 0x8]
+ cmp r3, r5
+ ble _08195830
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, [sp, 0x30]
+ adds r1, r2
+ ldr r3, =0x00000d25
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r1, r2
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ ldr r3, [sp, 0x14]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [sp, 0x4]
+ ldr r1, [sp, 0x8]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ movs r2, 0xEC
+ lsls r2, 4
+ adds r1, r2
+ ldr r3, [sp, 0x2C]
+ b _08195872
+ .pool
+_08195830:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r0, [sp, 0x4]
+ lsls r2, r0, 2
+ adds r1, r2
+ ldr r3, =0x00000d25
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r1, r2
+ adds r1, r3
+ ldrb r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ ldr r3, [sp, 0x14]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp]
+ bl sub_8193ED0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ movs r2, 0xEC
+ lsls r2, 4
+ adds r1, r2
+ ldr r3, [sp, 0x28]
+_08195872:
+ adds r1, r3
+_08195874:
+ strh r0, [r1]
+_08195876:
+ ldr r5, [sp, 0x24]
+ cmp r5, 0xF
+ bgt _0819587E
+ b _0819545E
+_0819587E:
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195438
+
+ thumb_func_start sub_8195898
+sub_8195898: @ 8195898
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+ bl sub_8165C40
+ ldr r0, =0x000003fe
+ cmp r5, r0
+ bne _081958B8
+ adds r0, r6, 0
+ bl sub_8195938
+ b _08195902
+ .pool
+_081958B8:
+ ldr r0, =0x000003ff
+ cmp r5, r0
+ bne _081958DC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+_081958C2:
+ adds r0, r6, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _081958C2
+ b _081958FC
+ .pool
+_081958DC:
+ ldr r0, =0x0000012b
+ cmp r5, r0
+ bhi _081958FC
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r5
+ adds r0, r1
+ adds r2, r0, 0x4
+_081958EE:
+ adds r0, r6, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _081958EE
+_081958FC:
+ adds r1, r6, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+_08195902:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195898
+
+ thumb_func_start sub_8195910
+sub_8195910: @ 8195910
+ ldr r0, =gTrainers
+ ldr r1, =0x00007df3
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8195910
+
+ thumb_func_start sub_8195924
+sub_8195924: @ 8195924
+ ldr r0, =gTrainers
+ ldr r1, =0x00007df1
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8195924
+
+ thumb_func_start sub_8195938
+sub_8195938: @ 8195938
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, =gTrainers + TRAINER_TUCKER * 0x28 + 0x4 @ Tucker's name
+_08195940:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _08195940
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195938
+
+ thumb_func_start sub_8195960
+sub_8195960: @ 8195960
+ push {lr}
+ ldr r1, =gUnknown_0860DE50
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195960
+
+ thumb_func_start sub_8195980
+sub_8195980: @ 8195980
+ push {r4-r7,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, [r4]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r6, 0
+ strb r6, [r0]
+ ldr r1, [r4]
+ adds r2, 0xA
+ adds r0, r1, r2
+ strh r6, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r4, [r4]
+ ldr r0, =0x00000cdc
+ adds r3, r4, r0
+ ldr r2, =gUnknown_0860DE98
+ lsls r1, r5, 2
+ lsls r0, r7, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r0, [r3]
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _081959F2
+ lsls r0, r5, 1
+ lsls r1, r7, 2
+ adds r0, r1
+ ldr r2, =0x00000dc8
+ adds r1, r4, r2
+ adds r1, r0
+ strh r6, [r1]
+_081959F2:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ movs r2, 0x5
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0
+ bl saved_warp2_set
+ ldr r0, =gTrainerBattleOpponent_A
+ strh r6, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195980
+
+ thumb_func_start sub_8195A38
+sub_8195A38: @ 8195A38
+ push {r4-r7,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r7, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08195A90
+ cmp r0, 0x1
+ bgt _08195A74
+ cmp r0, 0
+ beq _08195A7A
+ b _08195AD0
+ .pool
+_08195A74:
+ cmp r0, 0x2
+ beq _08195AB0
+ b _08195AD0
+_08195A7A:
+ ldr r0, =gScriptResult
+ ldr r1, [r5]
+ ldr r2, =0x00000dc6
+ adds r1, r2
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _08195AD0
+ .pool
+_08195A90:
+ ldr r3, =gScriptResult
+ ldr r0, [r5]
+ lsls r1, r7, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ ldr r2, =0x00000dc8
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+ b _08195AD0
+ .pool
+_08195AB0:
+ ldr r4, =gScriptResult
+ ldr r2, [r5]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_0860DE98
+ lsls r0, r7, 2
+ lsls r1, r6, 3
+ adds r0, r1
+ adds r0, r3
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ strh r0, [r4]
+_08195AD0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195A38
+
+ thumb_func_start sub_8195AE4
+sub_8195AE4: @ 8195AE4
+ push {r4-r6,lr}
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08195B3C
+ cmp r0, 0x1
+ bgt _08195B20
+ cmp r0, 0
+ beq _08195B26
+ b _08195BA0
+ .pool
+_08195B20:
+ cmp r0, 0x2
+ beq _08195B5C
+ b _08195BA0
+_08195B26:
+ ldr r0, [r6]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000dc6
+ adds r0, r2
+ strh r1, [r0]
+ b _08195BA0
+ .pool
+_08195B3C:
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r1, =0x00000dc8
+ adds r2, r1
+ adds r2, r0
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _08195BA0
+ .pool
+_08195B5C:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08195B88
+ ldr r2, [r6]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_0860DE98
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ orrs r0, r1
+ b _08195B9E
+ .pool
+_08195B88:
+ ldr r2, [r6]
+ ldr r1, =0x00000cdc
+ adds r2, r1
+ ldr r3, =gUnknown_0860DEA8
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ ands r0, r1
+_08195B9E:
+ str r0, [r2]
+_08195BA0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195AE4
+
+ thumb_func_start sub_8195BB0
+sub_8195BB0: @ 8195BB0
+ push {r4,lr}
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ ldr r3, =0x00000ca9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ lsls r1, 30
+ lsrs r1, 29
+ lsrs r0, 14
+ adds r1, r0
+ ldr r0, =0x00000dc8
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ cmp r0, 0x31
+ bhi _08195C00
+ ldr r4, =gScriptResult
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ strh r0, [r4]
+ b _08195C16
+ .pool
+_08195C00:
+ cmp r0, 0x62
+ bhi _08195C10
+ ldr r1, =gScriptResult
+ movs r0, 0x3
+ b _08195C14
+ .pool
+_08195C10:
+ ldr r1, =gScriptResult
+ movs r0, 0x4
+_08195C14:
+ strh r0, [r1]
+_08195C16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195BB0
+
+ thumb_func_start sub_8195C20
+sub_8195C20: @ 8195C20
+ push {r4,lr}
+ ldr r4, =gTrainerBattleOpponent_A
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xFF
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsrs r1, 6
+ strh r1, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_8162614
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195C20
+
+ thumb_func_start sub_8195C50
+sub_8195C50: @ 8195C50
+ push {lr}
+ ldr r3, =gTrainerBattleOpponent_A
+ ldrh r1, [r3]
+ ldr r0, =0x0000012b
+ cmp r1, r0
+ bhi _08195C6C
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+_08195C6C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195C50
+
+ thumb_func_start sub_8195C7C
+sub_8195C7C: @ 8195C7C
+ push {r4-r7,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r7, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ ldr r4, [r4]
+ lsls r1, r7, 1
+ lsrs r5, r0, 22
+ adds r1, r5
+ ldr r3, =0x00000dc8
+ adds r6, r4, r3
+ adds r3, r6, r1
+ ldrh r2, [r3]
+ ldr r0, =0x0000270e
+ cmp r2, r0
+ bhi _08195CCA
+ adds r2, 0x1
+ strh r2, [r3]
+ movs r3, 0xDD
+ lsls r3, 4
+ adds r0, r4, r3
+ adds r1, r0, r1
+ adds r0, r5, 0
+ ldrh r3, [r1]
+ cmp r7, r3
+ bls _08195CC0
+ adds r0, 0x2
+_08195CC0:
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08195CCA
+ strh r2, [r1]
+_08195CCA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195C7C
+
+ thumb_func_start sub_8195CE4
+sub_8195CE4: @ 8195CE4
+ push {r4,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ strb r1, [r0]
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r1, [r4]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_81A4C30
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195CE4
+
+ thumb_func_start sub_8195D28
+sub_8195D28: @ 8195D28
+ push {r4,r5,lr}
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ ldr r3, =0x00000ca9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ lsls r1, 30
+ lsrs r1, 29
+ lsrs r0, 14
+ adds r1, r0
+ ldr r0, =0x00000dc8
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ cmp r0, 0x29
+ bls _08195D88
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_0860DE84
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r1, =0x00000dc6
+ adds r4, r1
+ b _08195DA6
+ .pool
+_08195D88:
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_0860DE78
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r3, =0x00000dc6
+ adds r4, r3
+_08195DA6:
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195D28
+
+ thumb_func_start sub_8195DB8
+sub_8195DB8: @ 8195DB8
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000dc6
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _08195E00
+ ldr r0, [r4]
+ ldr r1, =0x00000dc6
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000dc6
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _08195E06
+ .pool
+_08195E00:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_08195E06:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195DB8
+
+ thumb_func_start sub_8195E10
+sub_8195E10: @ 8195E10
+ push {lr}
+ bl RtcCalcLocalTime
+ ldr r0, =gLocalTime
+ bl sub_8195E34
+ ldr r1, =gUnknown_0203CD80
+ adds r0, 0xA
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8195E10
+
+ thumb_func_start sub_8195E34
+sub_8195E34: @ 8195E34
+ adds r3, r0, 0
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ movs r2, 0x2
+ ldrsb r2, [r3, r2]
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x3
+ ldrsb r1, [r3, r1]
+ adds r0, r1
+ bx lr
+ thumb_func_end sub_8195E34
+
+ thumb_func_start sub_8195E58
+sub_8195E58: @ 8195E58
+ push {lr}
+ bl RtcCalcLocalTime
+ ldr r0, =gLocalTime
+ bl sub_8195E34
+ adds r1, r0, 0
+ ldr r2, =gUnknown_0203CD80
+ ldr r0, [r2]
+ cmp r0, r1
+ bhi _08195E74
+ subs r0, r1, r0
+ cmp r0, 0x9
+ bls _08195E84
+_08195E74:
+ str r1, [r2]
+ movs r0, 0x1
+ b _08195E86
+ .pool
+_08195E84:
+ movs r0, 0
+_08195E86:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195E58
+
+ thumb_func_start sub_8195E8C
+sub_8195E8C: @ 8195E8C
+ push {r4,r5,lr}
+ movs r5, 0x1
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _08195EAE
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1F
+ bne _08195EAE
+ movs r5, 0x2
+_08195EAE:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r5, 1
+ adds r1, r5
+ cmp r0, r1
+ blt _08195ED0
+ movs r0, 0
+ b _08195ED2
+ .pool
+_08195ED0:
+ movs r0, 0x1
+_08195ED2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195E8C
+
+ thumb_func_start sub_8195ED8
+sub_8195ED8: @ 8195ED8
+ push {r4,lr}
+ ldr r4, =gMapHeader
+ ldrb r0, [r4, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ cmp r0, 0
+ beq _08195F30
+ ldrb r0, [r4, 0x14]
+ cmp r0, 0x39
+ beq _08195F30
+ cmp r0, 0xE
+ bne _08195F0E
+ movs r0, 0xF9
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08195F0E
+ movs r0, 0xDC
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08195F30
+_08195F0E:
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0x38
+ bne _08195F38
+ movs r0, 0xCF
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08195F38
+ movs r0, 0x8B
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08195F38
+_08195F30:
+ movs r0, 0
+ b _08195F3A
+ .pool
+_08195F38:
+ movs r0, 0x1
+_08195F3A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195ED8
+
+ thumb_func_start sub_8195F40
+sub_8195F40: @ 8195F40
+ push {lr}
+ ldr r1, =gUnknown_0203CD80
+ ldrb r0, [r1, 0x6]
+ adds r0, 0x1
+ strb r0, [r1, 0x6]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bhi _08195F5C
+ movs r0, 0
+ b _08195F62
+ .pool
+_08195F5C:
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ movs r0, 0x1
+_08195F62:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195F40
+
+ thumb_func_start sub_8195F68
+sub_8195F68: @ 8195F68
+ push {r4,lr}
+ bl sub_8195FCC
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08195FB8
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ bl sub_8195FF8
+ ldr r2, =gUnknown_0203CD80
+ movs r1, 0
+ strh r0, [r2, 0x4]
+ strb r1, [r2, 0x7]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4E
+ beq _08195FB8
+ ldrh r0, [r2, 0x4]
+ bl sub_8196844
+ adds r4, r0, 0
+ bl sub_819672C
+ ldr r1, =gMapHeader
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x14]
+ cmp r0, r1
+ bne _08195FC4
+ adds r0, r4, 0
+ bl sub_8196710
+ cmp r0, 0
+ bne _08195FC4
+_08195FB8:
+ movs r0, 0
+ b _08195FC6
+ .pool
+_08195FC4:
+ movs r0, 0x1
+_08195FC6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195F68
+
+ thumb_func_start sub_8195FCC
+sub_8195FCC: @ 8195FCC
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_08195FD2:
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08195FE8
+ adds r5, 0x1
+_08195FE8:
+ adds r4, 0x1
+ cmp r4, 0x3F
+ bls _08195FD2
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195FCC
+
+ thumb_func_start sub_8195FF8
+sub_8195FF8: @ 8195FF8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r4, 0
+ ldr r6, =gUnknown_085500A4
+_08196000:
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08196022
+ cmp r5, 0
+ bne _08196020
+ ldrh r0, [r6]
+ b _0819602C
+ .pool
+_08196020:
+ subs r5, 0x1
+_08196022:
+ adds r6, 0x10
+ adds r4, 0x1
+ cmp r4, 0x3F
+ bls _08196000
+ movs r0, 0x4E
+_0819602C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8195FF8
+
+ thumb_func_start sub_8196034
+sub_8196034: @ 8196034
+ push {lr}
+ ldr r0, =0x0000012f
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08196078
+ bl sub_8195F40
+ cmp r0, 0
+ beq _08196078
+ bl sub_8195E58
+ cmp r0, 0
+ beq _08196078
+ bl sub_8195E8C
+ cmp r0, 0
+ beq _08196078
+ bl sub_8195ED8
+ cmp r0, 0
+ beq _08196078
+ bl sub_8195F68
+ cmp r0, 0
+ beq _08196078
+ bl task_prev_quest
+ movs r0, 0x1
+ b _0819607A
+ .pool
+_08196078:
+ movs r0, 0
+_0819607A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196034
+
+ thumb_func_start sub_8196080
+sub_8196080: @ 8196080
+ push {lr}
+ ldr r1, =gUnknown_0203CD80
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+ bl task_prev_quest
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196080
+
+ thumb_func_start sub_8196094
+sub_8196094: @ 8196094
+ push {lr}
+ ldr r0, =sub_81960E0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196094
+
+ thumb_func_start task_prev_quest
+task_prev_quest: @ 81960A8
+ push {lr}
+ ldr r0, =gUnknown_0203CD80
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _081960C2
+ bl ScriptContext2_Enable
+ bl player_bitmagic
+ bl sub_808B864
+ bl sub_808BCF4
+_081960C2:
+ ldr r0, =0x00000107
+ bl PlaySE
+ ldr r0, =sub_81960E0
+ movs r1, 0x1
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_prev_quest
+
+ thumb_func_start sub_81960E0
+sub_81960E0: @ 81960E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r1, =gUnknown_0860EF78
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ cmp r0, 0
+ beq _0819611E
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ movs r1, 0
+ strh r1, [r4, 0x2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bls _0819611E
+ adds r0, r5, 0
+ bl DestroyTask
+_0819611E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81960E0
+
+ thumb_func_start sub_819612C
+sub_819612C: @ 819612C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldr r0, =gUnknown_0860EF98
+ bl AddWindow
+ strh r0, [r5, 0x4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ bne _0819615C
+ adds r0, r4, 0
+ b _081961E0
+ .pool
+_0819615C:
+ ldr r1, =gUnknown_0860EA6C
+ movs r2, 0x80
+ lsls r2, 1
+ movs r3, 0x9C
+ lsls r3, 2
+ movs r0, 0
+ bl LoadBgTiles
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ cmp r0, r1
+ bne _08196188
+ ldrb r0, [r5, 0x4]
+ bl RemoveWindow
+ adds r0, r4, 0
+ b _081961E0
+ .pool
+_08196188:
+ ldr r1, =gUnknown_0860EB8C
+ ldr r3, =0x00000279
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ bl decompress_and_copy_tile_data_to_vram
+ cmp r0, 0
+ beq _081961D8
+ ldrb r0, [r5, 0x4]
+ movs r1, 0x88
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0860EA4C
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0860EB6C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =0xffffe000
+ movs r0, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ b _081961E6
+ .pool
+_081961D8:
+ ldrb r0, [r5, 0x4]
+ bl RemoveWindow
+ adds r0, r6, 0
+_081961E0:
+ bl DestroyTask
+ movs r0, 0
+_081961E6:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819612C
+
+ thumb_func_start sub_81961F0
+sub_81961F0: @ 81961F0
+ push {r4,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ cmp r0, 0
+ bne _08196268
+ ldrb r0, [r4, 0x4]
+ bl PutWindowTilemap
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r1, 0x9C
+ lsls r1, 2
+ movs r2, 0xE
+ bl sub_819645C
+ ldr r1, =0x0000f279
+ movs r0, 0x4
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r2, 0x1
+ movs r3, 0xF
+ bl WriteSequenceToBgTilemapBuffer
+ ldr r0, =sub_8196694
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xA]
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+ b _0819626A
+ .pool
+_08196268:
+ movs r0, 0
+_0819626A:
+ add sp, 0x10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81961F0
+
+ thumb_func_start sub_8196274
+sub_8196274: @ 8196274
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _08196298
+ movs r0, 0
+ b _081962A4
+ .pool
+_08196298:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ ldr r1, =gUnknown_0860EF70
+ bl sub_81965D8
+ movs r0, 0x1
+_081962A4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196274
+
+ thumb_func_start sub_81962B0
+sub_81962B0: @ 81962B0
+ push {lr}
+ movs r1, 0xC0
+ lsls r1, 3
+ movs r0, 0
+ movs r2, 0x1
+ bl ChangeBgY
+ cmp r0, 0
+ bge _081962C6
+ movs r0, 0
+ b _081962D2
+_081962C6:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+_081962D2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81962B0
+
+ thumb_func_start sub_81962D8
+sub_81962D8: @ 81962D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_8196648
+ cmp r0, 0
+ bne _08196328
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x88
+ bl FillWindowPixelBuffer
+ ldr r1, =gUnknown_0203CD80
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ bne _0819630C
+ ldrh r0, [r1, 0x4]
+ ldr r1, =gStringVar4
+ bl sub_81967AC
+_0819630C:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ ldr r1, =gStringVar4
+ bl sub_81965D8
+ movs r0, 0x1
+ b _0819632A
+ .pool
+_08196328:
+ movs r0, 0
+_0819632A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81962D8
+
+ thumb_func_start sub_8196330
+sub_8196330: @ 8196330
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ bl sub_8196648
+ cmp r0, 0
+ bne _08196388
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08196388
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08196388
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x88
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4, 0x4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x84
+ lsls r0, 1
+ bl PlaySE
+ movs r0, 0x1
+ b _0819638A
+ .pool
+_08196388:
+ movs r0, 0
+_0819638A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196330
+
+ thumb_func_start sub_8196390
+sub_8196390: @ 8196390
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r1, r0
+ movs r1, 0xC0
+ lsls r1, 3
+ movs r0, 0
+ movs r2, 0x2
+ bl ChangeBgY
+ ldr r1, =0xffffe000
+ cmp r0, r1
+ ble _081963C0
+ movs r0, 0
+ b _081963E8
+ .pool
+_081963C0:
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect_Palette0
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+ ldrb r0, [r4, 0x4]
+ bl RemoveWindow
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0x1
+_081963E8:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196390
+
+ thumb_func_start sub_81963F0
+sub_81963F0: @ 81963F0
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08196454
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08196454
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r0, =gUnknown_0203CD80
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _08196446
+ bl sub_81973A4
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gMapObjects
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl sub_80D338C
+ bl sub_809757C
+ bl ScriptContext2_Disable
+_08196446:
+ movs r0, 0x1
+ b _08196456
+ .pool
+_08196454:
+ movs r0, 0
+_08196456:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81963F0
+
+ thumb_func_start sub_819645C
+sub_819645C: @ 819645C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r7, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetWindowAttribute
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetWindowAttribute
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetWindowAttribute
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetWindowAttribute
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl GetWindowAttribute
+ str r0, [sp, 0x10]
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r1, 0xA
+ bl GetBgAttribute
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0
+ lsls r7, 12
+ movs r1, 0xF0
+ lsls r1, 8
+ adds r0, r1, 0
+ ands r7, r0
+ adds r1, r7, 0
+ orrs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x8]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r4, [sp, 0xC]
+ subs r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ movs r3, 0x1
+ mov r8, r3
+ str r3, [sp]
+ str r3, [sp, 0x4]
+ mov r0, r9
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x1
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x8]
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsls r0, r6, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ str r0, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ mov r0, r9
+ ldr r2, [sp, 0x14]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x2
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [sp, 0x8]
+ adds r0, r3, r6
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ mov r0, r8
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ ldr r2, [sp, 0x1C]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x3
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0xC]
+ lsls r6, r2, 24
+ lsrs r6, 24
+ mov r3, r8
+ str r3, [sp]
+ ldr r0, [sp, 0x10]
+ lsls r4, r0, 24
+ lsrs r4, 24
+ str r4, [sp, 0x4]
+ mov r0, r9
+ mov r2, r10
+ adds r3, r6, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x4
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ mov r2, r8
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r9
+ ldr r2, [sp, 0x1C]
+ adds r3, r6, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x5
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ adds r0, r3, r2
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r3, r8
+ str r3, [sp]
+ str r3, [sp, 0x4]
+ mov r0, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r1, r5, 0x6
+ orrs r1, r7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x18]
+ str r0, [sp]
+ mov r2, r8
+ str r2, [sp, 0x4]
+ mov r0, r9
+ ldr r2, [sp, 0x14]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ adds r5, 0x7
+ orrs r5, r7
+ lsls r5, 16
+ lsrs r5, 16
+ mov r3, r8
+ str r3, [sp]
+ str r3, [sp, 0x4]
+ mov r0, r9
+ adds r1, r5, 0
+ ldr r2, [sp, 0x1C]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect_Palette0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819645C
+
+ thumb_func_start sub_81965D8
+sub_81965D8: @ 81965D8
+ push {lr}
+ sub sp, 0x10
+ str r1, [sp]
+ mov r1, sp
+ movs r3, 0
+ strb r0, [r1, 0x4]
+ mov r0, sp
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ movs r2, 0x20
+ strb r2, [r0, 0x6]
+ strb r1, [r0, 0x7]
+ strb r2, [r0, 0x8]
+ strb r1, [r0, 0x9]
+ strb r3, [r0, 0xA]
+ strb r3, [r0, 0xB]
+ mov r3, sp
+ ldrb r2, [r3, 0xC]
+ subs r1, 0x11
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ mov r2, sp
+ movs r3, 0xF
+ movs r0, 0xA0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ movs r0, 0x8
+ orrs r1, r0
+ strb r1, [r2, 0xD]
+ ands r1, r3
+ movs r0, 0xE0
+ orrs r1, r0
+ strb r1, [r2, 0xD]
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sav2_get_text_speed
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ movs r2, 0
+ bl AddTextPrinter
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81965D8
+
+ thumb_func_start sub_8196648
+sub_8196648: @ 8196648
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0819666C
+ ldr r0, =gTextFlags
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08196678
+ .pool
+_0819666C:
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_08196678:
+ bl RunTextPrinters
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196648
+
+ thumb_func_start sub_8196694
+sub_8196694: @ 8196694
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081966FC
+ movs r1, 0
+ strh r1, [r2]
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _081966C8
+ strh r1, [r2, 0x2]
+_081966C8:
+ movs r0, 0x2
+ ldrsh r1, [r2, r0]
+ lsls r1, 4
+ ldr r0, =0x00000279
+ adds r1, r0
+ strh r1, [r2, 0x4]
+ ldr r2, =0xfffff000
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x4
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r2, 0x1
+ movs r3, 0xF
+ bl WriteSequenceToBgTilemapBuffer
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_081966FC:
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196694
+
+ thumb_func_start sub_8196710
+sub_8196710: @ 8196710
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r2, =0x000009ca
+ adds r1, r2
+ adds r1, r0
+ ldrb r1, [r1]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_8196710
+
+ thumb_func_start sub_819672C
+sub_819672C: @ 819672C
+ push {lr}
+ ldr r1, =gUnknown_085500A4
+ lsls r0, 4
+ adds r0, r1
+ ldrh r2, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_819672C
+
+ thumb_func_start sub_8196748
+sub_8196748: @ 8196748
+ push {r4-r6,lr}
+ movs r5, 0
+ movs r6, 0
+ ldr r4, =gUnknown_085500A4
+_08196750:
+ ldrh r0, [r4]
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _0819675E
+ adds r6, 0x1
+_0819675E:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x3F
+ bls _08196750
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196748
+
+ thumb_func_start sub_8196774
+sub_8196774: @ 8196774
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r4, 0
+ movs r6, 0
+ ldr r5, =gUnknown_085500A4
+_0819677E:
+ ldrh r0, [r5]
+ bl trainer_flag_check
+ lsls r0, 24
+ cmp r0, 0
+ beq _0819679A
+ cmp r6, r7
+ bne _08196798
+ adds r0, r4, 0
+ b _081967A4
+ .pool
+_08196798:
+ adds r6, 0x1
+_0819679A:
+ adds r5, 0x10
+ adds r4, 0x1
+ cmp r4, 0x4D
+ bls _0819677E
+ movs r0, 0x4E
+_081967A4:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196774
+
+ thumb_func_start sub_81967AC
+sub_81967AC: @ 81967AC
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ movs r7, 0
+ bl sub_8196844
+ adds r5, r0, 0
+ ldr r0, =gUnknown_0203CD88
+ strh r7, [r0]
+ adds r0, r5, 0
+ bl sub_8196710
+ cmp r0, 0
+ beq _081967EC
+ adds r0, r5, 0
+ bl sub_819672C
+ ldr r1, =gMapHeader
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x14]
+ cmp r0, r1
+ bne _081967EC
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8196864
+ b _08196830
+ .pool
+_081967EC:
+ adds r0, r5, 0
+ bl sub_8196D74
+ cmp r0, 0
+ beq _0819680A
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8196890
+ adds r4, r0, 0
+ movs r7, 0x1
+ adds r0, r5, 0
+ bl sub_80B1E94
+ b _08196832
+_0819680A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08196828
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_81968BC
+ b _08196830
+_08196828:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8196910
+_08196830:
+ adds r4, r0, 0
+_08196832:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_81969E0
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81967AC
+
+ thumb_func_start sub_8196844
+sub_8196844: @ 8196844
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r1, =gUnknown_0860DEB8
+_0819684C:
+ ldrh r0, [r1]
+ cmp r0, r3
+ beq _0819685C
+ adds r1, 0x14
+ adds r2, 0x1
+ b _0819684C
+ .pool
+_0819685C:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196844
+
+ thumb_func_start sub_8196864
+sub_8196864: @ 8196864
+ ldr r2, =gUnknown_0860DEB8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0xE]
+ movs r2, 0xFF
+ lsrs r0, r1, 8
+ subs r0, 0x1
+ ands r1, r2
+ subs r1, 0x1
+ ldr r2, =gUnknown_0860EA2C
+ lsls r0, 2
+ adds r0, r2
+ lsls r1, 3
+ ldr r0, [r0]
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_8196864
+
+ thumb_func_start sub_8196890
+sub_8196890: @ 8196890
+ ldr r2, =gUnknown_0860DEB8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x10]
+ movs r2, 0xFF
+ lsrs r0, r1, 8
+ subs r0, 0x1
+ ands r1, r2
+ subs r1, 0x1
+ ldr r2, =gUnknown_0860EA2C
+ lsls r0, 2
+ adds r0, r2
+ lsls r1, 3
+ ldr r0, [r0]
+ adds r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_8196890
+
+ thumb_func_start sub_81968BC
+sub_81968BC: @ 81968BC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ ldr r2, =gUnknown_0860DEB8
+ lsrs r0, 15
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r0, r1
+ adds r2, 0x4
+ adds r0, r2
+ ldrh r4, [r0]
+ cmp r4, 0
+ bne _081968EC
+ movs r0, 0
+ bl SpriteCallbackDummy
+_081968EC:
+ movs r1, 0xFF
+ lsrs r0, r4, 8
+ subs r0, 0x1
+ ands r4, r1
+ subs r1, r4, 0x1
+ ldr r2, =gUnknown_0860EA20
+ lsls r0, 2
+ adds r0, r2
+ lsls r1, 3
+ ldr r0, [r0]
+ adds r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81968BC
+
+ thumb_func_start sub_8196910
+sub_8196910: @ 8196910
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081969AC
+ movs r5, 0
+ movs r4, 0
+ lsls r7, r6, 2
+_0819692C:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl sub_8196E04
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _08196940
+ adds r5, 0x1
+_08196940:
+ adds r4, 0x1
+ cmp r4, 0x6
+ ble _0819692C
+ cmp r5, 0
+ beq _081969AC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ adds r5, r0, 0
+ movs r4, 0
+ b _08196962
+_0819695E:
+ subs r5, 0x1
+_08196960:
+ adds r4, 0x1
+_08196962:
+ cmp r4, 0x6
+ bgt _08196980
+ lsls r0, r4, 16
+ lsrs r0, 16
+ mov r1, sp
+ bl sub_8196E04
+ ldr r1, =gUnknown_0203CD88
+ strh r0, [r1, 0x2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _08196960
+ cmp r5, 0
+ bne _0819695E
+_08196980:
+ ldr r0, =gUnknown_0203CD88
+ strh r4, [r0]
+ ldr r1, =gUnknown_0860DEB8
+ adds r0, r7, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ subs r2, r0, 0x1
+ ldr r1, =gUnknown_0860EA34
+ ldr r0, [sp]
+ lsls r0, 2
+ adds r0, r1
+ lsls r1, r2, 3
+ ldr r0, [r0]
+ adds r0, r1
+ b _081969D0
+ .pool
+_081969AC:
+ ldr r1, =gUnknown_0860DEB8
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrh r2, [r0, 0xA]
+ lsrs r1, r2, 8
+ subs r1, 0x1
+ str r1, [sp]
+ movs r0, 0xFF
+ ands r0, r2
+ subs r2, r0, 0x1
+ ldr r0, =gUnknown_0860EA34
+ lsls r1, 2
+ adds r1, r0
+ lsls r2, 3
+ ldr r0, [r1]
+ adds r0, r2
+_081969D0:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196910
+
+ thumb_func_start sub_81969E0
+sub_81969E0: @ 81969E0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r1, r4, 0x4
+ bl sub_81969FC
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81969E0
+
+ thumb_func_start sub_81969FC
+sub_81969FC: @ 81969FC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r4, 0
+ ldr r5, =gUnknown_0860EFA0
+_08196A06:
+ adds r1, r6, r4
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ blt _08196A1A
+ adds r1, r0, 0
+ ldr r2, [r5]
+ adds r0, r7, 0
+ bl sub_8196A2C
+_08196A1A:
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08196A06
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81969FC
+
+ thumb_func_start sub_8196A2C
+sub_8196A2C: @ 8196A2C
+ push {lr}
+ ldr r3, =gUnknown_0860EFAC
+ lsls r1, 2
+ adds r1, r3
+ ldr r3, [r1]
+ adds r1, r2, 0
+ bl _call_via_r3
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196A2C
+
+ thumb_func_start sub_8196A44
+sub_8196A44: @ 8196A44
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ ldr r2, =gUnknown_0860DEB8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r4, [r1]
+ movs r2, 0
+ ldr r3, =gUnknown_0860EFC4
+ adds r6, r3, 0
+_08196A5A:
+ lsls r1, r2, 3
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _08196A78
+ adds r0, r6, 0x4
+ adds r0, r1, r0
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringCopy
+ b _08196A90
+ .pool
+_08196A78:
+ adds r3, 0x8
+ adds r2, 0x1
+ cmp r2, 0x5
+ bls _08196A5A
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ ldr r0, =gTrainers + 0x4 @ name offset
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+_08196A90:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196A44
+
+ thumb_func_start sub_8196A9C
+sub_8196A9C: @ 8196A9C
+ push {r4,lr}
+ adds r4, r1, 0
+ bl sub_819672C
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl GetMapName
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8196A9C
+
+ thumb_func_start sub_8196AB8
+sub_8196AB8: @ 8196AB8
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x13
+ bgt _08196AD4
+ movs r0, 0
+ b _08196B4A
+_08196AD4:
+ adds r0, r1, 0
+ subs r0, 0x14
+ cmp r0, 0x13
+ bhi _08196AE0
+ movs r0, 0x1
+ b _08196B4A
+_08196AE0:
+ adds r0, r1, 0
+ subs r0, 0x28
+ cmp r0, 0x9
+ bhi _08196AEC
+ movs r0, 0x2
+ b _08196B4A
+_08196AEC:
+ adds r0, r1, 0
+ subs r0, 0x32
+ cmp r0, 0x9
+ bhi _08196AF8
+ movs r0, 0x3
+ b _08196B4A
+_08196AF8:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ cmp r0, 0x9
+ bhi _08196B04
+ movs r0, 0x4
+ b _08196B4A
+_08196B04:
+ adds r0, r1, 0
+ subs r0, 0x46
+ cmp r0, 0x9
+ bhi _08196B10
+ movs r0, 0x5
+ b _08196B4A
+_08196B10:
+ adds r0, r1, 0
+ subs r0, 0x50
+ cmp r0, 0x4
+ bhi _08196B1C
+ movs r0, 0x6
+ b _08196B4A
+_08196B1C:
+ adds r0, r1, 0
+ subs r0, 0x55
+ cmp r0, 0x4
+ bhi _08196B28
+ movs r0, 0x7
+ b _08196B4A
+_08196B28:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ cmp r0, 0x3
+ bhi _08196B34
+ movs r0, 0x8
+ b _08196B4A
+_08196B34:
+ adds r0, r1, 0
+ subs r0, 0x5E
+ cmp r0, 0x3
+ bhi _08196B40
+ movs r0, 0x9
+ b _08196B4A
+_08196B40:
+ cmp r1, 0x62
+ beq _08196B48
+ movs r0, 0xB
+ b _08196B4A
+_08196B48:
+ movs r0, 0xA
+_08196B4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196AB8
+
+ thumb_func_start sub_8196B50
+sub_8196B50: @ 8196B50
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3B
+ bgt _08196B6C
+ movs r0, 0
+ b _08196B92
+_08196B6C:
+ adds r0, r1, 0
+ subs r0, 0x3C
+ cmp r0, 0x1D
+ bhi _08196B78
+ movs r0, 0x1
+ b _08196B92
+_08196B78:
+ adds r0, r1, 0
+ subs r0, 0x5A
+ cmp r0, 0x4
+ bhi _08196B84
+ movs r0, 0x2
+ b _08196B92
+_08196B84:
+ adds r0, r1, 0
+ subs r0, 0x5F
+ cmp r0, 0x3
+ bls _08196B90
+ movs r0, 0x4
+ b _08196B92
+_08196B90:
+ movs r0, 0x3
+_08196B92:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196B50
+
+ thumb_func_start sub_8196B98
+sub_8196B98: @ 8196B98
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r2, r0, 0
+ mov r8, r1
+ movs r3, 0
+ ldr r0, =gWildMonHeaders
+ ldrb r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xFF
+ beq _08196C5C
+ ldr r1, =gUnknown_085500A4
+ lsls r0, r2, 4
+ adds r2, r0, r1
+ ldrh r4, [r2, 0xA]
+ adds r1, r7, 0
+_08196BBA:
+ ldrb r0, [r1]
+ cmp r0, r4
+ bne _08196BC8
+ ldrb r0, [r1, 0x1]
+ ldrh r5, [r2, 0xC]
+ cmp r0, r5
+ beq _08196BD2
+_08196BC8:
+ adds r1, 0x14
+ adds r3, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _08196BBA
+_08196BD2:
+ adds r1, r7, 0
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r5, r0, 2
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08196C5C
+ movs r6, 0
+ adds r0, r1, 0x4
+ adds r0, r5, r0
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _08196C02
+ bl sub_8196AB8
+ lsls r0, 24
+ mov r2, sp
+ ldr r1, [r4, 0x4]
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ strh r0, [r2]
+ movs r6, 0x1
+_08196C02:
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r0, r5, r0
+ ldr r4, [r0]
+ cmp r4, 0
+ beq _08196C26
+ bl sub_8196B50
+ lsls r0, 24
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r2, r3, r1
+ ldr r1, [r4, 0x4]
+ lsrs r0, 22
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ strh r0, [r2]
+ adds r6, 0x1
+_08196C26:
+ cmp r6, 0
+ beq _08196C5C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 1
+ add r0, sp
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ mov r0, r8
+ bl StringCopy
+ b _08196C62
+ .pool
+_08196C5C:
+ movs r0, 0xFF
+ mov r5, r8
+ strb r0, [r5]
+_08196C62:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8196B98
+
+ thumb_func_start sub_8196C70
+sub_8196C70: @ 8196C70
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ ldr r2, =gUnknown_0860DEB8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_80B2250
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r5, =gTrainers
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r0, r5, 0
+ adds r0, 0x24
+ adds r0, r4, r0
+ ldr r6, [r0]
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r5
+ adds r1, r4, 0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _08196CD4
+ cmp r1, 0x1
+ ble _08196CC2
+ cmp r1, 0x2
+ beq _08196CD0
+ cmp r1, 0x3
+ beq _08196CD4
+_08196CC2:
+ lsls r0, 3
+ b _08196CD6
+ .pool
+_08196CD0:
+ lsls r0, 3
+ b _08196CD6
+_08196CD4:
+ lsls r0, 4
+_08196CD6:
+ adds r0, r6
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r7, 0
+ bl StringCopy
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196C70
+
+ thumb_func_start sub_8196CF4
+sub_8196CF4: @ 8196CF4
+ push {lr}
+ adds r0, r1, 0
+ ldr r2, =gUnknown_0860EFF4
+ ldr r1, =gUnknown_0203CD88
+ ldrh r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196CF4
+
+ thumb_func_start sub_8196D14
+sub_8196D14: @ 8196D14
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r0, =gUnknown_0203CD88
+ ldrh r1, [r0, 0x2]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _08196D34
+_08196D24:
+ adds r0, r1, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r1, r0, 0
+ adds r4, 0x1
+ cmp r1, 0
+ bne _08196D24
+_08196D34:
+ ldrh r1, [r6, 0x2]
+ lsls r3, r4, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8196D14
+
+ thumb_func_start sub_8196D4C
+sub_8196D4C: @ 8196D4C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, =gUnknown_0860F010
+ b _08196D5C
+ .pool
+_08196D58:
+ adds r5, 0x2
+ adds r4, 0x1
+_08196D5C:
+ cmp r4, 0x7
+ bhi _08196D6C
+ ldrh r0, [r5]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08196D58
+_08196D6C:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196D4C
+
+ thumb_func_start sub_8196D74
+sub_8196D74: @ 8196D74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ bl sub_8196D4C
+ cmp r0, 0x4
+ ble _08196DF4
+ bl RtcGetLocalDayCount
+ adds r4, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xA
+ bl ReadUnalignedWord
+ adds r6, r0, 0
+ ldr r0, =0x0000ffff
+ ands r6, r0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00002e6a
+ adds r0, r1
+ ldrh r5, [r0]
+ bl sub_8196748
+ mov r9, r0
+ movs r0, 0xD
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0xA
+ bl __divsi3
+ mov r8, r0
+ movs r0, 0x9
+ bl GetGameStat
+ eors r4, r5
+ eors r5, r0
+ adds r4, r5
+ eors r4, r6
+ adds r0, r4, 0
+ mov r1, r8
+ bl __modsi3
+ cmp r0, r9
+ bge _08196DF4
+ bl sub_8196774
+ cmp r0, r7
+ bne _08196DF4
+ movs r0, 0x1
+ b _08196DF6
+ .pool
+_08196DF4:
+ movs r0, 0
+_08196DF6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196D74
+
+ thumb_func_start sub_8196E04
+sub_8196E04: @ 8196E04
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0
+ cmp r0, 0x6
+ bls _08196E14
+ b _08196F7E
+_08196E14:
+ lsls r0, 2
+ ldr r1, =_08196E24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08196E24:
+ .4byte _08196E9C
+ .4byte _08196E40
+ .4byte _08196ED0
+ .4byte _08196F38
+ .4byte _08196E74
+ .4byte _08196F04
+ .4byte _08196F60
+_08196E40:
+ movs r3, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000d14
+ adds r0, r1
+_08196E4A:
+ lsls r1, r3, 2
+ adds r3, 0x1
+ adds r1, r0
+ movs r2, 0x1
+_08196E52:
+ ldrh r6, [r1]
+ cmp r4, r6
+ bcs _08196E5A
+ ldrh r4, [r1]
+_08196E5A:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08196E52
+ cmp r3, 0x1
+ ble _08196E4A
+ movs r0, 0x3
+ b _08196F7C
+ .pool
+_08196E74:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e08
+ adds r0, r1
+ movs r3, 0x1
+_08196E7E:
+ ldrh r6, [r0]
+ cmp r4, r6
+ bcs _08196E86
+ ldrh r4, [r0]
+_08196E86:
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08196E7E
+ movs r0, 0x4
+ b _08196F7C
+ .pool
+_08196E9C:
+ movs r3, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xCF
+ lsls r1, 4
+ adds r0, r1
+_08196EA8:
+ lsls r1, r3, 2
+ adds r3, 0x1
+ adds r1, r0
+ movs r2, 0x1
+_08196EB0:
+ ldrh r6, [r1]
+ cmp r4, r6
+ bcs _08196EB8
+ ldrh r4, [r1]
+_08196EB8:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08196EB0
+ movs r2, 0x2
+ cmp r3, 0x3
+ ble _08196EA8
+ str r2, [r5]
+ b _08196F7E
+ .pool
+_08196ED0:
+ movs r3, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xDD
+ lsls r1, 4
+ adds r0, r1
+_08196EDC:
+ lsls r1, r3, 2
+ adds r3, 0x1
+ adds r1, r0
+ movs r2, 0x1
+_08196EE4:
+ ldrh r6, [r1]
+ cmp r4, r6
+ bcs _08196EEC
+ ldrh r4, [r1]
+_08196EEC:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08196EE4
+ movs r2, 0x2
+ cmp r3, 0x1
+ ble _08196EDC
+ str r2, [r5]
+ b _08196F7E
+ .pool
+_08196F04:
+ movs r3, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000dea
+ adds r0, r1
+_08196F0E:
+ lsls r1, r3, 2
+ adds r3, 0x1
+ adds r1, r0
+ movs r2, 0x1
+_08196F16:
+ ldrh r6, [r1]
+ cmp r4, r6
+ bcs _08196F1E
+ ldrh r4, [r1]
+_08196F1E:
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08196F16
+ movs r2, 0x2
+ cmp r3, 0x1
+ ble _08196F0E
+ str r2, [r5]
+ b _08196F7E
+ .pool
+_08196F38:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000dde
+ adds r0, r1
+ movs r3, 0x1
+_08196F42:
+ ldrh r6, [r0]
+ cmp r4, r6
+ bcs _08196F4A
+ ldrh r4, [r0]
+_08196F4A:
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08196F42
+ movs r3, 0x2
+ str r3, [r5]
+ b _08196F7E
+ .pool
+_08196F60:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e1e
+ adds r0, r1
+ movs r3, 0x1
+_08196F6A:
+ ldrh r6, [r0]
+ cmp r4, r6
+ bcs _08196F72
+ ldrh r4, [r0]
+_08196F72:
+ adds r0, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08196F6A
+ movs r0, 0x5
+_08196F7C:
+ str r0, [r5]
+_08196F7E:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8196E04
+
+ thumb_func_start sub_8196F90
+sub_8196F90: @ 8196F90
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x9
+ bhi _08196F9E
+ movs r0, 0
+ b _0819707A
+_08196F9E:
+ cmp r4, 0x13
+ bhi _08196FA6
+ movs r0, 0x1
+ b _0819707A
+_08196FA6:
+ cmp r4, 0x1D
+ bhi _08196FAE
+ movs r0, 0x2
+ b _0819707A
+_08196FAE:
+ cmp r4, 0x27
+ bhi _08196FB6
+ movs r0, 0x3
+ b _0819707A
+_08196FB6:
+ cmp r4, 0x31
+ bhi _08196FBE
+ movs r0, 0x4
+ b _0819707A
+_08196FBE:
+ cmp r4, 0x3B
+ bhi _08196FC6
+ movs r0, 0x5
+ b _0819707A
+_08196FC6:
+ cmp r4, 0x45
+ bhi _08196FCE
+ movs r0, 0x6
+ b _0819707A
+_08196FCE:
+ cmp r4, 0x4F
+ bhi _08196FD6
+ movs r0, 0x7
+ b _0819707A
+_08196FD6:
+ cmp r4, 0x59
+ bhi _08196FDE
+ movs r0, 0x8
+ b _0819707A
+_08196FDE:
+ cmp r4, 0x63
+ bhi _08196FE6
+ movs r0, 0x9
+ b _0819707A
+_08196FE6:
+ cmp r4, 0x6D
+ bhi _08196FEE
+ movs r0, 0xA
+ b _0819707A
+_08196FEE:
+ cmp r4, 0x77
+ bhi _08196FF6
+ movs r0, 0xB
+ b _0819707A
+_08196FF6:
+ cmp r4, 0x81
+ bhi _08196FFE
+ movs r0, 0xC
+ b _0819707A
+_08196FFE:
+ cmp r4, 0x8B
+ bhi _08197006
+ movs r0, 0xD
+ b _0819707A
+_08197006:
+ cmp r4, 0x95
+ bhi _0819700E
+ movs r0, 0xE
+ b _0819707A
+_0819700E:
+ cmp r4, 0x9F
+ bhi _08197016
+ movs r0, 0xF
+ b _0819707A
+_08197016:
+ cmp r4, 0xA9
+ bhi _0819701E
+ movs r0, 0x10
+ b _0819707A
+_0819701E:
+ cmp r4, 0xB3
+ bhi _08197026
+ movs r0, 0x11
+ b _0819707A
+_08197026:
+ cmp r4, 0xBD
+ bhi _0819702E
+ movs r0, 0x12
+ b _0819707A
+_0819702E:
+ cmp r4, 0xC7
+ bls _08197078
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _08197050
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08197050:
+ ldr r0, =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _0819706C
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0819706C:
+ cmp r4, 0xC7
+ bls _08197078
+ movs r0, 0x14
+ b _0819707A
+ .pool
+_08197078:
+ movs r0, 0x13
+_0819707A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8196F90
+
+ thumb_func_start sub_8197080
+sub_8197080: @ 8197080
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ movs r0, 0xFA
+ lsls r0, 2
+ bl Alloc
+ adds r7, r0, 0
+ cmp r7, 0
+ bne _081970A2
+ movs r0, 0xFF
+ mov r1, r8
+ strb r0, [r1]
+ b _0819715C
+_081970A2:
+ movs r0, 0
+ bl sub_80C0844
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ bl sub_80C0844
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =gStringVar1
+ mov r10, r0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gStringVar2
+ mov r9, r1
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r0, r6, 0
+ bl sub_8196F90
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gUnknown_082A5C9C
+ adds r0, r7, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r6, 0xFB
+ strb r6, [r5]
+ adds r5, 0x1
+ ldr r1, =gUnknown_082A5D2C
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ strb r6, [r5]
+ adds r5, 0x1
+ ldr r0, =gUnknown_0860F020
+ lsls r4, 2
+ adds r4, r0
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl StringCopy
+ mov r0, r8
+ adds r1, r7, 0
+ bl StringExpandPlaceholders
+ adds r5, r0, 0
+ bl IsNationalPokedexEnabled
+ cmp r0, 0
+ beq _08197156
+ strb r6, [r5]
+ adds r5, 0x1
+ movs r0, 0
+ bl pokedex_count
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x1
+ bl pokedex_count
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r0, r10
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_082A633D
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+_08197156:
+ adds r0, r7, 0
+ bl Free
+_0819715C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197080
+
+ .align 2, 0 @ Don't pad with nop.