summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-09-06 22:27:17 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-09-06 22:27:17 +0200
commitcb9b14a3e513d0cd0b75f9fd7e912d377924283c (patch)
tree5608b5b79ac2e245c6b711f7272a017f12b499d6
parentd41cc4c8d0c99e6834e5735da57aea61a623774c (diff)
split lilycove_lady
-rw-r--r--asm/lilycove_lady.s1931
-rw-r--r--asm/record_mixing.s2
-rw-r--r--asm/rom_818CFC8.s85601
-rw-r--r--asm/rom_818E9AC.s83686
-rw-r--r--ld_script.txt2
5 files changed, 85621 insertions, 85601 deletions
diff --git a/asm/lilycove_lady.s b/asm/lilycove_lady.s
new file mode 100644
index 000000000..f2d2f24e4
--- /dev/null
+++ b/asm/lilycove_lady.s
@@ -0,0 +1,1931 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start GetLilycoveLadyId
+GetLilycoveLadyId: @ 818D9AC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end GetLilycoveLadyId
+
+ thumb_func_start sub_818D9C0
+sub_818D9C0: @ 818D9C0
+ push {r4,r5,lr}
+ ldr r5, =0x00004010
+ ldr r4, =gUnknown_0860B07E
+ bl GetLilycoveLadyId
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ bl VarSet
+ bl GetLilycoveLadyId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0818DA20
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003b58
+ adds r1, r0
+ ldr r0, =0x00004011
+ ldr r2, =gUnknown_0860B074
+ ldrb r1, [r1, 0xD]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ bl VarSet
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _0818DA24
+ .pool
+_0818DA20:
+ ldr r1, =gScriptResult
+ movs r0, 0
+_0818DA24:
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818D9C0
+
+ thumb_func_start SetLilycoveLady
+SetLilycoveLady: @ 818DA30
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 17
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _0818DA68
+ cmp r0, 0x1
+ bgt _0818DA5C
+ cmp r0, 0
+ beq _0818DA62
+ b _0818DA72
+ .pool
+_0818DA5C:
+ cmp r1, 0x2
+ beq _0818DA6E
+ b _0818DA72
+_0818DA62:
+ bl SetLilycoveQuizLady
+ b _0818DA72
+_0818DA68:
+ bl SetLilycoveFavourLady
+ b _0818DA72
+_0818DA6E:
+ bl SetLilycoveContestLady
+_0818DA72:
+ pop {r0}
+ bx r0
+ thumb_func_end SetLilycoveLady
+
+ thumb_func_start sub_818DA78
+sub_818DA78: @ 818DA78
+ push {lr}
+ bl GetLilycoveLadyId
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0818DA9C
+ cmp r0, 0x1
+ bgt _0818DA90
+ cmp r0, 0
+ beq _0818DA96
+ b _0818DAA6
+_0818DA90:
+ cmp r0, 0x2
+ beq _0818DAA2
+ b _0818DAA6
+_0818DA96:
+ bl sub_818E004
+ b _0818DAA6
+_0818DA9C:
+ bl sub_818DBC4
+ b _0818DAA6
+_0818DAA2:
+ bl sub_818E674
+_0818DAA6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818DA78
+
+@ unused
+ thumb_func_start SetLilycoveLadyRandomly
+SetLilycoveLadyRandomly: @ 818DAAC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _0818DADC
+ cmp r0, 0x1
+ bgt _0818DAD0
+ cmp r0, 0
+ beq _0818DAD6
+ b _0818DAE6
+_0818DAD0:
+ cmp r1, 0x2
+ beq _0818DAE2
+ b _0818DAE6
+_0818DAD6:
+ bl SetLilycoveQuizLady
+ b _0818DAE6
+_0818DADC:
+ bl SetLilycoveFavourLady
+ b _0818DAE6
+_0818DAE2:
+ bl SetLilycoveContestLady
+_0818DAE6:
+ pop {r0}
+ bx r0
+ thumb_func_end SetLilycoveLadyRandomly
+
+ thumb_func_start sub_818DAEC
+sub_818DAEC: @ 818DAEC
+ push {r4,lr}
+ ldr r4, =gScriptResult
+ bl GetLilycoveLadyId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DAEC
+
+ thumb_func_start sub_818DB04
+sub_818DB04: @ 818DB04
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0
+ b _0818DB14
+_0818DB0C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x2
+_0818DB14:
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0818DB0C
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818DB04
+
+ thumb_func_start sub_818DB20
+sub_818DB20: @ 818DB20
+ push {r4-r6,lr}
+ bl Random
+ ldr r5, =gUnknown_0203CD64
+ ldr r4, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ strb r0, [r4, 0xC]
+ ldr r6, =gUnknown_0860B2EC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0xC]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ bl sub_818DB04
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ ldr r2, [r5]
+ ldrb r1, [r2, 0xC]
+ lsls r1, 2
+ adds r1, r6
+ ldr r1, [r1]
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DB20
+
+ thumb_func_start SetLilycoveFavourLady
+SetLilycoveFavourLady: @ 818DB7C
+ push {lr}
+ ldr r2, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r2]
+ movs r3, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r3, [r0, 0x1]
+ ldr r1, [r2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, [r2]
+ strb r3, [r0, 0x2]
+ ldr r0, [r2]
+ strb r3, [r0, 0x3]
+ ldr r1, [r2]
+ strh r3, [r1, 0xE]
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ strb r0, [r1, 0x12]
+ bl sub_818DB20
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetLilycoveFavourLady
+
+ thumb_func_start sub_818DBC4
+sub_818DBC4: @ 818DBC4
+ ldr r3, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r3]
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r3]
+ strb r2, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end sub_818DBC4
+
+ thumb_func_start sub_818DBE8
+sub_818DBE8: @ 818DBE8
+ push {lr}
+ ldr r1, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _0818DC0C
+ movs r0, 0x2
+ b _0818DC16
+ .pool
+_0818DC0C:
+ cmp r0, 0x1
+ beq _0818DC14
+ movs r0, 0
+ b _0818DC16
+_0818DC14:
+ movs r0, 0x1
+_0818DC16:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818DBE8
+
+ thumb_func_start sub_818DC1C
+sub_818DC1C: @ 818DC1C
+ lsls r0, 24
+ ldr r1, =gUnknown_0860B224
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_818DC1C
+
+ thumb_func_start sub_818DC2C
+sub_818DC2C: @ 818DC2C
+ push {r4,lr}
+ ldr r1, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldr r4, =gStringVar1
+ ldrb r0, [r0, 0xC]
+ bl sub_818DC1C
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DC2C
+
+ thumb_func_start sub_818DC60
+sub_818DC60: @ 818DC60
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r1, r2
+ str r0, [r5]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xFF
+ bne _0818DC84
+ movs r0, 0
+ b _0818DC9C
+ .pool
+_0818DC84:
+ ldr r4, =gStringVar3
+ ldr r0, =0x00003b5c
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy7
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x12]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ movs r0, 0x1
+_0818DC9C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818DC60
+
+ thumb_func_start sub_818DCAC
+sub_818DCAC: @ 818DCAC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818DCAC
+
+ thumb_func_start sub_818DCC8
+sub_818DCC8: @ 818DCC8
+ push {lr}
+ ldr r2, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003b58
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gStringVar2
+ ldrh r1, [r1, 0xE]
+ bl sub_818DCAC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DCC8
+
+ thumb_func_start sub_818DCF4
+sub_818DCF4: @ 818DCF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r0, r4, 0
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringCopy7
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818DCF4
+
+ thumb_func_start sub_818DD14
+sub_818DD14: @ 818DD14
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r1, r0, r2
+ str r1, [r5]
+ ldr r1, =0x00003b5c
+ adds r0, r1
+ ldr r4, =gStringVar3
+ adds r1, r4, 0
+ bl sub_818DCF4
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x12]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DD14
+
+ thumb_func_start sub_818DD54
+sub_818DD54: @ 818DD54
+ ldr r1, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r1, [r0, 0x2]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_818DD54
+
+ thumb_func_start sub_818DD78
+sub_818DD78: @ 818DD78
+ push {lr}
+ bl sub_81AAC50
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818DD78
+
+ thumb_func_start sub_818DD84
+sub_818DD84: @ 818DD84
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r4]
+ ldr r1, =gUnknown_0860B2EC
+ mov r8, r1
+ ldrb r0, [r0, 0xC]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ bl sub_818DB04
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, =gStringVar2
+ adds r1, r5, 0
+ bl sub_818DCAC
+ ldr r1, [r4]
+ strh r5, [r1, 0xE]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r1, 0x4
+ bl sub_818DCF4
+ ldr r1, [r4]
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ strb r0, [r1, 0x12]
+ movs r7, 0
+ movs r3, 0
+ cmp r7, r6
+ bcs _0818DE36
+ mov r12, r8
+_0818DDDC:
+ ldr r2, [r4]
+ ldrb r0, [r2, 0xC]
+ lsls r0, 2
+ add r0, r12
+ ldr r1, [r0]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _0818DE28
+ movs r7, 0x1
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x1
+ strb r0, [r2, 0x3]
+ ldr r0, [r4]
+ strb r7, [r0, 0x2]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x10]
+ cmp r0, r5
+ bne _0818DE36
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ b _0818DE36
+ .pool
+_0818DE28:
+ movs r0, 0
+ strb r0, [r2, 0x2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r6
+ bcc _0818DDDC
+_0818DE36:
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818DD84
+
+ thumb_func_start sub_818DE44
+sub_818DE44: @ 818DE44
+ push {lr}
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl sub_818DD84
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818DE44
+
+ thumb_func_start sub_818DE5C
+sub_818DE5C: @ 818DE5C
+ push {lr}
+ ldr r1, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0x3]
+ movs r1, 0
+ cmp r0, 0x4
+ bls _0818DE74
+ movs r1, 0x1
+_0818DE74:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818DE5C
+
+ thumb_func_start sub_818DE88
+sub_818DE88: @ 818DE88
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gStringVar2
+ bl sub_818DCAC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DE88
+
+ thumb_func_start sub_818DEA0
+sub_818DEA0: @ 818DEA0
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CD64
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r5]
+ ldr r1, =gUnknown_0860B304
+ ldrb r0, [r0, 0xC]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r4, [r0]
+ adds r0, r4, 0
+ bl sub_818DE88
+ ldr r1, [r5]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818DEA0
+
+ thumb_func_start sub_818DEDC
+sub_818DEDC: @ 818DEDC
+ push {lr}
+ bl SetLilycoveFavourLady
+ ldr r0, =gUnknown_0203CD64
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DEDC
+
+ thumb_func_start sub_818DEF4
+sub_818DEF4: @ 818DEF4
+ push {lr}
+ bl script_env_2_enable_and_set_ctx_running
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818DEF4
+
+ thumb_func_start sub_818DF00
+sub_818DF00: @ 818DF00
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xF
+ ands r4, r0
+ movs r3, 0
+ ldr r5, =gUnknown_0203CD68
+ ldr r1, =gUnknown_0860B1A4
+ lsls r0, r4, 2
+ adds r6, r0, r1
+ adds r7, r5, 0
+_0818DF1A:
+ ldr r2, [r5]
+ lsls r1, r3, 1
+ adds r2, 0x2
+ adds r2, r1
+ ldr r0, [r6]
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _0818DF1A
+ ldr r2, [r7]
+ ldr r0, =gUnknown_0860B1E4
+ lsls r1, r4, 1
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ strh r0, [r2, 0x14]
+ ldr r0, =gUnknown_0860B204
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2, 0x28]
+ adds r2, 0x2B
+ strb r4, [r2]
+ ldr r1, [r7]
+ movs r0, 0xFF
+ strb r0, [r1, 0x18]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818DF00
+
+ thumb_func_start SetLilycoveQuizLady
+SetLilycoveQuizLady: @ 818DF68
+ push {r4-r6,lr}
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1]
+ movs r3, 0
+ adds r4, r2, 0
+ ldr r6, =gGameLanguage
+ adds r5, r4, 0
+ ldr r0, =0x0000ffff
+ adds r2, r0, 0
+_0818DF8A:
+ ldr r1, [r5]
+ lsls r0, r3, 1
+ adds r1, 0x2
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r2
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _0818DF8A
+ ldr r0, [r4]
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x14]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x16]
+ movs r3, 0
+ adds r5, r4, 0
+ movs r2, 0
+_0818DFB4:
+ ldr r0, [r5]
+ lsls r1, r3, 1
+ adds r0, 0x20
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0818DFB4
+ ldr r0, [r4]
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0, 0x28]
+ adds r0, 0x2A
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r0, 0x2C
+ movs r1, 0x10
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r6]
+ adds r0, 0x2D
+ strb r1, [r0]
+ bl sub_818DF00
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetLilycoveQuizLady
+
+ thumb_func_start sub_818E004
+sub_818E004: @ 818E004
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1]
+ ldr r0, [r2]
+ adds r0, 0x2A
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0x16]
+ bx lr
+ .pool
+ thumb_func_end sub_818E004
+
+ thumb_func_start sub_818E038
+sub_818E038: @ 818E038
+ push {lr}
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _0818E05C
+ movs r0, 0x2
+ b _0818E066
+ .pool
+_0818E05C:
+ cmp r0, 0x1
+ beq _0818E064
+ movs r0, 0
+ b _0818E066
+_0818E064:
+ movs r0, 0x1
+_0818E066:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E038
+
+ thumb_func_start sub_818E06C
+sub_818E06C: @ 818E06C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r4, [r0]
+ ldr r0, =0x00003b58
+ adds r7, r4, r0
+ ldrh r0, [r7, 0x14]
+ bl sub_811F8D8
+ cmp r0, 0
+ bne _0818E0EC
+ ldr r1, =0x00003b83
+ adds r0, r4, r1
+ ldrb r5, [r0]
+ ldr r0, =0x00003b5a
+ adds r0, r4
+ mov r8, r0
+ adds r1, r4
+ mov r10, r1
+ ldr r6, =gUnknown_0860B1E4
+_0818E09A:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0818E0A2
+ movs r5, 0
+_0818E0A2:
+ lsls r4, r5, 1
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ bl sub_811F8D8
+ cmp r0, 0
+ beq _0818E09A
+ movs r3, 0
+ ldr r0, =gUnknown_0860B1E4
+ mov r12, r0
+ lsls r1, r5, 2
+ ldr r0, =gUnknown_0860B204
+ mov r9, r0
+ ldr r0, =gUnknown_0860B1A4
+ adds r6, r1, r0
+ mov r2, r8
+_0818E0C2:
+ lsls r0, r3, 1
+ ldr r1, [r6]
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x8
+ ble _0818E0C2
+ mov r1, r12
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ strh r0, [r7, 0x14]
+ mov r1, r9
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ strh r0, [r7, 0x28]
+ mov r0, r10
+ strb r5, [r0]
+ movs r0, 0xFF
+ strb r0, [r7, 0x18]
+_0818E0EC:
+ bl sub_818E13C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0818E118
+ movs r0, 0x2
+ b _0818E12C
+ .pool
+_0818E118:
+ cmp r0, 0x2
+ beq _0818E126
+ bl sub_818E1F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0818E12A
+_0818E126:
+ movs r0, 0x1
+ b _0818E12C
+_0818E12A:
+ movs r0, 0
+_0818E12C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E06C
+
+ thumb_func_start sub_818E13C
+sub_818E13C: @ 818E13C
+ push {r4-r7,lr}
+ movs r7, 0x1
+ ldr r5, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r1, r2
+ str r0, [r5]
+ ldrb r0, [r0, 0x18]
+ cmp r0, 0xFF
+ bne _0818E174
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085EEB7E
+ bl StringCopy7
+ movs r7, 0
+ b _0818E1DC
+ .pool
+_0818E174:
+ ldr r4, =gStringVar1
+ ldr r0, =0x00003b70
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy7
+ ldr r0, [r5]
+ adds r0, 0x2D
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+ ldr r0, [r5]
+ adds r0, 0x18
+ bl sub_818E258
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ bl sub_818E258
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0818E1DC
+ ldr r0, [r5]
+ movs r2, 0
+ cmp r2, r4
+ bcs _0818E1DC
+ ldr r1, [r6]
+ ldrb r0, [r0, 0x18]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0818E1DA
+_0818E1BA:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r4
+ bcs _0818E1DC
+ ldr r0, =gUnknown_0203CD68
+ ldr r1, [r0]
+ adds r1, 0x18
+ adds r1, r2
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, r2
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _0818E1BA
+_0818E1DA:
+ movs r7, 0x2
+_0818E1DC:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818E13C
+
+ thumb_func_start sub_818E1F4
+sub_818E1F4: @ 818E1F4
+ push {r4-r6,lr}
+ ldr r3, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r1, r2
+ str r0, [r3]
+ movs r5, 0
+ movs r4, 0
+ ldr r0, =0x00003b78
+ adds r1, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrh r1, [r1]
+ adds r6, r3, 0
+ adds r3, r0, 0
+ ldrb r2, [r2, 0xA]
+ cmp r1, r2
+ bne _0818E23A
+_0818E21A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bhi _0818E23C
+ ldr r1, [r6]
+ lsls r0, r4, 1
+ adds r1, 0x20
+ adds r1, r0
+ ldr r0, [r3]
+ adds r0, 0xA
+ adds r0, r4
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _0818E21A
+_0818E23A:
+ movs r5, 0x1
+_0818E23C:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818E1F4
+
+ thumb_func_start sub_818E258
+sub_818E258: @ 818E258
+ push {lr}
+ movs r2, 0
+ adds r1, r0, 0
+ b _0818E268
+_0818E260:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, 0x1
+_0818E268:
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0818E260
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E258
+
+ thumb_func_start sub_818E274
+sub_818E274: @ 818E274
+ push {r4,lr}
+ ldr r4, =gStringVar1
+ ldr r0, =gUnknown_0203CD68
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x28]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E274
+
+ thumb_func_start sub_818E298
+sub_818E298: @ 818E298
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r4]
+ bl sub_818E13C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0818E2C0
+ movs r0, 0
+ b _0818E2CC
+ .pool
+_0818E2C0:
+ ldr r0, [r4]
+ ldr r1, =gGameLanguage
+ ldrb r1, [r1]
+ adds r0, 0x2D
+ strb r1, [r0]
+ movs r0, 0x1
+_0818E2CC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818E298
+
+ thumb_func_start sub_818E2D8
+sub_818E2D8: @ 818E2D8
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00003b58
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00003b82
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_818E2D8
+
+ thumb_func_start sub_818E2FC
+sub_818E2FC: @ 818E2FC
+ push {lr}
+ bl easy_chat_input_maybe
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818E2FC
+
+ thumb_func_start sub_818E308
+sub_818E308: @ 818E308
+ push {r4-r6,lr}
+ ldr r5, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r5]
+ ldr r6, =gStringVar1
+ ldrh r1, [r0, 0x14]
+ adds r0, r6, 0
+ bl CopyEasyChatWord
+ ldr r4, =gStringVar2
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x16]
+ adds r0, r4, 0
+ bl CopyEasyChatWord
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCompare
+ movs r1, 0
+ cmp r0, 0
+ bne _0818E33C
+ movs r1, 0x1
+_0818E33C:
+ adds r0, r1, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818E308
+
+ thumb_func_start sub_818E358
+sub_818E358: @ 818E358
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r0, [r0, 0x28]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_818E358
+
+ thumb_func_start sub_818E37C
+sub_818E37C: @ 818E37C
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end sub_818E37C
+
+ thumb_func_start sub_818E39C
+sub_818E39C: @ 818E39C
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ movs r1, 0x2
+ strb r1, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end sub_818E39C
+
+ thumb_func_start sub_818E3BC
+sub_818E3BC: @ 818E3BC
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldr r1, =0x0000ffff
+ strh r1, [r0, 0x16]
+ bx lr
+ .pool
+ thumb_func_end sub_818E3BC
+
+ thumb_func_start sub_818E3E0
+sub_818E3E0: @ 818E3E0
+ push {lr}
+ bl sub_81AAC70
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818E3E0
+
+ thumb_func_start sub_818E3EC
+sub_818E3EC: @ 818E3EC
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r4]
+ bl sub_818E298
+ lsls r0, 24
+ cmp r0, 0
+ beq _0818E41C
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x2B
+ ldrb r1, [r1]
+ adds r0, 0x2C
+ b _0818E422
+ .pool
+_0818E41C:
+ ldr r0, [r4]
+ adds r0, 0x2C
+ movs r1, 0x10
+_0818E422:
+ strb r1, [r0]
+ bl sub_818DF00
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818E3EC
+
+ thumb_func_start sub_818E430
+sub_818E430: @ 818E430
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ movs r2, 0
+ adds r5, r1, 0
+ adds r4, r5, 0
+ ldr r0, =0x0000ffff
+ adds r3, r0, 0
+_0818E448:
+ ldr r1, [r4]
+ lsls r0, r2, 1
+ adds r1, 0x2
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x8
+ bls _0818E448
+ ldr r1, [r5]
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0x14]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E430
+
+ thumb_func_start sub_818E47C
+sub_818E47C: @ 818E47C
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x11
+ strh r0, [r1]
+ bl easy_chat_input_maybe
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E47C
+
+ thumb_func_start sub_818E490
+sub_818E490: @ 818E490
+ push {lr}
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E490
+
+ thumb_func_start sub_818E4A4
+sub_818E4A4: @ 818E4A4
+ push {r4-r6,lr}
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r2]
+ ldr r1, =gUnknown_0203CE7C
+ ldrh r1, [r1]
+ strh r1, [r0, 0x28]
+ movs r3, 0
+ adds r4, r2, 0
+ ldr r6, =gSaveBlock2Ptr
+ adds r5, r4, 0
+ adds r2, r6, 0
+_0818E4C2:
+ ldr r1, [r5]
+ lsls r0, r3, 1
+ adds r1, 0x20
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, 0xA
+ adds r0, r3
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0818E4C2
+ ldr r0, [r4]
+ adds r0, 0x18
+ ldr r1, [r6]
+ bl StringCopy7
+ ldr r0, [r4]
+ ldr r1, =gGameLanguage
+ ldrb r1, [r1]
+ adds r0, 0x2D
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E4A4
+
+ thumb_func_start sub_818E510
+sub_818E510: @ 818E510
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00003b58
+ adds r1, r0, r3
+ str r1, [r2]
+ ldr r1, =0x00003b82
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_818E510
+
+ thumb_func_start sub_818E538
+sub_818E538: @ 818E538
+ push {lr}
+ ldr r2, =gUnknown_0203CD68
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00003b58
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, =gStringVar3
+ ldrh r1, [r1, 0x14]
+ bl CopyEasyChatWord
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E538
+
+ thumb_func_start sub_818E564
+sub_818E564: @ 818E564
+ push {lr}
+ bl script_env_2_enable_and_set_ctx_running
+ pop {r0}
+ bx r0
+ thumb_func_end sub_818E564
+
+ thumb_func_start sub_818E570
+sub_818E570: @ 818E570
+ push {r4-r7,lr}
+ ldr r2, =gUnknown_0203CD68
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r4, =0x00003b58
+ adds r3, r1, r4
+ str r3, [r2]
+ adds r6, r0, 0
+ adds r6, 0x2C
+ ldrb r4, [r6]
+ adds r7, r2, 0
+ cmp r4, 0xF
+ bhi _0818E5EC
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0818E5EC
+ movs r5, 0
+ ldr r2, =0x00003b83
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0818E5E4
+ adds r4, r7, 0
+_0818E59E:
+ bl Random
+ ldr r2, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r2, 0x2B
+ strb r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bhi _0818E5C6
+ ldr r0, [r4]
+ adds r0, 0x2B
+ ldrb r1, [r6]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _0818E59E
+_0818E5C6:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x2B
+ ldrb r0, [r6]
+ ldr r7, =gUnknown_0203CD68
+ ldrb r4, [r2]
+ cmp r0, r4
+ bne _0818E5E4
+ ldrb r1, [r2]
+ adds r3, r1, 0x1
+ adds r0, r3, 0
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r3, r0
+ strb r0, [r2]
+_0818E5E4:
+ ldr r0, [r7]
+ ldrb r1, [r6]
+ adds r0, 0x2C
+ strb r1, [r0]
+_0818E5EC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E570
+
+ thumb_func_start sub_818E604
+sub_818E604: @ 818E604
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD6C
+ ldr r1, [r4]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, [r4]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ ldr r0, [r4]
+ strb r1, [r0, 0x3]
+ ldr r0, [r4]
+ strb r1, [r0, 0xC]
+ bl Random
+ ldr r4, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ strb r0, [r4, 0xD]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E604
+
+ thumb_func_start SetLilycoveContestLady
+SetLilycoveContestLady: @ 818E638
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r4]
+ movs r2, 0
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r4]
+ strb r2, [r0, 0x1]
+ bl sub_818E604
+ ldr r1, [r4]
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ strb r0, [r1, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetLilycoveContestLady
+
+ thumb_func_start sub_818E674
+sub_818E674: @ 818E674
+ push {lr}
+ ldr r2, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003b58
+ adds r0, r1
+ str r0, [r2]
+ movs r3, 0
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r3, [r0, 0x1]
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x5
+ beq _0818E69A
+ ldrb r0, [r2, 0x3]
+ cmp r0, 0x5
+ bne _0818E69E
+_0818E69A:
+ bl sub_818E604
+_0818E69E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E674
+
+ thumb_func_start sub_818E6B0
+sub_818E6B0: @ 818E6B0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r4, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00003b58
+ adds r1, r0, r3
+ str r1, [r4]
+ ldrb r0, [r1, 0xC]
+ cmp r0, r2
+ bhi _0818E6EA
+ strb r2, [r1, 0xC]
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ ldr r1, [r4]
+ ldr r0, =gSaveBlock2Ptr
+ adds r1, 0x4
+ ldr r0, [r0]
+ ldm r0!, {r2,r3}
+ stm r1!, {r2,r3}
+ ldr r1, [r4]
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ strb r0, [r1, 0xE]
+_0818E6EA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E6B0
+
+ thumb_func_start sub_818E704
+sub_818E704: @ 818E704
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ movs r3, 0
+ movs r4, 0
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r5, =0x00003b58
+ adds r0, r5
+ str r0, [r1]
+ ldrb r0, [r0, 0xD]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bhi _0818E76A
+ lsls r0, 2
+ ldr r1, =_0818E73C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0818E73C:
+ .4byte _0818E750
+ .4byte _0818E754
+ .4byte _0818E758
+ .4byte _0818E75C
+ .4byte _0818E760
+_0818E750:
+ ldrb r0, [r2, 0x1]
+ b _0818E762
+_0818E754:
+ ldrb r0, [r2, 0x2]
+ b _0818E762
+_0818E758:
+ ldrb r0, [r2, 0x3]
+ b _0818E762
+_0818E75C:
+ ldrb r0, [r2, 0x4]
+ b _0818E762
+_0818E760:
+ ldrb r0, [r2, 0x5]
+_0818E762:
+ cmp r0, 0
+ beq _0818E76A
+ adds r3, r0, 0
+ movs r4, 0x1
+_0818E76A:
+ cmp r4, 0x1
+ bne _0818E784
+ adds r0, r3, 0
+ bl sub_818E6B0
+ ldr r0, =gUnknown_0203CD6C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ b _0818E78C
+ .pool
+_0818E784:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+_0818E78C:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E704
+
+ thumb_func_start sub_818E794
+sub_818E794: @ 818E794
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ ldr r4, =gUnknown_0203CD6C
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00003b58
+ adds r1, r2
+ str r1, [r4]
+ ldr r2, =gUnknown_0860B324
+ ldrb r1, [r1, 0xD]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, =gUnknown_0860B310
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xD]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringCopy10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E794
+
+ thumb_func_start sub_818E7E0
+sub_818E7E0: @ 818E7E0
+ push {r4,lr}
+ adds r3, r1, 0
+ ldr r2, =gUnknown_0203CD6C
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r4, =0x00003b58
+ adds r1, r4
+ str r1, [r2]
+ ldrb r2, [r1, 0xD]
+ strb r2, [r0]
+ ldr r2, =gUnknown_0860B310
+ ldrb r0, [r1, 0xD]
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r3, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E7E0
+
+ thumb_func_start sub_818E81C
+sub_818E81C: @ 818E81C
+ push {r4,lr}
+ ldr r3, =gUnknown_0203CD6C
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r4, =0x00003b58
+ adds r2, r1, r4
+ str r2, [r3]
+ ldr r2, =0x00003b5c
+ adds r1, r2
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E81C
+
+ thumb_func_start sub_818E848
+sub_818E848: @ 818E848
+ ldr r2, =gUnknown_0203CD6C
+ ldr r1, =gSaveBlock1Ptr
+ ldr r1, [r1]
+ ldr r3, =0x00003b58
+ adds r1, r3
+ str r1, [r2]
+ ldrb r1, [r1, 0xE]
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_818E848
+
+ thumb_func_start sub_818E868
+sub_818E868: @ 818E868
+ push {lr}
+ lsls r1, 24
+ ldr r2, =gUnknown_0860B338
+ lsrs r1, 22
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E868
+
+ thumb_func_start sub_818E880
+sub_818E880: @ 818E880
+ push {lr}
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x4
+ bls _0818E8A4
+ movs r0, 0x1
+ b _0818E8AE
+ .pool
+_0818E8A4:
+ cmp r0, 0
+ beq _0818E8AC
+ movs r0, 0
+ b _0818E8AE
+_0818E8AC:
+ movs r0, 0x2
+_0818E8AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E880
+
+ thumb_func_start sub_818E8B4
+sub_818E8B4: @ 818E8B4
+ push {lr}
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _0818E8D8
+ movs r0, 0
+ b _0818E8DA
+ .pool
+_0818E8D8:
+ movs r0, 0x1
+_0818E8DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_818E8B4
+
+ thumb_func_start sub_818E8E0
+sub_818E8E0: @ 818E8E0
+ push {r4,lr}
+ movs r3, 0
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r4, =0x00003b58
+ adds r2, r0, r4
+ str r2, [r1]
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x4
+ bhi _0818E8FC
+ ldrb r0, [r2, 0x3]
+ cmp r0, 0x4
+ bls _0818E8FE
+_0818E8FC:
+ movs r3, 0x1
+_0818E8FE:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_818E8E0
+
+ thumb_func_start sub_818E914
+sub_818E914: @ 818E914
+ push {lr}
+ ldr r0, =gStringVar2
+ ldr r1, =gStringVar1
+ bl sub_818E794
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E914
+
+ thumb_func_start sub_818E92C
+sub_818E92C: @ 818E92C
+ push {lr}
+ ldr r1, =c2_exit_to_overworld_2_switch
+ movs r0, 0x3
+ bl sub_81357FC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_818E92C
+
+ thumb_func_start sub_818E940
+sub_818E940: @ 818E940
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ bx lr
+ .pool
+ thumb_func_end sub_818E940
+
+ thumb_func_start sub_818E960
+sub_818E960: @ 818E960
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldr r2, =gSpecialVar_0x8005
+ ldr r1, =gUnknown_0860B34C
+ ldrb r0, [r0, 0xD]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_818E960
+
+ thumb_func_start sub_818E990
+sub_818E990: @ 818E990
+ ldr r1, =gUnknown_0203CD6C
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00003b58
+ adds r0, r2
+ str r0, [r1]
+ ldrb r0, [r0, 0xD]
+ bx lr
+ .pool
+ thumb_func_end sub_818E990
+
+
+.align 2, 0 @ Don't pad with nop.
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 793726c5e..0ff65e485 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -1567,7 +1567,7 @@ sub_80E7A14: @ 80E7A14
ldr r1, [r6]
movs r2, 0x40
bl memcpy
- bl sub_818D9AC
+ bl GetLilycoveLadyId
lsls r0, 24
cmp r0, 0
bne _080E7A60
diff --git a/asm/rom_818CFC8.s b/asm/rom_818CFC8.s
index 23f9dffd3..cd738c640 100644
--- a/asm/rom_818CFC8.s
+++ b/asm/rom_818CFC8.s
@@ -1277,85604 +1277,5 @@ _0818D9A2:
bx r1
.pool
thumb_func_end sub_818D97C
-
- thumb_func_start sub_818D9AC
-sub_818D9AC: @ 818D9AC
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_818D9AC
-
- thumb_func_start sub_818D9C0
-sub_818D9C0: @ 818D9C0
- push {r4,r5,lr}
- ldr r5, =0x00004010
- ldr r4, =gUnknown_0860B07E
- bl sub_818D9AC
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- adds r0, r5, 0
- bl VarSet
- bl sub_818D9AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0818DA20
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =0x00003b58
- adds r1, r0
- ldr r0, =0x00004011
- ldr r2, =gUnknown_0860B074
- ldrb r1, [r1, 0xD]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl VarSet
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _0818DA24
- .pool
-_0818DA20:
- ldr r1, =gScriptResult
- movs r0, 0
-_0818DA24:
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818D9C0
-
- thumb_func_start SetLilycoveLady
-SetLilycoveLady: @ 818DA30
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 17
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0818DA68
- cmp r0, 0x1
- bgt _0818DA5C
- cmp r0, 0
- beq _0818DA62
- b _0818DA72
- .pool
-_0818DA5C:
- cmp r1, 0x2
- beq _0818DA6E
- b _0818DA72
-_0818DA62:
- bl sub_818DF68
- b _0818DA72
-_0818DA68:
- bl sub_818DB7C
- b _0818DA72
-_0818DA6E:
- bl sub_818E638
-_0818DA72:
- pop {r0}
- bx r0
- thumb_func_end SetLilycoveLady
-
- thumb_func_start sub_818DA78
-sub_818DA78: @ 818DA78
- push {lr}
- bl sub_818D9AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0818DA9C
- cmp r0, 0x1
- bgt _0818DA90
- cmp r0, 0
- beq _0818DA96
- b _0818DAA6
-_0818DA90:
- cmp r0, 0x2
- beq _0818DAA2
- b _0818DAA6
-_0818DA96:
- bl sub_818E004
- b _0818DAA6
-_0818DA9C:
- bl sub_818DBC4
- b _0818DAA6
-_0818DAA2:
- bl sub_818E674
-_0818DAA6:
- pop {r0}
- bx r0
- thumb_func_end sub_818DA78
-
- thumb_func_start sub_818DAAC
-sub_818DAAC: @ 818DAAC
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0818DADC
- cmp r0, 0x1
- bgt _0818DAD0
- cmp r0, 0
- beq _0818DAD6
- b _0818DAE6
-_0818DAD0:
- cmp r1, 0x2
- beq _0818DAE2
- b _0818DAE6
-_0818DAD6:
- bl sub_818DF68
- b _0818DAE6
-_0818DADC:
- bl sub_818DB7C
- b _0818DAE6
-_0818DAE2:
- bl sub_818E638
-_0818DAE6:
- pop {r0}
- bx r0
- thumb_func_end sub_818DAAC
-
- thumb_func_start sub_818DAEC
-sub_818DAEC: @ 818DAEC
- push {r4,lr}
- ldr r4, =gScriptResult
- bl sub_818D9AC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DAEC
-
- thumb_func_start sub_818DB04
-sub_818DB04: @ 818DB04
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- b _0818DB14
-_0818DB0C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x2
-_0818DB14:
- ldrh r0, [r1]
- cmp r0, 0
- bne _0818DB0C
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_818DB04
-
- thumb_func_start sub_818DB20
-sub_818DB20: @ 818DB20
- push {r4-r6,lr}
- bl Random
- ldr r5, =gUnknown_0203CD64
- ldr r4, [r5]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- strb r0, [r4, 0xC]
- ldr r6, =gUnknown_0860B2EC
- ldr r0, [r5]
- ldrb r0, [r0, 0xC]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- bl sub_818DB04
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- ldr r2, [r5]
- ldrb r1, [r2, 0xC]
- lsls r1, 2
- adds r1, r6
- ldr r1, [r1]
- lsrs r0, 23
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DB20
-
- thumb_func_start sub_818DB7C
-sub_818DB7C: @ 818DB7C
- push {lr}
- ldr r2, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r2]
- movs r3, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r2]
- strb r3, [r0, 0x1]
- ldr r1, [r2]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- strb r3, [r0, 0x2]
- ldr r0, [r2]
- strb r3, [r0, 0x3]
- ldr r1, [r2]
- strh r3, [r1, 0xE]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- strb r0, [r1, 0x12]
- bl sub_818DB20
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DB7C
-
- thumb_func_start sub_818DBC4
-sub_818DBC4: @ 818DBC4
- ldr r3, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r3]
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r3]
- strb r2, [r0, 0x1]
- bx lr
- .pool
- thumb_func_end sub_818DBC4
-
- thumb_func_start sub_818DBE8
-sub_818DBE8: @ 818DBE8
- push {lr}
- ldr r1, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _0818DC0C
- movs r0, 0x2
- b _0818DC16
- .pool
-_0818DC0C:
- cmp r0, 0x1
- beq _0818DC14
- movs r0, 0
- b _0818DC16
-_0818DC14:
- movs r0, 0x1
-_0818DC16:
- pop {r1}
- bx r1
- thumb_func_end sub_818DBE8
-
- thumb_func_start sub_818DC1C
-sub_818DC1C: @ 818DC1C
- lsls r0, 24
- ldr r1, =gUnknown_0860B224
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_818DC1C
-
- thumb_func_start sub_818DC2C
-sub_818DC2C: @ 818DC2C
- push {r4,lr}
- ldr r1, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldr r4, =gStringVar1
- ldrb r0, [r0, 0xC]
- bl sub_818DC1C
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DC2C
-
- thumb_func_start sub_818DC60
-sub_818DC60: @ 818DC60
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x00003b58
- adds r0, r1, r2
- str r0, [r5]
- ldrb r0, [r0, 0x4]
- cmp r0, 0xFF
- bne _0818DC84
- movs r0, 0
- b _0818DC9C
- .pool
-_0818DC84:
- ldr r4, =gStringVar3
- ldr r0, =0x00003b5c
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy7
- ldr r0, [r5]
- ldrb r1, [r0, 0x12]
- adds r0, r4, 0
- bl ConvertInternationalString
- movs r0, 0x1
-_0818DC9C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818DC60
-
- thumb_func_start sub_818DCAC
-sub_818DCAC: @ 818DCAC
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_818DCAC
-
- thumb_func_start sub_818DCC8
-sub_818DCC8: @ 818DCC8
- push {lr}
- ldr r2, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =0x00003b58
- adds r1, r0
- str r1, [r2]
- ldr r0, =gStringVar2
- ldrh r1, [r1, 0xE]
- bl sub_818DCAC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DCC8
-
- thumb_func_start sub_818DCF4
-sub_818DCF4: @ 818DCF4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r0, r4, 0
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy7
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_818DCF4
-
- thumb_func_start sub_818DD14
-sub_818DD14: @ 818DD14
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r1, r0, r2
- str r1, [r5]
- ldr r1, =0x00003b5c
- adds r0, r1
- ldr r4, =gStringVar3
- adds r1, r4, 0
- bl sub_818DCF4
- ldr r0, [r5]
- ldrb r1, [r0, 0x12]
- adds r0, r4, 0
- bl ConvertInternationalString
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DD14
-
- thumb_func_start sub_818DD54
-sub_818DD54: @ 818DD54
- ldr r1, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r1, [r0, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_818DD54
-
- thumb_func_start sub_818DD78
-sub_818DD78: @ 818DD78
- push {lr}
- bl sub_81AAC50
- pop {r0}
- bx r0
- thumb_func_end sub_818DD78
-
- thumb_func_start sub_818DD84
-sub_818DD84: @ 818DD84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r4]
- ldr r1, =gUnknown_0860B2EC
- mov r8, r1
- ldrb r0, [r0, 0xC]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- bl sub_818DB04
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, =gStringVar2
- adds r1, r5, 0
- bl sub_818DCAC
- ldr r1, [r4]
- strh r5, [r1, 0xE]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r1, 0x4
- bl sub_818DCF4
- ldr r1, [r4]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- strb r0, [r1, 0x12]
- movs r7, 0
- movs r3, 0
- cmp r7, r6
- bcs _0818DE36
- mov r12, r8
-_0818DDDC:
- ldr r2, [r4]
- ldrb r0, [r2, 0xC]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- bne _0818DE28
- movs r7, 0x1
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- strb r0, [r2, 0x3]
- ldr r0, [r4]
- strb r7, [r0, 0x2]
- ldr r1, [r4]
- ldrh r0, [r1, 0x10]
- cmp r0, r5
- bne _0818DE36
- movs r0, 0x5
- strb r0, [r1, 0x3]
- b _0818DE36
- .pool
-_0818DE28:
- movs r0, 0
- strb r0, [r2, 0x2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _0818DDDC
-_0818DE36:
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_818DD84
-
- thumb_func_start sub_818DE44
-sub_818DE44: @ 818DE44
- push {lr}
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl sub_818DD84
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818DE44
-
- thumb_func_start sub_818DE5C
-sub_818DE5C: @ 818DE5C
- push {lr}
- ldr r1, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0x3]
- movs r1, 0
- cmp r0, 0x4
- bls _0818DE74
- movs r1, 0x1
-_0818DE74:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818DE5C
-
- thumb_func_start sub_818DE88
-sub_818DE88: @ 818DE88
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, =gStringVar2
- bl sub_818DCAC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DE88
-
- thumb_func_start sub_818DEA0
-sub_818DEA0: @ 818DEA0
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CD64
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r5]
- ldr r1, =gUnknown_0860B304
- ldrb r0, [r0, 0xC]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- adds r0, r4, 0
- bl sub_818DE88
- ldr r1, [r5]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818DEA0
-
- thumb_func_start sub_818DEDC
-sub_818DEDC: @ 818DEDC
- push {lr}
- bl sub_818DB7C
- ldr r0, =gUnknown_0203CD64
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DEDC
-
- thumb_func_start sub_818DEF4
-sub_818DEF4: @ 818DEF4
- push {lr}
- bl script_env_2_enable_and_set_ctx_running
- pop {r0}
- bx r0
- thumb_func_end sub_818DEF4
-
- thumb_func_start sub_818DF00
-sub_818DF00: @ 818DF00
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xF
- ands r4, r0
- movs r3, 0
- ldr r5, =gUnknown_0203CD68
- ldr r1, =gUnknown_0860B1A4
- lsls r0, r4, 2
- adds r6, r0, r1
- adds r7, r5, 0
-_0818DF1A:
- ldr r2, [r5]
- lsls r1, r3, 1
- adds r2, 0x2
- adds r2, r1
- ldr r0, [r6]
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _0818DF1A
- ldr r2, [r7]
- ldr r0, =gUnknown_0860B1E4
- lsls r1, r4, 1
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2, 0x14]
- ldr r0, =gUnknown_0860B204
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2, 0x28]
- adds r2, 0x2B
- strb r4, [r2]
- ldr r1, [r7]
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DF00
-
- thumb_func_start sub_818DF68
-sub_818DF68: @ 818DF68
- push {r4-r6,lr}
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- movs r3, 0
- adds r4, r2, 0
- ldr r6, =gGameLanguage
- adds r5, r4, 0
- ldr r0, =0x0000ffff
- adds r2, r0, 0
-_0818DF8A:
- ldr r1, [r5]
- lsls r0, r3, 1
- adds r1, 0x2
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bls _0818DF8A
- ldr r0, [r4]
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x14]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x16]
- movs r3, 0
- adds r5, r4, 0
- movs r2, 0
-_0818DFB4:
- ldr r0, [r5]
- lsls r1, r3, 1
- adds r0, 0x20
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0818DFB4
- ldr r0, [r4]
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r0, 0x2A
- strb r2, [r0]
- ldr r0, [r4]
- adds r0, 0x2C
- movs r1, 0x10
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r6]
- adds r0, 0x2D
- strb r1, [r0]
- bl sub_818DF00
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818DF68
-
- thumb_func_start sub_818E004
-sub_818E004: @ 818E004
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- adds r0, 0x2A
- strb r1, [r0]
- ldr r1, [r2]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x16]
- bx lr
- .pool
- thumb_func_end sub_818E004
-
- thumb_func_start sub_818E038
-sub_818E038: @ 818E038
- push {lr}
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _0818E05C
- movs r0, 0x2
- b _0818E066
- .pool
-_0818E05C:
- cmp r0, 0x1
- beq _0818E064
- movs r0, 0
- b _0818E066
-_0818E064:
- movs r0, 0x1
-_0818E066:
- pop {r1}
- bx r1
- thumb_func_end sub_818E038
-
- thumb_func_start sub_818E06C
-sub_818E06C: @ 818E06C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock1Ptr
- ldr r4, [r0]
- ldr r0, =0x00003b58
- adds r7, r4, r0
- ldrh r0, [r7, 0x14]
- bl sub_811F8D8
- cmp r0, 0
- bne _0818E0EC
- ldr r1, =0x00003b83
- adds r0, r4, r1
- ldrb r5, [r0]
- ldr r0, =0x00003b5a
- adds r0, r4
- mov r8, r0
- adds r1, r4
- mov r10, r1
- ldr r6, =gUnknown_0860B1E4
-_0818E09A:
- adds r5, 0x1
- cmp r5, 0xF
- ble _0818E0A2
- movs r5, 0
-_0818E0A2:
- lsls r4, r5, 1
- adds r0, r4, r6
- ldrh r0, [r0]
- bl sub_811F8D8
- cmp r0, 0
- beq _0818E09A
- movs r3, 0
- ldr r0, =gUnknown_0860B1E4
- mov r12, r0
- lsls r1, r5, 2
- ldr r0, =gUnknown_0860B204
- mov r9, r0
- ldr r0, =gUnknown_0860B1A4
- adds r6, r1, r0
- mov r2, r8
-_0818E0C2:
- lsls r0, r3, 1
- ldr r1, [r6]
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x8
- ble _0818E0C2
- mov r1, r12
- adds r0, r4, r1
- ldrh r0, [r0]
- strh r0, [r7, 0x14]
- mov r1, r9
- adds r0, r4, r1
- ldrh r0, [r0]
- strh r0, [r7, 0x28]
- mov r0, r10
- strb r5, [r0]
- movs r0, 0xFF
- strb r0, [r7, 0x18]
-_0818E0EC:
- bl sub_818E13C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0818E118
- movs r0, 0x2
- b _0818E12C
- .pool
-_0818E118:
- cmp r0, 0x2
- beq _0818E126
- bl sub_818E1F4
- lsls r0, 24
- cmp r0, 0
- beq _0818E12A
-_0818E126:
- movs r0, 0x1
- b _0818E12C
-_0818E12A:
- movs r0, 0
-_0818E12C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_818E06C
-
- thumb_func_start sub_818E13C
-sub_818E13C: @ 818E13C
- push {r4-r7,lr}
- movs r7, 0x1
- ldr r5, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x00003b58
- adds r0, r1, r2
- str r0, [r5]
- ldrb r0, [r0, 0x18]
- cmp r0, 0xFF
- bne _0818E174
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085EEB7E
- bl StringCopy7
- movs r7, 0
- b _0818E1DC
- .pool
-_0818E174:
- ldr r4, =gStringVar1
- ldr r0, =0x00003b70
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy7
- ldr r0, [r5]
- adds r0, 0x2D
- ldrb r1, [r0]
- adds r0, r4, 0
- bl ConvertInternationalString
- ldr r0, [r5]
- adds r0, 0x18
- bl sub_818E258
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- bl sub_818E258
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0818E1DC
- ldr r0, [r5]
- movs r2, 0
- cmp r2, r4
- bcs _0818E1DC
- ldr r1, [r6]
- ldrb r0, [r0, 0x18]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0818E1DA
-_0818E1BA:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcs _0818E1DC
- ldr r0, =gUnknown_0203CD68
- ldr r1, [r0]
- adds r1, 0x18
- adds r1, r2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, r2
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- beq _0818E1BA
-_0818E1DA:
- movs r7, 0x2
-_0818E1DC:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818E13C
-
- thumb_func_start sub_818E1F4
-sub_818E1F4: @ 818E1F4
- push {r4-r6,lr}
- ldr r3, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x00003b58
- adds r0, r1, r2
- str r0, [r3]
- movs r5, 0
- movs r4, 0
- ldr r0, =0x00003b78
- adds r1, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrh r1, [r1]
- adds r6, r3, 0
- adds r3, r0, 0
- ldrb r2, [r2, 0xA]
- cmp r1, r2
- bne _0818E23A
-_0818E21A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bhi _0818E23C
- ldr r1, [r6]
- lsls r0, r4, 1
- adds r1, 0x20
- adds r1, r0
- ldr r0, [r3]
- adds r0, 0xA
- adds r0, r4
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- beq _0818E21A
-_0818E23A:
- movs r5, 0x1
-_0818E23C:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818E1F4
-
- thumb_func_start sub_818E258
-sub_818E258: @ 818E258
- push {lr}
- movs r2, 0
- adds r1, r0, 0
- b _0818E268
-_0818E260:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
-_0818E268:
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0818E260
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_818E258
-
- thumb_func_start sub_818E274
-sub_818E274: @ 818E274
- push {r4,lr}
- ldr r4, =gStringVar1
- ldr r0, =gUnknown_0203CD68
- ldr r0, [r0]
- ldrh r0, [r0, 0x28]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E274
-
- thumb_func_start sub_818E298
-sub_818E298: @ 818E298
- push {r4,lr}
- ldr r4, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r4]
- bl sub_818E13C
- lsls r0, 24
- cmp r0, 0
- beq _0818E2C0
- movs r0, 0
- b _0818E2CC
- .pool
-_0818E2C0:
- ldr r0, [r4]
- ldr r1, =gGameLanguage
- ldrb r1, [r1]
- adds r0, 0x2D
- strb r1, [r0]
- movs r0, 0x1
-_0818E2CC:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818E298
-
- thumb_func_start sub_818E2D8
-sub_818E2D8: @ 818E2D8
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x00003b58
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00003b82
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_818E2D8
-
- thumb_func_start sub_818E2FC
-sub_818E2FC: @ 818E2FC
- push {lr}
- bl easy_chat_input_maybe
- pop {r0}
- bx r0
- thumb_func_end sub_818E2FC
-
- thumb_func_start sub_818E308
-sub_818E308: @ 818E308
- push {r4-r6,lr}
- ldr r5, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r5]
- ldr r6, =gStringVar1
- ldrh r1, [r0, 0x14]
- adds r0, r6, 0
- bl CopyEasyChatWord
- ldr r4, =gStringVar2
- ldr r0, [r5]
- ldrh r1, [r0, 0x16]
- adds r0, r4, 0
- bl CopyEasyChatWord
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCompare
- movs r1, 0
- cmp r0, 0
- bne _0818E33C
- movs r1, 0x1
-_0818E33C:
- adds r0, r1, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818E308
-
- thumb_func_start sub_818E358
-sub_818E358: @ 818E358
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldr r1, =gSpecialVar_0x8005
- ldrh r0, [r0, 0x28]
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_818E358
-
- thumb_func_start sub_818E37C
-sub_818E37C: @ 818E37C
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- bx lr
- .pool
- thumb_func_end sub_818E37C
-
- thumb_func_start sub_818E39C
-sub_818E39C: @ 818E39C
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- movs r1, 0x2
- strb r1, [r0, 0x1]
- bx lr
- .pool
- thumb_func_end sub_818E39C
-
- thumb_func_start sub_818E3BC
-sub_818E3BC: @ 818E3BC
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x16]
- bx lr
- .pool
- thumb_func_end sub_818E3BC
-
- thumb_func_start sub_818E3E0
-sub_818E3E0: @ 818E3E0
- push {lr}
- bl sub_81AAC70
- pop {r0}
- bx r0
- thumb_func_end sub_818E3E0
-
- thumb_func_start sub_818E3EC
-sub_818E3EC: @ 818E3EC
- push {r4,lr}
- ldr r4, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r4]
- bl sub_818E298
- lsls r0, 24
- cmp r0, 0
- beq _0818E41C
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x2B
- ldrb r1, [r1]
- adds r0, 0x2C
- b _0818E422
- .pool
-_0818E41C:
- ldr r0, [r4]
- adds r0, 0x2C
- movs r1, 0x10
-_0818E422:
- strb r1, [r0]
- bl sub_818DF00
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_818E3EC
-
- thumb_func_start sub_818E430
-sub_818E430: @ 818E430
- push {r4,r5,lr}
- ldr r1, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- movs r2, 0
- adds r5, r1, 0
- adds r4, r5, 0
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_0818E448:
- ldr r1, [r4]
- lsls r0, r2, 1
- adds r1, 0x2
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bls _0818E448
- ldr r1, [r5]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E430
-
- thumb_func_start sub_818E47C
-sub_818E47C: @ 818E47C
- push {lr}
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x11
- strh r0, [r1]
- bl easy_chat_input_maybe
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E47C
-
- thumb_func_start sub_818E490
-sub_818E490: @ 818E490
- push {lr}
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E490
-
- thumb_func_start sub_818E4A4
-sub_818E4A4: @ 818E4A4
- push {r4-r6,lr}
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r2]
- ldr r1, =gUnknown_0203CE7C
- ldrh r1, [r1]
- strh r1, [r0, 0x28]
- movs r3, 0
- adds r4, r2, 0
- ldr r6, =gSaveBlock2Ptr
- adds r5, r4, 0
- adds r2, r6, 0
-_0818E4C2:
- ldr r1, [r5]
- lsls r0, r3, 1
- adds r1, 0x20
- adds r1, r0
- ldr r0, [r2]
- adds r0, 0xA
- adds r0, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0818E4C2
- ldr r0, [r4]
- adds r0, 0x18
- ldr r1, [r6]
- bl StringCopy7
- ldr r0, [r4]
- ldr r1, =gGameLanguage
- ldrb r1, [r1]
- adds r0, 0x2D
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E4A4
-
- thumb_func_start sub_818E510
-sub_818E510: @ 818E510
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x00003b58
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00003b82
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_818E510
-
- thumb_func_start sub_818E538
-sub_818E538: @ 818E538
- push {lr}
- ldr r2, =gUnknown_0203CD68
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =0x00003b58
- adds r1, r0
- str r1, [r2]
- ldr r0, =gStringVar3
- ldrh r1, [r1, 0x14]
- bl CopyEasyChatWord
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E538
-
- thumb_func_start sub_818E564
-sub_818E564: @ 818E564
- push {lr}
- bl script_env_2_enable_and_set_ctx_running
- pop {r0}
- bx r0
- thumb_func_end sub_818E564
-
- thumb_func_start sub_818E570
-sub_818E570: @ 818E570
- push {r4-r7,lr}
- ldr r2, =gUnknown_0203CD68
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r4, =0x00003b58
- adds r3, r1, r4
- str r3, [r2]
- adds r6, r0, 0
- adds r6, 0x2C
- ldrb r4, [r6]
- adds r7, r2, 0
- cmp r4, 0xF
- bhi _0818E5EC
- ldrb r0, [r3]
- cmp r0, 0
- bne _0818E5EC
- movs r5, 0
- ldr r2, =0x00003b83
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r4, r0
- bne _0818E5E4
- adds r4, r7, 0
-_0818E59E:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r2, 0x2B
- strb r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bhi _0818E5C6
- ldr r0, [r4]
- adds r0, 0x2B
- ldrb r1, [r6]
- ldrb r0, [r0]
- cmp r1, r0
- beq _0818E59E
-_0818E5C6:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x2B
- ldrb r0, [r6]
- ldr r7, =gUnknown_0203CD68
- ldrb r4, [r2]
- cmp r0, r4
- bne _0818E5E4
- ldrb r1, [r2]
- adds r3, r1, 0x1
- adds r0, r3, 0
- asrs r0, 4
- lsls r0, 4
- subs r0, r3, r0
- strb r0, [r2]
-_0818E5E4:
- ldr r0, [r7]
- ldrb r1, [r6]
- adds r0, 0x2C
- strb r1, [r0]
-_0818E5EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E570
-
- thumb_func_start sub_818E604
-sub_818E604: @ 818E604
- push {r4,lr}
- ldr r4, =gUnknown_0203CD6C
- ldr r1, [r4]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, [r4]
- movs r1, 0
- strb r1, [r0, 0x2]
- ldr r0, [r4]
- strb r1, [r0, 0x3]
- ldr r0, [r4]
- strb r1, [r0, 0xC]
- bl Random
- ldr r4, [r4]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- strb r0, [r4, 0xD]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E604
-
- thumb_func_start sub_818E638
-sub_818E638: @ 818E638
- push {r4,lr}
- ldr r4, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r4]
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- strb r2, [r0, 0x1]
- bl sub_818E604
- ldr r1, [r4]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- strb r0, [r1, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E638
-
- thumb_func_start sub_818E674
-sub_818E674: @ 818E674
- push {lr}
- ldr r2, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003b58
- adds r0, r1
- str r0, [r2]
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r2]
- strb r3, [r0, 0x1]
- ldr r2, [r2]
- ldrb r0, [r2, 0x2]
- cmp r0, 0x5
- beq _0818E69A
- ldrb r0, [r2, 0x3]
- cmp r0, 0x5
- bne _0818E69E
-_0818E69A:
- bl sub_818E604
-_0818E69E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E674
-
- thumb_func_start sub_818E6B0
-sub_818E6B0: @ 818E6B0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x00003b58
- adds r1, r0, r3
- str r1, [r4]
- ldrb r0, [r1, 0xC]
- cmp r0, r2
- bhi _0818E6EA
- strb r2, [r1, 0xC]
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- ldr r1, [r4]
- ldr r0, =gSaveBlock2Ptr
- adds r1, 0x4
- ldr r0, [r0]
- ldm r0!, {r2,r3}
- stm r1!, {r2,r3}
- ldr r1, [r4]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- strb r0, [r1, 0xE]
-_0818E6EA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E6B0
-
- thumb_func_start sub_818E704
-sub_818E704: @ 818E704
- push {r4,r5,lr}
- adds r2, r0, 0
- movs r3, 0
- movs r4, 0
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r5, =0x00003b58
- adds r0, r5
- str r0, [r1]
- ldrb r0, [r0, 0xD]
- adds r5, r1, 0
- cmp r0, 0x4
- bhi _0818E76A
- lsls r0, 2
- ldr r1, =_0818E73C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0818E73C:
- .4byte _0818E750
- .4byte _0818E754
- .4byte _0818E758
- .4byte _0818E75C
- .4byte _0818E760
-_0818E750:
- ldrb r0, [r2, 0x1]
- b _0818E762
-_0818E754:
- ldrb r0, [r2, 0x2]
- b _0818E762
-_0818E758:
- ldrb r0, [r2, 0x3]
- b _0818E762
-_0818E75C:
- ldrb r0, [r2, 0x4]
- b _0818E762
-_0818E760:
- ldrb r0, [r2, 0x5]
-_0818E762:
- cmp r0, 0
- beq _0818E76A
- adds r3, r0, 0
- movs r4, 0x1
-_0818E76A:
- cmp r4, 0x1
- bne _0818E784
- adds r0, r3, 0
- bl sub_818E6B0
- ldr r0, =gUnknown_0203CD6C
- ldr r1, [r0]
- ldrb r0, [r1, 0x2]
- adds r0, 0x1
- strb r0, [r1, 0x2]
- b _0818E78C
- .pool
-_0818E784:
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- adds r0, 0x1
- strb r0, [r1, 0x3]
-_0818E78C:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_818E704
-
- thumb_func_start sub_818E794
-sub_818E794: @ 818E794
- push {r4,r5,lr}
- adds r5, r1, 0
- ldr r4, =gUnknown_0203CD6C
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, =0x00003b58
- adds r1, r2
- str r1, [r4]
- ldr r2, =gUnknown_0860B324
- ldrb r1, [r1, 0xD]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r1, =gUnknown_0860B310
- ldr r0, [r4]
- ldrb r0, [r0, 0xD]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringCopy10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E794
-
- thumb_func_start sub_818E7E0
-sub_818E7E0: @ 818E7E0
- push {r4,lr}
- adds r3, r1, 0
- ldr r2, =gUnknown_0203CD6C
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r4, =0x00003b58
- adds r1, r4
- str r1, [r2]
- ldrb r2, [r1, 0xD]
- strb r2, [r0]
- ldr r2, =gUnknown_0860B310
- ldrb r0, [r1, 0xD]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r0]
- adds r0, r3, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E7E0
-
- thumb_func_start sub_818E81C
-sub_818E81C: @ 818E81C
- push {r4,lr}
- ldr r3, =gUnknown_0203CD6C
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r4, =0x00003b58
- adds r2, r1, r4
- str r2, [r3]
- ldr r2, =0x00003b5c
- adds r1, r2
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E81C
-
- thumb_func_start sub_818E848
-sub_818E848: @ 818E848
- ldr r2, =gUnknown_0203CD6C
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r3, =0x00003b58
- adds r1, r3
- str r1, [r2]
- ldrb r1, [r1, 0xE]
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_818E848
-
- thumb_func_start sub_818E868
-sub_818E868: @ 818E868
- push {lr}
- lsls r1, 24
- ldr r2, =gUnknown_0860B338
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E868
-
- thumb_func_start sub_818E880
-sub_818E880: @ 818E880
- push {lr}
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x4
- bls _0818E8A4
- movs r0, 0x1
- b _0818E8AE
- .pool
-_0818E8A4:
- cmp r0, 0
- beq _0818E8AC
- movs r0, 0
- b _0818E8AE
-_0818E8AC:
- movs r0, 0x2
-_0818E8AE:
- pop {r1}
- bx r1
- thumb_func_end sub_818E880
-
- thumb_func_start sub_818E8B4
-sub_818E8B4: @ 818E8B4
- push {lr}
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- beq _0818E8D8
- movs r0, 0
- b _0818E8DA
- .pool
-_0818E8D8:
- movs r0, 0x1
-_0818E8DA:
- pop {r1}
- bx r1
- thumb_func_end sub_818E8B4
-
- thumb_func_start sub_818E8E0
-sub_818E8E0: @ 818E8E0
- push {r4,lr}
- movs r3, 0
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r4, =0x00003b58
- adds r2, r0, r4
- str r2, [r1]
- ldrb r0, [r2, 0x2]
- cmp r0, 0x4
- bhi _0818E8FC
- ldrb r0, [r2, 0x3]
- cmp r0, 0x4
- bls _0818E8FE
-_0818E8FC:
- movs r3, 0x1
-_0818E8FE:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_818E8E0
-
- thumb_func_start sub_818E914
-sub_818E914: @ 818E914
- push {lr}
- ldr r0, =gStringVar2
- ldr r1, =gStringVar1
- bl sub_818E794
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E914
-
- thumb_func_start sub_818E92C
-sub_818E92C: @ 818E92C
- push {lr}
- ldr r1, =c2_exit_to_overworld_2_switch
- movs r0, 0x3
- bl sub_81357FC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_818E92C
-
- thumb_func_start sub_818E940
-sub_818E940: @ 818E940
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- bx lr
- .pool
- thumb_func_end sub_818E940
-
- thumb_func_start sub_818E960
-sub_818E960: @ 818E960
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldr r2, =gSpecialVar_0x8005
- ldr r1, =gUnknown_0860B34C
- ldrb r0, [r0, 0xD]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_818E960
-
- thumb_func_start sub_818E990
-sub_818E990: @ 818E990
- ldr r1, =gUnknown_0203CD6C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00003b58
- adds r0, r2
- str r0, [r1]
- ldrb r0, [r0, 0xD]
- bx lr
- .pool
- thumb_func_end sub_818E990
-
- 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, =gTrainerClassNameIndices
- 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 sub_8162BD8
-_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, =gUnknown_02022E2C
- 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, =gUnknown_02022E2C
- movs r2, 0x3D
- bl GetStringWidthDifference
- b _0819476A
- .pool
-_08194768:
- movs r0, 0x3
-_0819476A:
- strb r0, [r4, 0x8]
- ldr r0, =gUnknown_02022E2C
- 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, =gUnknown_02022E2C
- 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, =gUnknown_02037318
- 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, =gUnknown_02037318
- 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, =gUnknown_02037318
- 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 script_env_2_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, =gUnknown_02037350
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80D338C
- bl sub_809757C
- bl script_env_2_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, =gUnknown_02037318
- 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 pokedex_flag_operation
- 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 pokedex_flag_operation
- 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
-
- thumb_func_start sub_8197184
-sub_8197184: @ 8197184
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0860EA6C
- movs r2, 0x80
- lsls r2, 1
- lsls r4, 16
- lsrs r4, 16
- adds r3, r4, 0
- bl LoadBgTiles
- ldr r0, =gUnknown_0860EA4C
- lsls r5, 20
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197184
-
- thumb_func_start sub_81971C4
-sub_81971C4: @ 81971C4
- push {lr}
- bl sub_819645C
- pop {r0}
- bx r0
- thumb_func_end sub_81971C4
-
- thumb_func_start sub_81971D0
-sub_81971D0: @ 81971D0
- push {lr}
- ldr r0, =gUnknown_0860F098
- bl InitWindows
- ldr r0, =gUnknown_0203CD8C
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, =gUnknown_0203CD8D
- strb r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81971D0
-
- thumb_func_start sub_81971F4
-sub_81971F4: @ 81971F4
- push {lr}
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- thumb_func_end sub_81971F4
-
- thumb_func_start sub_8197200
-sub_8197200: @ 8197200
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- bl DeactivateAllTextPrinters
- bl sub_81973A4
- pop {r0}
- bx r0
- thumb_func_end sub_8197200
-
- thumb_func_start sub_8197224
-sub_8197224: @ 8197224
- push {lr}
- bl RunTextPrinters
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8197224
-
- thumb_func_start AddTextPrinterParametrized
-@ u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor)
-AddTextPrinterParametrized: @ 8197238
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r7, [sp, 0x28]
- ldr r4, [sp, 0x2C]
- mov r8, r4
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- str r2, [sp]
- mov r2, sp
- movs r4, 0
- strb r0, [r2, 0x4]
- mov r0, sp
- strb r1, [r0, 0x5]
- strb r4, [r0, 0x6]
- movs r1, 0x1
- strb r1, [r0, 0x7]
- strb r4, [r0, 0x8]
- strb r1, [r0, 0x9]
- strb r4, [r0, 0xA]
- strb r4, [r0, 0xB]
- mov r4, sp
- ldrb r2, [r4, 0xC]
- subs r1, 0x11
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r4, 0xC]
- mov r0, sp
- mov r2, r8
- lsls r2, 4
- movs r4, 0xF
- strb r2, [r0, 0xC]
- mov r2, sp
- ands r5, r4
- ldrb r0, [r2, 0xD]
- ands r1, r0
- orrs r1, r5
- strb r1, [r2, 0xD]
- mov r0, sp
- lsrs r6, 20
- ands r1, r4
- orrs r1, r6
- strb r1, [r0, 0xD]
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, sp
- adds r1, r3, 0
- adds r2, r7, 0
- bl AddTextPrinter
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddTextPrinterParametrized
-
- thumb_func_start AddTextPrinterForMessage
-@ void AddTextPrinterForMessage(u8 allowSkippingDelayWithButtonPress)
-AddTextPrinterForMessage: @ 81972C4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r3, =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl sav2_get_text_speed
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, =gStringVar4
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddTextPrinterForMessage
-
- thumb_func_start AddTextPrinterForMessage_2
-@ void AddTextPrinterForMessage_2(u8 allowSkippingDelayWithButtonPress)
-AddTextPrinterForMessage_2: @ 8197310
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl sav2_get_text_speed
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddTextPrinterForMessage_2
-
- thumb_func_start AddTextPrinterWithCustomSpeedForMessage
-@ void AddTextPrinterWithCustomSpeedForMessage(u8 allowSkippingDelayWithButtonPress, u8 speed)
-AddTextPrinterWithCustomSpeedForMessage: @ 819735C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, =gTextFlags
- movs r5, 0x1
- ands r0, r5
- ldrb r2, [r4]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- ldr r2, =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddTextPrinterWithCustomSpeedForMessage
-
- thumb_func_start sub_81973A4
-sub_81973A4: @ 81973A4
- push {lr}
- movs r1, 0x80
- lsls r1, 2
- movs r0, 0
- movs r2, 0xF0
- bl copy_textbox_border_tile_patterns_to_vram
- movs r1, 0x85
- lsls r1, 2
- movs r0, 0
- movs r2, 0xE0
- bl sub_809882C
- pop {r0}
- bx r0
- thumb_func_end sub_81973A4
-
- thumb_func_start sub_81973C4
-sub_81973C4: @ 81973C4
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_81975F4
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _081973F2
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_081973F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81973C4
-
- thumb_func_start sub_81973FC
-sub_81973FC: @ 81973FC
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_81974A4
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _0819742A
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0819742A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81973FC
-
- thumb_func_start sub_8197434
-sub_8197434: @ 8197434
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_8197804
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _08197462
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197462:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197434
-
- thumb_func_start sub_819746C
-sub_819746C: @ 819746C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_81977BC
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _0819749A
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0819749A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819746C
-
- thumb_func_start sub_81974A4
-sub_81974A4: @ 81974A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r4, r2, 0
- ldr r2, [sp, 0x3C]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsls r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- movs r3, 0x85
- lsls r3, 2
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- movs r2, 0xFF
- lsls r2, 24
- adds r2, r1
- mov r8, r2
- lsrs r2, 24
- lsrs r0, r4, 24
- mov r9, r0
- movs r0, 0xFF
- lsls r0, 24
- adds r4, r0
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r3, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000215
- ldr r2, [sp, 0x10]
- str r2, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000216
- ldr r3, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r3, r2
- lsls r0, 24
- mov r10, r0
- lsrs r2, r0, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- mov r5, r9
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r9, r0
- bge _08197578
- mov r3, r8
- str r3, [sp, 0x18]
- movs r6, 0x1
- movs r0, 0xE
- mov r8, r0
-_0819753E:
- lsls r4, r5, 24
- lsrs r4, 24
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r2, r8
- str r2, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, =0x00000217
- ldr r3, [sp, 0x18]
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- str r6, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- adds r0, r7, 0
- ldr r1, =0x00000219
- mov r3, r10
- lsrs r2, r3, 24
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- adds r5, 0x1
- ldr r0, [sp, 0x14]
- add r0, r9
- cmp r5, r0
- blt _0819753E
-_08197578:
- ldr r1, =0x0000021a
- ldr r2, [sp, 0xC]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r6, 0xE
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x0000021b
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x87
- lsls r1, 2
- ldr r3, [sp, 0xC]
- ldr r0, [sp, 0x10]
- adds r2, r3, r0
- lsls r2, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r7, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- 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_81974A4
-
- thumb_func_start sub_81975F4
-sub_81975F4: @ 81975F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- adds r6, r0, 0
- adds r5, r2, 0
- mov r8, r3
- ldr r2, [sp, 0x44]
- lsls r6, 24
- lsrs r6, 24
- lsls r0, r1, 24
- lsls r5, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r1, =0x00000201
- lsrs r2, r0, 24
- str r2, [sp, 0xC]
- movs r3, 0xFE
- lsls r3, 24
- adds r2, r0, r3
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsrs r0, r5, 24
- mov r10, r0
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r3, 0xF
- mov r9, r3
- str r3, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000203
- ldr r0, [sp, 0xC]
- subs r0, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- movs r1, 0x81
- lsls r1, 2
- mov r0, r8
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000205
- ldr r7, [sp, 0xC]
- add r7, r8
- subs r0, r7, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x20]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- adds r0, r6, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000206
- lsls r2, r7, 24
- lsrs r7, r2, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000207
- str r4, [sp]
- movs r5, 0x5
- str r5, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000209
- add r8, r4
- mov r3, r8
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- str r5, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x0000020a
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000a01
- ldr r3, [sp, 0x10]
- add r10, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x14]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000a03
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x18]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000a04
- ldr r0, [sp, 0x1C]
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0xC]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000a05
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- adds r0, r6, 0
- ldr r2, [sp, 0x20]
- mov r3, r10
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000a06
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r0, r9
- str r0, [sp, 0x8]
- adds r0, r6, 0
- adds r2, r7, 0
- mov r3, r10
- bl FillBgTilemapBufferRect
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81975F4
-
- thumb_func_start sub_81977BC
-sub_81977BC: @ 81977BC
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 18
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81977BC
-
- thumb_func_start sub_8197804
-sub_8197804: @ 8197804
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFD
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0xC0
- lsls r2, 19
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0xE
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8197804
-
- thumb_func_start SetStandardWindowBorderStyle
-@ void SetStandardWindowBorderStyle(u8 windowId, bool copyToVram)
-SetStandardWindowBorderStyle: @ 8197854
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x85
- lsls r2, 2
- movs r3, 0xE
- bl SetWindowBorderStyle
- pop {r0}
- bx r0
- thumb_func_end SetStandardWindowBorderStyle
-
- thumb_func_start sub_819786C
-sub_819786C: @ 819786C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0x80
- lsls r6, 2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0xF0
- bl copy_textbox_border_tile_patterns_to_vram
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0xF
- bl sub_8197B1C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819786C
-
- thumb_func_start sub_819789C
-sub_819789C: @ 819789C
- push {lr}
- ldr r0, =gUnknown_0860F074
- movs r1, 0xE0
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819789C
-
- thumb_func_start sub_81978B0
-sub_81978B0: @ 81978B0
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, =gUnknown_0860F074
- movs r2, 0x14
- bl LoadPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81978B0
-
- thumb_func_start sub_81978C8
-sub_81978C8: @ 81978C8
- ldr r0, =gUnknown_0860F074
- bx lr
- .pool
- thumb_func_end sub_81978C8
-
- thumb_func_start sub_81978D0
-sub_81978D0: @ 81978D0
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _081978DC
- movs r1, 0
-_081978DC:
- ldr r0, =gUnknown_0860F074
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81978D0
-
- thumb_func_start DisplayItemMessageOnField
-@ void DisplayItemMessageOnField(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
-DisplayItemMessageOnField: @ 81978EC
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_81973A4
- bl sav2_get_text_speed
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0
- movs r3, 0xF
- bl DisplayMessageAndContinueTask
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end DisplayItemMessageOnField
-
- thumb_func_start sub_8197930
-sub_8197930: @ 8197930
- push {lr}
- ldr r0, =gUnknown_0860F0A8
- movs r1, 0x85
- lsls r1, 2
- movs r2, 0xE
- movs r3, 0
- bl CreateYesNoMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197930
-
- thumb_func_start sub_8197948
-sub_8197948: @ 8197948
- push {lr}
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_0860F0A8
- movs r1, 0x85
- lsls r1, 2
- movs r2, 0xE
- bl CreateYesNoMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197948
-
- thumb_func_start sub_8197964
-sub_8197964: @ 8197964
- push {lr}
- ldr r0, =gTextFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08197988
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- lsls r0, 29
- lsrs r0, 29
- b _0819798A
- .pool
-_08197988:
- movs r0, 0x1
-_0819798A:
- pop {r1}
- bx r1
- thumb_func_end sub_8197964
-
- thumb_func_start sav2_get_text_speed
-sav2_get_text_speed: @ 8197990
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x14]
- lsls r0, r1, 29
- lsrs r0, 29
- cmp r0, 0x2
- bls _081979AC
- movs r0, 0x8
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x14]
-_081979AC:
- bl sub_8197964
- ldr r1, =gUnknown_0860F094
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sav2_get_text_speed
-
- thumb_func_start sub_81979C4
-sub_81979C4: @ 81979C4
- push {r4,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r4, =gUnknown_0203CD8C
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081979F6
- lsls r0, r1, 25
- movs r1, 0x80
- lsls r1, 18
- adds r0, r1
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- ldr r0, =0x00000139
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x16
- movs r2, 0x1
- movs r3, 0x7
- bl sub_8198AA4
- strb r0, [r4]
-_081979F6:
- ldrb r0, [r4]
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81979C4
-
- thumb_func_start GetStartMenuWindowId
-GetStartMenuWindowId: @ 8197A08
- ldr r0, =gUnknown_0203CD8C
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetStartMenuWindowId
-
- thumb_func_start remove_start_menu_window_maybe
-remove_start_menu_window_maybe: @ 8197A14
- push {r4,lr}
- ldr r4, =gUnknown_0203CD8C
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08197A26
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_08197A26:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end remove_start_menu_window_maybe
-
- thumb_func_start sub_8197A30
-sub_8197A30: @ 8197A30
- movs r0, 0x80
- lsls r0, 2
- bx lr
- thumb_func_end sub_8197A30
-
- thumb_func_start sub_8197A38
-sub_8197A38: @ 8197A38
- movs r0, 0x85
- lsls r0, 2
- bx lr
- thumb_func_end sub_8197A38
-
- thumb_func_start AddMapNamePopUpWindow
-AddMapNamePopUpWindow: @ 8197A40
- push {r4,lr}
- sub sp, 0xC
- ldr r4, =gUnknown_0203CD8D
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _08197A66
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0xE
- str r0, [sp, 0x4]
- adds r0, 0xF9
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xA
- bl sub_8198AA4
- strb r0, [r4]
-_08197A66:
- ldrb r0, [r4]
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddMapNamePopUpWindow
-
- thumb_func_start GetMapNamePopUpWindowId
-GetMapNamePopUpWindowId: @ 8197A74
- ldr r0, =gUnknown_0203CD8D
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetMapNamePopUpWindowId
-
- thumb_func_start RemoveMapNamePopUpWindow
-RemoveMapNamePopUpWindow: @ 8197A80
- push {r4,lr}
- ldr r4, =gUnknown_0203CD8D
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08197A92
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_08197A92:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveMapNamePopUpWindow
-
- thumb_func_start AddTextPrinterWithCallbackForMessage
-@ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *))
-AddTextPrinterWithCallbackForMessage: @ 8197A9C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl sav2_get_text_speed
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, =gStringVar4
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddTextPrinterWithCallbackForMessage
-
- thumb_func_start sub_8197AE8
-sub_8197AE8: @ 8197AE8
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- cmp r4, 0x1
- bne _08197B12
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_08197B12:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8197AE8
-
- thumb_func_start sub_8197B1C
-sub_8197B1C: @ 8197B1C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CD9C
- strh r2, [r0]
- ldr r0, =gUnknown_0203CD9E
- strb r3, [r0]
- ldr r1, =sub_8197BB4
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _08197B52
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197B52:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197B1C
-
- thumb_func_start sub_8197B64
-sub_8197B64: @ 8197B64
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CD9C
- strh r2, [r0]
- ldr r5, =gUnknown_0203CD9E
- adds r0, r6, 0
- movs r1, 0x5
- bl GetWindowAttribute
- strb r0, [r5]
- ldr r1, =sub_8197BB4
- adds r0, r6, 0
- bl CallWindowFunction
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r6, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _08197BA2
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197BA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197B64
-
- thumb_func_start sub_8197BB4
-sub_8197BB4: @ 8197BB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r8, r0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r2, [sp, 0x44]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r1, 24
- lsls r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x10]
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- lsrs r3, r0, 24
- str r3, [sp, 0xC]
- movs r3, 0xFE
- lsls r3, 24
- adds r2, r0, r3
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsrs r0, r5, 24
- mov r9, r0
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- ldr r3, =gUnknown_0203CD9E
- mov r10, r3
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x14]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r0, =gUnknown_0203CD9C
- ldrh r1, [r0]
- adds r1, 0x3
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- subs r0, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x18]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0x4
- lsls r1, 16
- lsrs r1, 16
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0xC]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0x5
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- adds r7, r0, r6
- subs r0, r7, 0x1
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x20]
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x20]
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0x6
- lsls r1, 16
- lsrs r1, 16
- lsls r2, r7, 24
- lsrs r7, r2, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- adds r2, r7, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- movs r5, 0x5
- str r5, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x14]
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0x9
- lsls r1, 16
- lsrs r1, 16
- adds r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x18]
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r3, =gUnknown_0203CD9C
- ldrh r1, [r3]
- adds r1, 0xA
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r5, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- adds r2, r7, 0
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r3, =0x00000801
- adds r1, r3, 0
- ldr r0, =gUnknown_0203CD9C
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x10]
- add r9, r2
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x14]
- bl FillBgTilemapBufferRect
- ldr r3, =0x00000803
- adds r1, r3, 0
- ldr r0, =gUnknown_0203CD9C
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r2, r10
- ldrb r0, [r2]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x18]
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r3, =0x00000804
- adds r1, r3, 0
- ldr r0, =gUnknown_0203CD9C
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x1C]
- str r2, [sp]
- str r4, [sp, 0x4]
- mov r3, r10
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0xC]
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r0, =0x00000805
- adds r1, r0, 0
- ldr r2, =gUnknown_0203CD9C
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r10
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r2, [sp, 0x20]
- mov r3, r9
- bl FillBgTilemapBufferRect
- ldr r0, =0x00000806
- adds r1, r0, 0
- ldr r2, =gUnknown_0203CD9C
- ldrh r2, [r2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r3, r10
- ldrb r0, [r3]
- str r0, [sp, 0x8]
- mov r0, r8
- adds r2, r7, 0
- mov r3, r9
- bl FillBgTilemapBufferRect
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197BB4
-
- thumb_func_start sub_8197DF8
-sub_8197DF8: @ 8197DF8
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_8197E30
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _08197E26
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197E26:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197DF8
-
- thumb_func_start sub_8197E30
-sub_8197E30: @ 8197E30
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFD
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0xC0
- lsls r2, 19
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- movs r2, 0x80
- lsls r2, 18
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8197E30
-
- thumb_func_start SetWindowBorderStyle
-@ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette)
-SetWindowBorderStyle: @ 8197E80
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CD9C
- strh r2, [r0]
- ldr r0, =gUnknown_0203CD9E
- strb r3, [r0]
- ldr r1, =DrawWindowBorder
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _08197EB6
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197EB6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetWindowBorderStyle
-
- thumb_func_start sub_8197EC8
-sub_8197EC8: @ 8197EC8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CD9C
- strh r2, [r0]
- ldr r5, =gUnknown_0203CD9E
- adds r0, r6, 0
- movs r1, 0x5
- bl GetWindowAttribute
- strb r0, [r5]
- ldr r1, =DrawWindowBorder
- adds r0, r6, 0
- bl CallWindowFunction
- adds r0, r6, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r6, 0
- bl PutWindowTilemap
- cmp r4, 0x1
- bne _08197F06
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_08197F06:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197EC8
-
- thumb_func_start DrawWindowBorder
-DrawWindowBorder: @ 8197F18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r9, r0
- adds r6, r1, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x38]
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r6, 24
- lsls r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- lsrs r0, r6, 24
- str r0, [sp, 0xC]
- movs r2, 0xFF
- lsls r2, 24
- adds r6, r2
- lsrs r6, 24
- lsrs r0, r4, 24
- mov r8, r0
- adds r4, r2
- lsrs r4, 24
- movs r5, 0x1
- str r5, [sp]
- str r5, [sp, 0x4]
- ldr r7, =gUnknown_0203CD9E
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- ldr r2, [sp, 0xC]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- adds r1, 0x2
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- adds r3, r4, 0
- bl FillBgTilemapBufferRect
- ldr r0, =gUnknown_0203CD9C
- ldrh r1, [r0]
- adds r1, 0x3
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- ldr r2, [sp, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r0, =gUnknown_0203CD9C
- ldrh r1, [r0]
- adds r1, 0x5
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- ldr r2, [sp, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r0, =gUnknown_0203CD9C
- ldrh r1, [r0]
- adds r1, 0x6
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x14]
- add r8, r2
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- adds r2, r6, 0
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- adds r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x10]
- str r0, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- ldr r2, [sp, 0xC]
- mov r3, r8
- bl FillBgTilemapBufferRect
- ldr r2, =gUnknown_0203CD9C
- ldrh r1, [r2]
- adds r1, 0x8
- lsls r1, 16
- lsrs r1, 16
- str r5, [sp]
- str r5, [sp, 0x4]
- ldrb r0, [r7]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r2, r10
- mov r3, r8
- bl FillBgTilemapBufferRect
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DrawWindowBorder
-
- thumb_func_start sub_8198070
-sub_8198070: @ 8198070
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =sub_81980A8
- adds r0, r5, 0
- bl CallWindowFunction
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r5, 0
- bl ClearWindowTilemap
- cmp r4, 0x1
- bne _0819809E
- adds r0, r5, 0
- movs r1, 0x3
- bl CopyWindowToVram
-_0819809E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8198070
-
- thumb_func_start sub_81980A8
-sub_81980A8: @ 81980A8
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsls r5, 24
- lsls r3, 24
- lsls r1, 24
- movs r2, 0xFF
- lsls r2, 24
- adds r4, r2
- lsrs r4, 24
- adds r5, r2
- lsrs r5, 24
- movs r2, 0x80
- lsls r2, 18
- adds r3, r2
- lsrs r3, 24
- str r3, [sp]
- adds r1, r2
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- adds r2, r4, 0
- adds r3, r5, 0
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81980A8
-
- thumb_func_start sub_81980F0
-sub_81980F0: @ 81980F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r4, 16
- mov r0, sp
- movs r1, 0
- movs r2, 0x8
- bl memset
- cmp r6, 0x3
- bls _08198126
- movs r1, 0
- mov r0, sp
- strb r1, [r0]
- b _0819812A
-_08198126:
- mov r0, sp
- strb r6, [r0]
-_0819812A:
- mov r1, sp
- mov r0, r8
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x4]
- movs r0, 0x1E
- subs r0, r7
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x3]
- strb r5, [r1, 0x5]
- strh r4, [r1, 0x6]
- ldr r4, =gUnknown_0203CDA0
- mov r0, sp
- bl AddWindow
- strb r0, [r4]
- cmp r5, 0xF
- bls _08198158
- movs r5, 0xF0
- b _0819815C
- .pool
-_08198158:
- lsls r0, r5, 28
- lsrs r5, r0, 24
-_0819815C:
- ldr r0, =gUnknown_0860F0B0
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_0203CDA0
- ldrb r0, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81980F0
-
- thumb_func_start sub_8198180
-sub_8198180: @ 8198180
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, =gUnknown_0203CDA0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _081981EE
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- bl GetStringWidth
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetWindowAttribute
- movs r2, 0xEC
- subs r2, r7
- lsls r0, 3
- subs r2, r0
- subs r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r5]
- ldr r1, =gUnknown_0860F0D0
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r3, 0x1
- bl box_print
- mov r0, r8
- cmp r0, 0
- beq _081981EE
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
-_081981EE:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8198180
-
- thumb_func_start sub_8198204
-sub_8198204: @ 8198204
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r10, r0
- adds r6, r1, 0
- ldr r0, [sp, 0x38]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, =gUnknown_0203CDA0
- ldrb r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xFF
- beq _081982C8
- cmp r2, 0
- beq _08198244
- add r0, sp, 0x14
- strb r4, [r0]
- adds r1, r0, 0
- b _0819824A
- .pool
-_08198244:
- add r1, sp, 0x14
- movs r0, 0xF
- strb r0, [r1]
-_0819824A:
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- adds r5, r7, 0
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- cmp r6, 0
- beq _0819829E
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- bl GetStringWidth
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r5]
- movs r1, 0x1
- bl GetWindowAttribute
- movs r2, 0xEC
- mov r1, r8
- subs r2, r1
- lsls r0, 3
- subs r2, r0
- subs r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r0, [r5]
- add r1, sp, 0x14
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r3, 0x1
- bl box_print
-_0819829E:
- ldrb r0, [r7]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- str r1, [sp, 0xC]
- mov r1, r10
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0x1
- bl AddTextPrinterParametrized2
- mov r2, r9
- cmp r2, 0
- beq _081982C8
- ldrb r0, [r7]
- movs r1, 0x3
- bl CopyWindowToVram
-_081982C8:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8198204
-
- thumb_func_start sub_81982D8
-sub_81982D8: @ 81982D8
- push {lr}
- ldr r1, =gUnknown_0203CDA0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081982E8
- movs r1, 0x3
- bl CopyWindowToVram
-_081982E8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81982D8
-
- thumb_func_start sub_81982F0
-sub_81982F0: @ 81982F0
- push {r4,lr}
- ldr r4, =gUnknown_0203CDA0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _08198308
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
-_08198308:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81982F0
-
- thumb_func_start sub_8198314
-sub_8198314: @ 8198314
- push {r4,lr}
- ldr r4, =gUnknown_0203CDA0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0819833C
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_0819833C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8198314
-
- thumb_func_start sub_8198348
-sub_8198348: @ 8198348
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- mov r8, r4
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- ldr r6, [sp, 0x24]
- mov r12, r6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r7, r5, 24
- ldr r5, =gUnknown_0203CD90
- movs r6, 0
- strb r2, [r5]
- strb r3, [r5, 0x1]
- strb r6, [r5, 0x3]
- subs r4, 0x1
- strb r4, [r5, 0x4]
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x6]
- mov r0, r8
- strb r0, [r5, 0x8]
- mov r4, r12
- strb r4, [r5, 0xB]
- cmp r7, 0
- blt _08198388
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r7, r0
- ble _08198390
-_08198388:
- strb r6, [r5, 0x2]
- b _08198392
- .pool
-_08198390:
- strb r7, [r5, 0x2]
-_08198392:
- movs r0, 0
- bl MoveMenuCursor
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8198348
-
- thumb_func_start sub_81983AC
-sub_81983AC: @ 81983AC
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r4, 0
- str r4, [sp, 0xC]
- bl sub_8198348
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81983AC
-
- thumb_func_start sub_81983EC
-sub_81983EC: @ 81983EC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x14
- mov r8, r0
- adds r6, r1, 0
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x1
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r0, r8
- adds r1, r6, 0
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- bl sub_81983AC
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81983EC
-
- thumb_func_start RedrawMenuCursor
-@ void RedrawMenuCursor(s8 oldPos, s8 newPos)
-RedrawMenuCursor: @ 8198448
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r6, r0, 0
- mov r8, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r5, =gUnknown_0203CD90
- ldrb r0, [r5, 0x6]
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5, 0x6]
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r5, 0x5]
- mov r9, r1
- ldrb r2, [r5]
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r6
- ldrb r6, [r5, 0x1]
- adds r3, r6
- lsls r3, 16
- lsrs r3, 16
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r9
- movs r1, 0x11
- bl FillWindowPixelRect
- ldrb r0, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- ldr r2, =gUnknown_085EE498
- ldrb r3, [r5]
- ldrb r4, [r5, 0x8]
- mov r6, r8
- muls r6, r4
- adds r4, r6, 0
- ldrb r5, [r5, 0x1]
- adds r4, r5
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RedrawMenuCursor
-
- thumb_func_start MoveMenuCursor
-@ s8 MoveMenuCursor(s8 cursorDelta)
-MoveMenuCursor: @ 81984D8
- push {r4,r5,lr}
- ldr r1, =gUnknown_0203CD90
- ldrb r5, [r1, 0x2]
- movs r2, 0x2
- ldrsb r2, [r1, r2]
- lsls r0, 24
- asrs r3, r0, 24
- adds r2, r3
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- adds r4, r1, 0
- cmp r2, r0
- bge _081984FC
- ldrb r0, [r4, 0x4]
- b _0819850A
- .pool
-_081984FC:
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r2, r0
- ble _08198508
- ldrb r0, [r4, 0x3]
- b _0819850A
-_08198508:
- adds r0, r3, r5
-_0819850A:
- strb r0, [r4, 0x2]
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl RedrawMenuCursor
- ldrb r0, [r4, 0x2]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MoveMenuCursor
-
- thumb_func_start MoveMenuCursorNoWrapAround
-@ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta)
-MoveMenuCursorNoWrapAround: @ 819851C
- push {r4,r5,lr}
- ldr r1, =gUnknown_0203CD90
- ldrb r5, [r1, 0x2]
- movs r2, 0x2
- ldrsb r2, [r1, r2]
- lsls r0, 24
- asrs r3, r0, 24
- adds r2, r3
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- adds r4, r1, 0
- cmp r2, r0
- bge _08198540
- ldrb r0, [r4, 0x3]
- b _0819854E
- .pool
-_08198540:
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r2, r0
- ble _0819854C
- ldrb r0, [r4, 0x4]
- b _0819854E
-_0819854C:
- adds r0, r3, r5
-_0819854E:
- strb r0, [r4, 0x2]
- ldrb r1, [r4, 0x2]
- adds r0, r5, 0
- bl RedrawMenuCursor
- ldrb r0, [r4, 0x2]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MoveMenuCursorNoWrapAround
-
- thumb_func_start GetMenuCursorPos
-GetMenuCursorPos: @ 8198560
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- bx lr
- .pool
- thumb_func_end GetMenuCursorPos
-
- thumb_func_start ProcessMenuInput
-ProcessMenuInput: @ 819856C
- push {r4,lr}
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08198598
- ldr r4, =gUnknown_0203CD90
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _08198588
- movs r0, 0x5
- bl PlaySE
-_08198588:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _081985D2
- .pool
-_08198598:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081985A6
- movs r0, 0x1
- negs r0, r0
- b _081985D2
-_081985A6:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081985BA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _081985CA
-_081985BA:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081985CE
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_081985CA:
- bl MoveMenuCursor
-_081985CE:
- movs r0, 0x2
- negs r0, r0
-_081985D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInput
-
- thumb_func_start ProcessMenuInputNoWrapAround
-@ int ProcessMenuInputNoWrapAround()
-ProcessMenuInputNoWrapAround: @ 81985D8
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203CD90
- ldrb r5, [r4, 0x2]
- adds r6, r5, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08198608
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _081985F8
- movs r0, 0x5
- bl PlaySE
-_081985F8:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _08198650
- .pool
-_08198608:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08198616
- movs r0, 0x1
- negs r0, r0
- b _08198650
-_08198616:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08198630
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _0819864C
- b _08198646
-_08198630:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819864C
- movs r0, 0x1
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _0819864C
-_08198646:
- movs r0, 0x5
- bl PlaySE
-_0819864C:
- movs r0, 0x2
- negs r0, r0
-_08198650:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInputNoWrapAround
-
- thumb_func_start ProcessMenuInput_other
-ProcessMenuInput_other: @ 8198658
- push {r4,lr}
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08198684
- ldr r4, =gUnknown_0203CD90
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _08198674
- movs r0, 0x5
- bl PlaySE
-_08198674:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _081986BC
- .pool
-_08198684:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08198692
- movs r0, 0x1
- negs r0, r0
- b _081986BC
-_08198692:
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _081986A8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _081986B4
-_081986A8:
- cmp r1, 0x80
- bne _081986B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_081986B4:
- bl MoveMenuCursor
-_081986B8:
- movs r0, 0x2
- negs r0, r0
-_081986BC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInput_other
-
- thumb_func_start ProcessMenuInputNoWrapAround_other
-ProcessMenuInputNoWrapAround_other: @ 81986C4
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203CD90
- ldrb r5, [r4, 0x2]
- adds r6, r5, 0
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081986F4
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _081986E4
- movs r0, 0x5
- bl PlaySE
-_081986E4:
- movs r0, 0x2
- ldrsb r0, [r4, r0]
- b _0819873A
- .pool
-_081986F4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08198702
- movs r0, 0x1
- negs r0, r0
- b _0819873A
-_08198702:
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _0819871E
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- beq _08198736
- b _08198730
-_0819871E:
- cmp r1, 0x80
- bne _08198736
- movs r0, 0x1
- bl MoveMenuCursorNoWrapAround
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08198736
-_08198730:
- movs r0, 0x5
- bl PlaySE
-_08198736:
- movs r0, 0x2
- negs r0, r0
-_0819873A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ProcessMenuInputNoWrapAround_other
-
- thumb_func_start PrintTextArray
-PrintTextArray: @ 8198740
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r7, r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0
- cmp r4, r5
- bcs _081987A4
-_08198774:
- lsls r0, r4, 3
- ldr r1, [sp, 0x34]
- adds r0, r1
- ldr r2, [r0]
- adds r0, r7, 0
- muls r0, r4
- add r0, r8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- mov r1, r10
- mov r3, r9
- bl PrintTextOnWindow
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08198774
-_081987A4:
- adds r0, r6, 0
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PrintTextArray
-
- thumb_func_start sub_81987BC
-sub_81987BC: @ 81987BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x4C]
- ldr r7, [sp, 0x50]
- mov r8, r7
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x18]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r9, r6
- mov r0, r8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0819883C
-_08198804:
- lsls r0, r4, 3
- ldr r1, [sp, 0x48]
- adds r0, r1
- ldr r2, [r0]
- mov r0, r10
- muls r0, r4
- ldr r1, [sp, 0x1C]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r0, r7, 0
- ldr r1, [sp, 0x14]
- ldr r3, [sp, 0x18]
- bl sub_8199F74
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08198804
-_0819883C:
- adds r0, r7, 0
- movs r1, 0x2
- bl CopyWindowToVram
- 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_81987BC
-
- thumb_func_start sub_8198854
-sub_8198854: @ 8198854
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- mov r8, r0
- adds r6, r1, 0
- adds r4, r2, 0
- adds r5, r3, 0
- ldr r7, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0
- bl GetFontAttribute
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r7, [sp, 0x8]
- mov r0, r8
- adds r1, r6, 0
- movs r3, 0x1
- bl PrintTextArray
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8198854
-
- thumb_func_start AddItemMenuActionTextPrinters
-AddItemMenuActionTextPrinters: @ 81988A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r6, r1, 0
- mov r8, r2
- ldr r1, [sp, 0x38]
- mov r9, r1
- ldr r1, [sp, 0x3C]
- ldr r2, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r6, 24
- lsrs r6, 24
- mov r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r7, r2, 24
- mov r0, sp
- ldrb r1, [r0, 0x10]
- strb r1, [r0, 0x4]
- strb r6, [r0, 0x5]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- mov r0, sp
- mov r2, r9
- strb r2, [r0, 0xA]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- mov r0, sp
- mov r4, r8
- strb r4, [r0, 0x6]
- strb r4, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _0819899E
- mov r5, sp
-_0819896E:
- ldr r1, [sp, 0x48]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 3
- ldr r2, [sp, 0x44]
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- mov r0, r10
- muls r0, r4
- ldr r1, [sp, 0x14]
- adds r0, r1, r0
- strb r0, [r5, 0x7]
- strb r0, [r5, 0x9]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0819896E
-_0819899E:
- ldr r0, [sp, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end AddItemMenuActionTextPrinters
-
- thumb_func_start sub_81989B8
-sub_81989B8: @ 81989B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- adds r4, r1, 0
- adds r6, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetFontAttribute
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x2
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- str r7, [sp, 0xC]
- ldr r0, [sp, 0x34]
- str r0, [sp, 0x10]
- mov r0, r9
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl AddItemMenuActionTextPrinters
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81989B8
-
- thumb_func_start rbox_template_set
-@ void rbox_template_set(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8)
-rbox_template_set: @ 8198A24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- ldr r6, [sp, 0x20]
- ldr r7, [sp, 0x24]
- mov r8, r7
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r3, [r0, 0x2]
- strb r4, [r0, 0x3]
- strb r5, [r0, 0x4]
- strb r6, [r0, 0x5]
- mov r1, r8
- strh r1, [r0, 0x6]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end rbox_template_set
-
- thumb_func_start sub_8198A50
-sub_8198A50: @ 8198A50
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x18
- mov r8, r0
- ldr r0, [sp, 0x2C]
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- ldr r6, [sp, 0x38]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- add r0, sp, 0x10
- bl rbox_template_set
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- mov r2, r8
- str r0, [r2]
- str r1, [r2, 0x4]
- mov r0, r8
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r2}
- bx r2
- thumb_func_end sub_8198A50
-
- thumb_func_start sub_8198AA4
-sub_8198AA4: @ 8198AA4
- push {r4-r6,lr}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, [sp, 0x28]
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- str r3, [sp]
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- str r2, [sp, 0xC]
- add r0, sp, 0x10
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl rbox_template_set
- add r0, sp, 0x10
- bl AddWindow
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x18
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8198AA4
-
- thumb_func_start sub_8198AF8
-sub_8198AF8: @ 8198AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- ldr r4, [sp, 0x3C]
- ldr r5, [sp, 0x40]
- ldr r1, [sp, 0x44]
- mov r10, r1
- lsls r6, 24
- lsrs r6, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r7, =gUnknown_0203CD9F
- bl AddWindow
- strb r0, [r7]
- ldrb r0, [r7]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowBorderStyle
- ldr r0, =gUnknown_085EE491
- str r0, [sp, 0xC]
- add r1, sp, 0xC
- ldrb r0, [r7]
- strb r0, [r1, 0x4]
- adds r0, r1, 0
- strb r6, [r0, 0x5]
- adds r0, r6, 0
- movs r1, 0
- bl GetFontAttribute
- add r1, sp, 0xC
- add r0, r8
- strb r0, [r1, 0x6]
- adds r0, r1, 0
- mov r1, r9
- strb r1, [r0, 0x7]
- adds r1, r0, 0
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- adds r0, r1, 0
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- add r3, sp, 0xC
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- add r3, sp, 0xC
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- add r3, sp, 0xC
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- adds r0, r6, 0
- movs r1, 0x4
- bl GetFontAttribute
- add r1, sp, 0xC
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- adds r0, r6, 0
- movs r1, 0x2
- bl GetFontAttribute
- add r1, sp, 0xC
- strb r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x3
- bl GetFontAttribute
- add r1, sp, 0xC
- strb r0, [r1, 0xB]
- adds r0, r1, 0
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r6, 0
- movs r1, 0x1
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r7]
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- adds r0, r1, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl sub_81983AC
- 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_8198AF8
-
- thumb_func_start sub_8198C34
-sub_8198C34: @ 8198C34
- push {lr}
- sub sp, 0xC
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r3, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- movs r3, 0x1
- bl sub_8198AF8
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_8198C34
-
- thumb_func_start sub_8198C58
-sub_8198C58: @ 8198C58
- push {r4,lr}
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08198C6E
- bl sub_8198C78
-_08198C6E:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8198C58
-
- thumb_func_start sub_8198C78
-sub_8198C78: @ 8198C78
- push {r4,lr}
- ldr r4, =gUnknown_0203CD9F
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8198C78
-
- thumb_func_start sub_8198C94
-sub_8198C94: @ 8198C94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x48]
- ldr r7, [sp, 0x4C]
- mov r8, r7
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x18]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x1C]
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r5, 0
- cmp r5, r9
- bcs _08198D3A
-_08198CE0:
- movs r4, 0
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r6
- bcs _08198D30
- ldr r7, [sp, 0x1C]
- adds r0, r7, 0
- muls r0, r5
- ldr r1, [sp, 0x14]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r7, r0, 24
-_08198CF8:
- adds r0, r5, 0
- muls r0, r6
- adds r0, r4
- lsls r0, 3
- ldr r1, [sp, 0x50]
- adds r0, r1
- ldr r2, [r0]
- ldr r0, [sp, 0x18]
- adds r3, r0, 0
- muls r3, r4
- ldr r1, [sp, 0x10]
- adds r3, r1, r3
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r10
- ldr r1, [sp, 0xC]
- bl PrintTextOnWindow
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08198CF8
-_08198D30:
- mov r7, r8
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, r9
- bcc _08198CE0
-_08198D3A:
- mov r0, r10
- movs r1, 0x2
- bl CopyWindowToVram
- 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_8198C94
-
- thumb_func_start sub_8198D54
-sub_8198D54: @ 8198D54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- mov r9, r0
- mov r8, r1
- adds r4, r2, 0
- adds r5, r3, 0
- ldr r6, [sp, 0x34]
- ldr r3, [sp, 0x38]
- ldr r7, [sp, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0
- str r3, [sp, 0x14]
- bl GetFontAttribute
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- ldr r3, [sp, 0x14]
- str r3, [sp, 0xC]
- str r7, [sp, 0x10]
- mov r0, r9
- mov r1, r8
- movs r3, 0
- bl sub_8198C94
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8198D54
-
- thumb_func_start sub_8198DBC
-sub_8198DBC: @ 8198DBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r6, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x1C]
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- lsls r6, 24
- lsrs r6, 24
- mov r10, r6
- mov r0, sp
- ldrb r1, [r0, 0x10]
- strb r1, [r0, 0x4]
- strb r7, [r0, 0x5]
- adds r0, r7, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r7, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- adds r0, r7, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- adds r0, r7, 0
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- adds r0, r7, 0
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xA]
- adds r0, r7, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- movs r6, 0
- cmp r6, r10
- bcs _08198EDE
-_08198E7A:
- movs r5, 0
- adds r2, r6, 0x1
- mov r9, r2
- cmp r5, r8
- bcs _08198ED4
- mov r4, sp
-_08198E86:
- mov r0, r8
- muls r0, r6
- adds r0, r5
- ldr r1, [sp, 0x50]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 3
- ldr r2, [sp, 0x4C]
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- ldr r1, [sp, 0x1C]
- adds r0, r1, 0
- muls r0, r5
- ldr r2, [sp, 0x14]
- adds r0, r2, r0
- strb r0, [r4, 0x6]
- adds r0, r7, 0
- movs r1, 0x1
- bl GetFontAttribute
- adds r1, r6, 0
- muls r1, r0
- ldr r0, [sp, 0x18]
- adds r1, r0, r1
- strb r1, [r4, 0x7]
- ldrb r0, [r4, 0x6]
- strb r0, [r4, 0x8]
- strb r1, [r4, 0x9]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _08198E86
-_08198ED4:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r6, r0, 24
- cmp r6, r10
- bcc _08198E7A
-_08198EDE:
- ldr r0, [sp, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- 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_8198DBC
-
- thumb_func_start sub_8198EF8
-sub_8198EF8: @ 8198EF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- mov r8, r0
- adds r3, r1, 0
- adds r4, r2, 0
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- ldr r7, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r3, 0
- movs r1, 0
- str r3, [sp, 0x14]
- bl GetFontAttribute
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- str r7, [sp, 0xC]
- ldr r0, [sp, 0x3C]
- str r0, [sp, 0x10]
- mov r0, r8
- ldr r3, [sp, 0x14]
- adds r1, r3, 0
- movs r3, 0
- bl sub_8198DBC
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8198EF8
-
- thumb_func_start sub_8198F58
-sub_8198F58: @ 8198F58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- mov r12, r4
- ldr r4, [sp, 0x24]
- mov r8, r4
- ldr r4, [sp, 0x28]
- mov r9, r4
- ldr r4, [sp, 0x2C]
- mov r10, r4
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r7, r5, 24
- ldr r5, =gUnknown_0203CD90
- movs r6, 0
- strb r2, [r5]
- strb r3, [r5, 0x1]
- strb r6, [r5, 0x3]
- subs r4, 0x1
- strb r4, [r5, 0x4]
- strb r0, [r5, 0x5]
- strb r1, [r5, 0x6]
- mov r0, r12
- strb r0, [r5, 0x7]
- mov r4, r8
- strb r4, [r5, 0x8]
- mov r0, r9
- strb r0, [r5, 0x9]
- mov r4, r10
- strb r4, [r5, 0xA]
- cmp r7, 0
- blt _08198FAC
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r7, r0
- ble _08198FB4
-_08198FAC:
- strb r6, [r5, 0x2]
- b _08198FB6
- .pool
-_08198FB4:
- strb r7, [r5, 0x2]
-_08198FB6:
- movs r0, 0
- movs r1, 0
- bl sub_8199134
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8198F58
-
- thumb_func_start sub_8198FD4
-sub_8198FD4: @ 8198FD4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x20
- mov r9, r0
- mov r8, r1
- mov r10, r2
- ldr r6, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- ldr r5, [sp, 0x44]
- ldr r2, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- movs r1, 0x1
- str r2, [sp, 0x18]
- str r3, [sp, 0x1C]
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- muls r1, r5
- lsls r1, 24
- lsrs r1, 24
- str r6, [sp]
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- str r5, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r2, [sp, 0x18]
- str r2, [sp, 0x14]
- mov r0, r9
- mov r1, r8
- mov r2, r10
- ldr r3, [sp, 0x1C]
- bl sub_8198F58
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8198FD4
-
- thumb_func_start sub_8199060
-sub_8199060: @ 8199060
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, r1, 24
- lsrs r7, r0, 24
- ldr r5, =gUnknown_0203CD90
- ldrb r0, [r5, 0x6]
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldrb r0, [r5, 0x6]
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldrb r0, [r5, 0x9]
- mov r10, r0
- mov r0, r8
- mov r1, r10
- bl __umodsi3
- ldrb r1, [r5, 0x7]
- adds r4, r1, 0
- muls r4, r0
- ldrb r1, [r5]
- adds r4, r1
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- mov r1, r10
- bl __udivsi3
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r0
- ldrb r0, [r5, 0x1]
- adds r3, r0
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r5, 0x5]
- mov r1, r9
- str r1, [sp]
- str r6, [sp, 0x4]
- movs r1, 0x11
- adds r2, r4, 0
- bl FillWindowPixelRect
- ldrb r6, [r5, 0x9]
- adds r0, r7, 0
- adds r1, r6, 0
- bl __umodsi3
- ldrb r1, [r5, 0x7]
- adds r4, r1, 0
- muls r4, r0
- ldrb r0, [r5]
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl __udivsi3
- ldrb r1, [r5, 0x8]
- adds r3, r1, 0
- muls r3, r0
- ldrb r1, [r5, 0x1]
- adds r3, r1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- ldr r2, =gUnknown_085EE498
- str r3, [sp]
- movs r3, 0
- str r3, [sp, 0x4]
- str r3, [sp, 0x8]
- adds r3, r4, 0
- bl PrintTextOnWindow
- 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_8199060
-
- thumb_func_start sub_8199134
-sub_8199134: @ 8199134
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r1, =gUnknown_0203CD90
- ldrb r2, [r1, 0x2]
- mov r8, r2
- lsls r0, 24
- asrs r6, r0, 24
- adds r5, r1, 0
- cmp r6, 0
- beq _0819918A
- movs r7, 0x2
- ldrsb r7, [r5, r7]
- ldrb r4, [r5, 0x9]
- adds r0, r7, 0
- adds r1, r4, 0
- bl __modsi3
- adds r0, r6
- cmp r0, 0
- bge _08199174
- adds r0, r4, 0
- adds r0, 0xFF
- add r0, r8
- b _08199188
- .pool
-_08199174:
- cmp r0, r4
- blt _08199184
- adds r0, r7, 0
- adds r1, r4, 0
- bl __divsi3
- muls r0, r4
- b _08199188
-_08199184:
- mov r1, r8
- adds r0, r6, r1
-_08199188:
- strb r0, [r5, 0x2]
-_0819918A:
- mov r2, r9
- lsls r0, r2, 24
- asrs r6, r0, 24
- cmp r6, 0
- beq _081991CE
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r4, [r5, 0x9]
- adds r1, r4, 0
- bl __divsi3
- adds r1, r0, r6
- cmp r1, 0
- bge _081991B2
- ldrb r0, [r5, 0xA]
- subs r0, 0x1
- muls r0, r4
- ldrb r1, [r5, 0x2]
- adds r0, r1
- b _081991CC
-_081991B2:
- ldrb r0, [r5, 0xA]
- cmp r1, r0
- blt _081991C4
- subs r0, 0x1
- adds r1, r4, 0
- muls r1, r0
- ldrb r0, [r5, 0x2]
- subs r0, r1
- b _081991CC
-_081991C4:
- adds r0, r4, 0
- muls r0, r6
- ldrb r2, [r5, 0x2]
- adds r0, r2
-_081991CC:
- strb r0, [r5, 0x2]
-_081991CE:
- movs r1, 0x2
- ldrsb r1, [r5, r1]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bgt _081991E4
- ldrb r1, [r5, 0x2]
- mov r0, r8
- bl sub_8199060
- b _081991E8
-_081991E4:
- mov r0, r8
- strb r0, [r5, 0x2]
-_081991E8:
- ldrb r0, [r5, 0x2]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8199134
-
- thumb_func_start sub_81991F8
-sub_81991F8: @ 81991F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r1, =gUnknown_0203CD90
- ldrb r7, [r1, 0x2]
- lsls r0, 24
- asrs r4, r0, 24
- adds r5, r1, 0
- cmp r4, 0
- beq _0819922C
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r6, [r5, 0x9]
- adds r1, r6, 0
- bl __modsi3
- adds r0, r4
- cmp r0, 0
- blt _0819922C
- cmp r0, r6
- bge _0819922C
- adds r0, r4, r7
- strb r0, [r5, 0x2]
-_0819922C:
- mov r1, r8
- lsls r0, r1, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _08199258
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- ldrb r6, [r5, 0x9]
- adds r1, r6, 0
- bl __divsi3
- adds r0, r4
- cmp r0, 0
- blt _08199258
- ldrb r1, [r5, 0xA]
- cmp r0, r1
- bge _08199258
- adds r0, r6, 0
- muls r0, r4
- ldrb r1, [r5, 0x2]
- adds r0, r1
- strb r0, [r5, 0x2]
-_08199258:
- movs r1, 0x2
- ldrsb r1, [r5, r1]
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- cmp r1, r0
- bgt _08199274
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- bl sub_8199060
- b _08199276
- .pool
-_08199274:
- strb r7, [r5, 0x2]
-_08199276:
- ldrb r0, [r5, 0x2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81991F8
-
- thumb_func_start sub_8199284
-sub_8199284: @ 8199284
- push {r4,lr}
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081992AC
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- b _0819932C
- .pool
-_081992AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081992BA
- movs r0, 0x1
- negs r0, r0
- b _0819932C
-_081992BA:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081992D0
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08199324
-_081992D0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081992E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- b _08199324
-_081992E4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081992F8
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08199304
-_081992F8:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _08199322
-_08199304:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0819931A
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08199328
-_0819931A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_08199322:
- movs r1, 0
-_08199324:
- bl sub_8199134
-_08199328:
- movs r0, 0x2
- negs r0, r0
-_0819932C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8199284
-
- thumb_func_start sub_8199334
-sub_8199334: @ 8199334
- push {r4-r6,lr}
- ldr r5, =gUnknown_0203CD90
- ldrb r4, [r5, 0x2]
- ldr r6, =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0819935C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- b _081993D2
- .pool
-_0819935C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819936A
- movs r0, 0x1
- negs r0, r0
- b _081993D2
-_0819936A:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819937A
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _081993BC
-_0819937A:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08199388
- movs r0, 0
- movs r1, 0x1
- b _081993BC
-_08199388:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0819939C
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081993A2
-_0819939C:
- movs r0, 0x1
- negs r0, r0
- b _081993BA
-_081993A2:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081993B8
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081993CE
-_081993B8:
- movs r0, 0x1
-_081993BA:
- movs r1, 0
-_081993BC:
- bl sub_81991F8
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _081993CE
- movs r0, 0x5
- bl PlaySE
-_081993CE:
- movs r0, 0x2
- negs r0, r0
-_081993D2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8199334
-
- thumb_func_start sub_81993D8
-sub_81993D8: @ 81993D8
- push {r4,r5,lr}
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08199400
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- b _0819947C
- .pool
-_08199400:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819940E
- movs r0, 0x1
- negs r0, r0
- b _0819947C
-_0819940E:
- ldrh r0, [r4, 0x30]
- movs r5, 0xF0
- adds r1, r5, 0
- ands r1, r0
- cmp r1, 0x40
- bne _08199428
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08199474
-_08199428:
- cmp r1, 0x80
- bne _08199438
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- b _08199474
-_08199438:
- cmp r1, 0x20
- beq _08199448
- bl sub_812210C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08199454
-_08199448:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _08199472
-_08199454:
- ldrh r1, [r4, 0x30]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x10
- beq _0819946A
- bl sub_812210C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08199478
-_0819946A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_08199472:
- movs r1, 0
-_08199474:
- bl sub_8199134
-_08199478:
- movs r0, 0x2
- negs r0, r0
-_0819947C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81993D8
-
- thumb_func_start sub_8199484
-sub_8199484: @ 8199484
- push {r4-r6,lr}
- ldr r6, =gUnknown_0203CD90
- ldrb r4, [r6, 0x2]
- ldr r5, =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081994AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- ldrsb r0, [r6, r0]
- b _0819951E
- .pool
-_081994AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081994BA
- movs r0, 0x1
- negs r0, r0
- b _0819951E
-_081994BA:
- ldrh r0, [r5, 0x30]
- movs r6, 0xF0
- adds r1, r6, 0
- ands r1, r0
- cmp r1, 0x40
- bne _081994CE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- b _08199508
-_081994CE:
- cmp r1, 0x80
- bne _081994D8
- movs r0, 0
- movs r1, 0x1
- b _08199508
-_081994D8:
- cmp r1, 0x20
- beq _081994E8
- bl sub_812210C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081994EE
-_081994E8:
- movs r0, 0x1
- negs r0, r0
- b _08199506
-_081994EE:
- ldrh r1, [r5, 0x30]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x10
- beq _08199504
- bl sub_812210C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0819951A
-_08199504:
- movs r0, 0x1
-_08199506:
- movs r1, 0
-_08199508:
- bl sub_81991F8
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0819951A
- movs r0, 0x5
- bl PlaySE
-_0819951A:
- movs r0, 0x2
- negs r0, r0
-_0819951E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8199484
-
- thumb_func_start InitMenuInUpperLeftCorner
-@ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed)
-InitMenuInUpperLeftCorner: @ 8199524
- push {r4-r6,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, =gUnknown_0203CD90
- movs r6, 0
- strb r6, [r4]
- movs r2, 0x1
- strb r2, [r4, 0x1]
- strb r6, [r4, 0x3]
- subs r1, 0x1
- strb r1, [r4, 0x4]
- strb r0, [r4, 0x5]
- strb r2, [r4, 0x6]
- movs r0, 0x10
- strb r0, [r4, 0x8]
- strb r3, [r4, 0xB]
- cmp r5, 0
- blt _08199554
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r5, r0
- ble _0819955C
-_08199554:
- strb r6, [r4, 0x2]
- b _0819955E
- .pool
-_0819955C:
- strb r5, [r4, 0x2]
-_0819955E:
- movs r0, 0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end InitMenuInUpperLeftCorner
-
- thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- bl InitMenuInUpperLeftCorner
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
-
- thumb_func_start PrintMenuTable
-PrintMenuTable: @ 819958C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r5, 0
- cmp r5, r7
- bcs _081995D0
- movs r6, 0x80
- lsls r6, 17
- adds r4, r2, 0
-_081995AA:
- ldr r2, [r4]
- lsrs r0, r6, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r8
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0x80
- lsls r0, 21
- adds r6, r0
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- bcc _081995AA
-_081995D0:
- mov r0, r8
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PrintMenuTable
-
- thumb_func_start sub_81995E4
-sub_81995E4: @ 81995E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r9, r2
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- mov r0, sp
- movs r1, 0
- mov r10, r1
- strb r6, [r0, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- movs r0, 0x1
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- mov r0, sp
- mov r1, r10
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- movs r1, 0x8
- strb r1, [r0, 0x6]
- strb r1, [r0, 0x8]
- movs r4, 0
- cmp r4, r7
- bcs _081996A6
- mov r5, sp
-_0819967C:
- mov r1, r8
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r9
- ldr r0, [r0]
- str r0, [sp]
- lsls r0, r4, 4
- adds r0, 0x1
- strb r0, [r5, 0x7]
- strb r0, [r5, 0x9]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0819967C
-_081996A6:
- adds r0, r6, 0
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81995E4
-
- thumb_func_start CreateYesNoMenu
-@ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos)
-CreateYesNoMenu: @ 81996C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gUnknown_0203CD9F
- mov r8, r1
- bl AddWindow
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowBorderStyle
- ldr r0, =gUnknown_085EE491
- str r0, [sp]
- mov r1, sp
- mov r2, r8
- ldrb r0, [r2]
- movs r2, 0
- mov r9, r2
- strb r0, [r1, 0x4]
- mov r0, sp
- movs r2, 0x1
- strb r2, [r0, 0x5]
- movs r0, 0x8
- strb r0, [r1, 0x6]
- mov r0, sp
- strb r2, [r0, 0x7]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- movs r0, 0x1
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- movs r0, 0x1
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- mov r0, sp
- mov r1, r9
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- adds r2, r6, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateYesNoMenu
-
- thumb_func_start sub_81997AC
-sub_81997AC: @ 81997AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- movs r7, 0
- cmp r7, r3
- bcs _08199824
-_081997D4:
- movs r4, 0
- adds r0, r7, 0x1
- mov r9, r0
- cmp r4, r6
- bcs _0819981C
- lsls r0, r7, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0x80
- lsls r5, 20
-_081997EC:
- adds r0, r7, 0
- muls r0, r6
- adds r0, r4
- lsls r0, 3
- ldr r1, [sp, 0x34]
- adds r0, r1
- ldr r2, [r0]
- lsrs r3, r5, 24
- mov r0, r8
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r10
- movs r1, 0x1
- bl PrintTextOnWindow
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- adds r5, r0
- adds r4, 0x1
- cmp r4, r6
- bcc _081997EC
-_0819981C:
- mov r7, r9
- ldr r4, [sp, 0x10]
- cmp r7, r4
- bcc _081997D4
-_08199824:
- mov r0, r10
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81997AC
-
- thumb_func_start sub_819983C
-sub_819983C: @ 819983C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- mov r0, sp
- movs r6, 0
- ldrb r1, [r0, 0x10]
- strb r1, [r0, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r5, 0xF
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- movs r0, 0x1
- movs r1, 0x6
- bl GetFontAttribute
- mov r3, sp
- adds r1, r5, 0
- ands r1, r0
- ldrb r2, [r3, 0xD]
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x7
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xD]
- adds r1, r5, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- movs r0, 0x1
- movs r1, 0x4
- bl GetFontAttribute
- mov r1, sp
- ands r5, r0
- ldrb r0, [r1, 0xC]
- ands r4, r0
- orrs r4, r5
- strb r4, [r1, 0xC]
- mov r0, sp
- strb r6, [r0, 0xA]
- strb r6, [r0, 0xB]
- movs r7, 0
- cmp r7, r10
- bcs _0819992A
-_081998D6:
- movs r5, 0
- adds r2, r7, 0x1
- mov r9, r2
- cmp r5, r8
- bcs _08199920
- mov r4, sp
- lsls r0, r7, 4
- adds r6, r0, 0x1
-_081998E6:
- mov r0, r8
- muls r0, r7
- adds r0, r5
- ldr r1, [sp, 0x3C]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 3
- ldr r2, [sp, 0x38]
- adds r0, r2
- ldr r0, [r0]
- str r0, [sp]
- ldr r1, [sp, 0x14]
- adds r0, r1, 0
- muls r0, r5
- adds r0, 0x8
- strb r0, [r4, 0x6]
- strb r6, [r4, 0x7]
- strb r0, [r4, 0x8]
- strb r6, [r4, 0x9]
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _081998E6
-_08199920:
- mov r2, r9
- lsls r0, r2, 24
- lsrs r7, r0, 24
- cmp r7, r10
- bcc _081998D6
-_0819992A:
- ldr r0, [sp, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819983C
-
- thumb_func_start sub_8199944
-sub_8199944: @ 8199944
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r6, =gUnknown_0203CD90
- movs r4, 0
- mov r12, r4
- mov r4, r12
- strb r4, [r6]
- movs r5, 0x1
- strb r5, [r6, 0x1]
- strb r4, [r6, 0x3]
- adds r4, r2, 0
- muls r4, r3
- subs r4, 0x1
- strb r4, [r6, 0x4]
- strb r0, [r6, 0x5]
- strb r5, [r6, 0x6]
- strb r1, [r6, 0x7]
- movs r0, 0x10
- strb r0, [r6, 0x8]
- strb r2, [r6, 0x9]
- strb r3, [r6, 0xA]
- cmp r7, 0
- blt _08199986
- movs r0, 0x4
- ldrsb r0, [r6, r0]
- cmp r7, r0
- ble _08199990
-_08199986:
- mov r0, r12
- strb r0, [r6, 0x2]
- b _08199992
- .pool
-_08199990:
- strb r7, [r6, 0x2]
-_08199992:
- movs r0, 0
- movs r1, 0
- bl sub_8199134
- ldr r0, =gUnknown_0203CD90
- ldrb r0, [r0, 0x2]
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8199944
-
- thumb_func_start clear_scheduled_bg_copies_to_vram
-@ void clear_scheduled_bg_copies_to_vram()
-clear_scheduled_bg_copies_to_vram: @ 81999A8
- push {lr}
- ldr r0, =gUnknown_0203CDA4
- movs r1, 0
- movs r2, 0x4
- bl memset
- pop {r0}
- bx r0
- .pool
- thumb_func_end clear_scheduled_bg_copies_to_vram
-
- thumb_func_start schedule_bg_copy_tilemap_to_vram
-@ void schedule_bg_copy_tilemap_to_vram(u8 bg_id)
-schedule_bg_copy_tilemap_to_vram: @ 81999BC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CDA4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .pool
- thumb_func_end schedule_bg_copy_tilemap_to_vram
-
- thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
-@ void do_scheduled_bg_tilemap_copies_to_vram()
-do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0
- push {r4,lr}
- ldr r4, =gUnknown_0203CDA4
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _081999E4
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4]
-_081999E4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- bne _081999F4
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x1]
-_081999F4:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- bne _08199A04
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x2]
-_08199A04:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x1
- bne _08199A14
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- strb r0, [r4, 0x3]
-_08199A14:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end do_scheduled_bg_tilemap_copies_to_vram
-
- thumb_func_start reset_temp_tile_data_buffers
-@ void reset_temp_tile_data_buffers()
-reset_temp_tile_data_buffers: @ 8199A20
- push {lr}
- ldr r3, =gUnknown_0203CDA8
- ldr r1, =gUnknown_0203CDAC
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x7C
-_08199A2C:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _08199A2C
- movs r0, 0
- strh r0, [r3]
- pop {r0}
- bx r0
- .pool
- thumb_func_end reset_temp_tile_data_buffers
-
- thumb_func_start free_temp_tile_data_buffers_if_possible
-free_temp_tile_data_buffers_if_possible: @ 8199A44
- push {r4-r6,lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08199A88
- ldr r1, =gUnknown_0203CDA8
- ldrh r0, [r1]
- cmp r0, 0
- beq _08199A7C
- movs r4, 0
- ldrh r1, [r1]
- cmp r4, r1
- bge _08199A76
- ldr r5, =gUnknown_0203CDAC
- movs r6, 0
-_08199A64:
- ldr r0, [r5]
- bl Free
- stm r5!, {r6}
- adds r4, 0x1
- ldr r0, =gUnknown_0203CDA8
- ldrh r0, [r0]
- cmp r4, r0
- blt _08199A64
-_08199A76:
- ldr r1, =gUnknown_0203CDA8
- movs r0, 0
- strh r0, [r1]
-_08199A7C:
- movs r0, 0
- b _08199A8A
- .pool
-_08199A88:
- movs r0, 0x1
-_08199A8A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end free_temp_tile_data_buffers_if_possible
-
- thumb_func_start decompress_and_copy_tile_data_to_vram
-@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode)
-decompress_and_copy_tile_data_to_vram: @ 8199A90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r1, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r6, =gUnknown_0203CDA8
- ldrh r0, [r6]
- cmp r0, 0x1F
- bhi _08199AF8
- adds r0, r4, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r4, r0, 0
- cmp r5, 0
- bne _08199AC8
- ldr r5, [sp, 0x4]
-_08199AC8:
- cmp r4, 0
- beq _08199AEC
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r4, 0
- mov r3, r9
- bl copy_decompressed_tile_data_to_vram
- ldr r2, =gUnknown_0203CDAC
- ldrh r0, [r6]
- adds r1, r0, 0x1
- strh r1, [r6]
- lsls r0, 16
- lsrs r0, 14
- adds r0, r2
- str r4, [r0]
-_08199AEC:
- adds r0, r4, 0
- b _08199AFA
- .pool
-_08199AF8:
- movs r0, 0
-_08199AFA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end decompress_and_copy_tile_data_to_vram
-
- thumb_func_start copy_decompressed_tile_data_to_vram_autofree
-@ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
-copy_decompressed_tile_data_to_vram_autofree: @ 8199B08
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r2, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r1, 0
- add r1, sp, 0x4
- bl malloc_and_decompress
- adds r6, r0, 0
- cmp r5, 0
- bne _08199B36
- ldr r5, [sp, 0x4]
-_08199B36:
- cmp r6, 0
- beq _08199B6E
- ldr r0, =task_free_buf_after_copying_tile_data_to_vram
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r5, 16
- lsrs r2, 16
- str r7, [sp]
- mov r0, r8
- adds r1, r6, 0
- mov r3, r9
- bl copy_decompressed_tile_data_to_vram
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r6, 0
- bl SetWordTaskArg
-_08199B6E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end copy_decompressed_tile_data_to_vram_autofree
-
- thumb_func_start task_free_buf_after_copying_tile_data_to_vram
-@ void task_free_buf_after_copying_tile_data_to_vram(int task_id)
-task_free_buf_after_copying_tile_data_to_vram: @ 8199B84
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- bl CheckForSpaceForDma3Request
- lsls r0, 16
- cmp r0, 0
- bne _08199BB4
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWordTaskArg
- bl Free
- adds r0, r4, 0
- bl DestroyTask
-_08199BB4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_free_buf_after_copying_tile_data_to_vram
-
- thumb_func_start malloc_and_decompress
-@ void *malloc_and_decompress(void *src, int *size)
-malloc_and_decompress: @ 8199BC0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r0, [r5, 0x1]
- strb r0, [r1]
- ldrb r0, [r5, 0x2]
- strb r0, [r1, 0x1]
- ldrb r0, [r5, 0x3]
- strb r0, [r1, 0x2]
- movs r0, 0
- strb r0, [r1, 0x3]
- ldr r0, [r1]
- bl Alloc
- adds r4, r0, 0
- cmp r4, 0
- beq _08199BE8
- adds r0, r5, 0
- adds r1, r4, 0
- bl LZ77UnCompWram
-_08199BE8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end malloc_and_decompress
-
- thumb_func_start copy_decompressed_tile_data_to_vram
-@ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
-copy_decompressed_tile_data_to_vram: @ 8199BF0
- push {r4,lr}
- adds r4, r1, 0
- ldr r1, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08199C18
- cmp r1, 0x1
- beq _08199C20
- ldr r0, =0x0000ffff
- b _08199C2A
- .pool
-_08199C18:
- adds r1, r4, 0
- bl LoadBgTiles
- b _08199C26
-_08199C20:
- adds r1, r4, 0
- bl LoadBgTilemap
-_08199C26:
- lsls r0, 16
- lsrs r0, 16
-_08199C2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end copy_decompressed_tile_data_to_vram
-
- thumb_func_start sub_8199C30
-sub_8199C30: @ 8199C30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r2, 0
- ldr r4, [sp, 0x28]
- ldr r2, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- bl GetBgTilemapBuffer
- mov r8, r0
- adds r0, r5, r4
- cmp r5, r0
- bge _08199CA8
- mov r9, r0
-_08199C6E:
- ldr r3, [sp]
- ldr r1, [sp, 0x4]
- adds r0, r3, r1
- adds r7, r5, 0x1
- cmp r3, r0
- bge _08199CA0
- lsls r6, r5, 5
- ldr r1, =0x00000fff
- mov r12, r1
- mov r1, r10
- lsls r5, r1, 12
- adds r4, r0, 0
-_08199C86:
- adds r1, r6, r3
- lsls r1, 1
- add r1, r8
- ldrh r2, [r1]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- blt _08199C86
-_08199CA0:
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, r9
- blt _08199C6E
-_08199CA8:
- 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_8199C30
-
- thumb_func_start sub_8199CBC
-sub_8199CBC: @ 8199CBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- ldr r1, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- bl GetBgTilemapBuffer
- adds r7, r0, 0
- movs r0, 0
- cmp r0, r8
- bcs _08199D2A
-_08199CF4:
- movs r2, 0
- adds r6, r0, 0x1
- cmp r2, r5
- bcs _08199D22
- adds r4, r0, 0
- muls r4, r5
- ldr r1, [sp]
- adds r0, r1
- lsls r3, r0, 5
-_08199D06:
- adds r1, r4, r2
- lsls r1, 1
- add r1, r10
- adds r0, r3, r2
- add r0, r9
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r5
- bcc _08199D06
-_08199D22:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _08199CF4
-_08199D2A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8199CBC
-
- thumb_func_start sub_8199D3C
-sub_8199D3C: @ 8199D3C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r0, [sp, 0x14]
- adds r4, r2, 0
- muls r4, r3
- cmp r0, 0x1
- bne _08199D64
- adds r3, r6, 0
- movs r2, 0
- cmp r2, r4
- bge _08199D8C
-_08199D54:
- adds r1, r3, r2
- ldrb r0, [r1]
- adds r0, r5
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, r4
- blt _08199D54
- b _08199D8C
-_08199D64:
- cmp r4, 0
- ble _08199D8C
- movs r0, 0xFC
- lsls r0, 8
- mov r12, r0
- ldr r0, =0x000003ff
- adds r7, r0, 0
- adds r3, r6, 0
- adds r2, r4, 0
-_08199D76:
- ldrh r0, [r3]
- mov r1, r12
- ands r1, r0
- adds r0, r5
- ands r0, r7
- orrs r1, r0
- strh r1, [r3]
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bne _08199D76
-_08199D8C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8199D3C
-
- thumb_func_start sub_8199D98
-sub_8199D98: @ 8199D98
- push {lr}
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_8199D98
-
- thumb_func_start sub_8199DF0
-sub_8199DF0: @ 8199DF0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r2
- mov r9, r3
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0x4
- bl GetBgAttribute
- lsls r0, 16
- movs r7, 0x40
- cmp r0, 0
- bne _08199E16
- movs r7, 0x20
-_08199E16:
- adds r0, r5, 0
- movs r1, 0x1
- bl GetBgAttribute
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl GetBgAttribute
- lsls r4, 16
- lsrs r4, 2
- lsls r0, 16
- lsrs r0, 16
- add r0, r8
- muls r0, r7
- adds r4, r0
- lsls r0, r6, 24
- lsls r1, r6, 16
- orrs r0, r1
- lsls r1, r6, 8
- orrs r0, r1
- orrs r0, r6
- movs r1, 0xC0
- lsls r1, 19
- adds r4, r1
- mov r2, r9
- muls r2, r7
- lsls r2, 16
- lsrs r2, 16
- adds r1, r4, 0
- movs r3, 0x1
- bl RequestDma3Fill
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8199DF0
-
- thumb_func_start box_print
-box_print: @ 8199E64
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r1, 0
- ldr r6, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r1, [sp, 0x28]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- str r1, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r4, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- ldrb r0, [r0, 0x6]
- strb r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r1, 0x9]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetFontAttribute
- mov r1, sp
- strb r0, [r1, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- movs r1, 0x10
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r4, 0xF
- strb r0, [r2, 0xC]
- ldrb r2, [r6]
- adds r0, r4, 0
- ands r0, r2
- ldrb r2, [r3, 0xD]
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xD]
- mov r2, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r1, r4
- orrs r1, r0
- strb r1, [r2, 0xD]
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end box_print
-
- thumb_func_start AddTextPrinterParametrized2
-@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str)
-AddTextPrinterParametrized2: @ 8199EEC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r1, 0
- ldr r1, [sp, 0x28]
- mov r8, r1
- ldr r1, [sp, 0x2C]
- mov r9, r1
- ldr r6, [sp, 0x30]
- ldr r1, [sp, 0x34]
- ldr r4, [sp, 0x38]
- str r4, [sp]
- mov r4, sp
- strb r0, [r4, 0x4]
- mov r0, sp
- strb r5, [r0, 0x5]
- strb r2, [r0, 0x6]
- strb r3, [r0, 0x7]
- mov r2, sp
- ldrb r0, [r0, 0x6]
- strb r0, [r2, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x7]
- strb r0, [r2, 0x9]
- mov r0, sp
- mov r2, r8
- strb r2, [r0, 0xA]
- mov r2, r9
- strb r2, [r0, 0xB]
- ldrb r3, [r4, 0xC]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r4, 0xC]
- mov r3, sp
- ldrb r0, [r6, 0x1]
- lsls r0, 4
- movs r5, 0xF
- strb r0, [r3, 0xC]
- ldrb r3, [r6]
- adds r0, r5, 0
- ands r0, r3
- ldrb r3, [r4, 0xD]
- ands r2, r3
- orrs r2, r0
- strb r2, [r4, 0xD]
- mov r3, sp
- ldrb r0, [r6, 0x2]
- lsls r0, 4
- ands r2, r5
- orrs r2, r0
- strb r2, [r3, 0xD]
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end AddTextPrinterParametrized2
-
- thumb_func_start sub_8199F74
-sub_8199F74: @ 8199F74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r1, 0
- ldr r4, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- mov r8, r1
- ldr r7, [sp, 0x34]
- ldr r5, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- str r2, [sp]
- mov r1, sp
- strb r0, [r1, 0x4]
- mov r0, sp
- strb r6, [r0, 0x5]
- strb r3, [r0, 0x6]
- strb r4, [r0, 0x7]
- strb r3, [r0, 0x8]
- strb r4, [r0, 0x9]
- strb r5, [r0, 0xA]
- mov r1, r9
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r5, 0x10
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0xC]
- adds r0, r6, 0
- movs r1, 0x5
- bl GetFontAttribute
- mov r3, sp
- lsls r0, 4
- ldrb r2, [r3, 0xC]
- movs r4, 0xF
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0xC]
- adds r0, r6, 0
- movs r1, 0x6
- bl GetFontAttribute
- mov r2, sp
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r2, 0xD]
- ands r5, r0
- orrs r5, r1
- strb r5, [r2, 0xD]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetFontAttribute
- mov r2, sp
- lsls r0, 4
- ldrb r1, [r2, 0xD]
- ands r4, r1
- orrs r4, r0
- strb r4, [r2, 0xD]
- mov r0, sp
- mov r1, r8
- adds r2, r7, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8199F74
-
- thumb_func_start sub_819A024
-sub_819A024: @ 819A024
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldrb r0, [r3]
- ldr r6, =gStringVar4
- cmp r0, 0xFF
- beq _0819A04C
-_0819A042:
- adds r2, 0x1
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0819A042
-_0819A04C:
- adds r0, r6, 0
- bl StringExpandPlaceholders
- lsls r3, r4, 24
- lsrs r3, 24
- lsls r0, r5, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x1
- adds r2, r6, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A024
-
- thumb_func_start sub_819A080
-sub_819A080: @ 819A080
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x48]
- ldr r4, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r5, [sp, 0x54]
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, [sp, 0x4]
- ldrh r0, [r2, 0x4]
- ldr r2, [sp, 0xC]
- subs r0, r2
- ldr r2, [sp, 0x8]
- adds r2, r1, r2
- str r2, [sp, 0x10]
- cmp r0, r1
- bge _0819A0CC
- ldr r1, [sp, 0x8]
- adds r0, r1
- str r0, [sp, 0x10]
-_0819A0CC:
- ldr r2, [sp, 0x4]
- ldrh r1, [r2, 0x6]
- subs r0, r1, r4
- cmp r0, r5
- bge _0819A0DE
- adds r0, r3, r1
- subs r0, r4
- str r0, [sp, 0x14]
- b _0819A0E2
-_0819A0DE:
- adds r5, r3, r5
- str r5, [sp, 0x14]
-_0819A0E2:
- ldr r0, [sp]
- ldrh r1, [r0, 0x4]
- movs r2, 0x7
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x18]
- ldr r0, [sp, 0x4]
- ldrh r1, [r0, 0x4]
- adds r0, r1, 0
- ands r0, r2
- adds r1, r0
- asrs r1, 3
- str r1, [sp, 0x1C]
- mov r12, r3
- mov r8, r4
- ldr r1, [sp, 0x14]
- cmp r12, r1
- blt _0819A10C
- b _0819A24A
-_0819A10C:
- ldr r5, [sp, 0x8]
- ldr r6, [sp, 0xC]
- mov r2, r12
- adds r2, 0x1
- str r2, [sp, 0x20]
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x24]
- ldr r1, [sp, 0x10]
- cmp r5, r1
- blt _0819A124
- b _0819A23A
-_0819A124:
- movs r7, 0x1
- movs r2, 0xF0
- mov r10, r2
- movs r0, 0xF
- mov r9, r0
-_0819A12E:
- asrs r0, r5, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r5, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- asrs r0, r2, 3
- ldr r2, [sp, 0x18]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r12
- lsls r0, r2, 29
- lsrs r0, 27
- adds r3, r1, r0
- asrs r0, r6, 1
- movs r1, 0x3
- ands r0, r1
- ldr r2, [sp, 0x4]
- ldr r1, [r2]
- adds r1, r0
- asrs r0, r6, 3
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- asrs r0, r2, 3
- ldr r2, [sp, 0x1C]
- muls r0, r2
- lsls r0, 5
- adds r1, r0
- mov r2, r8
- lsls r0, r2, 29
- lsrs r0, 27
- adds r4, r1, r0
- adds r0, r4, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A1DA
- subs r4, 0x1
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A1B2
- ldrh r0, [r4]
- ldr r2, =0x00000fff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A1A8
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 8
- b _0819A22A
- .pool
-_0819A1A8:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 12
- b _0819A22A
-_0819A1B2:
- ldrh r0, [r4]
- ldr r2, =0x0000f0ff
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A1D0
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsls r0, 4
- b _0819A22A
- .pool
-_0819A1D0:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 8
- b _0819A22A
-_0819A1DA:
- adds r0, r6, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A206
- ldrh r0, [r4]
- ldr r2, =0x0000ff0f
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A1FC
- ldrb r1, [r3]
- mov r0, r10
- b _0819A228
- .pool
-_0819A1FC:
- ldrb r1, [r3]
- mov r0, r9
- ands r0, r1
- lsls r0, 4
- b _0819A22A
-_0819A206:
- ldrh r0, [r4]
- ldr r2, =0x0000fff0
- ands r2, r0
- adds r0, r5, 0
- ands r0, r7
- cmp r0, 0
- beq _0819A224
- ldrb r1, [r3]
- mov r0, r10
- ands r0, r1
- lsrs r0, 4
- b _0819A22A
- .pool
-_0819A224:
- ldrb r1, [r3]
- mov r0, r9
-_0819A228:
- ands r0, r1
-_0819A22A:
- orrs r2, r0
- strh r2, [r4]
- adds r5, 0x1
- adds r6, 0x1
- ldr r0, [sp, 0x10]
- cmp r5, r0
- bge _0819A23A
- b _0819A12E
-_0819A23A:
- ldr r1, [sp, 0x20]
- mov r12, r1
- ldr r2, [sp, 0x24]
- mov r8, r2
- ldr r0, [sp, 0x14]
- cmp r12, r0
- bge _0819A24A
- b _0819A10C
-_0819A24A:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819A080
-
- thumb_func_start sub_819A25C
-sub_819A25C: @ 819A25C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- lsrs r0, 16
- bl sub_80D30B0
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819A25C
-
- thumb_func_start sub_819A27C
-sub_819A27C: @ 819A27C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r4, r3, 0
- ldr r5, [sp, 0x18]
- lsls r6, 24
- lsrs r6, 24
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- movs r2, 0x1
- bl sub_80D2EDC
- adds r1, r0, 0
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819A27C
-
- thumb_func_start sub_819A2BC
-sub_819A2BC: @ 819A2BC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _0819A2DC
- cmp r1, 0x1
- ble _0819A2D2
- cmp r1, 0x2
- beq _0819A2E4
-_0819A2D2:
- ldr r0, =gUnknown_08DC4318
- b _0819A2E6
- .pool
-_0819A2DC:
- ldr r0, =gUnknown_08DC4338
- b _0819A2E6
- .pool
-_0819A2E4:
- ldr r0, =gUnknown_08DC4358
-_0819A2E6:
- adds r1, r2, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A2BC
-
- thumb_func_start blit_move_info_icon
-@ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y)
-blit_move_info_icon: @ 819A2F8
- push {r4,r5,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r4, =gUnknown_0860F0D4
- lsrs r1, 22
- adds r1, r4
- ldrh r5, [r1, 0x2]
- lsls r5, 5
- ldr r4, =gUnknown_08DC4378
- adds r5, r4
- movs r4, 0x80
- str r4, [sp]
- str r4, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- ldrb r2, [r1]
- str r2, [sp, 0x10]
- ldrb r1, [r1, 0x1]
- str r1, [sp, 0x14]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0
- bl BlitBitmapRectToWindow
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end blit_move_info_icon
-
- thumb_func_start sub_819A344
-sub_819A344: @ 819A344
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r5, r1, 0
- movs r1, 0xFC
- strb r1, [r5]
- adds r5, 0x1
- movs r0, 0x1
- strb r0, [r5]
- adds r5, 0x1
- strb r2, [r5]
- adds r5, 0x1
- strb r1, [r5]
- adds r5, 0x1
- movs r0, 0x3
- strb r0, [r5]
- adds r5, 0x1
- adds r2, 0x1
- strb r2, [r5]
- adds r5, 0x1
- cmp r3, 0x4
- bhi _0819A43C
- lsls r0, r3, 2
- ldr r1, =_0819A384
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819A384:
- .4byte _0819A398
- .4byte _0819A3A8
- .4byte _0819A3D6
- .4byte _0819A404
- .4byte _0819A414
-_0819A398:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringCopy
- b _0819A43C
- .pool
-_0819A3A8:
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _0819A3B8
- movs r0, 0x1
- bl pokedex_count
- b _0819A3BE
-_0819A3B8:
- movs r0, 0x1
- bl sub_80C0844
-_0819A3BE:
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- movs r0, 0xFF
- strb r0, [r5]
- b _0819A43C
-_0819A3D6:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrh r1, [r0, 0xE]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- movs r0, 0xF0
- strb r0, [r5]
- adds r5, 0x1
- ldr r0, [r4]
- ldrb r1, [r0, 0x10]
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- b _0819A43C
- .pool
-_0819A404:
- ldr r0, =gUnknown_02037318
- ldrb r1, [r0, 0x14]
- adds r0, r5, 0
- bl sub_81245DC
- b _0819A43C
- .pool
-_0819A414:
- ldr r4, =0x00000867
- movs r6, 0
- adds r7, r5, 0x1
-_0819A41A:
- lsls r0, r4, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0819A42A
- adds r6, 0x1
-_0819A42A:
- adds r4, 0x1
- ldr r0, =0x0000086e
- cmp r4, r0
- ble _0819A41A
- adds r0, r6, 0
- subs r0, 0x5F
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r7]
-_0819A43C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A344
-
- thumb_func_start sub_819A44C
-sub_819A44C: @ 819A44C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsrs r0, 24
- cmp r4, r0
- bne _0819A4BA
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819A4B0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0819A484
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _0819A4C2
-_0819A484:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0819A4A6
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x20
- strh r0, [r5, 0x2E]
- b _0819A4C2
-_0819A4A6:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _0819A4C2
-_0819A4B0:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0819A4C2
-_0819A4BA:
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
-_0819A4C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819A44C
-
- thumb_func_start sub_819A4C8
-sub_819A4C8: @ 819A4C8
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_819A4C8
-
- thumb_func_start sub_819A4E4
-sub_819A4E4: @ 819A4E4
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_819A4E4
-
- thumb_func_start sub_819A4F8
-sub_819A4F8: @ 819A4F8
- push {lr}
- ldr r0, =gUnknown_0300127C
- movs r1, 0
- str r1, [r0]
- ldr r0, =sub_819A514
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A4F8
-
- thumb_func_start sub_819A514
-sub_819A514: @ 819A514
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _0819A528
- b _0819A98E
-_0819A528:
- lsls r0, 2
- ldr r1, =_0819A53C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819A53C:
- .4byte _0819A568
- .4byte _0819A5C0
- .4byte _0819A69C
- .4byte _0819A77C
- .4byte _0819A7CC
- .4byte _0819A868
- .4byte _0819A8A4
- .4byte _0819A8AC
- .4byte _0819A8C4
- .4byte _0819A8DC
- .4byte _0819A8FC
-_0819A568:
- ldr r4, =gUnknown_0203CE3C
- ldr r0, [r4]
- cmp r0, 0
- beq _0819A578
- bl Free
- movs r0, 0
- str r0, [r4]
-_0819A578:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08610428
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_08610434
- bl InitWindows
- bl DeactivateAllTextPrinters
- b _0819A8E6
- .pool
-_0819A5C0:
- ldr r5, =gUnknown_0203CE2C
- movs r4, 0x88
- lsls r4, 3
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE30
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- ldr r5, =gUnknown_0203CE34
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE38
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- 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, 0
- bl SetGpuReg
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A69C:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r0, =gUnknown_08DC0754
- ldr r5, =gUnknown_0203CE2C
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 2
- bl CpuSet
- ldr r0, =gUnknown_0861033C
- ldr r4, =gUnknown_0203CE30
- ldr r1, [r4]
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 3
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, [r4]
- movs r0, 0x3
- movs r2, 0x60
- movs r3, 0
- bl LoadBgTiles
- ldr r0, =gUnknown_08DC0B94
- ldr r4, =gUnknown_0203CE34
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTilemap
- ldr r0, =gUnknown_08DC0714
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r4, =gUnknown_0861046C
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x8
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0x1
- bne _0819A738
- ldr r0, =gPlttBufferUnfaded
- movs r2, 0xA9
- lsls r2, 2
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- strh r1, [r0]
-_0819A738:
- ldr r0, =gUnknown_0861039C
- movs r1, 0x20
- movs r2, 0x4
- bl LoadPalette
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A77C:
- ldr r0, =gUnknown_0203CE38
- ldr r1, [r0]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- ldr r5, =gUnknown_0861023C
- movs r4, 0x8
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0xB
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0x14
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _0819A8E6
- .pool
-_0819A7CC:
- ldr r0, =gUnknown_086103F4
- bl LoadSpritePalettes
- ldr r0, =gUnknown_086103BC
- bl LoadSpriteSheets
- ldr r0, =gUnknown_086103E4
- bl LoadCompressedObjectPic
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r0, =sub_819A4E4
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x9A
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _0819A854
- movs r0, 0x58
- movs r1, 0x98
- movs r2, 0x20
- movs r3, 0x60
- bl sub_819C5D0
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819A85A
- .pool
-_0819A854:
- movs r0, 0x3
- bl HideBg
-_0819A85A:
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A868:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- cmp r0, 0x1
- bne _0819A878
- ldr r0, =gUnknown_0203CF20
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
-_0819A878:
- bl sub_819A9AC
- bl sub_819AA18
- ldr r0, [r4]
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _0819A88C
- bl sub_819BE34
-_0819A88C:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A8A4:
- bl sub_819BA64
- movs r0, 0x2
- b _0819A8E2
-_0819A8AC:
- bl sub_819BCF8
- movs r0, 0x5
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A8C4:
- bl sub_819B9E8
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A8DC:
- bl sub_819B9B4
- movs r0, 0
-_0819A8E2:
- bl PutWindowTilemap
-_0819A8E6:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_0819A8EE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0819A98E
- .pool
-_0819A8FC:
- ldr r0, =sub_819C69C
- movs r1, 0
- bl CreateTask
- ldr r2, =gUnknown_0300127C
- ldr r1, [r2]
- ldr r3, =0x000002a1
- adds r1, r3
- strb r0, [r1]
- ldr r3, [r2]
- ldrb r5, [r3, 0x6]
- cmp r5, 0
- bne _0819A954
- ldr r4, =gTasks
- ldr r1, =0x000002a1
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- ldr r0, =sub_819B378
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- b _0819A988
- .pool
-_0819A954:
- ldr r4, =gTasks
- ldr r2, =0x000002a1
- adds r0, r3, r2
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x8]
- ldr r1, =0x000002a2
- adds r0, r3, r1
- strb r2, [r0]
- ldr r0, =sub_819B124
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xD
- strh r1, [r0, 0x8]
-_0819A988:
- ldr r0, =sub_819A4C8
- bl SetMainCallback2
-_0819A98E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A514
-
- thumb_func_start sub_819A9AC
-sub_819A9AC: @ 819A9AC
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r4, [r5]
- cmp r4, 0
- bne _0819AA12
- movs r0, 0xAB
- lsls r0, 2
- bl AllocZeroed
- str r0, [r5]
- strb r4, [r0, 0x3]
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, [r5]
- strb r4, [r0, 0x6]
- movs r2, 0
- movs r4, 0x6C
- movs r3, 0
-_0819A9D2:
- ldr r0, [r5]
- adds r1, r2, 0
- muls r1, r4
- adds r0, r1
- strb r3, [r0, 0x10]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819A9D2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _0819AA0C
- movs r0, 0
- bl sub_819B484
- b _0819AA12
- .pool
-_0819AA0C:
- movs r0, 0
- bl sub_819B63C
-_0819AA12:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819A9AC
-
- thumb_func_start sub_819AA18
-sub_819AA18: @ 819AA18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- mov r8, r4
- ldr r7, =gSprites
-_0819AA24:
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- subs r1, r4
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- ldr r0, =gUnknown_086105D8
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- movs r5, 0x6C
- adds r1, r4, 0
- muls r1, r5
- adds r2, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r2, 0xE]
- ldrh r1, [r2, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r0, r4, 0
- bl sub_819ADAC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AA24
- ldr r0, [r6]
- ldrb r1, [r0, 0x3]
- ldr r4, =gSprites
- muls r1, r5
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, =gUnknown_086105F0
- movs r2, 0x20
- ldrsh r1, [r1, r2]
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- movs r5, 0
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_08610608
- movs r1, 0xB0
- movs r2, 0x70
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- strb r0, [r1, 0x1]
- ldr r0, =gUnknown_08610620
- movs r1, 0xB0
- movs r2, 0x90
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- strb r0, [r1, 0x2]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r5, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AA18
-
- thumb_func_start sub_819AB40
-sub_819AB40: @ 819AB40
- push {r4-r6,lr}
- movs r4, 0
-_0819AB44:
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- movs r0, 0x6C
- muls r0, r4
- adds r1, r0
- ldrh r1, [r1, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AB44
- ldr r0, [r6]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AB40
-
- thumb_func_start sub_819ABA8
-sub_819ABA8: @ 819ABA8
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819ABC8
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r0, 0
- cmp r3, 0x5
- beq _0819ABC4
- adds r0, r3, 0x1
- b _0819ABDE
- .pool
-_0819ABC4:
- movs r0, 0
- b _0819ABDE
-_0819ABC8:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819ABDC
- subs r0, r3, 0x1
- b _0819ABDE
- .pool
-_0819ABDC:
- movs r0, 0x5
-_0819ABDE:
- strb r0, [r1, 0x3]
- ldr r2, [r2]
- ldrb r3, [r2, 0x3]
- ldr r4, =gSprites
- ldrb r0, [r2, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x6C
- muls r0, r3
- adds r2, r0
- ldrh r2, [r2, 0xE]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r1, 0x20]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ABA8
-
- thumb_func_start sub_819AC10
-sub_819AC10: @ 819AC10
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819AC30
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0x2
- beq _0819AC2C
- adds r0, r3, 0x1
- b _0819AC46
- .pool
-_0819AC2C:
- movs r0, 0
- b _0819AC46
-_0819AC30:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819AC44
- subs r0, r3, 0x1
- b _0819AC46
- .pool
-_0819AC44:
- movs r0, 0x2
-_0819AC46:
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AC10
-
- thumb_func_start sub_819AC78
-sub_819AC78: @ 819AC78
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819AC98
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x7]
- adds r2, r0, 0
- cmp r3, 0x1
- beq _0819AC94
- adds r0, r3, 0x1
- b _0819ACAE
- .pool
-_0819AC94:
- movs r0, 0
- b _0819ACAE
-_0819AC98:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x7]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819ACAC
- subs r0, r3, 0x1
- b _0819ACAE
- .pool
-_0819ACAC:
- movs r0, 0x1
-_0819ACAE:
- strb r0, [r1, 0x7]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x7]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x7]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AC78
-
- thumb_func_start sub_819ACE0
-sub_819ACE0: @ 819ACE0
- push {r4-r6,lr}
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r6, [r0, 0x3]
- movs r1, 0x6C
- adds r4, r6, 0
- muls r4, r1
- adds r0, r4
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0819AD60
- movs r0, 0x64
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, [r5]
- ldrb r0, [r1, 0x5]
- cmp r0, 0x3
- bne _0819AD44
- adds r0, r1, r4
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _0819AD44
- movs r2, 0
- ldrb r0, [r1, 0x10]
- cmp r0, 0x2
- beq _0819AD32
- movs r4, 0x6C
-_0819AD1A:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bhi _0819AD32
- ldr r0, [r5]
- adds r1, r2, 0
- muls r1, r4
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0x2
- bne _0819AD1A
-_0819AD32:
- cmp r2, 0x6
- beq _0819AD9C
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- movs r0, 0x6C
- muls r0, r2
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1, 0x10]
-_0819AD44:
- ldr r2, =gUnknown_0300127C
- ldr r1, [r2]
- movs r0, 0x6C
- muls r0, r6
- adds r1, r0
- movs r0, 0
- strb r0, [r1, 0x10]
- ldr r1, [r2]
- ldrb r0, [r1, 0x5]
- subs r0, 0x1
- b _0819AD78
- .pool
-_0819AD60:
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, [r5]
- adds r1, r0, r4
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x10]
- ldr r1, [r5]
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
-_0819AD78:
- strb r0, [r1, 0x5]
- ldr r2, =gSprites
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r6
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0819AD9C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ACE0
-
- thumb_func_start sub_819ADAC
-sub_819ADAC: @ 819ADAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r4
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0819ADCC
- movs r0, 0x65
- b _0819ADCE
- .pool
-_0819ADCC:
- movs r0, 0x64
-_0819ADCE:
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gSprites
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r4
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ADAC
-
- thumb_func_start sub_819AE08
-sub_819AE08: @ 819AE08
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- beq _0819AE64
- cmp r0, 0x7
- bgt _0819AE30
- cmp r0, 0x6
- beq _0819AE36
- b _0819AF50
- .pool
-_0819AE30:
- cmp r0, 0x8
- beq _0819AEE8
- b _0819AF50
-_0819AE36:
- ldr r1, =gPlttBufferUnfaded
- ldr r0, =gPlttBufferFaded
- movs r2, 0xE4
- lsls r2, 1
- adds r0, r2
- ldrh r0, [r0]
- adds r1, r2
- movs r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x7
- strh r0, [r6, 0x8]
- b _0819AF50
- .pool
-_0819AE64:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819AF50
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- ldr r2, =0x000002a1
- adds r0, r2
- ldrb r0, [r0]
- bl DestroyTask
- ldr r1, [r4]
- movs r3, 0xA6
- lsls r3, 2
- adds r0, r1, r3
- ldr r0, [r0]
- movs r2, 0xA8
- lsls r2, 2
- adds r1, r2
- bl sub_819F444
- bl sub_819AB40
- ldr r4, =gUnknown_0203CE2C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE30
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE34
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE38
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- bl FreeAllWindowBuffers
- movs r0, 0x8
- strh r0, [r6, 0x8]
- b _0819AF50
- .pool
-_0819AEE8:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- ldr r0, =gPlttBufferUnfaded
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- adds r3, 0xDC
- adds r1, r3
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyTask
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldr r0, [r4]
- ldrb r6, [r0, 0x3]
- ldr r4, =gUnknown_0203CE3C
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- movs r4, 0
-_0819AF1A:
- ldr r5, =gUnknown_0203CE3C
- ldr r1, [r5]
- movs r0, 0x64
- muls r0, r4
- adds r0, r1
- ldr r1, =gUnknown_0300127C
- ldr r1, [r1]
- movs r2, 0x6C
- muls r2, r4
- adds r1, r2
- adds r1, 0x14
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AF1A
- ldr r1, [r5]
- ldr r0, =sub_819A514
- str r0, [sp]
- movs r0, 0x1
- adds r2, r6, 0
- movs r3, 0x5
- bl sub_81BF8EC
-_0819AF50:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AE08
-
- thumb_func_start bc_exit_to_overworld
-bc_exit_to_overworld: @ 819AF68
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B00E
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _0819AFA0
- cmp r1, 0x1
- beq _0819AFB8
- b _0819B00E
- .pool
-_0819AFA0:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819B00E
-_0819AFB8:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819B00E
- bl sub_819B764
- ldr r0, [r7]
- ldr r1, =0x000002a1
- adds r0, r1
- ldrb r0, [r0]
- bl DestroyTask
- bl sub_819AB40
- ldr r4, =gUnknown_0203CE2C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE34
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE38
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, [r7]
- bl Free
- str r5, [r7]
- bl FreeAllWindowBuffers
- ldr r0, =sub_80861B0
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_0819B00E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bc_exit_to_overworld
-
- thumb_func_start sub_819B02C
-sub_819B02C: @ 819B02C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B11A
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- beq _0819B084
- cmp r0, 0x5
- bgt _0819B06C
- cmp r0, 0x4
- beq _0819B07A
- b _0819B11A
- .pool
-_0819B06C:
- cmp r0, 0xA
- bne _0819B11A
- bl sub_819C4B4
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _0819B11A
-_0819B07A:
- bl sub_819B8D4
- movs r0, 0x5
- strh r0, [r5, 0x8]
- b _0819B11A
-_0819B084:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- mov r8, r0
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B0B8
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r7]
- ldrb r4, [r0, 0x7]
- cmp r4, 0
- bne _0819B0C6
- bl sub_819C568
- strh r4, [r5, 0x8]
- ldr r0, =bc_exit_to_overworld
- str r0, [r5]
- b _0819B11A
- .pool
-_0819B0B8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819B0EC
- movs r0, 0x5
- bl PlaySE
-_0819B0C6:
- movs r0, 0x4
- bl sub_819B958
- bl sub_819BC9C
- ldr r0, [r7]
- ldr r1, =0x000002a2
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- strh r6, [r5, 0x8]
- ldr r0, =sub_819B378
- str r0, [r5]
- b _0819B11A
- .pool
-_0819B0EC:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819B106
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819AC78
- b _0819B11A
-_0819B106:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819B11A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819AC78
-_0819B11A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819B02C
-
- thumb_func_start sub_819B124
-sub_819B124: @ 819B124
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r0, 0xB
- bls _0819B144
- b _0819B36E
-_0819B144:
- lsls r0, 2
- ldr r1, =_0819B158
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819B158:
- .4byte _0819B188
- .4byte _0819B1EC
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B1BC
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B300
- .4byte _0819B35C
-_0819B188:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _0819B1A2
- ldr r2, =0x00000299
- adds r0, r1, r2
- movs r7, 0xA8
- lsls r7, 2
- adds r1, r7
- movs r2, 0
- bl sub_819F2B4
-_0819B1A2:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _0819B36C
- .pool
-_0819B1BC:
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819B1CE
- b _0819B36E
-_0819B1CE:
- bl sub_819B844
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- b _0819B344
- .pool
-_0819B1EC:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r7, 0x1
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B27C
- movs r0, 0x5
- bl PlaySE
- bl sub_819BC04
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- bne _0819B228
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldr r2, =0x000002a2
- adds r0, r2
- b _0819B2AC
- .pool
-_0819B228:
- cmp r0, 0x2
- bne _0819B248
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- strh r1, [r0, 0x8]
- ldr r1, =sub_819B02C
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B248:
- cmp r1, 0x3
- bne _0819B260
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x8]
- b _0819B2BA
- .pool
-_0819B260:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0, 0x8]
- ldr r1, =sub_819AE08
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B27C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819B2D0
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819B958
- ldr r0, [r4]
- ldr r1, =0x000002a2
- adds r0, r1
-_0819B2AC:
- strb r7, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
-_0819B2BA:
- ldr r1, =sub_819B378
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B2D0:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819B2EA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819AC10
- b _0819B36E
-_0819B2EA:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819B36E
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819AC10
- b _0819B36E
-_0819B300:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0819B36E
- ldr r4, =gUnknown_0300127C
- ldr r2, [r4]
- ldrb r0, [r2, 0x6]
- cmp r0, 0x1
- bne _0819B338
- ldr r1, =gPlttBufferFaded
- movs r7, 0xA9
- lsls r7, 2
- adds r0, r2, r7
- ldrh r0, [r0]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
- ldr r0, =gPlttBufferUnfaded
- subs r7, 0xBC
- adds r1, r0, r7
- ldrh r1, [r1]
- adds r0, r2
- strh r1, [r0]
-_0819B338:
- ldr r0, [r4]
- strb r3, [r0, 0x6]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
-_0819B344:
- movs r1, 0x3
- strh r1, [r0, 0x8]
- b _0819B36E
- .pool
-_0819B35C:
- bl sub_819B844
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0xC
-_0819B36C:
- strh r0, [r1, 0x8]
-_0819B36E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B124
-
- thumb_func_start sub_819B378
-sub_819B378: @ 819B378
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r5, =gUnknown_0300127C
- ldr r3, [r5]
- movs r7, 0xA8
- lsls r7, 2
- adds r0, r3, r7
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B476
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819B3DC
- cmp r1, 0x1
- bgt _0819B3B4
- cmp r1, 0
- beq _0819B3BA
- b _0819B476
- .pool
-_0819B3B4:
- cmp r1, 0xB
- beq _0819B440
- b _0819B476
-_0819B3BA:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819B476
- movs r0, 0x1
- movs r1, 0x1
- strh r1, [r4, 0x8]
- ldr r2, =0x000002a2
- adds r1, r3, r2
- strb r0, [r1]
- b _0819B476
- .pool
-_0819B3DC:
- ldr r2, =gMain
- ldrh r0, [r2, 0x2E]
- ands r1, r0
- cmp r1, 0
- beq _0819B40C
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r5]
- ldr r1, =0x000002a2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- ldr r0, =sub_819B124
- str r0, [r4]
- b _0819B476
- .pool
-_0819B40C:
- ldrh r1, [r2, 0x30]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819B422
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0819B432
-_0819B422:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819B476
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0819B432:
- bl sub_819ABA8
- bl sub_819BCF8
- bl sub_819B9E8
- b _0819B476
-_0819B440:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B476
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r5]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r1, r7
- movs r2, 0
- bl sub_819F3F8
- bl sub_819BA64
- ldr r0, [r5]
- ldr r1, =0x000002a2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- strh r6, [r4, 0x8]
-_0819B476:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B378
-
- thumb_func_start sub_819B484
-sub_819B484: @ 819B484
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- movs r6, 0
- add r0, sp, 0xC
- strb r6, [r0]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r2, [r7]
- ldr r0, =0x00000ca9
- adds r4, r2, r0
- ldrb r0, [r4]
- lsls r0, 30
- lsrs r0, 30
- adds r5, r0, 0
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- ldr r1, =0x00000de2
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x3
- ands r0, r1
- movs r2, 0x32
- str r2, [sp, 0x14]
- cmp r0, 0
- beq _0819B4EA
- movs r3, 0x64
- str r3, [sp, 0x14]
-_0819B4EA:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_81A6F70
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r1, [r7]
- ldrb r0, [r1, 0xA]
- mov r9, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r9, r2
- movs r3, 0
- mov r8, r3
-_0819B518:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r1, r0
- movs r3, 0xE7
- lsls r3, 4
- adds r1, r3
- ldrh r5, [r1]
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldr r2, [sp, 0x10]
- add r2, r8
- movs r3, 0x6C
- adds r0, r2, 0
- muls r0, r3
- adds r1, r0
- strh r5, [r1, 0xC]
- mov r10, r2
- ldr r0, [sp, 0x1C]
- cmp r8, r0
- bcs _0819B570
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _0819B572
- .pool
-_0819B570:
- ldr r0, [sp, 0x18]
-_0819B572:
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x6C
- mov r4, r10
- muls r4, r1
- adds r4, 0xC
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r1, =gUnknown_0203BC8C
- ldr r2, [r1]
- lsls r5, 4
- adds r2, r5, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x14]
- bl sub_8068634
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- movs r6, 0
- adds r7, r5, 0
- movs r3, 0x1
- add r8, r3
- ldr r3, =gUnknown_0300127C
-_0819B5B8:
- ldr r0, [r3]
- adds r0, r4
- adds r0, 0x8
- ldr r5, =gUnknown_0203BC8C
- ldr r1, [r5]
- adds r1, r7, r1
- lsls r2, r6, 1
- adds r1, 0x2
- adds r1, r2
- ldrh r1, [r1]
- adds r2, r6, 0
- str r3, [sp, 0x20]
- bl sub_81A7024
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x20]
- cmp r6, 0x3
- bls _0819B5B8
- movs r0, 0x6C
- mov r4, r10
- muls r4, r0
- adds r4, 0xC
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r1, [r5]
- adds r1, r7, r1
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- mov r3, r8
- lsls r0, r3, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x5
- bhi _0819B620
- b _0819B518
-_0819B620:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B484
-
- thumb_func_start sub_819B63C
-sub_819B63C: @ 819B63C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- ldr r2, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
- str r0, [r2]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r3, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r3, r0
- mov r10, r3
- movs r7, 0
- mov r9, r7
-_0819B678:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r9
- lsls r0, r2, 1
- add r0, r9
- lsls r0, 2
- adds r1, r0
- movs r3, 0xE7
- lsls r3, 4
- adds r1, r3
- ldrh r1, [r1]
- mov r8, r1
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- ldr r6, [sp, 0x10]
- add r6, r9
- movs r1, 0x6C
- adds r4, r6, 0
- muls r4, r1
- adds r1, r0, r4
- mov r2, r8
- strh r2, [r1, 0xC]
- adds r4, 0xC
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
- ldr r2, [r3]
- mov r7, r8
- lsls r5, r7, 4
- adds r2, r5, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r7, 0
- str r7, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r10
- str r2, [sp, 0x8]
- movs r2, 0x1E
- bl sub_8068634
- add r0, sp, 0xC
- movs r3, 0
- strb r3, [r0]
- movs r0, 0x1
- add r9, r0
-_0819B6D4:
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
- ldr r2, [r3]
- mov r3, r8
- lsls r1, r3, 4
- adds r1, r2
- lsls r2, r7, 1
- adds r1, 0x2
- adds r1, r2
- ldrh r1, [r1]
- adds r2, r7, 0
- bl sub_81A7024
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _0819B6D4
- movs r7, 0x6C
- adds r4, r6, 0
- muls r4, r7
- adds r4, 0xC
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gUnknown_0203BC8C
- ldr r1, [r3]
- adds r1, r5, r1
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- mov r7, r9
- lsls r0, r7, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0x5
- bls _0819B678
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B63C
-
- thumb_func_start sub_819B764
-sub_819B764: @ 819B764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, =gUnknown_0300127C
- mov r10, r0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
-_0819B778:
- movs r2, 0
- adds r0, r7, 0x1
- mov r9, r0
-_0819B77E:
- mov r1, r10
- ldr r0, [r1]
- movs r1, 0x6C
- adds r6, r2, 0
- muls r6, r1
- adds r1, r0, r6
- ldrb r0, [r1, 0x10]
- cmp r0, r9
- bne _0819B81C
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r2, =gPlayerParty
- adds r5, r2
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- mov r0, r8
- ldr r1, [r0]
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r1, r4
- mov r2, r10
- ldr r0, [r2]
- adds r0, r6
- ldrh r0, [r0, 0xC]
- movs r2, 0xE7
- lsls r2, 4
- adds r1, r2
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldr r1, [r2]
- ldr r2, =0x00000e74
- adds r1, r2
- adds r1, r4
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e79
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e78
- adds r1, r2
- strb r0, [r1]
- b _0819B826
- .pool
-_0819B81C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819B77E
-_0819B826:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0819B778
- bl CalculatePlayerPartyCount
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819B764
-
- thumb_func_start sub_819B844
-sub_819B844: @ 819B844
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r1, [r5]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _0819B852
- strb r0, [r1]
-_0819B852:
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819BAFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B844
-
- thumb_func_start sub_819B8D4
-sub_819B8D4: @ 819B8D4
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x7]
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x70
- strh r3, [r0, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819BBA8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B8D4
-
- thumb_func_start sub_819B958
-sub_819B958: @ 819B958
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gSprites
- ldr r3, =gUnknown_0300127C
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl ClearWindowTilemap
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B958
-
- thumb_func_start sub_819B9B4
-sub_819B9B4: @ 819B9B4
- push {lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, =gUnknown_085EEBB2
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B9B4
-
- thumb_func_start sub_819B9E8
-sub_819B9E8: @ 819B9E8
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r4, [r0, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x6C
- muls r0, r4
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x14
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gStringVar4
- movs r1, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610479
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B9E8
-
- thumb_func_start sub_819BA64
-sub_819BA64: @ 819BA64
- push {lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0819BA88
- ldr r2, =gUnknown_085EEBC1
- b _0819BA9C
- .pool
-_0819BA88:
- cmp r0, 0x2
- bne _0819BA94
- ldr r2, =gUnknown_085EEBDB
- b _0819BA9C
- .pool
-_0819BA94:
- ldr r2, =gUnknown_085EEC2D
- cmp r0, 0x3
- bne _0819BA9C
- ldr r2, =gUnknown_085EEBF6
-_0819BA9C:
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BA64
-
- thumb_func_start sub_819BAC8
-sub_819BAC8: @ 819BAC8
- push {lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, =gUnknown_085EEC50
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BAC8
-
- thumb_func_start sub_819BAFC
-sub_819BAFC: @ 819BAFC
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r2, [r0, 0x3]
- movs r1, 0x6C
- muls r1, r2
- adds r0, r1
- ldrb r5, [r0, 0x10]
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_08610476
- str r4, [sp]
- movs r6, 0
- str r6, [sp, 0x4]
- ldr r0, =gUnknown_085EEC15
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- cmp r5, 0
- beq _0819BB60
- str r4, [sp]
- str r6, [sp, 0x4]
- ldr r0, =gUnknown_085EEC24
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- b _0819BB74
- .pool
-_0819BB60:
- str r4, [sp]
- str r5, [sp, 0x4]
- ldr r0, =gUnknown_085EEC10
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
-_0819BB74:
- ldr r0, =gUnknown_08610476
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_085EEC1D
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x21
- bl box_print
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BAFC
-
- thumb_func_start sub_819BBA8
-sub_819BBA8: @ 819BBA8
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x4
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610476
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EEC49
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EEC4D
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- movs r0, 0x4
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BBA8
-
- thumb_func_start sub_819BC04
-sub_819BC04: @ 819BC04
- push {lr}
- ldr r2, =gUnknown_030062E8
- ldr r1, =gUnknown_0861041C
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819BC04
-
- thumb_func_start sub_819BC30
-sub_819BC30: @ 819BC30
- push {r4,lr}
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r2, [r0, 0x3]
- movs r1, 0x6C
- muls r1, r2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- ldrh r0, [r0, 0xC]
- cmp r1, 0
- bne _0819BC60
- bl sub_819C634
- cmp r0, 0
- bne _0819BC60
- bl sub_819BAC8
- movs r0, 0x3
- bl sub_819B958
- movs r0, 0x3
- b _0819BC96
- .pool
-_0819BC60:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- bl sub_819ACE0
- bl sub_819BA64
- movs r0, 0x3
- bl sub_819B958
- ldr r0, [r4]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x3
- bhi _0819BC94
- movs r0, 0x1
- b _0819BC96
- .pool
-_0819BC94:
- movs r0, 0x2
-_0819BC96:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_819BC30
-
- thumb_func_start sub_819BC9C
-sub_819BC9C: @ 819BC9C
- push {lr}
- bl sub_819C568
- bl sub_819ACE0
- bl sub_819BA64
- movs r0, 0x3
- bl sub_819B958
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x3
- bhi _0819BCC4
- movs r0, 0x1
- b _0819BCC6
- .pool
-_0819BCC4:
- movs r0, 0x2
-_0819BCC6:
- pop {r1}
- bx r1
- thumb_func_end sub_819BC9C
-
- thumb_func_start sub_819BCCC
-sub_819BCCC: @ 819BCCC
- movs r0, 0
- bx lr
- thumb_func_end sub_819BCCC
-
- thumb_func_start sub_819BCD0
-sub_819BCD0: @ 819BCD0
- push {lr}
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819B958
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819BCD0
-
- thumb_func_start sub_819BCF8
-sub_819BCF8: @ 819BCF8
- push {r4,r5,lr}
- sub sp, 0x2C
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r4, [r0, 0x3]
- cmp r4, 0x5
- bhi _0819BD64
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x6C
- muls r0, r4
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x14
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- add r1, sp, 0xC
- bl sub_81DB468
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x76
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x5
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
-_0819BD64:
- add sp, 0x2C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BCF8
-
- thumb_func_start sub_819BD70
-sub_819BD70: @ 819BD70
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- ldrb r1, [r2, 0x3]
- movs r0, 0x6C
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r2, r8
- movs r3, 0x1
- bl sub_818D7D8
- ldr r1, [r6]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r3, [r0]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r3, [r0]
- ldr r0, [r6]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BD70
-
- thumb_func_start sub_819BE20
-sub_819BE20: @ 819BE20
- ldr r1, =gUnknown_0300127C
- ldr r1, [r1]
- movs r2, 0xA8
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819BE20
-
- thumb_func_start sub_819BE34
-sub_819BE34: @ 819BE34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, =gUnknown_08610638
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- ldr r2, =0x00000299
- mov r10, r2
- add r1, r10
- movs r7, 0
- strb r0, [r1]
- ldr r0, [r6]
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r2, [r6]
- ldrb r1, [r2, 0x3]
- movs r0, 0x6C
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r2, r9
- movs r3, 0x1
- bl sub_818D7D8
- ldr r1, [r6]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r6]
- add r0, r10
- 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]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BE34
-
- thumb_func_start sub_819BF2C
-sub_819BF2C: @ 819BF2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r7, 0
- ldr r0, =gUnknown_0300127C
- mov r9, r0
-_0819BF3E:
- movs r2, 0
- adds r1, r7, 0x1
- mov r10, r1
- lsls r0, r7, 2
- mov r8, r0
-_0819BF48:
- mov r0, r9
- ldr r1, [r0]
- movs r0, 0x6C
- adds r4, r2, 0
- muls r4, r0
- adds r0, r1, r4
- ldrb r0, [r0, 0x10]
- cmp r0, r10
- bne _0819C008
- adds r4, r1
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 19
- movs r2, 0x80
- lsls r2, 13
- adds r0, r2
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r0, 0xD
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_818D7D8
- mov r2, r9
- ldr r1, [r2]
- add r1, r8
- movs r2, 0xA5
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- add r0, r8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, =gSprites
- adds r0, r2
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- mov r2, r9
- ldr r0, [r2]
- add r0, r8
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, =gSprites
- adds r0, r2
- adds r0, 0x29
- movs r1, 0
- strb r1, [r0]
- b _0819C012
- .pool
-_0819C008:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819BF48
-_0819C012:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0819BF3E
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BF2C
-
- thumb_func_start sub_819C040
-sub_819C040: @ 819C040
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819C0DC
- ldr r3, =gSprites
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- ldr r0, =0x00000295
- adds r5, r2, r0
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 26
- cmp r0, 0
- bge _0819C0DC
- ldr r1, =0x0000029d
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C0DC
- adds r1, r4, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, =sub_819C1D0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0819C0DC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C040
-
- thumb_func_start sub_819C100
-sub_819C100: @ 819C100
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819C1BA
- ldr r6, =gSprites
- ldr r4, =gUnknown_0300127C
- ldr r2, [r4]
- ldr r7, =0x00000295
- adds r0, r2, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C1BA
- ldr r1, =0x0000029d
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C1BA
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, [r4]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- adds r0, r5, 0
- bl DestroySprite
-_0819C1BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C100
-
- thumb_func_start sub_819C1D0
-sub_819C1D0: @ 819C1D0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819C24E
- cmp r0, 0x1
- bgt _0819C1F8
- cmp r0, 0
- beq _0819C1FE
- b _0819C2BA
- .pool
-_0819C1F8:
- cmp r0, 0x2
- beq _0819C270
- b _0819C2BA
-_0819C1FE:
- movs r0, 0x10
- strh r0, [r4, 0xE]
- movs r0, 0xE0
- strh r0, [r4, 0x38]
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819C2C6
-_0819C24E:
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819C2C6
- .pool
-_0819C270:
- ldrh r0, [r4, 0x12]
- subs r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- adds r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0819C28C
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _0819C29E
-_0819C28C:
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
-_0819C29E:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0819C2CC
- b _0819C2C6
-_0819C2BA:
- adds r0, r2, 0
- bl DestroyTask
- bl sub_819BF2C
- b _0819C2CC
-_0819C2C6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819C2CC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819C1D0
-
- thumb_func_start sub_819C2D4
-sub_819C2D4: @ 819C2D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0819C2F6
- b _0819C410
-_0819C2F6:
- cmp r0, 0x1
- bne _0819C2FC
- b _0819C460
-_0819C2FC:
- movs r0, 0x3
- bl HideBg
- ldr r4, =gSprites
- ldr r0, =gUnknown_0300127C
- mov r8, r0
- ldr r0, [r0]
- ldr r1, =0x00000299
- mov r12, r1
- add r0, r12
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- mov r0, r8
- ldr r2, [r0]
- mov r1, r12
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r4, 0
- adds r6, 0x1C
- adds r0, r6
- ldr r1, =sub_819C100
- str r1, [r0]
- ldr r0, =0x00000295
- mov r9, r0
- add r2, r9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r1, r8
- ldr r2, [r1]
- mov r1, r9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, =SpriteCallbackDummy
- mov r10, r1
- str r1, [r0]
- ldr r5, =0x0000029d
- adds r2, r5
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r0, r8
- ldr r2, [r0]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- str r1, [r0]
- add r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- mov r1, r8
- ldr r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- adds r0, r7, 0
- bl DestroyTask
- b _0819C4A4
- .pool
-_0819C410:
- movs r0, 0x10
- strh r0, [r4, 0xE]
- movs r0, 0xE0
- strh r0, [r4, 0x38]
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819C49E
-_0819C460:
- ldrh r0, [r4, 0x12]
- adds r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- subs r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0819C47C
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x41
- bgt _0819C484
-_0819C47C:
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
-_0819C484:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _0819C4A4
-_0819C49E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819C4A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819C2D4
-
- thumb_func_start sub_819C4B4
-sub_819C4B4: @ 819C4B4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, =gUnknown_08610638
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- ldr r2, =0x00000299
- mov r8, r2
- add r1, r8
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- ldr r5, =0x00000295
- adds r1, r5
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC4
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- ldr r4, =0x0000029d
- adds r1, r4
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r6]
- add r8, r2
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, =sub_819C040
- str r1, [r0]
- adds r5, r2, r5
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r5, =SpriteCallbackDummy
- str r5, [r0]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- str r5, [r0]
- movs r0, 0xA8
- lsls r0, 2
- adds r2, r0
- movs r0, 0x1
- strb r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C4B4
-
- thumb_func_start sub_819C568
-sub_819C568: @ 819C568
- push {r4,lr}
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_818D820
- ldr r0, [r4]
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_818D820
- ldr r0, [r4]
- movs r1, 0xA7
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_818D820
- ldr r0, =sub_819C2D4
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C568
-
- thumb_func_start sub_819C5D0
-sub_819C5D0: @ 819C5D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- lsls r4, 24
- lsrs r4, 16
- orrs r4, r6
- movs r0, 0x40
- adds r1, r4, 0
- bl SetGpuReg
- lsls r5, 24
- lsrs r5, 16
- mov r0, r8
- orrs r5, r0
- movs r0, 0x44
- adds r1, r5, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819C5D0
-
- thumb_func_start sub_819C634
-sub_819C634: @ 819C634
- push {r4-r7,lr}
- lsls r0, 16
- ldr r2, =gUnknown_0203BC8C
- ldr r1, [r2]
- lsrs r0, 12
- adds r0, r1
- ldrh r6, [r0]
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r5, [r0, 0x5]
- movs r3, 0x1
- cmp r3, r5
- bcs _0819C694
- adds r4, r0, 0
- movs r0, 0x6C
- mov r12, r0
- adds r7, r2, 0
-_0819C656:
- movs r2, 0
-_0819C658:
- mov r0, r12
- muls r0, r2
- adds r1, r4, r0
- ldrb r0, [r1, 0x10]
- cmp r0, r3
- bne _0819C680
- ldrh r0, [r1, 0xC]
- ldr r1, [r7]
- lsls r0, 4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0819C68A
- movs r0, 0
- b _0819C696
- .pool
-_0819C680:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819C658
-_0819C68A:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _0819C656
-_0819C694:
- movs r0, 0x1
-_0819C696:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_819C634
-
- thumb_func_start sub_819C69C
-sub_819C69C: @ 819C69C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r2, [r5, r0]
- cmp r2, 0x1
- beq _0819C6F8
- cmp r2, 0x1
- bgt _0819C6C4
- cmp r2, 0
- beq _0819C6CA
- b _0819C7D8
- .pool
-_0819C6C4:
- cmp r2, 0x2
- beq _0819C7B4
- b _0819C7D8
-_0819C6CA:
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- ldr r3, =0x000002a7
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- adds r3, 0x1
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- ldr r1, =0x000002a6
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C6F8:
- ldr r0, =gUnknown_0300127C
- ldr r3, [r0]
- ldr r2, =0x000002a2
- adds r1, r3, r2
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0
- beq _0819C7D8
- ldr r1, =0x000002a9
- adds r0, r3, r1
- ldrb r4, [r0]
- cmp r4, 0
- beq _0819C724
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C724:
- ldr r2, =0x000002a7
- adds r1, r3, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r7]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _0819C764
- strb r4, [r1]
- ldr r1, [r7]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819C758
- movs r3, 0xAA
- lsls r3, 2
- adds r1, r3
- ldrb r0, [r1]
- subs r0, 0x1
- b _0819C762
- .pool
-_0819C758:
- movs r0, 0xAA
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0819C762:
- strb r0, [r1]
-_0819C764:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r7]
- movs r4, 0xAA
- lsls r4, 2
- adds r1, r4
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
- ldr r2, [r7]
- adds r4, r2, r4
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0819C790
- ldr r3, =0x000002a6
- adds r1, r2, r3
- movs r0, 0
- b _0819C7D6
- .pool
-_0819C790:
- cmp r0, 0
- bne _0819C7D8
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x8]
- ldr r0, =0x000002a6
- adds r1, r2, r0
- movs r0, 0x1
- b _0819C7D6
- .pool
-_0819C7B4:
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldr r2, =0x000002a9
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bls _0819C7D4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C7D4:
- adds r0, 0x1
-_0819C7D6:
- strb r0, [r1]
-_0819C7D8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819C69C
-
- thumb_func_start sub_819C7E0
-sub_819C7E0: @ 819C7E0
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_819C7E0
-
- thumb_func_start sub_819C7FC
-sub_819C7FC: @ 819C7FC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_819C7FC
-
- thumb_func_start sub_819C810
-sub_819C810: @ 819C810
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- ldr r4, =gPlayerParty
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldrb r0, [r1, 0x12]
- movs r6, 0x64
- muls r0, r6
- adds r0, r4
- ldr r2, =gEnemyParty
- mov r9, r2
- ldrb r1, [r1, 0x13]
- muls r1, r6
- add r1, r9
- movs r2, 0x64
- bl memcpy
- movs r1, 0
- mov r0, sp
- strb r1, [r0]
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- muls r0, r6
- adds r0, r4
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
- ldr r3, =gSaveBlock2Ptr
- mov r8, r3
- ldr r3, [r3]
- ldr r4, [r5]
- ldrb r0, [r4, 0x12]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r3, r2
- ldrb r1, [r4, 0x13]
- adds r1, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- movs r1, 0xE7
- lsls r1, 4
- adds r0, r1
- ldrh r0, [r0]
- adds r2, r1
- strh r0, [r2]
- ldrb r0, [r4, 0x12]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r3, r2
- ldrb r1, [r4, 0x13]
- adds r1, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, =0x00000e78
- adds r3, r0
- ldrb r1, [r3]
- adds r2, r0
- strb r1, [r2]
- ldr r0, [r5]
- ldrb r0, [r0, 0x13]
- muls r0, r6
- add r0, r9
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- ldr r4, [r5]
- ldrb r3, [r4, 0x12]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- ldr r3, =0x00000e74
- adds r2, r3
- adds r2, r1
- str r0, [r2]
- ldrb r0, [r4, 0x13]
- muls r0, r6
- add r0, r9
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r1, r8
- ldr r2, [r1]
- ldr r1, [r5]
- ldrb r3, [r1, 0x12]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r2, r1
- ldr r3, =0x00000e79
- adds r2, r3
- strb r0, [r2]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C810
-
- thumb_func_start sub_819C90C
-sub_819C90C: @ 819C90C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- beq _0819C950
- cmp r0, 0x7
- bgt _0819C934
- cmp r0, 0x6
- beq _0819C93A
- b _0819C9F0
- .pool
-_0819C934:
- cmp r0, 0x8
- beq _0819C9C4
- b _0819C9F0
-_0819C93A:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x7
- strh r0, [r6, 0x8]
- b _0819C9F0
-_0819C950:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819C9F0
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r0, [r0]
- bl DestroyTask
- ldr r1, [r4]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- bl sub_819F444
- bl sub_819E538
- ldr r4, =gUnknown_0203CE40
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE44
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE48
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE4C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- bl FreeAllWindowBuffers
- movs r0, 0x8
- strh r0, [r6, 0x8]
- b _0819C9F0
- .pool
-_0819C9C4:
- adds r0, r2, 0
- bl DestroyTask
- ldr r2, =gUnknown_03001284
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x15]
- ldr r2, [r2]
- ldr r0, =gPlttBufferUnfaded
- movs r1, 0xF4
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x24]
- ldr r1, =gPlayerParty
- ldrb r2, [r2, 0x3]
- ldr r0, =sub_819DC1C
- str r0, [sp]
- movs r0, 0
- movs r3, 0x2
- bl sub_81BF8EC
-_0819C9F0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C90C
-
- thumb_func_start sub_819CA08
-sub_819CA08: @ 819CA08
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gUnknown_03001284
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CAFE
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819CA78
- cmp r1, 0x1
- bgt _0819CA44
- cmp r1, 0
- beq _0819CA4E
- b _0819CAFE
- .pool
-_0819CA44:
- cmp r1, 0x2
- beq _0819CA8C
- cmp r1, 0x3
- beq _0819CAA4
- b _0819CAFE
-_0819CA4E:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819CA68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, =gScriptResult
- strh r1, [r0]
- b _0819CAFE
- .pool
-_0819CA68:
- movs r0, 0x2
- strh r0, [r4, 0x8]
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _0819CAFE
- .pool
-_0819CA78:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819CA9C
- ldrb r0, [r2, 0x3]
- strb r0, [r2, 0x13]
- bl sub_819C810
- b _0819CA9C
-_0819CA8C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0819CA9C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819CAFE
-_0819CAA4:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819CAFE
- ldr r0, [r7]
- adds r0, 0x21
- ldrb r0, [r0]
- bl DestroyTask
- bl sub_819E538
- ldr r4, =gUnknown_0203CE40
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE44
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE48
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE4C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, [r7]
- bl Free
- str r5, [r7]
- bl FreeAllWindowBuffers
- ldr r0, =sub_80861B0
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_0819CAFE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CA08
-
- thumb_func_start sub_819CB1C
-sub_819CB1C: @ 819CB1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r7, =gUnknown_03001284
- ldr r0, [r7]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CBD6
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _0819CB50
- cmp r0, 0x5
- beq _0819CB5A
- b _0819CBD6
- .pool
-_0819CB50:
- bl sub_819E9E0
- movs r0, 0x5
- strh r0, [r4, 0x8]
- b _0819CBD6
-_0819CB5A:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r6, 0x1
- adds r5, r6, 0
- ands r5, r1
- cmp r5, 0
- beq _0819CB86
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r7]
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- bne _0819CB80
- strh r6, [r4, 0xA]
- b _0819CB9C
- .pool
-_0819CB80:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0819CB96
-_0819CB86:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CBA8
- movs r0, 0x5
- bl PlaySE
- strh r5, [r4, 0xA]
-_0819CB96:
- movs r0, 0x4
- bl sub_819EA64
-_0819CB9C:
- ldrh r0, [r4, 0x14]
- ldrh r1, [r4, 0x16]
- lsls r0, 16
- orrs r0, r1
- str r0, [r4]
- b _0819CBD6
-_0819CBA8:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CBC2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819E758
- b _0819CBD6
-_0819CBC2:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CBD6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819E758
-_0819CBD6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819CB1C
-
- thumb_func_start sub_819CBDC
-sub_819CBDC: @ 819CBDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819CC04
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, =sub_819CA08
- b _0819CC16
- .pool
-_0819CC04:
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r2, 0x14]
- strh r1, [r2, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x12]
- ldr r0, =sub_819D770
-_0819CC16:
- str r0, [r2]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CBDC
-
- thumb_func_start sub_819CC24
-sub_819CC24: @ 819CC24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _0819CC5A
- ldr r0, =gUnknown_085EECBB
- bl sub_819EBEC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x20
- strb r5, [r0]
- movs r0, 0x4
- strh r0, [r4, 0x8]
- ldr r1, =sub_819CBDC
- lsrs r0, r1, 16
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x16]
- ldr r0, =sub_819CB1C
- str r0, [r4]
-_0819CC5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CC24
-
- thumb_func_start sub_819CC74
-sub_819CC74: @ 819CC74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819CCB0
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, =sub_819CA08
- b _0819CCC2
- .pool
-_0819CCB0:
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r2, 0x14]
- strh r1, [r2, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x12]
- ldr r0, =sub_819D770
-_0819CCC2:
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CC74
-
- thumb_func_start sub_819CCD4
-sub_819CCD4: @ 819CCD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0819CD1A
- ldr r4, =gUnknown_03001284
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
- ldr r0, =gUnknown_085EECF0
- bl sub_819EBEC
- ldr r0, [r4]
- adds r0, 0x20
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x4
- strh r0, [r5, 0x8]
- ldr r1, =sub_819CC74
- lsrs r0, r1, 16
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- ldr r0, =sub_819CB1C
- str r0, [r5]
-_0819CD1A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CCD4
-
- thumb_func_start sub_819CD34
-sub_819CD34: @ 819CD34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- beq _0819CDA4
- cmp r0, 0x3
- bgt _0819CD60
- cmp r0, 0x2
- beq _0819CD66
- b _0819CE36
- .pool
-_0819CD60:
- cmp r0, 0x9
- beq _0819CD88
- b _0819CE36
-_0819CD66:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x15]
- cmp r0, 0
- bne _0819CD7C
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
-_0819CD7C:
- movs r0, 0x9
- strh r0, [r5, 0x8]
- b _0819CE36
- .pool
-_0819CD88:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CE36
- bl sub_819E944
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _0819CE36
- .pool
-_0819CDA4:
- ldr r7, =gUnknown_03001284
- ldr r0, [r7]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CE36
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- mov r8, r0
- mov r4, r8
- ands r4, r1
- cmp r4, 0
- beq _0819CDD8
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- bl sub_819F0A0
- b _0819CE36
- .pool
-_0819CDD8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CE14
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r7]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819EA64
- strh r4, [r5, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- mov r1, r8
- strh r1, [r5, 0x12]
- ldr r0, =sub_819D770
- str r0, [r5]
- b _0819CE36
- .pool
-_0819CE14:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CE28
- movs r0, 0x1
- negs r0, r0
- bl sub_819E7C0
- b _0819CE36
-_0819CE28:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CE36
- movs r0, 0x1
- bl sub_819E7C0
-_0819CE36:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819CD34
-
- thumb_func_start sub_819CE40
-sub_819CE40: @ 819CE40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0819CE64
- cmp r0, 0x1
- beq _0819CE88
- b _0819CF4C
- .pool
-_0819CE64:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819CF4C
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r4, 0x8]
- b _0819CF4C
- .pool
-_0819CE88:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- adds r5, r1, 0
- ands r5, r0
- cmp r5, 0
- beq _0819CEBC
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0
- strb r1, [r0]
- bl sub_819EE08
- bl sub_819EAC0
- adds r0, r6, 0
- bl sub_819F184
- b _0819CF4C
- .pool
-_0819CEBC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CEF8
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- strb r5, [r0]
- bl sub_819EE08
- bl sub_819EAC0
- ldr r1, =sub_819CC24
- lsrs r0, r1, 16
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x16]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0x12]
- ldr r0, =sub_819D588
- str r0, [r4]
- b _0819CF4C
- .pool
-_0819CEF8:
- ldrh r1, [r2, 0x30]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819CF0C
- movs r0, 0x1
- negs r0, r0
- bl sub_819E694
- b _0819CF2A
-_0819CF0C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819CF1C
- movs r0, 0x1
- bl sub_819E694
- b _0819CF2A
-_0819CF1C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CF34
- movs r0, 0x1
- bl sub_819E6E8
-_0819CF2A:
- bl sub_819EFA8
- bl sub_819EB4C
- b _0819CF4C
-_0819CF34:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CF4C
- movs r0, 0x1
- negs r0, r0
- bl sub_819E6E8
- bl sub_819EFA8
- bl sub_819EB4C
-_0819CF4C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819CE40
-
- thumb_func_start sub_819CF54
-sub_819CF54: @ 819CF54
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _0819CFA0
- cmp r2, 0x1
- bgt _0819CF7C
- cmp r2, 0
- beq _0819CF82
- b _0819D05C
- .pool
-_0819CF7C:
- cmp r2, 0x2
- beq _0819D03C
- b _0819D05C
-_0819CF82:
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x27
- strb r2, [r0]
- ldr r0, [r1]
- adds r0, 0x28
- strb r2, [r0]
- ldr r0, [r1]
- adds r0, 0x26
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r4, 0x8]
- b _0819D05C
- .pool
-_0819CFA0:
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0
- beq _0819D05C
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r3, [r0]
- cmp r3, 0
- beq _0819CFC4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _0819D05C
- .pool
-_0819CFC4:
- adds r1, r2, 0
- adds r1, 0x27
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x27
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _0819CFF8
- strb r3, [r1]
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819CFF0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- b _0819CFF6
-_0819CFF0:
- adds r1, 0x28
- ldrb r0, [r1]
- adds r0, 0x1
-_0819CFF6:
- strb r0, [r1]
-_0819CFF8:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r6]
- adds r1, 0x28
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _0819D01C
- adds r1, r2, 0
- adds r1, 0x26
- movs r0, 0
- b _0819D05A
-_0819D01C:
- cmp r0, 0
- bne _0819D05C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x8]
- adds r1, r2, 0
- adds r1, 0x26
- movs r0, 0x1
- b _0819D05A
- .pool
-_0819D03C:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x29
- ldrb r0, [r1]
- cmp r0, 0xE
- bls _0819D058
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D05C
- .pool
-_0819D058:
- adds r0, 0x1
-_0819D05A:
- strb r0, [r1]
-_0819D05C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819CF54
-
- thumb_func_start sub_819D064
-sub_819D064: @ 819D064
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819D0A4
- cmp r1, 0x1
- bgt _0819D08C
- cmp r1, 0
- beq _0819D092
- b _0819D118
- .pool
-_0819D08C:
- cmp r1, 0x2
- beq _0819D0BC
- b _0819D118
-_0819D092:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x27
- strb r1, [r0]
- strh r1, [r4, 0x10]
- b _0819D0AE
- .pool
-_0819D0A4:
- ldr r0, =gPlttBufferUnfaded+ 0x1E0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
-_0819D0AE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D118
- .pool
-_0819D0BC:
- ldr r2, =gUnknown_03001284
- ldr r0, [r2]
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0xF
- bls _0819D0D2
- movs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819D0D2:
- ldr r1, [r2]
- adds r1, 0x27
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x27
- ldrb r0, [r1]
- cmp r0, 0x3
- bls _0819D108
- movs r0, 0
- strb r0, [r1]
- ldr r1, =gPlttBufferUnfaded
- ldr r0, =gPlttBufferFaded
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- adds r3, 0x20
- adds r1, r3
- strh r0, [r1]
- ldr r1, [r2]
- adds r1, 0x28
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0819D108:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r2]
- adds r1, 0x28
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
-_0819D118:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D064
-
- thumb_func_start sub_819D12C
-sub_819D12C: @ 819D12C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, =gTasks
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r2, 0x8
- ldrsh r3, [r4, r2]
- cmp r3, 0
- beq _0819D15C
- cmp r3, 0x1
- beq _0819D168
- b _0819D310
- .pool
-_0819D15C:
- strh r3, [r4, 0xA]
- strh r3, [r4, 0xC]
- strh r3, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D310
-_0819D168:
- movs r3, 0
- str r3, [sp, 0x4]
- movs r1, 0x2
- str r0, [sp, 0x8]
- ldr r0, =gTasks
- str r0, [sp, 0xC]
-_0819D174:
- lsls r0, r1, 24
- asrs r4, r0, 24
- mov r9, r0
- cmp r4, 0x2
- beq _0819D1F2
- ldr r2, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- adds r0, 0x5
- mov r8, r0
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r2
- ldrh r1, [r6, 0x20]
- mov r12, r1
- mov r7, r12
- ldr r1, [sp, 0x4]
- subs r0, r1, r7
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r2
- cmp r5, 0x10
- beq _0819D1BE
- adds r0, r4, 0x2
- lsls r0, 1
- ldr r2, [sp, 0x8]
- adds r0, r2
- ldr r1, =gTasks
- adds r1, 0x8
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _0819D1D8
-_0819D1BE:
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r12
- adds r0, 0xA
- strh r0, [r6, 0x20]
- b _0819D210
- .pool
-_0819D1D8:
- cmp r5, 0x10
- bls _0819D210
- adds r0, r4, 0x1
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r0, [r0, 0x20]
- subs r0, 0x30
- strh r0, [r6, 0x20]
- b _0819D210
-_0819D1F2:
- ldr r3, =gSprites
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r2, [r0, 0x20]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- adds r2, 0xA
- strh r2, [r0, 0x20]
- mov r10, r3
-_0819D210:
- mov r0, r9
- asrs r2, r0, 24
- adds r0, r2, 0x1
- lsls r0, 1
- ldr r1, [sp, 0x8]
- adds r0, r1
- ldr r1, =gTasks
- adds r1, 0x8
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _0819D26A
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x5
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r3, r10
- adds r1, r0, r3
- movs r0, 0x20
- ldrsh r3, [r1, r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 4
- adds r0, 0x48
- cmp r3, r0
- ble _0819D260
- strh r0, [r1, 0x20]
- movs r7, 0x1
- b _0819D26C
- .pool
-_0819D260:
- movs r7, 0
- cmp r3, r0
- bne _0819D26C
- movs r7, 0x1
- b _0819D26C
-_0819D26A:
- movs r7, 0
-_0819D26C:
- mov r6, r10
- ldr r5, =gUnknown_03001284
- ldr r2, [r5]
- mov r1, r9
- asrs r4, r1, 24
- adds r0, r2, 0x5
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- subs r0, 0x10
- cmp r0, 0xF0
- ble _0819D2F8
- ldrh r0, [r1, 0x20]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, =0x0000fff0
- strh r0, [r1, 0x20]
- ldrb r0, [r2, 0x14]
- cmp r0, 0x1
- bne _0819D2C0
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- adds r1, 0x5
- adds r1, r4
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r6
- b _0819D2D8
- .pool
-_0819D2C0:
- movs r0, 0x64
- bl IndexOfSpritePaletteTag
- ldr r2, =gUnknown_03001284
- ldr r1, [r2]
- adds r1, 0x5
- adds r1, r4
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r10
-_0819D2D8:
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r9
- asrs r0, r3, 23
- adds r0, 0x2
- ldr r1, [sp, 0x8]
- adds r0, r1
- ldr r2, [sp, 0xC]
- adds r2, 0x8
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0]
-_0819D2F8:
- movs r0, 0xFF
- lsls r0, 24
- add r0, r9
- lsrs r1, r0, 24
- cmp r0, 0
- blt _0819D306
- b _0819D174
-_0819D306:
- cmp r7, 0x1
- bne _0819D310
- ldr r0, [sp]
- bl DestroyTask
-_0819D310:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D12C
-
- thumb_func_start sub_819D324
-sub_819D324: @ 819D324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrb r4, [r2, 0xE]
- movs r0, 0xC
- ldrsh r5, [r2, r0]
- mov r10, r1
- cmp r5, 0x1
- bne _0819D352
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_0819D352:
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0819D368
- cmp r0, 0x1
- bne _0819D360
- b _0819D480
-_0819D360:
- b _0819D570
- .pool
-_0819D368:
- ldr r3, =gSprites
- ldr r2, =gUnknown_03001284
- ldr r0, [r2]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- cmp r5, 0
- bne _0819D39C
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xEF
- ble _0819D3B2
- movs r1, 0
- movs r0, 0xF0
- b _0819D3B0
- .pool
-_0819D39C:
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xA0
- bgt _0819D3B2
- movs r1, 0
- movs r0, 0xA0
-_0819D3B0:
- mov r8, r0
-_0819D3B2:
- cmp r1, 0x1
- bne _0819D3FC
- movs r3, 0
- ldr r7, =gSprites
- ldr r6, =gUnknown_03001284
- asrs r5, r2, 24
-_0819D3BE:
- movs r4, 0
- adds r2, r3, 0x1
-_0819D3C2:
- ldr r1, [r6]
- lsls r0, r4, 1
- adds r0, r4
- adds r0, r3, r0
- adds r1, 0x8
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D3C2
- lsls r0, r2, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0819D3BE
- b _0819D570
- .pool
-_0819D3FC:
- movs r4, 0
- lsls r1, r7, 2
- mov r12, r1
- mov r6, r8
- adds r6, 0x10
- movs r0, 0x30
- add r0, r8
- mov r9, r0
- ldr r5, =gSprites
-_0819D40E:
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- lsls r3, r4, 1
- adds r3, r4
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x20]
- adds r0, r2, 0
- adds r0, 0x9
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x20]
- adds r2, 0xA
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D40E
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r10
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r10
- movs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r7, 0
- bl DestroyTask
- b _0819D570
- .pool
-_0819D480:
- ldr r2, =gSprites
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r1, [r0, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- cmp r5, 0
- bne _0819D4B4
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xEF
- ble _0819D4CA
- movs r1, 0
- movs r0, 0xF0
- b _0819D4C8
- .pool
-_0819D4B4:
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xC0
- bgt _0819D4CA
- movs r1, 0
- movs r0, 0xC0
-_0819D4C8:
- mov r8, r0
-_0819D4CA:
- cmp r1, 0x1
- bne _0819D510
- movs r3, 0
- ldr r7, =gSprites
- ldr r6, =gUnknown_03001284
- asrs r5, r2, 24
-_0819D4D6:
- movs r4, 0
- adds r2, r3, 0x1
-_0819D4DA:
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r1, r3, r1
- adds r0, 0xE
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D4DA
- lsls r0, r2, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bls _0819D4D6
- b _0819D570
- .pool
-_0819D510:
- movs r4, 0
- lsls r1, r7, 2
- mov r12, r1
- mov r6, r8
- adds r6, 0x10
- ldr r5, =gSprites
- ldr r0, =gUnknown_03001284
- mov r9, r0
-_0819D520:
- mov r1, r9
- ldr r2, [r1]
- lsls r3, r4, 1
- adds r0, r2, 0
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x20]
- adds r2, 0xF
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D520
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r10
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r10
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r7, 0
- bl DestroyTask
-_0819D570:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D324
-
- thumb_func_start sub_819D588
-sub_819D588: @ 819D588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- 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, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x5
- bls _0819D5AA
- b _0819D762
-_0819D5AA:
- lsls r0, 2
- ldr r1, =_0819D5BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819D5BC:
- .4byte _0819D5D4
- .4byte _0819D5F0
- .4byte _0819D60C
- .4byte _0819D63C
- .4byte _0819D6F0
- .4byte _0819D73A
-_0819D5D4:
- ldr r0, =gUnknown_08610918
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- bl sub_819ED34
- movs r0, 0x5
- bl PutWindowTilemap
- b _0819D622
- .pool
-_0819D5F0:
- movs r0, 0x3
- bl sub_819EA64
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819D762
- .pool
-_0819D60C:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gUnknown_0860F13C
- adds r1, 0x4A
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0819D622:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0819D762
- .pool
-_0819D63C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0819D64E
- b _0819D762
-_0819D64E:
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0x1
- bne _0819D6B0
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r1
- strh r6, [r2, 0xE]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
- strh r6, [r0, 0x8]
- strh r6, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- movs r0, 0x5
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0819D762
- .pool
-_0819D6B0:
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r3
- movs r1, 0x1
- strh r1, [r2, 0xE]
- strh r6, [r2, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r6, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r2, 0x8]
- adds r0, 0x2
- strh r0, [r2, 0x8]
- b _0819D762
- .pool
-_0819D6F0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r1, r8
- adds r6, r0, r1
- ldrh r0, [r6, 0xC]
- movs r2, 0xC
- ldrsh r7, [r6, r2]
- cmp r7, 0
- bne _0819D734
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- strh r7, [r6, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- strh r5, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r7, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0819D762
- .pool
-_0819D734:
- subs r0, 0x1
- strh r0, [r6, 0xC]
- b _0819D762
-_0819D73A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819D762
- movs r1, 0x10
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819D762
- ldrh r0, [r2, 0x12]
- strh r0, [r2, 0x8]
- ldrh r0, [r2, 0x14]
- ldrh r1, [r2, 0x16]
- lsls r0, 16
- orrs r0, r1
- str r0, [r2]
-_0819D762:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819D588
-
- thumb_func_start sub_819D770
-sub_819D770: @ 819D770
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x30
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- bne _0819D78C
- b _0819D9D8
-_0819D78C:
- ldr r0, =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r4, 0x8
- ldrsh r1, [r1, r4]
- mov r8, r0
- adds r5, r2, 0
- cmp r1, 0x8
- bls _0819D7A4
- b _0819D9D8
-_0819D7A4:
- lsls r0, r1, 2
- ldr r1, =_0819D7BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819D7BC:
- .4byte _0819D7E0
- .4byte _0819D868
- .4byte _0819D8AE
- .4byte _0819D8F4
- .4byte _0819D910
- .4byte _0819D928
- .4byte _0819D936
- .4byte _0819D948
- .4byte _0819D9B0
-_0819D7E0:
- ldr r0, [r3]
- ldrb r7, [r0, 0x14]
- cmp r7, 0x1
- bne _0819D828
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- adds r2, r5, r6
- lsls r2, 3
- adds r2, r3
- movs r1, 0
- strh r1, [r2, 0xE]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r6, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r7, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- movs r0, 0xA
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0819D9D8
- .pool
-_0819D828:
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- adds r2, r5, r6
- lsls r2, 3
- adds r2, r3
- movs r0, 0
- movs r1, 0x1
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r6, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r2, 0x8]
- adds r0, 0x2
- strh r0, [r2, 0x8]
- b _0819D9D8
- .pool
-_0819D868:
- adds r0, r5, r6
- lsls r0, 3
- mov r1, r8
- adds r5, r0, r1
- ldrh r0, [r5, 0xC]
- movs r2, 0xC
- ldrsh r7, [r5, r2]
- cmp r7, 0
- bne _0819D8A8
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- strh r7, [r5, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- strh r6, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0819D9D8
- .pool
-_0819D8A8:
- subs r0, 0x1
- strh r0, [r5, 0xC]
- b _0819D9D8
-_0819D8AE:
- adds r0, r5, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _0819D8C0
- b _0819D9D8
-_0819D8C0:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819D8CA
- b _0819D9D8
-_0819D8CA:
- ldr r1, =gPlttBufferFaded
- ldr r0, =gUnknown_0860F13C
- adds r0, 0x4A
- ldrh r0, [r0]
- movs r2, 0xE2
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
- bl sub_819ED34
- movs r0, 0x5
- bl PutWindowTilemap
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D9D8
- .pool
-_0819D8F4:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gUnknown_0860F13C
- adds r1, 0x4A
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0819D990
- .pool
-_0819D910:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819D9D8
- movs r0, 0
- bl sub_819EDBC
- b _0819D990
- .pool
-_0819D928:
- movs r0, 0x1
- bl sub_819EDBC
- movs r0, 0x3
- bl PutWindowTilemap
- b _0819D990
-_0819D936:
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819D990
-_0819D948:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819D964
- ldr r0, =gUnknown_085EEC73
- bl sub_819EBEC
- b _0819D96A
- .pool
-_0819D964:
- ldr r0, =gUnknown_085EEC8B
- bl sub_819EBEC
-_0819D96A:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bhi _0819D98C
- ldr r2, =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0819D98C:
- bl sub_819EFA8
-_0819D990:
- ldr r0, =gTasks
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819D9D8
- .pool
-_0819D9B0:
- bl sub_819EEF0
- bl sub_819EADC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x14]
- ldrh r2, [r0, 0x16]
- lsls r1, 16
- orrs r1, r2
- str r1, [r0]
-_0819D9D8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D770
-
- thumb_func_start sub_819D9EC
-sub_819D9EC: @ 819D9EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819DA00
- b _0819DBCA
-_0819DA00:
- ldr r0, =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- adds r3, r0, 0
- adds r7, r2, 0
- cmp r1, 0x4
- bls _0819DA18
- b _0819DBCA
-_0819DA18:
- lsls r0, r1, 2
- ldr r1, =_0819DA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819DA30:
- .4byte _0819DA44
- .4byte _0819DA58
- .4byte _0819DA8C
- .4byte _0819DABC
- .4byte _0819DBB0
-_0819DA44:
- bl sub_819EEF0
- ldr r0, =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r0
- b _0819DB96
- .pool
-_0819DA58:
- bl sub_819EADC
- ldr r2, =gSprites
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r1, [r0, 0x4]
- 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]
- ldr r0, =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r0
- b _0819DB96
- .pool
-_0819DA8C:
- ldr r0, =sub_819D12C
- movs r1, 0
- bl CreateTask
- ldr r2, =gTasks
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_819D064
- str r1, [r0]
- b _0819DB90
- .pool
-_0819DABC:
- ldr r0, =sub_819D12C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0819DACA
- b _0819DBCA
-_0819DACA:
- ldr r2, =gTasks
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x10
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0819DBCA
- bl sub_819EAC0
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819DB04
- movs r0, 0x1
- bl sub_819F048
- b _0819DB32
- .pool
-_0819DB04:
- movs r0, 0
- bl sub_819F048
- movs r2, 0
- ldr r5, =gSprites
- movs r3, 0x4
-_0819DB10:
- ldr r0, [r4]
- adds r0, 0xB
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0819DB10
-_0819DB32:
- ldr r5, =gSprites
- ldr r4, =gUnknown_03001284
- ldr r3, [r4]
- ldrb r0, [r3, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r0, r3, 0x5
- ldrb r2, [r3, 0x3]
- adds r0, r2
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x20]
- movs r5, 0
- strh r0, [r1, 0x20]
- ldr r2, =gTasks
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_819CF54
- str r1, [r0]
- adds r3, 0x27
- strb r5, [r3]
- ldr r0, [r4]
- adds r0, 0x28
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x26
- strb r5, [r0]
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x8]
-_0819DB90:
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r2
-_0819DB96:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819DBCA
- .pool
-_0819DBB0:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r2, =sub_819CE40
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x12]
- ldr r1, =sub_819D770
- str r1, [r0]
-_0819DBCA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D9EC
-
- thumb_func_start sub_819DBD8
-sub_819DBD8: @ 819DBD8
- push {r4,r5,lr}
- ldr r5, =gUnknown_03001284
- ldr r4, [r5]
- cmp r4, 0
- bne _0819DBF6
- movs r0, 0x34
- bl AllocZeroed
- str r0, [r5]
- strb r4, [r0, 0x3]
- ldr r0, [r5]
- adds r0, 0x30
- strb r4, [r0]
- ldr r0, [r5]
- strb r4, [r0, 0x15]
-_0819DBF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DBD8
-
- thumb_func_start sub_819DC00
-sub_819DC00: @ 819DC00
- push {lr}
- ldr r0, =gUnknown_03001284
- movs r1, 0
- str r1, [r0]
- ldr r0, =sub_819DC1C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DC00
-
- thumb_func_start sub_819DC1C
-sub_819DC1C: @ 819DC1C
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xF
- bls _0819DC32
- b _0819E0AA
-_0819DC32:
- lsls r0, 2
- ldr r1, =_0819DC44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819DC44:
- .4byte _0819DC84
- .4byte _0819DCD4
- .4byte _0819DDA8
- .4byte _0819DE68
- .4byte _0819DE94
- .4byte _0819DECC
- .4byte _0819DEEC
- .4byte _0819DF10
- .4byte _0819DF30
- .4byte _0819DF3C
- .4byte _0819DF64
- .4byte _0819DF70
- .4byte _0819DF78
- .4byte _0819DF8C
- .4byte _0819DFA4
- .4byte _0819E01C
-_0819DC84:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_086108B8
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_086108C8
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DCD4:
- ldr r5, =gUnknown_0203CE40
- movs r4, 0x88
- lsls r4, 3
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE44
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- ldr r5, =gUnknown_0203CE48
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE4C
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- 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, 0
- bl SetGpuReg
- b _0819E006
- .pool
-_0819DDA8:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl dp13_810BB8C
- ldr r0, =gUnknown_08DC0754
- ldr r5, =gUnknown_0203CE40
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 2
- bl CpuSet
- ldr r0, =gUnknown_0861033C
- ldr r4, =gUnknown_0203CE44
- ldr r1, [r4]
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 3
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, [r4]
- movs r0, 0x3
- movs r2, 0x60
- movs r3, 0
- bl LoadBgTiles
- ldr r0, =gUnknown_08DC0B94
- ldr r4, =gUnknown_0203CE48
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTilemap
- ldr r0, =gUnknown_08DC0714
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r4, =gUnknown_08610918
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gUnknown_0861039C
- movs r1, 0x20
- movs r2, 0x4
- bl LoadPalette
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DE68:
- ldr r0, =gUnknown_0203CE4C
- ldr r1, [r0]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- ldr r1, =gUnknown_0861023C
- movs r0, 0x8
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r2, 0xB
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _0819E006
- .pool
-_0819DE94:
- ldr r0, =gUnknown_086106B0
- bl LoadSpritePalettes
- ldr r0, =gUnknown_08610650
- bl LoadSpriteSheets
- ldr r0, =gUnknown_086106A0
- bl LoadCompressedObjectPic
- ldr r0, =sub_819C7FC
- bl SetVBlankCallback
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DECC:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x15]
- cmp r0, 0x1
- bne _0819DEDC
- ldr r0, =gUnknown_0203CF20
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
-_0819DEDC:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _0819E00E
- .pool
-_0819DEEC:
- bl sub_819DBD8
- bl sub_819E0C0
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0819DF02
- bl sub_819F304
-_0819DF02:
- movs r0, 0
- bl sub_819F048
- b _0819E006
- .pool
-_0819DF10:
- ldr r0, =gUnknown_085EEC73
- bl sub_819EBEC
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DF30:
- bl sub_819EFA8
- movs r0, 0x8
- bl PutWindowTilemap
- b _0819E006
-_0819DF3C:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- bne _0819DF4A
- bl sub_819EB4C
-_0819DF4A:
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DF64:
- bl sub_819EB18
- movs r0, 0
- bl PutWindowTilemap
- b _0819E006
-_0819DF70:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _0819E00E
-_0819DF78:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- beq _0819E006
- bl sub_819EE08
- b _0819E006
- .pool
-_0819DF8C:
- bl sub_819ED78
- movs r0, 0x3
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DFA4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0819E000
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819E006
- .pool
-_0819E000:
- movs r0, 0x3
- bl HideBg
-_0819E006:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_0819E00E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0819E0AA
- .pool
-_0819E01C:
- ldr r0, =sub_819CF54
- movs r1, 0
- bl CreateTask
- ldr r6, =gUnknown_03001284
- ldr r1, [r6]
- adds r1, 0x21
- strb r0, [r1]
- ldr r0, [r6]
- ldrb r5, [r0, 0x15]
- cmp r5, 0
- bne _0819E06C
- ldr r4, =gTasks
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- ldr r0, =sub_819CE40
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- b _0819E0A4
- .pool
-_0819E06C:
- bl sub_819EAF8
- ldr r4, =gTasks
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0
- movs r1, 0x1
- strh r1, [r0, 0x8]
- adds r2, 0x22
- strb r3, [r2]
- ldr r0, =sub_819CD34
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
-_0819E0A4:
- ldr r0, =sub_819C7E0
- bl SetMainCallback2
-_0819E0AA:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DC1C
-
- thumb_func_start sub_819E0C0
-sub_819E0C0: @ 819E0C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r1, sp
- ldr r0, =gUnknown_08610834
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- mov r1, sp
- movs r0, 0x65
- strh r0, [r1, 0x2]
- movs r6, 0
- ldr r4, =gUnknown_03001284
- movs r7, 0
- ldr r5, =gSprites
-_0819E0E6:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 20
- movs r3, 0x90
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- mov r0, sp
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x5
- adds r1, r6
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x5
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0819E0E6
- ldr r7, =gUnknown_03001284
- ldr r1, [r7]
- adds r0, r1, 0x5
- ldrb r1, [r1, 0x3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r5, 0x20
- ldrsh r1, [r0, r5]
- ldr r0, =gUnknown_0861084C
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- movs r4, 0
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_08610864
- movs r1, 0xB0
- movs r2, 0x70
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x1]
- ldr r0, =gUnknown_0861087C
- movs r1, 0xB0
- movs r2, 0x90
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x2]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, =gSprites
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x28
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x29
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x28
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x29
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r0, [r0, 0x15]
- movs r1, 0xC0
- str r1, [sp, 0x18]
- cmp r0, 0x1
- bne _0819E1E8
- movs r2, 0xF0
- str r2, [sp, 0x18]
-_0819E1E8:
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- movs r4, 0x68
- mov r10, r4
- mov r5, r10
- strh r5, [r0]
- movs r1, 0xF0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x8]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- mov r0, sp
- movs r1, 0x69
- mov r9, r1
- mov r2, r9
- strh r2, [r0]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4, 0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x9]
- movs r5, 0x90
- lsls r5, 1
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xA]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- movs r3, 0x6A
- mov r8, r3
- mov r6, r8
- strh r6, [r0]
- movs r1, 0xF0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xB]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r1, sp
- movs r0, 0x6B
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xC]
- mov r0, sp
- movs r6, 0x6C
- strh r6, [r0]
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xD]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- mov r4, r10
- strh r4, [r0]
- ldr r1, [sp, 0x18]
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xE]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- mov r0, sp
- mov r3, r9
- strh r3, [r0]
- ldr r4, [sp, 0x18]
- adds r4, 0x10
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xF]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- mov r5, r8
- strh r5, [r0]
- ldr r1, [sp, 0x18]
- movs r2, 0x90
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x10]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- strh r6, [r0]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x11]
- movs r6, 0
- ldr r5, =gSprites
- adds r4, r7, 0
- movs r7, 0
- movs r0, 0x4
- mov r10, r0
-_0819E330:
- ldr r0, [r4]
- lsls r3, r6, 1
- adds r2, r3, r6
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r10
- orrs r1, r0
- mov r0, r8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r10
- orrs r1, r0
- mov r0, r8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r10
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, =gUnknown_03001284
- mov r8, r3
- ldr r0, =gSprites
- mov r9, r0
- cmp r6, 0x1
- bhi _0819E496
- b _0819E330
-_0819E496:
- ldr r0, [r3]
- ldrb r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- b _0819E4C8
- .pool
-_0819E4C8:
- ands r0, r2
- strb r0, [r1]
- mov r1, r8
- ldr r0, [r1]
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r4, r8
- ldr r0, [r4]
- ldrb r1, [r0, 0x9]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819E0C0
-
- thumb_func_start sub_819E538
-sub_819E538: @ 819E538
- push {r4-r7,lr}
- movs r5, 0
-_0819E53C:
- ldr r6, =gUnknown_03001284
- ldr r0, [r6]
- adds r0, 0x5
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819E53C
- ldr r0, [r6]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r5, 0
-_0819E590:
- movs r4, 0
- lsls r6, r5, 1
-_0819E594:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r6, r5
- adds r1, r4, r1
- adds r0, 0x8
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819E594
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0819E590
- movs r5, 0
-_0819E5C6:
- movs r4, 0
- adds r7, r5, 0x1
- lsls r6, r5, 1
-_0819E5CC:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r4, r6
- adds r0, 0xE
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819E5CC
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0819E5C6
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E538
-
- thumb_func_start sub_819E608
-sub_819E608: @ 819E608
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bhi _0819E65C
- ldr r4, =gSprites
- ldr r5, =gUnknown_03001284
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bl sub_819E8EC
- ldr r0, [r5]
- ldrb r2, [r0, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r0, 0x5
- adds r0, r6
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r1, 0x20]
- b _0819E684
- .pool
-_0819E65C:
- ldr r2, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- ldrb r1, [r0, 0x4]
- 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]
- ldr r0, [r3]
- ldr r1, [r0, 0x18]
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0]
- bl sub_819E838
-_0819E684:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E608
-
- thumb_func_start sub_819E694
-sub_819E694: @ 819E694
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E6C0
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- ldrb r3, [r2, 0x17]
- cmp r0, r3
- bne _0819E6D8
- movs r0, 0
- b _0819E6D8
- .pool
-_0819E6C0:
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r3, [r2, 0x3]
- adds r1, r0, 0
- cmp r3, 0
- beq _0819E6D4
- subs r0, r3, 0x1
- b _0819E6D8
- .pool
-_0819E6D4:
- ldrb r0, [r2, 0x17]
- subs r0, 0x1
-_0819E6D8:
- strb r0, [r2, 0x3]
- ldr r0, [r1]
- ldrb r0, [r0, 0x3]
- bl sub_819E608
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819E694
-
- thumb_func_start sub_819E6E8
-sub_819E6E8: @ 819E6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E728
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r1, [r2, 0x3]
- adds r4, r0, 0
- cmp r1, 0x2
- bhi _0819E714
- movs r0, 0x3
- strb r0, [r2, 0x3]
- b _0819E74A
- .pool
-_0819E714:
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- ldrb r1, [r2, 0x17]
- cmp r0, r1
- beq _0819E722
- strb r0, [r2, 0x3]
- b _0819E74A
-_0819E722:
- movs r0, 0
- strb r0, [r2, 0x3]
- b _0819E74A
-_0819E728:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r3, 0
- adds r4, r0, 0
- cmp r2, 0x2
- bls _0819E744
- cmp r2, 0
- beq _0819E744
- subs r0, r3, 0x1
- b _0819E748
- .pool
-_0819E744:
- ldrb r0, [r1, 0x17]
- subs r0, 0x1
-_0819E748:
- strb r0, [r1, 0x3]
-_0819E74A:
- ldr r0, [r4]
- ldrb r0, [r0, 0x3]
- bl sub_819E608
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819E6E8
-
- thumb_func_start sub_819E758
-sub_819E758: @ 819E758
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819E778
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x16]
- adds r2, r0, 0
- cmp r3, 0x1
- beq _0819E774
- adds r0, r3, 0x1
- b _0819E78E
- .pool
-_0819E774:
- movs r0, 0
- b _0819E78E
-_0819E778:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x16]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819E78C
- subs r0, r3, 0x1
- b _0819E78E
- .pool
-_0819E78C:
- movs r0, 0x1
-_0819E78E:
- strb r0, [r1, 0x16]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x16]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x16]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E758
-
- thumb_func_start sub_819E7C0
-sub_819E7C0: @ 819E7C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E7EC
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0x2
- beq _0819E7E8
- adds r0, r3, 0x1
- b _0819E802
- .pool
-_0819E7E8:
- movs r0, 0
- b _0819E802
-_0819E7EC:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819E800
- subs r0, r3, 0x1
- b _0819E802
- .pool
-_0819E800:
- movs r0, 0x2
-_0819E802:
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E7C0
-
- thumb_func_start sub_819E838
-sub_819E838: @ 819E838
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r0, 0x5
- negs r0, r0
- mov r9, r0
- movs r2, 0x4
- mov r8, r2
- ldr r0, =gSprites
- mov r12, r0
- ldr r7, =gUnknown_03001284
-_0819E856:
- cmp r6, 0x2
- bne _0819E898
- ldr r5, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- adds r0, 0xB
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- cmp r4, 0x1
- bhi _0819E8D4
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- b _0819E8CA
- .pool
-_0819E898:
- cmp r6, 0x3
- bne _0819E8D4
- cmp r4, 0x1
- bhi _0819E8BA
- ldr r0, [r7]
- adds r0, 0x10
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
-_0819E8BA:
- ldr r0, [r7]
- adds r0, 0xB
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
-_0819E8CA:
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r8
- orrs r1, r2
- strb r1, [r0]
-_0819E8D4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819E856
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819E838
-
- thumb_func_start sub_819E8EC
-sub_819E8EC: @ 819E8EC
- push {r4-r6,lr}
- movs r2, 0
- ldr r5, =gSprites
- ldr r4, =gUnknown_03001284
- adds r6, r5, 0
- movs r3, 0x4
-_0819E8F8:
- ldr r0, [r4]
- adds r0, 0xB
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- cmp r2, 0x1
- bhi _0819E92C
- ldr r0, [r4]
- adds r0, 0x10
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
-_0819E92C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0819E8F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E8EC
-
- thumb_func_start sub_819E944
-sub_819E944: @ 819E944
- push {r4,r5,lr}
- ldr r0, =gUnknown_03001284
- ldr r3, [r0]
- ldrb r1, [r3, 0x15]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0819E95C
- movs r0, 0
- strb r0, [r3, 0x15]
- b _0819E960
- .pool
-_0819E95C:
- movs r0, 0
- strb r0, [r3]
-_0819E960:
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819EC20
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E944
-
- thumb_func_start sub_819E9E0
-sub_819E9E0: @ 819E9E0
- push {r4,r5,lr}
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x16]
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x70
- strh r3, [r0, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819EC94
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E9E0
-
- thumb_func_start sub_819EA64
-sub_819EA64: @ 819EA64
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl ClearWindowTilemap
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EA64
-
- thumb_func_start sub_819EAC0
-sub_819EAC0: @ 819EAC0
- push {lr}
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EAC0
-
- thumb_func_start sub_819EADC
-sub_819EADC: @ 819EADC
- push {lr}
- movs r0, 0x7
- bl PutWindowTilemap
- movs r0, 0x7
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x7
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EADC
-
- thumb_func_start sub_819EAF8
-sub_819EAF8: @ 819EAF8
- push {lr}
- bl sub_819EAC0
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EAF8
-
- thumb_func_start sub_819EB18
-sub_819EB18: @ 819EB18
- push {lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gUnknown_085EEC66
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EB18
-
- thumb_func_start sub_819EB4C
-sub_819EB4C: @ 819EB4C
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EB70
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819EBD4
- .pool
-_0819EB70:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EB84
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EB8A
- .pool
-_0819EB84:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EB8A:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EBD4:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EB4C
-
- thumb_func_start sub_819EBEC
-sub_819EBEC: @ 819EBEC
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819EBEC
-
- thumb_func_start sub_819EC20
-sub_819EC20: @ 819EC20
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610922
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EECAA
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EECA5
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x11
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EECB2
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x21
- bl box_print
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EC20
-
- thumb_func_start sub_819EC94
-sub_819EC94: @ 819EC94
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x4
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610922
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EECCA
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gUnknown_085EECCE
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- movs r0, 0x4
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EC94
-
- thumb_func_start sub_819ECF0
-sub_819ECF0: @ 819ECF0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0x46
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_08610922
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0
- adds r3, r5, 0
- bl box_print
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ECF0
-
- thumb_func_start sub_819ED34
-sub_819ED34: @ 819ED34
- push {lr}
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- beq _0819ED56
- cmp r0, 0x1
- bne _0819ED60
- ldr r0, =gUnknown_085EECD1
- movs r1, 0
- movs r2, 0x5
- bl sub_819ECF0
-_0819ED56:
- ldr r0, =gUnknown_085EECDD
- movs r1, 0x18
- movs r2, 0x5
- bl sub_819ECF0
-_0819ED60:
- movs r0, 0x5
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ED34
-
- thumb_func_start sub_819ED78
-sub_819ED78: @ 819ED78
- push {lr}
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- beq _0819ED9A
- cmp r0, 0x1
- bne _0819EDA4
- ldr r0, =gUnknown_085EECD1
- movs r1, 0x8
- movs r2, 0x3
- bl sub_819ECF0
-_0819ED9A:
- ldr r0, =gUnknown_085EECDD
- movs r1, 0x20
- movs r2, 0x3
- bl sub_819ECF0
-_0819EDA4:
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ED78
-
- thumb_func_start sub_819EDBC
-sub_819EDBC: @ 819EDBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0819EDCC
- cmp r0, 0x1
- beq _0819EDEC
- b _0819EDF6
-_0819EDCC:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0x1
- bne _0819EDF6
- ldr r0, =gUnknown_085EECD1
- movs r1, 0x8
- movs r2, 0x3
- bl sub_819ECF0
- b _0819EDF6
- .pool
-_0819EDEC:
- ldr r0, =gUnknown_085EECDD
- movs r1, 0x20
- movs r2, 0x3
- bl sub_819ECF0
-_0819EDF6:
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EDBC
-
- thumb_func_start sub_819EE08
-sub_819EE08: @ 819EE08
- push {r4,lr}
- sub sp, 0x18
- ldr r0, =gUnknown_08610918
- add r1, sp, 0xC
- movs r2, 0x4
- bl CpuSet
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r0, [r2, 0x15]
- cmp r0, 0
- bne _0819EE3C
- add r0, sp, 0xC
- ldr r1, =gPlttBufferFaded
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r2
- ldrh r1, [r1]
- strh r1, [r0, 0x8]
- b _0819EE42
- .pool
-_0819EE3C:
- add r1, sp, 0xC
- ldrh r0, [r2, 0x24]
- strh r0, [r1, 0x8]
-_0819EE42:
- add r0, sp, 0xC
- movs r1, 0xF0
- movs r2, 0xA
- bl LoadPalette
- movs r0, 0x7
- bl PutWindowTilemap
- movs r0, 0x7
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EE74
- movs r0, 0x7
- movs r1, 0x3
- bl CopyWindowToVram
- b _0819EED8
- .pool
-_0819EE74:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EE88
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EE8E
- .pool
-_0819EE88:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EE8E:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x7
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x7
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EED8:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EE08
-
- thumb_func_start sub_819EEF0
-sub_819EEF0: @ 819EEF0
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_08610918
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gPlttBufferUnfaded+ 0x1E0
- ldr r1, =gPlttBufferFaded + 0x1C0
- movs r2, 0x5
- bl CpuSet
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EF2C
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819EF90
- .pool
-_0819EF2C:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EF40
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EF46
- .pool
-_0819EF40:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EF46:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EF90:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EEF0
-
- thumb_func_start sub_819EFA8
-sub_819EFA8: @ 819EFA8
- push {r4-r6,lr}
- sub sp, 0x2C
- ldr r6, =gUnknown_03001284
- ldr r0, [r6]
- ldrb r4, [r0, 0x3]
- adds r5, r4, 0
- movs r0, 0x8
- movs r1, 0
- bl FillWindowPixelBuffer
- cmp r4, 0x2
- bls _0819EFD0
- movs r0, 0x8
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819F03A
- .pool
-_0819EFD0:
- movs r0, 0x8
- bl PutWindowTilemap
- ldr r0, [r6]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819EFEC
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- b _0819EFF2
- .pool
-_0819EFEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
-_0819EFF2:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- add r1, sp, 0xC
- bl sub_81DB468
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x76
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x8
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- movs r0, 0x8
- movs r1, 0x2
- bl CopyWindowToVram
-_0819F03A:
- add sp, 0x2C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EFA8
-
- thumb_func_start sub_819F048
-sub_819F048: @ 819F048
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, =gUnknown_03001284
- ldr r3, [r4]
- ldrb r0, [r3, 0x15]
- cmp r0, 0x1
- beq _0819F094
- cmp r2, 0
- beq _0819F068
- cmp r2, 0x1
- beq _0819F080
- b _0819F094
- .pool
-_0819F068:
- strb r2, [r3, 0x14]
- ldr r0, [r4]
- strb r2, [r0, 0x3]
- ldr r1, [r4]
- movs r0, 0x4
- strb r0, [r1, 0x17]
- ldr r1, [r4]
- ldr r0, =gUnknown_08610928
- b _0819F092
- .pool
-_0819F080:
- movs r1, 0
- strb r2, [r3, 0x14]
- ldr r0, [r4]
- strb r1, [r0, 0x3]
- ldr r1, [r4]
- movs r0, 0x5
- strb r0, [r1, 0x17]
- ldr r1, [r4]
- ldr r0, =gUnknown_08610948
-_0819F092:
- str r0, [r1, 0x18]
-_0819F094:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F048
-
- thumb_func_start sub_819F0A0
-sub_819F0A0: @ 819F0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_03001280
- ldr r2, =gUnknown_086108AC
- ldr r1, =gUnknown_03001284
- ldr r1, [r1]
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r3]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F0A0
-
- thumb_func_start sub_819F0CC
-sub_819F0CC: @ 819F0CC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- ldr r0, [r5]
- ldrb r1, [r0, 0x3]
- movs r5, 0
- strb r1, [r0, 0x12]
- movs r0, 0x3
- bl sub_819EA64
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, =sub_819D9EC
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F0CC
-
- thumb_func_start sub_819F114
-sub_819F114: @ 819F114
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x8]
- ldr r0, =sub_819C90C
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F114
-
- thumb_func_start sub_819F134
-sub_819F134: @ 819F134
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819EA64
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r2, =sub_819CE40
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x12]
- ldr r1, =sub_819D770
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F134
-
- thumb_func_start sub_819F184
-sub_819F184: @ 819F184
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_03001280
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- ldr r2, [r2, 0x18]
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1, 0x4]
- str r1, [r3]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F184
-
- thumb_func_start sub_819F1AC
-sub_819F1AC: @ 819F1AC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, =sub_819CC24
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x14]
- strh r2, [r1, 0x16]
- strh r3, [r1, 0x8]
- strh r3, [r1, 0x12]
- ldr r0, =sub_819D588
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F1AC
-
- thumb_func_start sub_819F1DC
-sub_819F1DC: @ 819F1DC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, =sub_819D9EC
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x14]
- strh r2, [r1, 0x16]
- strh r3, [r1, 0x12]
- strh r3, [r1, 0x8]
- ldr r0, =sub_819D588
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F1DC
-
- thumb_func_start sub_819F20C
-sub_819F20C: @ 819F20C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819F240
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- ldr r2, =sub_819CD34
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x2
- strh r1, [r0, 0x12]
- b _0819F292
- .pool
-_0819F240:
- ldrb r0, [r1, 0x3]
- bl sub_819F59C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0819F278
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r4, [r0, 0x12]
- ldr r1, =sub_819F488
- b _0819F29E
- .pool
-_0819F278:
- ldr r4, =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r4
- ldr r2, =sub_819CCD4
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- strh r3, [r0, 0x12]
- adds r3, r4, 0
- adds r4, r5, 0
-_0819F292:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, =sub_819D588
-_0819F29E:
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F20C
-
- thumb_func_start sub_819F2B4
-sub_819F2B4: @ 819F2B4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- ldr r0, =gUnknown_08610894
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- strb r0, [r4]
- ldr r2, =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_819F600
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x3C]
- movs r0, 0x1
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F2B4
-
- thumb_func_start sub_819F304
-sub_819F304: @ 819F304
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x10
- ldr r0, =gUnknown_08610894
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_03001284
- ldr r1, [r6]
- adds r1, 0x2D
- movs r2, 0
- mov r10, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x2D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, [r6]
- ldrb r1, [r0, 0x3]
- movs r0, 0x64
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r1, r9
- movs r3, 0x1
- bl sub_818D7D8
- ldr r1, [r6]
- adds r1, 0x2C
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x28
- mov r2, r10
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x29
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x2D
- 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]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F304
-
- thumb_func_start sub_819F3F8
-sub_819F3F8: @ 819F3F8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_818D820
- ldr r0, =sub_819F7B4
- movs r1, 0x1
- 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 r5, [r1, 0x16]
- lsrs r4, 8
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r1, 0x14]
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F3F8
-
- thumb_func_start sub_819F444
-sub_819F444: @ 819F444
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_818D820
- ldr r5, =gSprites
- lsls r4, 16
- lsrs r1, r4, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F444
-
- thumb_func_start sub_819F488
-sub_819F488: @ 819F488
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x30
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- beq _0819F58A
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x4
- bhi _0819F58A
- lsls r0, 2
- ldr r1, =_0819F4C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819F4C8:
- .4byte _0819F4DC
- .4byte _0819F4F8
- .4byte _0819F52C
- .4byte _0819F548
- .4byte _0819F568
-_0819F4DC:
- ldr r0, =gUnknown_085EED0A
- bl sub_819EBEC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- b _0819F54E
- .pool
-_0819F4F8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0819F50C
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819F58A
-_0819F50C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- b _0819F54E
- .pool
-_0819F52C:
- ldr r0, [r3]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819F58A
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819F54E
-_0819F548:
- ldr r0, =gUnknown_085EEC8B
- bl sub_819EBEC
-_0819F54E:
- ldr r0, =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819F58A
- .pool
-_0819F568:
- bl sub_819EEF0
- bl sub_819EADC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, =gTasks
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0x8]
- ldr r1, =sub_819CE40
- str r1, [r0]
-_0819F58A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F488
-
- thumb_func_start sub_819F59C
-sub_819F59C: @ 819F59C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_0819F5B8:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- cmp r4, r0
- beq _0819F5EC
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bne _0819F5EC
- movs r0, 0x1
- b _0819F5F8
- .pool
-_0819F5EC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819F5B8
- movs r0, 0
-_0819F5F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_819F59C
-
- thumb_func_start sub_819F600
-sub_819F600: @ 819F600
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819F640
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =sub_819F69C
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r4, 0x3C]
- strh r2, [r1, 0x16]
- ldr r1, [r1]
- bl _call_via_r1
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0819F640:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F600
-
- thumb_func_start sub_819F654
-sub_819F654: @ 819F654
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819F694
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0819F688
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x30
- movs r1, 0
- strb r1, [r0]
- b _0819F68E
- .pool
-_0819F688:
- movs r0, 0
- bl sub_819BE20
-_0819F68E:
- adds r0, r4, 0
- bl DestroySprite
-_0819F694:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819F654
-
- thumb_func_start sub_819F69C
-sub_819F69C: @ 819F69C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819F71A
- cmp r0, 0x1
- bgt _0819F6C4
- cmp r0, 0
- beq _0819F6CA
- b _0819F77C
- .pool
-_0819F6C4:
- cmp r0, 0x2
- beq _0819F73C
- b _0819F77C
-_0819F6CA:
- movs r0, 0x58
- strh r0, [r4, 0xE]
- movs r0, 0x98
- strh r0, [r4, 0x38]
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819F7A6
-_0819F71A:
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819F7A6
- .pool
-_0819F73C:
- ldrh r0, [r4, 0x12]
- subs r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- adds r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0819F758
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _0819F760
-_0819F758:
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
-_0819F760:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _0819F7AC
- b _0819F7A6
-_0819F77C:
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x16
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _0819F7A0
- bl sub_819F8E0
- b _0819F7AC
- .pool
-_0819F7A0:
- bl sub_819BD70
- b _0819F7AC
-_0819F7A6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819F7AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819F69C
-
- thumb_func_start sub_819F7B4
-sub_819F7B4: @ 819F7B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0819F844
- cmp r0, 0x1
- beq _0819F894
- movs r0, 0x3
- bl HideBg
- ldr r3, =gSprites
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0x3C]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_819F654
- str r1, [r0]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- adds r0, r5, 0
- bl DestroyTask
- b _0819F8D8
- .pool
-_0819F844:
- movs r0, 0x58
- strh r0, [r4, 0xE]
- movs r0, 0x98
- strh r0, [r4, 0x38]
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819F8D2
-_0819F894:
- ldrh r0, [r4, 0x12]
- adds r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- subs r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0819F8B0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x41
- bgt _0819F8B8
-_0819F8B0:
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
-_0819F8B8:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _0819F8D8
-_0819F8D2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819F8D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819F7B4
-
- thumb_func_start sub_819F8E0
-sub_819F8E0: @ 819F8E0
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819F900
- ldrb r1, [r1, 0x3]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _0819F908
- .pool
-_0819F900:
- ldrb r1, [r1, 0x3]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_0819F908:
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_818D7D8
- ldr r2, =gUnknown_03001284
- ldr r1, [r2]
- adds r1, 0x2C
- movs r3, 0
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0x30
- strb r3, [r0]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F8E0
-
- thumb_func_start sub_819F99C
-sub_819F99C: @ 819F99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r6, 0
- adds r7, r2, 0
- ldr r0, =gStringVar1
- mov r8, r0
- cmp r1, 0
- beq _0819F9DC
-_0819F9C2:
- adds r0, r1, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r1, 0
- beq _0819F9DC
- cmp r6, 0x3
- bls _0819F9C2
-_0819F9DC:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, [r7]
- adds r1, r4, r1
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r0
- mov r0, r8
- bl StringCopy7
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x0000011b
- adds r0, r1
- ldrb r1, [r0]
- mov r0, r8
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r1, [r7]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0x1
- adds r3, r6, 0
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_08611330
- ldr r0, [r7]
- adds r0, r4
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 25
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F99C
-
- thumb_func_start sub_819FA50
-sub_819FA50: @ 819FA50
- push {lr}
- bl script_env_2_enable_and_set_ctx_running
- pop {r0}
- bx r0
- thumb_func_end sub_819FA50
-
- thumb_func_start sub_819FA5C
-sub_819FA5C: @ 819FA5C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- adds r4, r3, 0
- adds r4, 0x28
- ldr r0, =0x0000ffff
- adds r5, r0, 0
-_0819FA6A:
- lsls r0, r2, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FA6A
- adds r1, r3, 0
- adds r1, 0x38
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FA5C
-
- thumb_func_start sub_819FAA0
-sub_819FAA0: @ 819FAA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0
- mov r12, r0
- adds r5, r3, 0
- mov r8, r0
- ldr r1, =0x0000ffff
- mov r10, r1
-_0819FAC6:
- movs r2, 0
- mov r3, r12
- lsls r7, r3, 4
- movs r4, 0x1
- add r4, r12
- mov r9, r4
- adds r0, r7, r3
- lsls r3, r0, 2
-_0819FAD6:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r0, r3
- movs r4, 0x82
- lsls r4, 1
- adds r1, r4
- adds r1, r0
- ldrh r0, [r1]
- mov r4, r10
- orrs r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FAD6
- ldr r2, [r5]
- mov r0, r12
- adds r3, r7, r0
- lsls r3, 2
- adds r2, r3
- adds r2, 0xDC
- ldrb r1, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r5]
- adds r0, r3
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xDC
- ldrb r2, [r1]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDE
- mov r4, r8
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDD
- strb r4, [r0]
- movs r2, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0x88
- lsls r4, 1
-_0819FB48:
- ldr r0, [r6]
- adds r1, r2, r3
- adds r0, r4
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0819FB48
- ldr r0, [r5]
- mov r3, r12
- adds r2, r7, r3
- lsls r2, 2
- adds r0, r2
- ldr r4, =gGameLanguage
- ldrb r1, [r4]
- ldr r3, =0x0000011b
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r5]
- movs r4, 0x8E
- lsls r4, 1
- adds r0, r4
- adds r0, r2
- mov r1, r8
- str r1, [r0]
- mov r3, r9
- lsls r0, r3, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x3
- bls _0819FAC6
- bl sub_81A087C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FAA0
-
- thumb_func_start sub_819FBB0
-sub_819FBB0: @ 819FBB0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- movs r1, 0x3
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_819FBB0
-
- thumb_func_start sub_819FBC8
-sub_819FBC8: @ 819FBC8
- push {r4,r5,lr}
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819FC10
- adds r4, r2, 0
- ldr r5, =gUnknown_08611548
-_0819FBDA:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- adds r1, r5
- ldrb r0, [r1]
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FBDA
- b _0819FC38
- .pool
-_0819FC10:
- adds r4, r2, 0
-_0819FC12:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FC12
-_0819FC38:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819FBC8
-
- thumb_func_start sub_819FC40
-sub_819FC40: @ 819FC40
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r2, 0xB1
- movs r1, 0x3
- ands r0, r1
- ldrb r3, [r2]
- subs r1, 0x7
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .pool
- thumb_func_end sub_819FC40
-
- thumb_func_start sub_819FC60
-sub_819FC60: @ 819FC60
- push {r4-r7,lr}
- sub sp, 0xC
- movs r5, 0
-_0819FC66:
- mov r1, sp
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FC66
- movs r5, 0
-_0819FC78:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r7, sp
- adds r2, r7, r4
- ldrb r3, [r2]
- adds r1, r7, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FC78
- movs r5, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0xF
-_0819FCBC:
- ldr r3, [r6]
- adds r3, 0xB4
- adds r3, r5
- lsls r2, r5, 1
- mov r1, sp
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 4
- adds r2, 0x1
- mov r7, sp
- adds r0, r7, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- ands r0, r2
- orrs r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FCBC
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FC60
-
- thumb_func_start sub_819FCF8
-sub_819FCF8: @ 819FCF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- cmp r0, 0x2
- bne _0819FD4C
- ldr r6, =gUnknown_030062EC
-_0819FD06:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r1, [r6]
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 1
- adds r1, 0x2
-_0819FD26:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0819FD38
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0819FD38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _0819FD26
- cmp r3, 0x3
- bhi _0819FD06
- b _0819FD5A
- .pool
-_0819FD4C:
- cmp r0, 0x1
- bne _0819FD5A
- ldrb r0, [r2]
- adds r1, r0
- ldrb r5, [r1]
- adds r0, 0x1
- strb r0, [r2]
-_0819FD5A:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_819FCF8
-
- thumb_func_start sub_819FD64
-sub_819FD64: @ 819FD64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- movs r5, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x14]
- mov r1, sp
- adds r1, 0x10
- str r1, [sp, 0x18]
- adds r1, r0, 0
-_0819FD80:
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FD80
- movs r5, 0
- ldr r6, [sp, 0x14]
-_0819FD92:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FD92
- movs r5, 0
- ldr r2, =gUnknown_086114D3
-_0819FDD0:
- mov r4, sp
- adds r1, r4, r5
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FDD0
- movs r5, 0
-_0819FDE6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r6, sp
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FDE6
- ldr r4, =gUnknown_030062EC
- movs r0, 0x30
- bl AllocZeroed
- str r0, [r4]
- movs r1, 0
- strb r1, [r0]
- movs r5, 0
- movs r2, 0x4
-_0819FE34:
- movs r3, 0
-_0819FE36:
- ldr r0, [r4]
- lsls r1, r3, 2
- adds r1, r3
- adds r1, r5, r1
- adds r0, 0x20
- adds r0, r1
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0819FE36
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0819FE34
- movs r0, 0
- ldr r7, [sp, 0x18]
- strb r0, [r7]
- movs r5, 0
-_0819FE60:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- lsls r4, r5, 2
- adds r3, r4
- mov r1, sp
- adds r6, r1, r5
- ldrb r0, [r6]
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- ldrb r0, [r3]
- movs r7, 0x4
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldrb r0, [r6]
- adds r5, 0x1
- str r5, [sp, 0x1C]
- mov r8, r4
- cmp r0, 0x3
- beq _0819FF62
- ldrb r0, [r6]
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x18]
- bl sub_819FCF8
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- add r3, r8
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r3]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r7, r0, 30
- ldrb r0, [r6]
- cmp r0, 0x2
- bne _0819FF62
- lsls r0, r7, 2
- adds r0, r7
- mov r10, r0
- ldr r0, =gUnknown_030062EC
- mov r9, r0
-_0819FED2:
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- movs r1, 0x3
- ands r4, r1
- movs r3, 0
- mov r6, r9
- ldr r2, [r6]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- lsls r5, r7, 2
- cmp r3, r1
- bge _0819FF12
- adds r2, 0x20
- mov r6, r10
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r4
- beq _0819FF12
- adds r6, r1, 0
- adds r1, r5, r7
-_0819FEFE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bge _0819FF12
- adds r0, r3, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, r4
- bne _0819FEFE
-_0819FF12:
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r1, =gUnknown_030062EC
- cmp r3, r0
- bne _0819FED2
- ldr r0, [r1]
- orrs r5, r7
- ldrb r2, [r0]
- adds r1, r5, r2
- adds r0, 0x20
- adds r0, r1
- strb r4, [r0]
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- add r2, r8
- adds r2, 0xB8
- movs r7, 0x3
- ands r4, r7
- lsls r3, r4, 4
- ldrb r0, [r2]
- movs r4, 0x31
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldr r0, [r6]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- bl sub_819FF98
- ldr r1, [r6]
- add r1, r8
- adds r1, 0xBA
- strh r0, [r1]
-_0819FF62:
- ldr r6, [sp, 0x1C]
- lsls r0, r6, 24
- lsrs r5, r0, 24
- cmp r5, 0x8
- bhi _0819FF6E
- b _0819FE60
-_0819FF6E:
- ldr r4, =gUnknown_030062EC
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FD64
-
- thumb_func_start sub_819FF98
-sub_819FF98: @ 819FF98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r7, 0
- ldr r1, [sp]
- cmp r1, 0x2
- bhi _0819FFE0
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xB4
- ldr r3, [sp]
- adds r0, r3
- ldrb r4, [r0]
- adds r1, 0xB2
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r3
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r4, r0
- movs r0, 0xF
- ands r4, r0
- b _0819FFE4
- .pool
-_0819FFE0:
- movs r4, 0
- ldr r2, =gSaveBlock2Ptr
-_0819FFE4:
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- ldr r4, [r2]
- adds r0, r4, 0
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- str r1, [sp, 0x8]
- ldr r1, =gLevelUpLearnsets
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r3, 0
- adds r4, 0xB1
- ldrb r1, [r4]
- movs r0, 0x3
- ands r0, r1
- movs r5, 0x3C
- cmp r0, 0x1
- bne _081A001A
- movs r5, 0x32
-_081A001A:
- ldrh r1, [r6]
- ldr r4, =0x0000ffff
- cmp r1, r4
- beq _081A004C
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r5, 9
- cmp r0, r1
- bgt _081A004C
- adds r5, r2, 0
- adds r2, r1, 0
-_081A0034:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r4
- beq _081A004C
- adds r0, r5, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0034
-_081A004C:
- adds r5, r3, 0
- movs r3, 0
- str r3, [sp, 0x4]
-_081A0052:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081A0068
- ldr r0, [sp, 0xC]
- cmp r0, 0x1
- bne _081A00E0
-_081A0068:
- ldr r1, =0x000001ff
- mov r8, r1
-_081A006C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3A
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [sp, 0x8]
- adds r1, r4, 0
- bl CanSpeciesLearnTMHM
- adds r2, r0, 0
- cmp r2, 0
- beq _081A006C
- ldr r2, =0x00000121
- adds r0, r4, r2
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0x1
- cmp r5, 0x4
- bhi _081A00BC
- movs r3, 0
- b _081A00C6
- .pool
-_081A00BC:
- subs r0, r5, 0x4
- b _081A00C2
-_081A00C0:
- adds r0, r3, 0x1
-_081A00C2:
- lsls r0, 24
- lsrs r3, r0, 24
-_081A00C6:
- cmp r3, r5
- bcs _081A00DA
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r8
- ands r0, r1
- cmp r0, r7
- bne _081A00C0
- movs r2, 0
-_081A00DA:
- cmp r2, 0x1
- bne _081A006C
- b _081A0146
-_081A00E0:
- cmp r5, 0x4
- bhi _081A00EA
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _081A0168
-_081A00EA:
- subs r4, r5, 0x4
- ldr r3, =0x000001ff
- mov r10, r3
- mov r8, r3
- lsls r0, r4, 24
- mov r9, r0
-_081A00F6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- mov r7, r8
- ands r7, r0
- movs r2, 0x1
- mov r1, r9
- lsrs r3, r1, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- mov r0, r8
- b _081A013A
- .pool
-_081A0128:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r10
-_081A013A:
- ands r0, r1
- cmp r0, r7
- bne _081A0128
- movs r2, 0
-_081A0142:
- cmp r2, 0x1
- bne _081A00F6
-_081A0146:
- ldr r0, [sp]
- adds r1, r7, 0
- bl sub_81A0194
- lsls r0, 24
- cmp r0, 0
- beq _081A0168
- ldr r0, =gUnknown_08611370
- adds r0, r7, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081A0170
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
-_081A0168:
- ldr r2, [sp, 0x4]
- cmp r2, 0x4
- bhi _081A0170
- b _081A0052
-_081A0170:
- ldr r0, =gUnknown_030062EC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r7, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819FF98
-
- thumb_func_start sub_81A0194
-sub_81A0194: @ 81A0194
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r3, 0
- ldr r0, =gUnknown_030062EC
- mov r12, r0
- ldr r2, [r0]
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r6, r0, 1
- adds r2, 0x2
- adds r7, r1, 0
-_081A01B0:
- lsls r0, r3, 1
- adds r0, r6
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, r5
- bne _081A01C4
- movs r0, 0
- b _081A01E2
- .pool
-_081A01C4:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _081A01B0
- mov r2, r12
- ldr r1, [r2]
- adds r0, r7, r4
- ldrb r2, [r1]
- adds r0, r2
- lsls r0, 1
- adds r1, 0x2
- adds r1, r0
- strh r5, [r1]
- movs r0, 0x1
-_081A01E2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0194
-
- thumb_func_start sub_81A01E8
-sub_81A01E8: @ 81A01E8
- push {r4-r7,lr}
- mov r12, r1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r4, 0x3C
- cmp r0, 0x1
- bne _081A0204
- movs r4, 0x32
-_081A0204:
- ldr r1, =gLevelUpLearnsets
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r5, 0
- ldrh r1, [r6]
- ldr r3, =0x0000ffff
- cmp r1, r3
- beq _081A0240
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r4, 9
- cmp r0, r1
- bgt _081A0240
- adds r4, r2, 0
- adds r2, r1, 0
-_081A0228:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r3
- beq _081A0240
- adds r0, r4, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0228
-_081A0240:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _081A0248
- movs r4, 0x4
-_081A0248:
- movs r2, 0
- cmp r2, r4
- bcs _081A026C
- ldr r7, =0x000001ff
-_081A0250:
- lsls r3, r2, 1
- add r3, r12
- adds r2, 0x1
- subs r0, r5, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- lsls r2, 24
- lsrs r2, 24
- cmp r2, r4
- bcc _081A0250
-_081A026C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A01E8
-
- thumb_func_start sub_81A0284
-sub_81A0284: @ 81A0284
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A02B8
- movs r0, 0
- b _081A037C
- .pool
-_081A02B8:
- movs r4, 0
- movs r3, 0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gUnknown_08610970
- mov r12, r1
- lsls r6, 1
- lsls r5, 1
- mov r9, r5
- cmp r0, 0
- beq _081A02F4
- adds r2, r7, 0
-_081A02D4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bhi _081A02F4
- ldr r0, [r2]
- lsls r1, r3, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A02D4
-_081A02F4:
- ldr r0, [r7]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6, r0
- mov r1, r12
- adds r1, 0x34
- adds r0, r1
- ldrh r0, [r0]
- mov r1, sp
- bl sub_81A01E8
- movs r3, 0
- cmp r3, r4
- bcs _081A0376
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- bge _081A0376
- adds r6, r7, 0
- adds r5, r1, 0
-_081A032A:
- lsls r0, r3, 2
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x2
- bne _081A035C
- lsls r0, r1, 28
- lsrs r0, 30
- cmp r0, r8
- bne _081A035C
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A035C
- lsls r0, r1, 26
- lsrs r0, 30
- lsls r0, 1
- mov r7, sp
- adds r1, r7, r0
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A035C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcs _081A0376
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- blt _081A032A
-_081A0376:
- mov r0, sp
- add r0, r9
- ldrh r0, [r0]
-_081A037C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A0284
-
- thumb_func_start sub_81A0390
-sub_81A0390: @ 81A0390
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- adds r6, r7, 0
- movs r4, 0
-_081A03A6:
- ldr r0, [r6]
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 2
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0xE0
- strh r4, [r1]
- adds r0, 0xEA
- strh r4, [r0]
- movs r3, 0
-_081A03BC:
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r1, r2
- adds r0, 0xE2
- adds r0, r1
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _081A03BC
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03A6
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsrs r3, r0, 6
- movs r5, 0
-_081A03E6:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, 0xE0
- ldr r1, [r7]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03E6
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r6, =gUnknown_086109A4
-_081A0416:
- ldr r0, [r7]
- mov r12, r0
- adds r0, 0xB4
- adds r0, r5
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r0, r5, 2
- mov r1, sp
- adds r3, r1, r0
- ldr r4, [r3]
- lsls r2, 1
- mov r0, r12
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- strh r0, [r4]
- ldr r1, [r3]
- ldrh r0, [r1]
- adds r1, 0x2
- bl sub_81A01E8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A0416
- movs r5, 0
- cmp r5, r8
- bcs _081A04D6
- ldr r7, =gSaveBlock2Ptr
-_081A0470:
- ldr r1, [r7]
- lsls r0, r5, 2
- adds r4, r1, r0
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r0, r2, 30
- lsrs r1, r0, 30
- lsls r0, r2, 28
- lsrs r3, r0, 30
- adds r6, r3, 0
- cmp r1, 0x1
- bne _081A04A8
- lsrs r0, r2, 6
- cmp r0, 0
- beq _081A04CC
- lsls r0, r3, 2
- add r0, sp
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1, 0xA]
- b _081A04CC
- .pool
-_081A04A8:
- cmp r1, 0x2
- bne _081A04CC
- lsls r0, r2, 24
- lsrs r0, 30
- cmp r0, 0
- beq _081A04CC
- lsls r2, 26
- lsrs r2, 30
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- lsls r2, 1
- adds r1, 0x2
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A04CC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _081A0470
-_081A04D6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0390
-
- thumb_func_start sub_81A04E4
-sub_81A04E4: @ 81A04E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- movs r7, 0x2
- cmp r0, 0x6
- bls _081A04FC
- b _081A064C
-_081A04FC:
- lsls r0, 2
- ldr r1, =_081A050C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A050C:
- .4byte _081A0528
- .4byte _081A0540
- .4byte _081A05B4
- .4byte _081A05F4
- .4byte _081A061C
- .4byte _081A064C
- .4byte _081A0634
-_081A0528:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gUnknown_085EAEB1
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_085EAEB8
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0540:
- movs r7, 0x3
- movs r1, 0x12
- mov r10, r1
- movs r6, 0x6
- movs r4, 0
- ldr r0, =gSpeciesNames
- mov r9, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r1, 0xB2
- adds r1, r3
- mov r12, r1
- adds r5, r3, 0
- adds r5, 0xB0
- ldr r0, =gUnknown_086109A4
- mov r8, r0
-_081A0560:
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r4
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r4, 2
- mov r2, sp
- adds r2, r0
- adds r2, 0xC
- movs r0, 0xB
- muls r0, r1
- add r0, r9
- str r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A0560
- b _081A0652
- .pool
-_081A05B4:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- cmp r0, 0x2
- bls _081A05CC
- b _081A06FA
-_081A05CC:
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x2]
- movs r2, 0xB
- muls r0, r2
- ldr r1, =gSpeciesNames
- adds r0, r1
- str r0, [sp, 0x10]
- ldrh r0, [r3]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0xC]
- b _081A0652
- .pool
-_081A05F4:
- movs r1, 0x11
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x4]
- movs r2, 0xD
- muls r0, r2
- ldr r1, =gMoveNames
- adds r0, r1
- str r0, [sp, 0xC]
- ldrh r0, [r3, 0x6]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A061C:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gUnknown_085ED193
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_085ED198
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0634:
- movs r1, 0x14
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gUnknown_085EAE62
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_085EAE66
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A064C:
- movs r0, 0
- mov r10, r0
- movs r6, 0
-_081A0652:
- movs r5, 0
- movs r4, 0
- lsls r1, r7, 25
- mov r8, r1
- cmp r4, r7
- bcs _081A067E
-_081A065E:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- cmp r0, r5
- ble _081A0674
- adds r5, r0, 0
-_081A0674:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A065E
-_081A067E:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r0, r8
- lsrs r3, r0, 24
- mov r0, r10
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81A0784
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r4, 0
- cmp r4, r7
- bcs _081A06E6
-_081A06B8:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r2, [r0]
- lsls r0, r4, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A06B8
-_081A06E6:
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0x1
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_81A0804
-_081A06FA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A04E4
-
- thumb_func_start sub_81A070C
-sub_81A070C: @ 81A070C
- 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
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0730
- bl ProcessMenuInputNoWrapAround
- b _081A0734
- .pool
-_081A0730:
- bl ProcessMenuInput
-_081A0734:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081A0778
- adds r0, 0x1
- cmp r1, r0
- bne _081A0764
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0778
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gScriptResult
- movs r0, 0x7F
- strh r0, [r1]
- b _081A0768
- .pool
-_081A0764:
- ldr r0, =gScriptResult
- strh r1, [r0]
-_081A0768:
- ldrb r0, [r4, 0xC]
- bl sub_81A07E8
- adds r0, r5, 0
- bl DestroyTask
- bl script_env_2_enable_and_set_ctx_running
-_081A0778:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A070C
-
- thumb_func_start sub_81A0784
-sub_81A0784: @ 81A0784
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_8198A50
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0784
-
- thumb_func_start sub_81A07E8
-sub_81A07E8: @ 81A07E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A07E8
-
- thumb_func_start sub_81A0804
-sub_81A0804: @ 81A0804
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =sub_81A070C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x10]
- cmp r5, 0x3
- bls _081A0840
- movs r0, 0x1
- b _081A0842
- .pool
-_081A0840:
- movs r0, 0
-_081A0842:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x14]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0804
-
- thumb_func_start sub_81A085C
-sub_81A085C: @ 81A085C
- push {lr}
- ldr r1, =gUnknown_086114E0
- 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_81A085C
-
- thumb_func_start sub_81A087C
-sub_81A087C: @ 81A087C
- push {r4-r7,lr}
- bl sub_819FBC8
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3D
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r4, 0
- movs r1, 0
-_081A08BE:
- ldr r0, [r3]
- adds r0, 0xB4
- adds r0, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A08BE
- movs r4, 0
- ldr r5, =gSaveBlock2Ptr
- movs r0, 0x4
- negs r0, r0
- mov r12, r0
- movs r7, 0xD
- negs r7, r7
- movs r6, 0x31
- negs r6, r6
-_081A08E2:
- ldr r1, [r5]
- lsls r3, r4, 2
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xBA
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081A08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A087C
-
- thumb_func_start sub_81A093C
-sub_81A093C: @ 81A093C
- push {lr}
- bl sub_819FBB0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081A0954
- ldr r0, =gScriptResult
- strh r1, [r0]
- b _081A095A
- .pool
-_081A0954:
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_081A095A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A093C
-
- thumb_func_start sub_81A0964
-sub_81A0964: @ 81A0964
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_819FC40
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0964
-
- thumb_func_start sub_81A0978
-sub_81A0978: @ 81A0978
- push {lr}
- bl sub_819FBC8
- pop {r0}
- bx r0
- thumb_func_end sub_81A0978
-
- thumb_func_start sub_81A0984
-sub_81A0984: @ 81A0984
- push {lr}
- bl sub_819FD64
- pop {r0}
- bx r0
- thumb_func_end sub_81A0984
-
- thumb_func_start sub_81A0990
-sub_81A0990: @ 81A0990
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB1
- ldrb r3, [r2]
- lsls r1, r3, 26
- lsrs r1, 28
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- lsls r1, 2
- movs r0, 0x3D
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A0990
-
- thumb_func_start sub_81A09B4
-sub_81A09B4: @ 81A09B4
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A09B4
-
- thumb_func_start sub_81A09D0
-sub_81A09D0: @ 81A09D0
- push {lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r1, r0, 0x3
- cmp r1, 0
- bge _081A09F4
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- b _081A0A1C
- .pool
-_081A09F4:
- ldr r2, =gScriptResult
- cmp r1, 0x8
- ble _081A09FE
- movs r0, 0x1
- strh r0, [r2]
-_081A09FE:
- ldr r0, [r3]
- lsls r1, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0A18
- movs r0, 0x1
- b _081A0A1A
- .pool
-_081A0A18:
- movs r0, 0
-_081A0A1A:
- strh r0, [r2]
-_081A0A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_81A09D0
-
- thumb_func_start sub_81A0A20
-sub_81A0A20: @ 81A0A20
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_81A04E4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A20
-
- thumb_func_start sub_81A0A34
-sub_81A0A34: @ 81A0A34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8197224
- lsls r0, 16
- cmp r0, 0
- bne _081A0A68
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0A64
- ldr r0, =script_env_2_enable_and_set_ctx_running
- bl sub_81A172C
- b _081A0A68
- .pool
-_081A0A64:
- bl script_env_2_enable_and_set_ctx_running
-_081A0A68:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0A34
-
- thumb_func_start sub_81A0A70
-sub_81A0A70: @ 81A0A70
- push {lr}
- ldr r1, =gSpecialVar_0x8006
- ldrh r0, [r1]
- cmp r0, 0x6
- bne _081A0A94
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0A94:
- cmp r0, 0x7
- bne _081A0AB0
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AB0:
- cmp r0, 0x8
- bne _081A0ACC
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0ACC:
- cmp r0, 0x9
- bne _081A0AE8
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AE8:
- cmp r0, 0x4
- bne _081A0B04
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B04:
- cmp r0, 0x5
- bne _081A0B20
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0B20:
- cmp r0, 0xA
- bne _081A0B40
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- b _081A0BD6
- .pool
-_081A0B40:
- cmp r0, 0xB
- bne _081A0B5C
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B5C:
- cmp r0, 0xC
- bne _081A0B7C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0xC
- b _081A0BD6
- .pool
-_081A0B7C:
- cmp r0, 0xD
- bne _081A0B9C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- b _081A0BD6
- .pool
-_081A0B9C:
- ldrh r0, [r1]
- cmp r0, 0x10
- bne _081A0BC0
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- b _081A0BD6
- .pool
-_081A0BC0:
- cmp r0, 0xE
- bne _081A0BE4
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
-_081A0BD6:
- adds r0, r2
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0BE4:
- cmp r0, 0xF
- bne _081A0C00
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C00:
- cmp r0, 0
- bne _081A0C1C
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- b _081A0C66
- .pool
-_081A0C1C:
- cmp r0, 0x1
- bne _081A0C38
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C38:
- cmp r0, 0x2
- bne _081A0C54
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- b _081A0C66
- .pool
-_081A0C54:
- cmp r0, 0x3
- bne _081A0C74
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0xC
-_081A0C66:
- adds r0, r1
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0C74:
- bl script_env_2_enable_and_set_ctx_running
- b _081A0C8E
-_081A0C7A:
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl AddTextPrinterForMessage
- ldr r0, =sub_81A0A34
- movs r1, 0x1
- bl CreateTask
-_081A0C8E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A70
-
- thumb_func_start sub_81A0C9C
-sub_81A0C9C: @ 81A0C9C
- push {lr}
- bl script_env_2_enable
- bl player_bitmagic
- bl sub_808B864
- bl sub_808BCF4
- movs r0, 0
- movs r1, 0x1
- bl sub_81973C4
- bl sub_81A0A70
- pop {r0}
- bx r0
- thumb_func_end sub_81A0C9C
-
- thumb_func_start sub_81A0CC0
-sub_81A0CC0: @ 81A0CC0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bhi _081A0CE4
- ldr r1, =gScriptResult
- movs r0, 0x2
- b _081A0D34
- .pool
-_081A0CE4:
- lsrs r0, r1, 28
- cmp r0, 0xB
- bhi _081A0D30
- lsrs r0, r1, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r2, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0D18
- cmp r0, 0x2
- bgt _081A0D08
- cmp r0, 0x1
- beq _081A0D0E
- b _081A0D30
-_081A0D08:
- cmp r0, 0x3
- beq _081A0D24
- b _081A0D30
-_081A0D0E:
- ldr r1, =gScriptResult
- movs r0, 0x4
- b _081A0D34
- .pool
-_081A0D18:
- ldr r1, =gScriptResult
- movs r0, 0x3
- b _081A0D34
- .pool
-_081A0D24:
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _081A0D34
- .pool
-_081A0D30:
- ldr r1, =gScriptResult
- movs r0, 0x5
-_081A0D34:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0CC0
-
- thumb_func_start sub_81A0D40
-sub_81A0D40: @ 81A0D40
- push {r4,lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0D6E
- ldr r4, =gSpecialVar_0x8006
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB2
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 29
- movs r1, 0x1
- ldrb r4, [r4]
- lsls r1, r4
- orrs r1, r0
- movs r0, 0x7
- ands r1, r0
- movs r0, 0x8
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A0D6E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0D40
-
- thumb_func_start sub_81A0D80
-sub_81A0D80: @ 81A0D80
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0DCE
- subs r0, 0x3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0DC0
- lsls r2, 2
- adds r2, r3, r2
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- b _081A0DCE
- .pool
-_081A0DC0:
- lsls r0, r2, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
-_081A0DCE:
- pop {r0}
- bx r0
- thumb_func_end sub_81A0D80
-
- thumb_func_start sub_81A0DD4
-sub_81A0DD4: @ 81A0DD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r2, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r3, =gUnknown_030062F0
- mov r9, r3
- cmp r0, 0
- beq _081A0E14
- adds r3, r1, 0
-_081A0DF4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A0E14
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0DF4
-_081A0E14:
- mov r4, r9
- movs r0, 0x8
- bl AllocZeroed
- adds r7, r0, 0
- str r7, [r4]
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _081A0E88
- ldr r0, =gSaveBlock2Ptr
- ldr r5, [r0]
- adds r6, r5, 0
- adds r6, 0xB1
- ldrb r0, [r6]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0E3C
- b _081A0FCE
-_081A0E3C:
- adds r2, r5, 0
- adds r2, 0xB4
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r4, r0, 4
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- adds r5, 0xB0
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- lsls r0, 26
- lsrs r0, 28
- adds r2, r0
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r5]
- muls r1, r4
- adds r0, r1
- adds r0, r3
- b _081A0FCA
- .pool
-_081A0E88:
- cmp r0, 0x3
- bne _081A0F54
- ldr r0, =gSaveBlock2Ptr
- mov r8, r0
- ldr r5, [r0]
- movs r1, 0xB1
- adds r1, r5
- mov r12, r1
- ldrb r0, [r1]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bhi _081A0EA4
- b _081A0FCE
-_081A0EA4:
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- blt _081A0EAE
- b _081A0FCE
-_081A0EAE:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0EC4
- b _081A0FCE
-_081A0EC4:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r5, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r5, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r4, [r0]
- lsls r1, 2
- asrs r4, r1
- movs r0, 0xF
- ands r4, r0
- ldr r2, =gUnknown_08610970
- lsls r1, r4, 1
- adds r0, r5, 0
- adds r0, 0xB0
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0x34
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r7]
- mov r3, r12
- ldrb r0, [r3]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r2, 26
- lsrs r2, 30
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81A0284
- mov r1, r9
- ldr r2, [r1]
- strh r0, [r2, 0x4]
- mov r3, r8
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- strh r0, [r2, 0x6]
- b _081A0FCE
- .pool
-_081A0F54:
- cmp r0, 0x4
- bne _081A0FCE
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bls _081A0FCE
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- bge _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, 2
- asrs r0, r1
- movs r1, 0xF
- ands r0, r1
- ldr r2, =gUnknown_08610970
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0xB0
- ldrb r3, [r1]
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0x34
- adds r0, r2
-_081A0FCA:
- ldrh r0, [r0]
- strh r0, [r7]
-_081A0FCE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0DD4
-
- thumb_func_start sub_81A0FE4
-sub_81A0FE4: @ 81A0FE4
- push {r4,lr}
- ldr r4, =gUnknown_030062F0
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FE4
-
- thumb_func_start sub_81A0FFC
-sub_81A0FFC: @ 81A0FFC
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A1028
- cmp r0, 0x1
- bgt _081A1018
- cmp r0, 0
- beq _081A101E
- b _081A11E6
- .pool
-_081A1018:
- cmp r0, 0x2
- beq _081A1030
- b _081A11E6
-_081A101E:
- ldr r5, =gStringVar1
- b _081A1032
- .pool
-_081A1028:
- ldr r5, =gStringVar2
- b _081A1032
- .pool
-_081A1030:
- ldr r5, =gStringVar3
-_081A1032:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _081A103C
- b _081A11E6
-_081A103C:
- lsls r0, 2
- ldr r1, =_081A1054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1054:
- .4byte _081A107C
- .4byte _081A1094
- .4byte _081A10AC
- .4byte _081A10C4
- .4byte _081A10DC
- .4byte _081A10F4
- .4byte _081A1118
- .4byte _081A1164
- .4byte _081A1140
- .4byte _081A1184
-_081A107C:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A1094:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10AC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10C4:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10DC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x6]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10F4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- bl ItemId_GetItem
- adds r1, r0, 0
- b _081A1174
- .pool
-_081A1118:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_81A1650
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0x2
- bl sub_81DB5E8
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy
- b _081A11E6
- .pool
-_081A1140:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081A115C
- ldr r1, =gUnknown_085EAEB1
- b _081A1174
- .pool
-_081A115C:
- ldr r1, =gUnknown_085EAEB8
- b _081A1174
- .pool
-_081A1164:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- ldr r1, =gStringVar4
-_081A1174:
- adds r0, r5, 0
- bl StringCopy
- b _081A11E6
- .pool
-_081A1184:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0xB1
- ldrb r1, [r1]
- lsls r4, r1, 24
- lsrs r1, r4, 30
- adds r6, r0, 0
- cmp r1, 0x2
- bhi _081A11C0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- b _081A11C2
- .pool
-_081A11C0:
- movs r2, 0
-_081A11C2:
- ldr r3, =gUnknown_08610970
- lsls r1, r2, 1
- ldr r0, [r6]
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_081A11E6:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FFC
-
- thumb_func_start sub_81A11F8
-sub_81A11F8: @ 81A11F8
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8005
- ldrb r1, [r0]
- adds r2, 0xB1
- lsls r1, 6
- ldrb r3, [r2]
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A11F8
-
- thumb_func_start sub_81A1218
-sub_81A1218: @ 81A1218
- push {lr}
- bl sub_81AAC28
- pop {r0}
- bx r0
- thumb_func_end sub_81A1218
-
- thumb_func_start sub_81A1224
-sub_81A1224: @ 81A1224
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A1242
- b _081A1362
-_081A1242:
- movs r5, 0
- movs r2, 0
- adds r0, r3, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gSpecialVar_0x8005
- mov r12, r1
- ldr r1, =gScriptResult
- mov r8, r1
- cmp r0, 0
- beq _081A127C
- adds r3, r7, 0
-_081A125C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A127C
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A125C
-_081A127C:
- movs r4, 0
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- bge _081A1322
- adds r6, r7, 0
- mov r9, r4
-_081A1296:
- ldr r3, [r6]
- lsls r0, r4, 2
- adds r2, r3, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A1308
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A1308
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- mov r2, r12
- ldrh r2, [r2]
- cmp r0, r2
- bne _081A1308
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strh r1, [r0]
- b _081A1362
- .pool
-_081A1308:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- blt _081A1296
-_081A1322:
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r2, r0
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1]
-_081A1362:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A1224
-
- thumb_func_start sub_81A1370
-sub_81A1370: @ 81A1370
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xFF
- beq _081A1422
- movs r5, 0
-_081A138E:
- ldr r1, [r4]
- adds r2, r5, 0x1
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r1, r0
- movs r5, 0x8A
- lsls r5, 1
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081A13B8
- adds r0, r3, 0
- adds r0, 0xDC
- adds r1, 0xDC
- movs r2, 0x44
- bl memcpy
- b _081A1422
- .pool
-_081A13B8:
- adds r5, r2, 0
- cmp r5, 0x2
- ble _081A138E
- ldr r0, =0x0000ffff
- mov r10, r0
- movs r2, 0x1
- negs r2, r2
- mov r9, r2
- movs r5, 0x1
- ldr r7, =gSaveBlock2Ptr
- movs r0, 0x90
- lsls r0, 1
- mov r8, r0
- movs r6, 0x44
-_081A13D4:
- ldr r0, [r7]
- add r0, r8
- adds r0, 0x34
- bl ReadUnalignedWord
- adds r4, r0, 0
- ldr r0, [r7]
- adds r0, 0xA
- bl ReadUnalignedWord
- cmp r4, r0
- bne _081A13FC
- ldr r0, [r7]
- adds r0, r6
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, r10
- bge _081A13FC
- mov r10, r0
- mov r9, r5
-_081A13FC:
- movs r2, 0x44
- add r8, r2
- adds r6, 0x44
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A13D4
- mov r5, r9
- cmp r5, 0
- ble _081A1422
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 4
- add r0, r9
- lsls r0, 2
- adds r0, r1, r0
- adds r0, 0xDC
- adds r1, 0xDC
- bl memcpy
-_081A1422:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1370
-
- thumb_func_start sub_81A1438
-sub_81A1438: @ 81A1438
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- adds r2, 0xDC
- movs r1, 0x1F
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r1, [r0]
- lsls r1, 30
- adds r2, 0xDC
- lsrs r1, 25
- ldrb r3, [r2]
- movs r0, 0x61
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0
- ldr r0, [r4]
- b _081A148C
- .pool
-_081A147C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A1496
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
-_081A148C:
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A147C
-_081A1496:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- adds r0, 0xDD
- strb r2, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xDE
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _081A14AE
- adds r0, 0x1
- strb r0, [r1]
-_081A14AE:
- ldr r0, [r4]
- adds r0, 0xDD
- ldrb r0, [r0]
- bl sub_81A0390
- movs r2, 0
- adds r3, r4, 0
- movs r4, 0x88
- lsls r4, 1
- adds r5, r3, 0
-_081A14C2:
- ldr r0, [r3]
- adds r1, r0, r4
- adds r1, r2
- adds r0, 0xA
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _081A14C2
- ldr r1, [r5]
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- bl StringCopy
- ldr r1, [r5]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- ldr r2, =0x0000011b
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0xDC
- bl sub_8165AE8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1438
-
- thumb_func_start sub_81A150C
-sub_81A150C: @ 81A150C
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1542
-_081A1530:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A1542
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1530
-_081A1542:
- cmp r1, 0x1E
- beq _081A1568
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1594
- .pool
-_081A1568:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1584
-_081A1572:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1584
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1572
-_081A1584:
- cmp r1, 0x14
- beq _081A1594
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1594:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A150C
-
- thumb_func_start sub_81A15A4
-sub_81A15A4: @ 81A15A4
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A15D6
-_081A15C4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A15D6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A15C4
-_081A15D6:
- cmp r1, 0x1E
- beq _081A15FC
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1628
- .pool
-_081A15FC:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1618
-_081A1606:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1618
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1606
-_081A1618:
- cmp r1, 0x14
- beq _081A1628
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1628:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A15A4
-
- thumb_func_start sub_81A1638
-sub_81A1638: @ 81A1638
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1638
-
- thumb_func_start sub_81A1644
-sub_81A1644: @ 81A1644
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1644
-
- thumb_func_start sub_81A1650
-sub_81A1650: @ 81A1650
- push {lr}
- movs r2, 0x58
- muls r2, r0
- ldr r0, =gUnknown_08610970
- adds r2, r0
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _081A16AC
- lsls r0, 2
- ldr r1, =_081A1674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1674:
- .4byte _081A1690
- .4byte _081A1694
- .4byte _081A169A
- .4byte _081A16A0
- .4byte _081A16A6
- .4byte _081A16AC
- .4byte _081A16AC
-_081A1690:
- adds r0, r2, 0
- b _081A16B0
-_081A1694:
- adds r0, r2, 0
- adds r0, 0x8
- b _081A16B0
-_081A169A:
- adds r0, r2, 0
- adds r0, 0x10
- b _081A16B0
-_081A16A0:
- adds r0, r2, 0
- adds r0, 0x18
- b _081A16B0
-_081A16A6:
- adds r0, r2, 0
- adds r0, 0x20
- b _081A16B0
-_081A16AC:
- adds r0, r2, 0
- adds r0, 0x28
-_081A16B0:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1650
-
- thumb_func_start sub_81A16B4
-sub_81A16B4: @ 81A16B4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A16D4
-_081A16CE:
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
-_081A16D4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16B4
-
- thumb_func_start sub_81A16DC
-sub_81A16DC: @ 81A16DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A1718
-_081A16F6:
- ldr r2, =gUnknown_030062F4
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- movs r3, 0xA
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r1, r0
- str r1, [r2]
- bl _call_via_r1
- adds r0, r4, 0
- bl DestroyTask
-_081A1718:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16DC
-
- thumb_func_start sub_81A172C
-sub_81A172C: @ 81A172C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =sub_81A16DC
- movs r1, 0x1
- 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]
- lsrs r4, 16
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A172C
-
- thumb_func_start sub_81A175C
-sub_81A175C: @ 81A175C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =sub_81A16B4
- adds r0, r4, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A175C
-
- thumb_func_start sub_81A1780
-sub_81A1780: @ 81A1780
- push {lr}
- ldr r1, =gUnknown_08611C18
- 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_81A1780
-
- thumb_func_start sub_81A17A0
-sub_81A17A0: @ 81A17A0
- push {lr}
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0xFF
- bl VarSet
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _081A1822
- lsls r0, 2
- ldr r1, =_081A17D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A17D0:
- .4byte _081A1822
- .4byte _081A17E4
- .4byte _081A1810
- .4byte _081A17EC
- .4byte _081A17E8
-_081A17E4:
- movs r0, 0
- b _081A17EE
-_081A17E8:
- movs r0, 0
- b _081A17EE
-_081A17EC:
- movs r0, 0x1
-_081A17EE:
- bl sub_813A878
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
- b _081A1822
- .pool
-_081A1810:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000ca8
- adds r1, r2
- ldrb r1, [r1]
- bl VarSet
-_081A1822:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A17A0
-
- thumb_func_start sub_81A1830
-sub_81A1830: @ 81A1830
- push {r4-r6,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bne _081A184C
- movs r5, 0x1
-_081A184C:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A1856
- b _081A1956
-_081A1856:
- lsls r0, 2
- ldr r1, =_081A186C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A186C:
- .4byte _081A188C
- .4byte _081A18A8
- .4byte _081A18C8
- .4byte _081A18E4
- .4byte _081A1956
- .4byte _081A1900
- .4byte _081A1918
- .4byte _081A1938
-_081A188C:
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca8
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18A8:
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18C8:
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- b _081A1956
- .pool
-_081A18E4:
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- b _081A1926
- .pool
-_081A1900:
- ldr r2, =gScriptResult
- ldr r1, =gBattleOutcome
- ldrb r0, [r1]
- strh r0, [r2]
- movs r0, 0
- strb r0, [r1]
- b _081A1956
- .pool
-_081A1918:
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 28
-_081A1926:
- lsrs r0, 31
- strh r0, [r1]
- b _081A1956
- .pool
-_081A1938:
- ldr r4, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- adds r0, r3
- ldrh r1, [r2]
- ldrh r0, [r0]
- ands r0, r1
- strh r0, [r4]
-_081A1956:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1830
-
- thumb_func_start sub_81A1968
-sub_81A1968: @ 81A1968
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A1984
- movs r4, 0x1
-_081A1984:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bls _081A198E
- b _081A1AC4
-_081A198E:
- lsls r0, 2
- ldr r1, =_081A19A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A19A4:
- .4byte _081A19C4
- .4byte _081A19E0
- .4byte _081A1A0C
- .4byte _081A1A28
- .4byte _081A1A50
- .4byte _081A1AC4
- .4byte _081A1A7C
- .4byte _081A1AA8
-_081A19C4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- strb r1, [r0]
- b _081A1AC4
- .pool
-_081A19E0:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _081A1AC4
- .pool
-_081A1A0C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000cb2
- adds r0, r2
- strh r1, [r0]
- b _081A1AC4
- .pool
-_081A1A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r3, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- b _081A1A94
- .pool
-_081A1A50:
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000caa
- ldr r3, =gUnknown_0203CEF8
-_081A1A58:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r1, r4
- adds r1, r0
- adds r0, r2, r3
- ldrb r0, [r0]
- strh r0, [r1]
- adds r2, 0x1
- cmp r2, 0x3
- ble _081A1A58
- b _081A1AC4
- .pool
-_081A1A7C:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r2, =0x00000ca9
- adds r3, r2
- movs r1, 0x1
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r3]
- movs r0, 0x9
- negs r0, r0
-_081A1A94:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081A1AC4
- .pool
-_081A1AA8:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0xD0
- lsls r0, 4
- adds r2, r0
- ldr r3, =gUnknown_08611BFC
- lsls r1, r4, 1
- lsls r0, r5, 2
- adds r1, r0
- adds r1, r3
- ldrh r0, [r2]
- ldrh r1, [r1]
- orrs r0, r1
- strh r0, [r2]
-_081A1AC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1968
-
- thumb_func_start sub_81A1AD4
-sub_81A1AD4: @ 81A1AD4
- push {r4-r7,lr}
- bl sub_81B8558
- movs r3, 0
- ldr r4, =gSpecialVar_0x8005
- ldrh r0, [r4]
- cmp r3, r0
- bge _081A1B00
- ldr r7, =gUnknown_0203CEF8
- ldr r6, =gSaveBlock2Ptr
- ldr r5, =0x00000caa
-_081A1AEA:
- adds r2, r3, r7
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- ldrh r0, [r4]
- cmp r3, r0
- blt _081A1AEA
-_081A1B00:
- bl sub_80F94E8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1AD4
-
- thumb_func_start sub_81A1B1C
-sub_81A1B1C: @ 81A1B1C
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B1C
-
- thumb_func_start sub_81A1B28
-sub_81A1B28: @ 81A1B28
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1B28
-
- thumb_func_start sub_81A1B38
-sub_81A1B38: @ 81A1B38
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0x64
-_081A1B3E:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _081A1B76
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r1]
- subs r1, 0x1
- muls r1, r5
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- adds r1, r4, 0
- muls r1, r5
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A1B76:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A1B3E
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1B38
-
- thumb_func_start sub_81A1B98
-sub_81A1B98: @ 81A1B98
- push {lr}
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- adds r2, r0, 0
- cmp r1, 0x3
- bls _081A1BA8
- movs r0, 0
- strh r0, [r2]
-_081A1BA8:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x7
- bhi _081A1C1E
- lsls r0, 2
- ldr r1, =_081A1BC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1BC8:
- .4byte _081A1BE8
- .4byte _081A1BF0
- .4byte _081A1BF8
- .4byte _081A1C0E
- .4byte _081A1C06
- .4byte _081A1C00
- .4byte _081A1C14
- .4byte _081A1C1A
-_081A1BE8:
- ldrb r0, [r2]
- bl sub_81A1EA8
- b _081A1C1E
-_081A1BF0:
- ldrb r0, [r2]
- bl sub_81A2134
- b _081A1C1E
-_081A1BF8:
- ldrb r0, [r2]
- bl sub_81A2460
- b _081A1C1E
-_081A1C00:
- bl sub_81A2698
- b _081A1C1E
-_081A1C06:
- ldrb r0, [r2]
- bl sub_81A2C94
- b _081A1C1E
-_081A1C0E:
- bl sub_81A2968
- b _081A1C1E
-_081A1C14:
- bl sub_81A2F38
- b _081A1C1E
-_081A1C1A:
- bl sub_81A2FF8
-_081A1C1E:
- pop {r0}
- bx r0
- thumb_func_end sub_81A1B98
-
- thumb_func_start sub_81A1C24
-sub_81A1C24: @ 81A1C24
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r2, =0x00000cdc
- adds r1, r2
- ldr r1, [r1]
- ands r1, r0
- cmp r1, 0
- bne _081A1C44
- movs r0, 0
- b _081A1C46
- .pool
-_081A1C44:
- movs r0, 0x1
-_081A1C46:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1C24
-
- thumb_func_start sub_81A1C4C
-sub_81A1C4C: @ 81A1C4C
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xE0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r0, r5, 3
- adds r5, r0, 0x1
- ldr r0, =gUnknown_0203AB74
- ldrb r0, [r0]
- lsls r3, 24
- lsrs r3, 24
- lsls r1, r5, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C4C
-
- thumb_func_start sub_81A1C90
-sub_81A1C90: @ 81A1C90
- push {r4,lr}
- sub sp, 0x34
- adds r2, r0, 0
- ldr r3, =gUnknown_0203AB74
- movs r1, 0xAE
- mov r0, sp
- adds r0, 0x2F
-_081A1C9E:
- strb r1, [r0]
- subs r0, 0x1
- add r4, sp, 0xC
- cmp r0, r4
- bge _081A1C9E
- add r1, sp, 0x30
- movs r0, 0xFF
- strb r0, [r1]
- lsls r0, r2, 3
- adds r2, r0, 0x1
- ldrb r0, [r3]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x4
- bl PrintTextOnWindow
- add sp, 0x34
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1C90
-
- thumb_func_start sub_81A1CD8
-sub_81A1CD8: @ 81A1CD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl PrintTextOnWindow
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A1D24
- adds r6, r0, 0
-_081A1D24:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE302
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1CD8
-
- thumb_func_start sub_81A1D78
-sub_81A1D78: @ 81A1D78
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCF
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gUnknown_085EE319
- str r5, [sp]
- bl sub_81A1CD8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1D78
-
- thumb_func_start sub_81A1DBC
-sub_81A1DBC: @ 81A1DBC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xCE
- lsls r0, 4
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1DDE
- adds r0, r1, 0
-_081A1DDE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1DBC
-
- thumb_func_start sub_81A1DEC
-sub_81A1DEC: @ 81A1DEC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1DBC
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x1
- beq _081A1E38
- cmp r5, 0x1
- ble _081A1E2C
- cmp r5, 0x2
- beq _081A1E48
- cmp r5, 0x3
- beq _081A1E58
-_081A1E2C:
- cmp r6, 0
- beq _081A1E34
- movs r0, 0x2
- b _081A1E66
-_081A1E34:
- movs r0, 0x1
- b _081A1E66
-_081A1E38:
- cmp r6, 0
- beq _081A1E42
- movs r0, 0x80
- lsls r0, 8
- b _081A1E66
-_081A1E42:
- movs r0, 0x80
- lsls r0, 7
- b _081A1E66
-_081A1E48:
- cmp r6, 0
- beq _081A1E52
- movs r0, 0x80
- lsls r0, 10
- b _081A1E66
-_081A1E52:
- movs r0, 0x80
- lsls r0, 9
- b _081A1E66
-_081A1E58:
- cmp r6, 0
- beq _081A1E62
- movs r0, 0x80
- lsls r0, 12
- b _081A1E66
-_081A1E62:
- movs r0, 0x80
- lsls r0, 11
-_081A1E66:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A1E88
- ldr r0, =gUnknown_085EE311
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
- b _081A1E96
- .pool
-_081A1E88:
- ldr r0, =gUnknown_085EE320
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A1CD8
-_081A1E96:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1DEC
-
- thumb_func_start sub_81A1EA8
-sub_81A1EA8: @ 81A1EA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A1EF0
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE158
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1EF0:
- cmp r7, 0x1
- bne _081A1F08
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE178
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F08:
- cmp r7, 0x2
- bne _081A1F20
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE198
- bl StringExpandPlaceholders
- b _081A1F28
- .pool
-_081A1F20:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE1B7
- bl StringExpandPlaceholders
-_081A1F28:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gUnknown_0203AB74
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F2
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1DEC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x84
- bl sub_81A1D78
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1EA8
-
- thumb_func_start sub_81A1FD8
-sub_81A1FD8: @ 81A1FD8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000d0c
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A1FF8
- adds r0, r1, 0
-_081A1FF8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A1FD8
-
- thumb_func_start sub_81A2008
-sub_81A2008: @ 81A2008
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl PrintTextOnWindow
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl PrintTextOnWindow
- 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_81A2008
-
- thumb_func_start sub_81A2094
-sub_81A2094: @ 81A2094
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A1FD8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r5, 0
- beq _081A20CC
- cmp r5, 0x1
- beq _081A20D8
-_081A20CC:
- cmp r6, 0
- beq _081A20D4
- movs r0, 0x8
- b _081A20E6
-_081A20D4:
- movs r0, 0x4
- b _081A20E6
-_081A20D8:
- cmp r6, 0
- beq _081A20E2
- movs r0, 0x80
- lsls r0, 14
- b _081A20E6
-_081A20E2:
- movs r0, 0x80
- lsls r0, 13
-_081A20E6:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A210C
- ldr r0, =gUnknown_085EE311
- ldr r1, =gUnknown_085EE338
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
- b _081A211C
- .pool
-_081A210C:
- ldr r0, =gUnknown_085EE320
- ldr r1, =gUnknown_085EE338
- str r7, [sp]
- str r4, [sp, 0x4]
- mov r2, r8
- mov r3, r9
- bl sub_81A2008
-_081A211C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2094
-
- thumb_func_start sub_81A2134
-sub_81A2134: @ 81A2134
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A217C
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE1DB
- bl StringExpandPlaceholders
- b _081A2184
- .pool
-_081A217C:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE1FE
- bl StringExpandPlaceholders
-_081A2184:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- ldr r2, =gUnknown_085EE2F2
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- lsls r5, r7, 2
- ldr r1, =0x00000d14
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x79
- mov r9, r0
- str r0, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_085EE319
- ldr r1, =gUnknown_085EE338
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gUnknown_085EE332
- mov r10, r1
- ldr r0, =gUnknown_085EE349
- mov r8, r0
- ldr r0, [r4]
- ldr r1, =0x00000d1c
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- movs r6, 0x70
- str r6, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- movs r0, 0x61
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x40
- movs r3, 0x79
- bl sub_81A2094
- ldr r0, [r4]
- ldr r1, =0x00000d16
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- mov r0, r9
- str r0, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_085EE319
- ldr r1, =gUnknown_085EE338
- movs r3, 0x40
- bl sub_81A2008
- ldr r0, [r4]
- ldr r1, =0x00000d1e
- adds r0, r1
- adds r0, r5
- ldrh r2, [r0]
- str r6, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r10
- mov r1, r8
- movs r3, 0x40
- bl sub_81A2008
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- bl PutWindowTilemap
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- 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_81A2134
-
- thumb_func_start sub_81A22B8
-sub_81A22B8: @ 81A22B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl PrintTextOnWindow
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2304
- adds r6, r0, 0
-_081A2304:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE302
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A22B8
-
- thumb_func_start sub_81A2358
-sub_81A2358: @ 81A2358
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, [sp, 0x10]
- lsls r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gSaveBlock2Ptr
- ldr r4, [r4]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- movs r0, 0xDD
- lsls r0, 4
- adds r4, r0
- adds r4, r1
- ldrh r1, [r4]
- ldr r0, =gUnknown_085EE319
- str r5, [sp]
- bl sub_81A22B8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2358
-
- thumb_func_start sub_81A239C
-sub_81A239C: @ 81A239C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000dc8
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A23BC
- adds r0, r1, 0
-_081A23BC:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A239C
-
- thumb_func_start sub_81A23CC
-sub_81A23CC: @ 81A23CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r4, 24
- lsrs r7, r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81A239C
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0
- beq _081A2404
- cmp r5, 0x1
- beq _081A2410
-_081A2404:
- cmp r6, 0
- beq _081A240C
- movs r0, 0x20
- b _081A241E
-_081A240C:
- movs r0, 0x10
- b _081A241E
-_081A2410:
- cmp r6, 0
- beq _081A241A
- movs r0, 0x80
- lsls r0, 16
- b _081A241E
-_081A241A:
- movs r0, 0x80
- lsls r0, 15
-_081A241E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2440
- ldr r0, =gUnknown_085EE311
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
- b _081A244E
- .pool
-_081A2440:
- ldr r0, =gUnknown_085EE320
- str r7, [sp]
- adds r1, r4, 0
- mov r2, r8
- mov r3, r9
- bl sub_81A22B8
-_081A244E:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A23CC
-
- thumb_func_start sub_81A2460
-sub_81A2460: @ 81A2460
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A24A8
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE221
- bl StringExpandPlaceholders
- b _081A24B0
- .pool
-_081A24A8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE241
- bl StringExpandPlaceholders
-_081A24B0:
- ldr r0, =gStringVar4
- movs r1, 0x2
- bl sub_81A1C4C
- ldr r6, =gUnknown_0203AB74
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F2
- movs r1, 0x31
- mov r8, r1
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- mov r9, r1
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- mov r0, r8
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x41
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- mov r1, r9
- str r1, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A23CC
- movs r0, 0x71
- str r0, [sp]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x48
- movs r3, 0x83
- bl sub_81A2358
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2460
-
- thumb_func_start sub_81A2560
-sub_81A2560: @ 81A2560
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A257A
- adds r0, r1, 0
-_081A257A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2560
-
- thumb_func_start sub_81A258C
-sub_81A258C: @ 81A258C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- mov r12, r0
- adds r7, r1, 0
- adds r4, r2, 0
- ldr r6, [sp, 0x2C]
- ldr r5, [sp, 0x30]
- lsls r4, 16
- lsrs r4, 16
- lsls r3, 24
- lsrs r3, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r5, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl PrintTextOnWindow
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r7, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r5, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl PrintTextOnWindow
- 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_81A258C
-
- thumb_func_start sub_81A2618
-sub_81A2618: @ 81A2618
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2560
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r4, 0
- beq _081A2648
- movs r0, 0x80
- lsls r0, 4
- b _081A264C
-_081A2648:
- movs r0, 0x80
- lsls r0, 3
-_081A264C:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2674
- ldr r0, =gUnknown_085EE311
- ldr r1, =gUnknown_085EE35B
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
- b _081A2684
- .pool
-_081A2674:
- ldr r0, =gUnknown_085EE320
- ldr r1, =gUnknown_085EE35B
- str r5, [sp]
- str r6, [sp, 0x4]
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2008
-_081A2684:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2618
-
- thumb_func_start sub_81A2698
-sub_81A2698: @ 81A2698
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r6, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r6]
- ldrb r0, [r6]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r6]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE261
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81A1C4C
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F2
- movs r1, 0x21
- str r1, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- ldrb r0, [r6]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x21
- bl sub_81A2618
- ldr r0, =gUnknown_085EE319
- mov r10, r0
- ldr r7, =gUnknown_085EE35B
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000e08
- adds r0, r1
- ldrh r2, [r0]
- movs r4, 0x72
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, =gUnknown_085EE332
- mov r8, r0
- ldr r1, =gUnknown_085EE36D
- mov r9, r1
- ldr r0, [r5]
- ldr r1, =0x00000e0c
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x72
- movs r3, 0x61
- bl sub_81A2618
- ldr r0, [r5]
- ldr r1, =0x00000e0a
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- mov r0, r10
- adds r1, r7, 0
- movs r3, 0x40
- bl sub_81A258C
- ldr r0, [r5]
- ldr r1, =0x00000e0e
- adds r0, r1
- ldrh r2, [r0]
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- mov r0, r8
- mov r1, r9
- movs r3, 0x40
- bl sub_81A258C
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- 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_81A2698
-
- thumb_func_start sub_81A27E8
-sub_81A27E8: @ 81A27E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl PrintTextOnWindow
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2834
- adds r6, r0, 0
-_081A2834:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE381
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A27E8
-
- thumb_func_start sub_81A2888
-sub_81A2888: @ 81A2888
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gUnknown_085EE319
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A27E8
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2888
-
- thumb_func_start sub_81A28CC
-sub_81A28CC: @ 81A28CC
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000dda
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A28E6
- adds r0, r1, 0
-_081A28E6:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A28CC
-
- thumb_func_start sub_81A28F8
-sub_81A28F8: @ 81A28F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A28CC
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2926
- movs r0, 0x80
- b _081A2928
-_081A2926:
- movs r0, 0x40
-_081A2928:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2948
- ldr r0, =gUnknown_085EE311
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
- b _081A2956
- .pool
-_081A2948:
- ldr r0, =gUnknown_085EE320
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A27E8
-_081A2956:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A28F8
-
- thumb_func_start sub_81A2968
-sub_81A2968: @ 81A2968
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0xA
- bl sub_81A1C90
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE27C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gUnknown_085EE2F2
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- ldrb r0, [r5]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x10
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x31
- bl sub_81A28F8
- movs r0, 0
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x41
- bl sub_81A2888
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x61
- bl sub_81A28F8
- movs r0, 0x1
- movs r1, 0x48
- movs r2, 0x7E
- movs r3, 0x71
- bl sub_81A2888
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2968
-
- thumb_func_start sub_81A2A28
-sub_81A2A28: @ 81A2A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r12, r0
- ldr r4, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x10]
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r6, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r12
- bl PrintTextOnWindow
- ldr r0, =0x0000270f
- cmp r7, r0
- bls _081A2A80
- adds r7, r0, 0
-_081A2A80:
- ldr r5, =gStringVar1
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE302
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x10]
- bl PrintTextOnWindow
- adds r0, r5, 0
- ldr r1, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_085EE392
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r6, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0x14]
- bl PrintTextOnWindow
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2A28
-
- thumb_func_start sub_81A2B04
-sub_81A2B04: @ 81A2B04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r2, 0
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsls r1, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r0
- ldr r0, =0x00000dfa
- adds r2, r0
- adds r2, r1
- ldrh r2, [r2]
- ldr r0, =gUnknown_085EE319
- str r3, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r1, r8
- adds r3, r6, 0
- bl sub_81A2A28
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2B04
-
- thumb_func_start sub_81A2B70
-sub_81A2B70: @ 81A2B70
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000de2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2B90
- adds r0, r1, 0
-_081A2B90:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2B70
-
- thumb_func_start sub_81A2BA0
-sub_81A2BA0: @ 81A2BA0
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000df2
- adds r2, r0
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2BC0
- adds r0, r1, 0
-_081A2BC0:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2BA0
-
- thumb_func_start sub_81A2BD0
-sub_81A2BD0: @ 81A2BD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- ldr r5, [sp, 0x34]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2B70
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_81A2BA0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r6, 0
- beq _081A2C20
- cmp r6, 0x1
- beq _081A2C30
-_081A2C20:
- cmp r7, 0
- beq _081A2C2A
- movs r0, 0x80
- lsls r0, 2
- b _081A2C3E
-_081A2C2A:
- movs r0, 0x80
- lsls r0, 1
- b _081A2C3E
-_081A2C30:
- cmp r7, 0
- beq _081A2C3A
- movs r0, 0x80
- lsls r0, 18
- b _081A2C3E
-_081A2C3A:
- movs r0, 0x80
- lsls r0, 17
-_081A2C3E:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2C68
- ldr r0, =gUnknown_085EE311
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
- b _081A2C80
- .pool
-_081A2C68:
- ldr r0, =gUnknown_085EE320
- mov r1, r8
- str r1, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- adds r1, r5, 0
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl sub_81A2A28
-_081A2C80:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2BD0
-
- thumb_func_start sub_81A2C94
-sub_81A2C94: @ 81A2C94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- cmp r7, 0
- bne _081A2CD8
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE298
- bl StringExpandPlaceholders
- b _081A2CE0
- .pool
-_081A2CD8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EE2B8
- bl StringExpandPlaceholders
-_081A2CE0:
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81A1C4C
- ldr r0, =gUnknown_0203AB74
- mov r8, r0
- ldrb r0, [r0]
- ldr r2, =gUnknown_085EE2F2
- movs r6, 0x21
- str r6, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gUnknown_085EE326
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x98
- bl PrintTextOnWindow
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- str r1, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- movs r4, 0x9E
- str r4, [sp]
- movs r0, 0x31
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x41
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- str r4, [sp]
- movs r0, 0x71
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2BD0
- str r4, [sp]
- movs r0, 0x81
- str r0, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x40
- bl sub_81A2B04
- mov r1, r8
- ldrb r0, [r1]
- bl PutWindowTilemap
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2C94
-
- thumb_func_start sub_81A2DB4
-sub_81A2DB4: @ 81A2DB4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r5, r0, 0
- adds r4, r2, 0
- ldr r0, [sp, 0x30]
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r0, =gUnknown_0203AB74
- mov r10, r0
- ldrb r0, [r0]
- str r7, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r1, 0
- mov r8, r1
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl PrintTextOnWindow
- ldr r0, =0x0000270f
- cmp r6, r0
- bls _081A2E00
- adds r6, r0, 0
-_081A2E00:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE39C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- mov r1, r10
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2DB4
-
- thumb_func_start sub_81A2E54
-sub_81A2E54: @ 81A2E54
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1e
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- ldr r0, =gUnknown_085EE319
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81A2DB4
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2E54
-
- thumb_func_start sub_81A2E98
-sub_81A2E98: @ 81A2E98
- push {lr}
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A2EB2
- adds r0, r1, 0
-_081A2EB2:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A2E98
-
- thumb_func_start sub_81A2EC4
-sub_81A2EC4: @ 81A2EC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r6, r3, 24
- adds r0, r4, 0
- bl sub_81A2E98
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, 0
- beq _081A2EF4
- movs r0, 0x80
- lsls r0, 6
- b _081A2EF8
-_081A2EF4:
- movs r0, 0x80
- lsls r0, 5
-_081A2EF8:
- bl sub_81A1C24
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081A2F18
- ldr r0, =gUnknown_085EE311
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
- b _081A2F26
- .pool
-_081A2F18:
- ldr r0, =gUnknown_085EE320
- str r6, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_81A2DB4
-_081A2F26:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2EC4
-
- thumb_func_start sub_81A2F38
-sub_81A2F38: @ 81A2F38
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C74
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r5]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EE2D8
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_81A1C4C
- ldrb r0, [r5]
- ldr r2, =gUnknown_085EE2F2
- movs r1, 0x31
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- ldrb r0, [r5]
- ldr r2, =gUnknown_085EE2F9
- movs r1, 0x61
- str r1, [sp]
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0xA
- bl sub_81A1C90
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x31
- bl sub_81A2EC4
- movs r0, 0
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x41
- bl sub_81A2E54
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x61
- bl sub_81A2EC4
- movs r0, 0x1
- movs r1, 0x40
- movs r2, 0x6F
- movs r3, 0x71
- bl sub_81A2E54
- ldrb r0, [r5]
- bl PutWindowTilemap
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2F38
-
- thumb_func_start sub_81A2FF8
-sub_81A2FF8: @ 81A2FF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C7C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gStringVar4
- mov r9, r0
- ldr r1, =gUnknown_085EDF86
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, r9
- movs r2, 0xD0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x1
- str r1, [sp]
- movs r6, 0xFF
- str r6, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- mov r2, r9
- bl PrintTextOnWindow
- ldr r7, =gUnknown_085EDFA0
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x32
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0x19
- mov r8, r1
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl PrintTextOnWindow
- ldr r7, =gUnknown_085EDFA4
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x58
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl PrintTextOnWindow
- ldr r7, =gUnknown_085EDFA8
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0x7E
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl PrintTextOnWindow
- ldr r7, =gUnknown_085EDFAC
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x26
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- adds r3, 0xA4
- ldrb r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r8
- str r2, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r7, 0
- bl PrintTextOnWindow
- ldrb r0, [r4]
- ldr r2, =gUnknown_085EB0E8
- movs r1, 0x29
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl PrintTextOnWindow
- ldrb r0, [r4]
- ldr r2, =gUnknown_085EB0ED
- movs r1, 0x39
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl PrintTextOnWindow
- ldrb r0, [r4]
- ldr r2, =gUnknown_085EB0F4
- movs r1, 0x49
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl PrintTextOnWindow
- ldrb r0, [r4]
- ldr r2, =gUnknown_085EB0F9
- movs r1, 0x59
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl PrintTextOnWindow
- ldrb r0, [r4]
- ldr r2, =gUnknown_085EB0FF
- movs r1, 0x69
- str r1, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x6
- bl PrintTextOnWindow
- movs r1, 0
-_081A314A:
- movs r5, 0
- adds r0, r1, 0x1
- mov r8, r0
- lsls r0, r1, 28
- movs r2, 0xA4
- lsls r2, 22
- adds r0, r2
- lsrs r7, r0, 24
- lsls r4, r1, 3
-_081A315C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000624
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r6, =gUnknown_0203AB74
- ldrb r0, [r6]
- movs r1, 0x26
- adds r3, r5, 0
- muls r3, r1
- adds r3, 0x40
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- mov r2, r9
- bl PrintTextOnWindow
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A315C
- mov r1, r8
- cmp r1, 0x4
- ble _081A314A
- ldrb r0, [r6]
- bl PutWindowTilemap
- ldrb r0, [r6]
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A2FF8
-
- thumb_func_start sub_81A31FC
-sub_81A31FC: @ 81A31FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0x6
- bls _081A3232
- b _081A35CE
-_081A3232:
- lsls r0, r4, 2
- ldr r1, =_081A3250
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3250:
- .4byte _081A326C
- .4byte _081A33A8
- .4byte _081A3414
- .4byte _081A347C
- .4byte _081A34CC
- .4byte _081A354C
- .4byte _081A3594
-_081A326C:
- ldr r2, =gSaveBlock2Ptr
- mov r9, r2
- ldr r0, [r2]
- lsls r3, r7, 1
- mov r10, r3
- mov r2, r8
- lsls r1, r2, 2
- add r1, r10
- str r1, [sp, 0x20]
- movs r3, 0xCE
- lsls r3, 4
- adds r1, r0, r3
- ldr r2, [sp, 0x20]
- adds r1, r2
- adds r3, 0x10
- adds r0, r3
- adds r0, r2
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bhi _081A3298
- b _081A35CE
-_081A3298:
- strh r1, [r0]
- mov r3, r8
- cmp r3, 0x3
- bne _081A32F2
- ldr r6, =gBattleScripting
- adds r6, 0x25
- ldrb r0, [r6]
- movs r4, 0x1
- eors r0, r4
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r5, =gLinkPlayers + 8
- adds r1, r5
- mov r0, sp
- bl StringCopy
- mov r0, sp
- bl StripExtCtrlCodes
- lsls r1, r7, 3
- ldr r0, =0x00000ee1
- adds r1, r0
- mov r2, r9
- ldr r0, [r2]
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldrb r0, [r6]
- eors r4, r0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r7, 2
- ldr r1, =0x00000ef1
- adds r2, r1
- mov r3, r9
- ldr r1, [r3]
- adds r1, r2
- bl WriteUnalignedWord
-_081A32F2:
- mov r7, r9
- ldr r0, [r7]
- movs r1, 0xCE
- lsls r1, 4
- adds r0, r1
- ldr r2, [sp, 0x20]
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A3308
- b _081A35CE
-_081A3308:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A3314
- b _081A35CE
-_081A3314:
- mov r3, r8
- cmp r3, 0x1
- beq _081A335A
- cmp r3, 0x1
- bgt _081A3338
- cmp r3, 0
- beq _081A3344
- b _081A35CE
- .pool
-_081A3338:
- mov r7, r8
- cmp r7, 0x2
- beq _081A3374
- cmp r7, 0x3
- beq _081A338E
- b _081A35CE
-_081A3344:
- mov r1, r9
- ldr r0, [r1]
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_80EE8C8
- b _081A35CE
-_081A335A:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0x4
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x2
- bl sub_80EE8C8
- b _081A35CE
-_081A3374:
- mov r1, r9
- ldr r0, [r1]
- mov r1, r10
- adds r1, 0x8
- movs r2, 0xCE
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x3
- bl sub_80EE8C8
- b _081A35CE
-_081A338E:
- mov r3, r9
- ldr r0, [r3]
- mov r1, r10
- adds r1, 0xC
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r7
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x4
- bl sub_80EE8C8
- b _081A35CE
-_081A33A8:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000d0c
- adds r1, r0, r5
- adds r1, r4
- ldr r3, =0x00000d14
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A33CA
- b _081A35CE
-_081A33CA:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A33D4
- b _081A35CE
-_081A33D4:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A33E0
- b _081A35CE
-_081A33E0:
- mov r0, r8
- cmp r0, 0
- bne _081A3404
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x5
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3404:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x6
- bl sub_80EE8C8
- b _081A35CE
-_081A3414:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r7, 1
- mov r2, r8
- lsls r1, r2, 2
- adds r4, r7, r1
- ldr r5, =0x00000dc8
- adds r1, r0, r5
- adds r1, r4
- movs r3, 0xDD
- lsls r3, 4
- adds r0, r3
- adds r0, r4
- ldrh r2, [r1]
- ldrh r3, [r0]
- cmp r2, r3
- bhi _081A3438
- b _081A35CE
-_081A3438:
- strh r2, [r0]
- ldrh r0, [r1]
- cmp r0, 0x1
- bhi _081A3442
- b _081A35CE
-_081A3442:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A344E
- b _081A35CE
-_081A344E:
- mov r0, r8
- cmp r0, 0
- bne _081A346C
- ldr r0, [r6]
- adds r0, r5
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0xB
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A346C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xC
- bl sub_80EE8C8
- b _081A35CE
-_081A347C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000dda
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000dde
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bhi _081A3498
- b _081A35CE
-_081A3498:
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _081A34A2
- b _081A35CE
-_081A34A2:
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- bne _081A34AE
- b _081A35CE
-_081A34AE:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xA
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A34CC:
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- lsls r7, 1
- mov r9, r7
- mov r7, r8
- lsls r0, r7, 2
- mov r1, r9
- adds r4, r1, r0
- ldr r5, =0x00000de2
- adds r0, r2, r5
- adds r3, r0, r4
- ldr r7, =0x00000dea
- adds r0, r2, r7
- adds r0, r4
- ldrh r1, [r3]
- ldrh r7, [r0]
- cmp r1, r7
- bls _081A35CE
- strh r1, [r0]
- ldr r0, =0x00000dfa
- adds r1, r2, r0
- adds r1, r4
- ldr r7, =0x00000df2
- adds r0, r2, r7
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- ldrh r0, [r3]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- mov r0, r8
- cmp r0, 0
- bne _081A353C
- ldr r0, [r6]
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x7
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A353C:
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x8
- bl sub_80EE8C8
- b _081A35CE
-_081A354C:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e04
- adds r0, r1, r5
- adds r0, r4
- ldr r2, =0x00000e08
- adds r1, r2
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x9
- bl sub_80EE8C8
- b _081A35CE
- .pool
-_081A3594:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- lsls r4, r7, 1
- ldr r5, =0x00000e1a
- adds r0, r1, r5
- adds r0, r4
- ldr r7, =0x00000e1e
- adds r1, r7
- adds r1, r4
- ldrh r2, [r0]
- ldrh r3, [r1]
- cmp r2, r3
- bls _081A35CE
- strh r2, [r1]
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A35CE
- bl sub_80EE818
- lsls r0, 24
- cmp r0, 0
- beq _081A35CE
- ldr r0, [r6]
- adds r0, r5
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0xD
- bl sub_80EE8C8
-_081A35CE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A31FC
-
- thumb_func_start sub_81A35EC
-sub_81A35EC: @ 81A35EC
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gScriptResult
- bl sub_81A3610
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A35EC
-
- thumb_func_start sub_81A3610
-sub_81A3610: @ 81A3610
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_81A39C4
- lsls r0, 16
- ldr r1, =gUnknown_08611550
- mov r9, r1
- lsls r7, r6, 2
- adds r1, 0x3
- adds r1, r7, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r5, r0, r1
- cmp r4, 0
- beq _081A365C
- movs r0, 0
- b _081A36C2
- .pool
-_081A365C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- blt _081A3680
- cmp r1, 0x1
- bgt _081A3680
- adds r0, r1, r7
- add r0, r9
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36BC
- adds r1, 0x1
- mov r8, r1
- b _081A36BC
-_081A3680:
- ldr r1, =gUnknown_08611550
- lsls r2, r6, 2
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A3694
- movs r0, 0x3
- b _081A36BA
- .pool
-_081A3694:
- adds r0, r1, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r5, r0
- bne _081A36A4
- movs r1, 0x4
- mov r8, r1
- b _081A36BC
-_081A36A4:
- cmp r5, r0
- ble _081A36BC
- subs r0, r5, r0
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A36BC
- movs r0, 0x4
-_081A36BA:
- mov r8, r0
-_081A36BC:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
-_081A36C2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A3610
-
- thumb_func_start sub_81A36D0
-sub_81A36D0: @ 81A36D0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r0, 0x1
- beq _081A3766
- cmp r0, 0x1
- bgt _081A36EA
- cmp r0, 0
- beq _081A36F2
- b _081A38F8
-_081A36EA:
- cmp r2, 0x2
- bne _081A36F0
- b _081A3818
-_081A36F0:
- b _081A38F8
-_081A36F2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A370C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- b _081A38C4
- .pool
-_081A370C:
- ldr r0, =0x000003fe
- cmp r3, r0
- beq _081A3786
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3738
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3738:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A3758
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2b8
- b _081A38C4
- .pool
-_081A3758:
- adds r0, r3, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- bl sub_819F99C
- b _081A38F8
-_081A3766:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3780
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- b _081A38C4
- .pool
-_081A3780:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3794
-_081A3786:
- movs r0, 0
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3794:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A37B8
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x18
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A37B8:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A37EC
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2c4
- b _081A38C4
- .pool
-_081A37EC:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _081A387C
- ldr r1, =gSaveBlock2Ptr
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xffff96c4
- b _081A38C4
- .pool
-_081A3818:
- movs r0, 0xFA
- lsls r0, 1
- cmp r3, r0
- bne _081A3830
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- b _081A38C4
- .pool
-_081A3830:
- ldr r0, =0x000003fe
- cmp r3, r0
- bne _081A3844
- movs r0, 0x1
- bl sub_81A51A8
- b _081A38F8
- .pool
-_081A3844:
- ldr r0, =0x0000012b
- cmp r3, r0
- bhi _081A3868
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x24
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3868:
- ldr r0, =0x0000018f
- cmp r3, r0
- bhi _081A38A8
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A3890
-_081A387C:
- bl sub_81864E0
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A3890:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- muls r0, r3
- ldr r1, [r1]
- adds r0, r1
- ldr r1, =0xfffef2d0
- b _081A38C4
- .pool
-_081A38A8:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A38D4
- bl sub_81864A8
- lsls r0, 24
- lsrs r3, r0, 24
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gUnknown_086109BA
-_081A38C4:
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A38F8
- .pool
-_081A38D4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r3, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r3, r0, 27
- movs r0, 0x58
- muls r0, r3
- ldr r1, =gUnknown_086109BA
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
-_081A38F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A36D0
-
- thumb_func_start sub_81A3908
-sub_81A3908: @ 81A3908
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000cdc
- adds r1, r2
- movs r2, 0
- str r2, [r1]
- movs r4, 0
- mov r9, r0
- mov r8, r9
- movs r6, 0
-_081A3926:
- movs r5, 0
- lsls r7, r4, 2
- mov r10, r7
- adds r0, r4, 0x1
- mov r12, r0
-_081A3930:
- mov r1, r8
- ldr r2, [r1]
- lsls r3, r5, 1
- mov r7, r10
- adds r1, r3, r7
- movs r7, 0xCE
- lsls r7, 4
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- cmp r4, 0x1
- bgt _081A3960
- adds r7, 0x2C
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0xBC
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
- adds r7, 0x1A
- adds r0, r2, r7
- adds r0, r1
- strh r6, [r0]
-_081A3960:
- cmp r4, 0
- bne _081A3980
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00000dda
- adds r1, r0, r2
- adds r1, r3
- strh r4, [r1]
- ldr r7, =0x00000e04
- adds r1, r0, r7
- adds r1, r3
- strh r4, [r1]
- ldr r1, =0x00000e1a
- adds r0, r1
- adds r0, r3
- strh r4, [r0]
-_081A3980:
- adds r5, 0x1
- cmp r5, 0x1
- ble _081A3930
- mov r4, r12
- cmp r4, 0x3
- ble _081A3926
- mov r2, r9
- ldr r0, [r2]
- ldr r7, =0x00000ca8
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, 0
- beq _081A399E
- movs r0, 0x1
- strb r0, [r1]
-_081A399E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3908
-
- thumb_func_start sub_81A39C4
-sub_81A39C4: @ 81A39C4
- 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, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _081A3AC4
- lsls r0, 2
- ldr r1, =_081A3A0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3A0C:
- .4byte _081A3A28
- .4byte _081A3A3C
- .4byte _081A3A54
- .4byte _081A3A6C
- .4byte _081A3A80
- .4byte _081A3A98
- .4byte _081A3AAC
-_081A3A28:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3AB4
- .pool
-_081A3A3C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- b _081A3AB4
- .pool
-_081A3A54:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3AB4
- .pool
-_081A3A6C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3AB4
- .pool
-_081A3A80:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3AB4
- .pool
-_081A3A98:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- b _081A3AB4
- .pool
-_081A3AAC:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3AB4:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- b _081A3AC6
- .pool
-_081A3AC4:
- movs r0, 0
-_081A3AC6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A39C4
-
- thumb_func_start sub_81A3ACC
-sub_81A3ACC: @ 81A3ACC
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A3AD8:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r2, 0x1
- cmp r2, 0x13
- ble _081A3AD8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3ACC
-
- thumb_func_start sub_81A3B00
-sub_81A3B00: @ 81A3B00
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- bne _081A3B20
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _081A3B24
- .pool
-_081A3B20:
- ldr r1, =gScriptResult
- movs r0, 0
-_081A3B24:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B00
-
- thumb_func_start sub_81A3B30
-sub_81A3B30: @ 81A3B30
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 23
- ldr r1, =0x000008c4
- adds r0, r4, r1
- bl FlagGet
- adds r5, r0, 0
- ldr r0, =0x000008c5
- adds r4, r0
- adds r0, r4, 0
- bl FlagGet
- adds r5, r0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3B30
-
- thumb_func_start sub_81A3B64
-sub_81A3B64: @ 81A3B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r7, 0x6
- bhi _081A3C78
- lsls r0, r7, 2
- ldr r1, =_081A3BB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3BB4:
- .4byte _081A3BD0
- .4byte _081A3BE4
- .4byte _081A3C00
- .4byte _081A3C18
- .4byte _081A3C2C
- .4byte _081A3C44
- .4byte _081A3C60
-_081A3BD0:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- movs r2, 0xCE
- lsls r2, 4
- b _081A3C68
- .pool
-_081A3BE4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000d0c
- adds r0, r2
- adds r0, r1
- ldrh r5, [r0]
- b _081A3C78
- .pool
-_081A3C00:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000dc8
- b _081A3C68
- .pool
-_081A3C18:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- b _081A3C68
- .pool
-_081A3C2C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- lsls r2, r6, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A3C68
- .pool
-_081A3C44:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xE
- b _081A3C70
- .pool
-_081A3C60:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e1a
-_081A3C68:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x7
-_081A3C70:
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
-_081A3C78:
- cmp r5, 0
- beq _081A3C7E
- subs r5, 0x1
-_081A3C7E:
- cmp r5, 0x1D
- bls _081A3C84
- movs r5, 0x1D
-_081A3C84:
- ldr r2, =gUnknown_086118B4
- lsls r1, r7, 2
- adds r1, r6, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r1, r0
- adds r7, r1, r2
- ldrb r5, [r7]
- ldr r0, =gTrainerBattleOpponent_A
- mov r9, r0
- ldrh r0, [r0]
- ldr r1, =0x000003fe
- mov r8, r1
- cmp r0, r8
- bne _081A3CA6
- adds r5, 0xA
-_081A3CA6:
- ldr r6, =gSaveBlock2Ptr
- ldr r1, [r6]
- ldr r4, =0x00000eb8
- adds r1, r4
- ldrh r0, [r1]
- adds r0, r5
- strh r0, [r1]
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r6]
- adds r2, r0, r4
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _081A3CCE
- strh r1, [r2]
-_081A3CCE:
- ldr r0, [r6]
- ldr r4, =0x00000eba
- adds r0, r4
- ldrh r5, [r0]
- ldrb r0, [r7]
- adds r5, r0
- bl sub_80EED60
- mov r2, r9
- ldrh r0, [r2]
- cmp r0, r8
- bne _081A3CEE
- adds r5, 0xA
- movs r0, 0xA
- bl sub_80EED60
-_081A3CEE:
- ldr r0, =0x0000ffff
- cmp r5, r0
- ble _081A3CF6
- adds r5, r0, 0
-_081A3CF6:
- ldr r0, [r6]
- adds r0, r4
- strh r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3B64
-
- thumb_func_start sub_81A3D30
-sub_81A3D30: @ 81A3D30
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- ldr r4, =gScriptResult
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D30
-
- thumb_func_start sub_81A3D58
-sub_81A3D58: @ 81A3D58
- push {r4,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- cmp r0, 0
- bne _081A3D88
- lsls r0, r4, 17
- ldr r1, =0x8C4 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- b _081A3D94
- .pool
-_081A3D88:
- lsls r0, r4, 17
- ldr r1, =0x8C5 << 16
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
-_081A3D94:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3D58
-
- thumb_func_start sub_81A3DA0
-sub_81A3DA0: @ 81A3DA0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, [r0]
- ands r2, r1
- cmp r2, 0
- beq _081A3DC4
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _081A3DC8
- .pool
-_081A3DC4:
- ldr r0, =gScriptResult
- strh r2, [r0]
-_081A3DC8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3DA0
-
- thumb_func_start sub_81A3DD0
-sub_81A3DD0: @ 81A3DD0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl pokedex_flag_operation
- lsls r0, 24
- cmp r0, 0
- beq _081A3ED6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081A3EA0
- lsls r0, 2
- ldr r1, =_081A3E0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A3E0C:
- .4byte _081A3E38
- .4byte _081A3E68
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
- .4byte _081A3EA0
- .4byte _081A3E38
-_081A3E38:
- cmp r5, r4
- bne _081A3E50
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB79
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E50:
- cmp r5, r4
- ble _081A3EC8
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB7F
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3E68:
- cmp r4, r5
- bne _081A3E80
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB79
- bl StringAppend
- b _081A3E88
- .pool
-_081A3E80:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB7F
- bl StringAppend
-_081A3E88:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB86
- bl StringAppend
- b _081A3EC8
- .pool
-_081A3EA0:
- cmp r4, r5
- bne _081A3EB8
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB79
- bl StringAppend
- b _081A3EC0
- .pool
-_081A3EB8:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB7F
- bl StringAppend
-_081A3EC0:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB84
- bl StringAppend
-_081A3EC8:
- ldr r0, =gStringVar1
- movs r1, 0xB
- muls r1, r6
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringAppend
-_081A3ED6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A3DD0
-
- thumb_func_start sub_81A3EF0
-sub_81A3EF0: @ 81A3EF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081A3FBE
- cmp r4, 0
- beq _081A3FBE
- ldr r0, =gUnknown_08611C9A
- ldrh r1, [r0]
- ldr r5, =0x0000ffff
- adds r3, r0, 0
- cmp r1, r5
- beq _081A3F54
- cmp r1, r4
- beq _081A3F48
- adds r1, r3, 0
-_081A3F3A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _081A3F54
- cmp r0, r4
- bne _081A3F3A
-_081A3F48:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081A3FBE
-_081A3F54:
- mov r0, r12
- cmp r0, 0
- bne _081A3F60
- mov r1, r8
- cmp r1, 0x32
- bhi _081A3FBE
-_081A3F60:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _081A3F80
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _081A3F80
- adds r5, r3, 0
-_081A3F72:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3F80
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A3F72
-_081A3F80:
- cmp r2, r3
- bne _081A3FBE
- cmp r6, 0
- beq _081A3FAA
- movs r2, 0
- cmp r2, r3
- bge _081A3FA6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081A3FA6
- adds r5, r3, 0
-_081A3F98:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081A3FA6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081A3F98
-_081A3FA6:
- cmp r2, r3
- bne _081A3FBE
-_081A3FAA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081A3FBE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3EF0
-
- thumb_func_start sub_81A3FD4
-sub_81A3FD4: @ 81A3FD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- movs r0, 0
- str r0, [sp, 0x2C]
- add r4, sp, 0x28
- strb r0, [r4]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- mov r10, r4
- cmp r0, 0x1
- beq _081A4016
- cmp r0, 0x1
- bgt _081A4008
- cmp r0, 0
- beq _081A4010
- b _081A402A
- .pool
-_081A4008:
- cmp r0, 0x3
- bgt _081A402A
- movs r0, 0x2
- b _081A4028
-_081A4010:
- movs r1, 0x3
- str r1, [sp, 0x2C]
- b _081A402A
-_081A4016:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- movs r1, 0x3
- str r1, [sp, 0x2C]
- cmp r0, 0
- bne _081A402A
- movs r0, 0x4
-_081A4028:
- str r0, [sp, 0x2C]
-_081A402A:
- movs r1, 0
- mov r9, r1
- b _081A4040
- .pool
-_081A4034:
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- blt _081A4040
- b _081A41E0
-_081A4040:
- mov r5, r9
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x30]
-_081A404E:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bne _081A40C8
- cmp r7, 0
- bne _081A40E4
- ldr r0, =gScriptResult
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- movs r1, 0
- adds r2, r4, 0
- bl sub_81A3EF0
- b _081A40E4
- .pool
-_081A40C8:
- ldr r0, =gScriptResult
- ldrb r3, [r0]
- str r6, [sp]
- add r1, sp, 0x10
- str r1, [sp, 0x4]
- add r0, sp, 0x1C
- str r0, [sp, 0x8]
- mov r0, r10
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r4, 0
- bl sub_81A3EF0
-_081A40E4:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A40EC
- movs r5, 0
-_081A40EC:
- cmp r5, r9
- bne _081A404E
- ldr r1, [sp, 0x30]
- mov r9, r1
- cmp r1, 0x5
- ble _081A4034
- mov r1, r10
- ldrb r0, [r1]
- ldr r1, [sp, 0x2C]
- cmp r0, r1
- bge _081A41E0
- movs r6, 0
- ldr r0, =gUnknown_08611C9A
- ldrh r2, [r0]
- ldr r1, =0x0000ffff
- mov r8, r0
- cmp r2, r1
- beq _081A4134
- mov r4, r8
-_081A4112:
- adds r0, r2, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl pokedex_flag_operation
- lsls r0, 24
- cmp r0, 0
- beq _081A412A
- adds r6, 0x1
-_081A412A:
- adds r4, 0x2
- ldrh r2, [r4]
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _081A4112
-_081A4134:
- ldr r1, =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r10
- strb r0, [r1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _081A416A
- mov r5, r10
- adds r7, r1, 0
- mov r4, r8
-_081A4156:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl sub_81A3DD0
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _081A4156
-_081A416A:
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- bne _081A41A4
- ldr r4, =gStringVar1
- ldr r1, =gUnknown_085CCB82
- adds r0, r4, 0
- bl StringAppend
- ldr r1, =gUnknown_085CCB88
- adds r0, r4, 0
- bl StringAppend
- b _081A4202
- .pool
-_081A41A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081A41C0
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB84
- bl StringAppend
- b _081A41C8
- .pool
-_081A41C0:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB82
- bl StringAppend
-_081A41C8:
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_085CCB8C
- bl StringAppend
- b _081A4202
- .pool
-_081A41E0:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gScriptResult
- ldrb r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r1
- movs r1, 0x3
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A4202:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A3FD4
-
- thumb_func_start sub_81A4224
-sub_81A4224: @ 81A4224
- push {lr}
- bl sub_81652B4
- pop {r0}
- bx r0
- thumb_func_end sub_81A4224
-
- thumb_func_start sub_81A4230
-sub_81A4230: @ 81A4230
- push {r4-r7,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, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _081A425A
- b _081A4394
-_081A425A:
- lsls r0, 2
- ldr r1, =_081A4278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A4278:
- .4byte _081A4294
- .4byte _081A42DC
- .4byte _081A431C
- .4byte _081A4338
- .4byte _081A434C
- .4byte _081A4368
- .4byte _081A437C
-_081A4294:
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- lsls r4, 1
- lsls r1, r5, 2
- adds r1, r4, r1
- movs r6, 0xCE
- lsls r6, 4
- adds r3, r0, r6
- adds r2, r3, r1
- ldrh r1, [r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- bhi _081A4394
- adds r0, r1, 0x1
- strh r0, [r2]
- cmp r5, 0
- bne _081A4394
- adds r0, r3, r4
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- ldr r1, [r7]
- adds r0, r1, r6
- adds r0, r4
- ldrh r0, [r0]
- ldr r2, =0x00000d02
- adds r1, r2
- b _081A4392
- .pool
-_081A42DC:
- ldr r6, =gSaveBlock2Ptr
- ldr r0, [r6]
- lsls r2, r4, 1
- lsls r1, r5, 2
- adds r1, r2, r1
- ldr r3, =0x00000d0c
- adds r0, r3
- adds r3, r0, r1
- ldrh r0, [r3]
- ldr r2, =0x0000270e
- cmp r0, r2
- bhi _081A42F8
- adds r0, 0x1
- strh r0, [r3]
-_081A42F8:
- ldr r0, [r6]
- ldr r3, =0x00000d1c
- adds r0, r3
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r2
- bhi _081A4394
- adds r0, 0x1
- b _081A4392
- .pool
-_081A431C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r1, =0x00000dc8
- adds r2, r1
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4338:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000dda
- adds r0, r2
- b _081A4386
- .pool
-_081A434C:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r0, r4, 1
- lsls r1, r5, 2
- adds r0, r1
- ldr r3, =0x00000de2
- adds r2, r3
- adds r1, r2, r0
- b _081A4388
- .pool
-_081A4368:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000e04
- adds r0, r2
- b _081A4386
- .pool
-_081A437C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r3, =0x00000e1a
- adds r0, r3
-_081A4386:
- adds r1, r0, r1
-_081A4388:
- ldrh r3, [r1]
- ldr r0, =0x0000270e
- cmp r3, r0
- bhi _081A4394
- adds r0, r3, 0x1
-_081A4392:
- strh r0, [r1]
-_081A4394:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4230
-
- thumb_func_start sub_81A43A8
-sub_81A43A8: @ 81A43A8
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r6, =gSaveBlock1Ptr
- movs r5, 0x64
-_081A43B2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A43EE
- adds r1, r0, 0
- muls r1, r5
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r0, [r6]
- adds r0, r1
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081A43EE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A43B2
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A43A8
-
- thumb_func_start sub_81A4410
-sub_81A4410: @ 81A4410
- push {r4,lr}
- ldr r4, =gScriptResult
- bl sub_8185338
- strh r0, [r4]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4410
-
- thumb_func_start sub_81A443C
-sub_81A443C: @ 81A443C
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A4450
- cmp r0, 0x1
- beq _081A4464
- b _081A446E
- .pool
-_081A4450:
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_8162E20
- b _081A446E
- .pool
-_081A4464:
- ldr r0, =gStringVar2
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_8162E20
-_081A446E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A443C
-
- thumb_func_start sub_81A447C
-sub_81A447C: @ 81A447C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
-_081A448C:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, [sp]
- lsls r1, r2, 1
- ldr r4, =0x00000caa
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r1
- adds r2, 0x1
- str r2, [sp, 0x4]
- cmp r0, 0x5
- bhi _081A454E
- movs r6, 0
- ldr r0, [sp]
- movs r2, 0x64
- adds r1, r0, 0
- muls r1, r2
- ldr r0, =gPlayerParty
- adds r7, r1, r0
-_081A44BA:
- movs r5, 0
- movs r4, 0xD
- adds r4, r6
- mov r8, r4
- adds r0, r6, 0x1
- mov r10, r0
-_081A44C6:
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000caa
- adds r0, r2
- add r0, r9
- ldrh r0, [r0]
- movs r4, 0x64
- adds r1, r0, 0
- muls r1, r4
- movs r0, 0xEA
- lsls r0, 1
- adds r1, r0
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- adds r0, r1
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r7, 0
- mov r1, r8
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- beq _081A4508
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081A44C6
-_081A4508:
- cmp r5, 0x4
- bne _081A4516
- adds r0, r7, 0
- movs r1, 0xA6
- adds r2, r6, 0
- bl SetMonMoveSlot
-_081A4516:
- mov r4, r10
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _081A44BA
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r4, =0x00000caa
- adds r1, r4
- add r1, r9
- ldrh r1, [r1]
- subs r1, 0x1
- movs r3, 0x64
- muls r1, r3
- adds r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r0, r1
- ldr r2, =gPlayerParty
- ldr r4, [sp]
- adds r1, r4, 0
- muls r1, r3
- adds r1, r2
- movs r2, 0x64
- bl memcpy
-_081A454E:
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- str r0, [sp]
- cmp r0, 0x3
- bls _081A448C
- 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_81A447C
-
- thumb_func_start sub_81A457C
-sub_81A457C: @ 81A457C
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_81A5030
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A457C
-
- thumb_func_start sub_81A4594
-sub_81A4594: @ 81A4594
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r1
- adds r6, r3, 0
- ldr r1, =gUnknown_0203AB74
- ldrb r5, [r1]
- lsls r4, r0, 1
- adds r4, r0
- ldr r1, =gUnknown_085EE424
- adds r4, r1
- mov r1, r8
- lsls r3, r1, 27
- lsrs r3, 24
- lsls r1, r0, 2
- adds r1, r0
- adds r2, r1
- lsls r2, 3
- adds r2, 0x1
- lsls r2, 24
- lsrs r7, r2, 24
- str r7, [sp]
- movs r0, 0xFF
- mov r10, r0
- str r0, [sp, 0x4]
- movs r1, 0
- mov r9, r1
- str r1, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- movs r0, 0xFF
- strb r0, [r6, 0xD]
- ldrh r0, [r6, 0x4]
- cmp r0, 0
- beq _081A465C
- adds r1, r6, 0x6
- ldrb r2, [r6, 0xE]
- add r0, sp, 0xC
- bl sub_81DB5E8
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- mov r3, r8
- adds r3, 0x2
- lsls r3, 27
- lsrs r3, 24
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- ldrh r1, [r6, 0x4]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4618
- adds r1, r0, 0
-_081A4618:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_08611D08
- ldr r0, [sp, 0x4C]
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl PrintTextOnWindow
-_081A465C:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4594
-
- thumb_func_start sub_81A4684
-sub_81A4684: @ 81A4684
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- adds r6, r0, 0
- adds r7, r1, 0
- mov r10, r2
- adds r5, r3, 0
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- lsls r2, r6, 1
- adds r2, r6
- ldr r1, =gUnknown_085EE424
- adds r2, r1
- lsls r3, r7, 27
- lsrs r3, 24
- mov r12, r3
- lsls r1, r6, 2
- adds r1, r6
- mov r3, r10
- adds r4, r3, r1
- lsls r1, r4, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r9, r1
- str r1, [sp, 0x4]
- movs r3, 0
- mov r8, r3
- str r3, [sp, 0x8]
- movs r1, 0x1
- mov r3, r12
- bl PrintTextOnWindow
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081A47BC
- movs r0, 0xFF
- strb r0, [r5, 0x11]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x19]
- adds r1, r5, 0
- adds r1, 0xA
- ldrb r2, [r5, 0x1A]
- add r0, sp, 0xC
- bl sub_81DB5E8
- ldr r1, =gUnknown_0203AB74
- ldrb r0, [r1]
- adds r3, r7, 0x2
- lsls r3, 27
- lsrs r3, 24
- subs r1, r4, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r2, r9
- str r2, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- adds r4, r5, 0
- adds r4, 0x12
- adds r0, r4, 0
- bl sub_8009228
- cmp r0, 0
- beq _081A4734
- add r0, sp, 0xC
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_81DB5E8
- b _081A473C
- .pool
-_081A4734:
- add r0, sp, 0xC
- adds r1, r4, 0
- bl StringCopy
-_081A473C:
- ldr r2, =gUnknown_0203AB74
- mov r9, r2
- ldrb r0, [r2]
- adds r3, r7, 0x4
- lsls r3, 27
- lsrs r3, 24
- lsls r1, r6, 2
- adds r1, r6
- mov r2, r10
- adds r6, r2, r1
- adds r1, r6, 0x1
- lsls r1, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0xFF
- mov r8, r1
- str r1, [sp, 0x4]
- movs r7, 0
- str r7, [sp, 0x8]
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- ldrh r1, [r5, 0x8]
- ldr r0, =0x0000270f
- cmp r1, r0
- bls _081A4778
- adds r1, r0, 0
-_081A4778:
- ldr r0, =gStringVar2
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar4
- ldr r0, =gUnknown_08611D08
- ldr r4, [r0, 0x24]
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC8
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r2, r9
- ldrb r0, [r2]
- lsls r1, r6, 3
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- bl PrintTextOnWindow
-_081A47BC:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4684
-
- thumb_func_start sub_81A47E0
-sub_81A47E0: @ 81A47E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- mov r9, r0
- mov r10, r1
- str r2, [sp, 0x40]
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- add r0, sp, 0x30
- mov r12, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r3, [sp, 0x40]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 4
- mov r4, r10
- lsls r0, r4, 1
- add r0, r10
- lsls r0, 5
- adds r1, r0
- adds r4, r1, r2
- mov r3, sp
- movs r2, 0x2
-_081A4820:
- adds r0, r3, 0
- movs r5, 0x87
- lsls r5, 2
- adds r1, r4, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r4, 0x10
- adds r3, 0x10
- subs r2, 0x1
- cmp r2, 0
- bge _081A4820
- ldr r6, [sp, 0x40]
- lsls r0, r6, 4
- mov r7, r10
- lsls r1, r7, 5
- adds r0, r1
- mov r1, r12
- add r0, r8
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- movs r2, 0
-_081A4852:
- movs r1, 0
- movs r4, 0
- movs r3, 0
- lsls r5, r2, 4
- adds r6, r2, 0x1
- mov r2, sp
-_081A485E:
- ldrh r0, [r2, 0x4]
- cmp r0, r1
- ble _081A4868
- adds r4, r3, 0
- adds r1, r0, 0
-_081A4868:
- adds r2, 0x10
- adds r3, 0x1
- cmp r3, 0x3
- ble _081A485E
- mov r0, sp
- ldrh r0, [r0, 0x34]
- cmp r0, r1
- blt _081A487A
- movs r4, 0x3
-_081A487A:
- lsls r0, r4, 4
- mov r7, sp
- adds r2, r7, r0
- mov r0, r9
- adds r1, r5, r0
- adds r0, r2, 0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x4]
- adds r2, r6, 0
- cmp r2, 0x2
- ble _081A4852
- mov r0, r8
- bl Free
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A47E0
-
- thumb_func_start sub_81A48B4
-sub_81A48B4: @ 81A48B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x74
- mov r9, r0
- mov r10, r1
- movs r0, 0xAC
- lsls r0, 1
- bl AllocZeroed
- mov r8, r0
- bl sub_80E8260
- mov r0, sp
- adds r0, 0x54
- str r0, [sp, 0x70]
- add r1, sp, 0x5C
- mov r12, r1
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r0, 0x54
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r3, r0, r1
- mov r2, sp
- movs r4, 0x2
-_081A48EE:
- adds r0, r2, 0
- ldr r5, =0x0000057c
- adds r1, r3, r5
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldm r1!, {r5-r7}
- stm r0!, {r5-r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r3, 0x1C
- adds r2, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _081A48EE
- mov r6, r10
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- add r0, r8
- ldr r1, [sp, 0x70]
- movs r7, 0x90
- lsls r7, 1
- adds r0, r7
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldr r0, [r0]
- str r0, [r1]
- movs r4, 0
-_081A492A:
- movs r1, 0
- movs r5, 0
- movs r3, 0
- lsls r6, r4, 3
- adds r7, r4, 0x1
- mov r2, sp
-_081A4936:
- ldrh r0, [r2, 0x8]
- cmp r0, r1
- ble _081A4940
- adds r5, r3, 0
- adds r1, r0, 0
-_081A4940:
- adds r2, 0x1C
- adds r3, 0x1
- cmp r3, 0x2
- ble _081A4936
- mov r2, r12
- ldrh r0, [r2]
- cmp r0, r1
- blt _081A4952
- movs r5, 0x3
-_081A4952:
- subs r1, r6, r4
- lsls r1, 2
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- mov r3, sp
- adds r2, r3, r0
- add r1, r9
- adds r0, r2, 0
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0
- strh r0, [r2, 0x8]
- adds r4, r7, 0
- cmp r4, 0x2
- ble _081A492A
- mov r0, r8
- bl Free
- add sp, 0x74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A48B4
-
- thumb_func_start sub_81A4998
-sub_81A4998: @ 81A4998
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x94
- adds r7, r0, 0
- str r1, [sp, 0x90]
- ldr r0, =gStringVar1
- ldr r4, =gUnknown_08611CB0
- lsls r5, r7, 3
- adds r1, r5, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r6, =gStringVar4
- adds r4, 0x4
- adds r5, r4
- ldr r1, [r5]
- adds r0, r6, 0
- bl StringExpandPlaceholders
- ldr r0, =gUnknown_0203AB74
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x1
- mov r10, r1
- str r1, [sp]
- movs r2, 0xFF
- mov r9, r2
- str r2, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r2, r6, 0
- movs r3, 0
- bl PrintTextOnWindow
- ldr r1, =gUnknown_08611D00
- ldr r2, [sp, 0x90]
- lsls r0, r2, 2
- adds r0, r1
- ldr r4, [r0]
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xD0
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- lsls r3, 24
- lsrs r3, 24
- mov r2, r10
- str r2, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- cmp r7, 0x9
- bne _081A4A6C
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r1, =0x00000ee8
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r2]
- movs r2, 0xEF
- lsls r2, 4
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- add r4, sp, 0x3C
- adds r0, r4, 0
- ldr r1, [sp, 0x90]
- bl sub_81A48B4
-_081A4A3A:
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4684
- adds r4, 0x1C
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A3A
- b _081A4A90
- .pool
-_081A4A6C:
- add r0, sp, 0xC
- adds r1, r7, 0
- ldr r2, [sp, 0x90]
- bl sub_81A47E0
- movs r5, 0
- add r4, sp, 0xC
-_081A4A7A:
- str r7, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x4
- adds r3, r4, 0
- bl sub_81A4594
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x2
- ble _081A4A7A
-_081A4A90:
- add sp, 0x94
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A4998
-
- thumb_func_start sub_81A4AA0
-sub_81A4AA0: @ 81A4AA0
- push {r4,lr}
- ldr r4, =gUnknown_0203AB74
- ldr r0, =gUnknown_08611C84
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl sub_81973FC
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0
- bl sub_81A4998
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AA0
-
- thumb_func_start sub_81A4AE8
-sub_81A4AE8: @ 81A4AE8
- push {r4,lr}
- ldr r4, =gUnknown_0203AB74
- ldrb r0, [r4]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r1, 0x1
- bl sub_81A4998
- ldrb r0, [r4]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4AE8
-
- thumb_func_start sub_81A4B14
-sub_81A4B14: @ 81A4B14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r1, 0
- ldr r3, =gSaveBlock2Ptr
-_081A4B24:
- movs r6, 0
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r10, r2
- adds r0, r1
- lsls r0, 5
- mov r8, r0
- movs r7, 0
- movs r0, 0x87
- lsls r0, 2
- add r0, r8
- mov r9, r0
-_081A4B3C:
- movs r5, 0
- adds r2, r7, 0
- mov r1, r8
- adds r4, r7, r1
-_081A4B44:
- ldr r0, [r3]
- add r0, r9
- adds r0, r2
- lsls r1, r5, 4
- adds r0, r1
- movs r1, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- bl CopyUnalignedWord
- ldr r3, [sp, 0x4]
- ldr r0, [r3]
- adds r0, r4
- ldr r1, =0x00000222
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r4
- movs r1, 0x88
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x10
- adds r5, 0x1
- ldr r2, [sp]
- cmp r5, 0x2
- ble _081A4B44
- adds r7, 0x30
- adds r6, 0x1
- cmp r6, 0x1
- ble _081A4B3C
- mov r1, r10
- cmp r1, 0x8
- ble _081A4B24
- movs r6, 0
- ldr r7, =gSaveBlock2Ptr
- movs r2, 0x54
- mov r10, r2
- movs r3, 0xFF
- mov r9, r3
-_081A4B98:
- adds r0, r6, 0x1
- mov r8, r0
- mov r1, r10
- muls r1, r6
- movs r0, 0x54
- adds r4, r6, 0
- muls r4, r0
- movs r2, 0
- ldr r3, =0x0000057c
- adds r6, r1, r3
- movs r5, 0x2
-_081A4BAE:
- ldr r0, [r7]
- adds r0, r6
- adds r0, r2
- movs r1, 0
- str r2, [sp]
- bl CopyUnalignedWord
- ldr r0, [r7]
- adds r0, r6
- ldr r2, [sp]
- adds r0, r2
- adds r0, 0x4
- movs r1, 0
- bl CopyUnalignedWord
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x00000586
- adds r1, r0
- ldrb r0, [r1]
- mov r3, r9
- orrs r0, r3
- strb r0, [r1]
- ldr r1, [r7]
- adds r1, r4
- ldr r0, =0x0000058e
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r3
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x00000584
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- adds r4, 0x1C
- ldr r2, [sp]
- adds r2, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _081A4BAE
- mov r6, r8
- cmp r6, 0x1
- ble _081A4B98
- 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_81A4B14
-
- thumb_func_start sub_81A4C30
-sub_81A4C30: @ 81A4C30
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- adds r7, r0, 0
- adds r4, r7, 0
- movs r5, 0
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
- ldr r0, =gPlayerParty
- mov r8, r0
-_081A4C4E:
- mov r0, r8
- adds r1, r5, r0
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _081A4C4E
- ldr r4, =gPlayerPartyCount
- ldrb r5, [r4]
- bl copy_player_party_from_sav1
- bl sub_8076D5C
- movs r0, 0x1
- bl TrySavingData
- bl sav2_gender2_inplace_and_xFE
- strb r5, [r4]
- adds r4, r7, 0
- ldr r5, =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r6, r7, r0
-_081A4C84:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _081A4C84
- adds r0, r7, 0
- bl Free
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4C30
-
- thumb_func_start sub_81A4CB0
-sub_81A4CB0: @ 81A4CB0
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4CD0
- bl sub_8185EA0
- lsls r0, 24
- lsrs r0, 24
- b _081A4CDA
- .pool
-_081A4CD0:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4CDA:
- ldr r2, =gTrainers
- ldr r1, =gUnknown_08611D30
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4CB0
-
- thumb_func_start sub_81A4D00
-sub_81A4D00: @ 81A4D00
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D20
- bl sub_8185EA0
- lsls r0, 24
- lsrs r0, 24
- b _081A4D2A
- .pool
-_081A4D20:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D2A:
- ldr r2, =gTrainers
- ldr r1, =gUnknown_08611D30
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4D00
-
- thumb_func_start sub_81A4D50
-sub_81A4D50: @ 81A4D50
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A4D70
- bl sub_8185EA0
- lsls r0, 24
- lsrs r0, 24
- b _081A4D7A
- .pool
-_081A4D70:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
-_081A4D7A:
- movs r3, 0
- lsls r0, 1
- ldr r2, =gTrainers
- ldr r1, =gUnknown_08611D30
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x4
- adds r2, r0, r2
-_081A4D90:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _081A4D90
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4D50
-
- thumb_func_start sub_81A4DB8
-sub_81A4DB8: @ 81A4DB8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4DB8
-
- thumb_func_start sub_81A4DD8
-sub_81A4DD8: @ 81A4DD8
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 15
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4DD8
-
- thumb_func_start sub_81A4E04
-sub_81A4E04: @ 81A4E04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x20]
- bl sub_81A513C
- str r0, [sp, 0x24]
- ldr r0, [sp, 0x20]
- cmp r0, 0x1
- bne _081A4E44
- ldr r0, =0x000003fe
- bl sub_81953A0
- lsls r0, 16
- lsrs r0, 16
- bl sub_818FC78
- adds r4, r0, 0
- b _081A4E46
- .pool
-_081A4E44:
- movs r4, 0x7
-_081A4E46:
- bl ZeroEnemyPartyMons
- movs r1, 0
- str r1, [sp, 0x18]
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x14]
-_081A4E5C:
- movs r0, 0x1
- ands r0, r4
- asrs r4, 1
- str r4, [sp, 0x30]
- ldr r3, [sp, 0x14]
- adds r3, 0x1
- str r3, [sp, 0x28]
- cmp r0, 0
- bne _081A4E70
- b _081A4FC4
-_081A4E70:
- ldr r4, [sp, 0x14]
- lsls r4, 2
- mov r9, r4
- ldr r0, [sp, 0x24]
- lsls r0, 4
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x20]
- lsls r1, 4
- str r1, [sp, 0x34]
- ldr r2, [sp, 0x1C]
- lsls r2, 24
- str r2, [sp, 0x3C]
- ldr r3, [sp, 0x18]
- adds r3, 0x1
- str r3, [sp, 0x2C]
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r0, 2
- mov r8, r0
-_081A4E96:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r7, r4, 16
- lsls r0, 16
- orrs r7, r0
- ldr r0, =0x0000ef2a
- adds r1, r7, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- cmp r0, 0
- bne _081A4E96
- ldr r4, [sp, 0x38]
- ldr r1, [sp, 0x24]
- subs r0, r4, r1
- lsls r5, r0, 2
- mov r2, r8
- adds r4, r2, r5
- ldr r3, [sp, 0x34]
- ldr r1, [sp, 0x20]
- subs r0, r3, r1
- lsls r6, r0, 3
- adds r4, r6
- ldr r2, =gUnknown_0861156C
- adds r4, r2
- adds r0, r7, 0
- bl GetNatureFromPersonality
- ldrb r1, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081A4E96
- ldr r4, [sp, 0x18]
- movs r0, 0x64
- adds r3, r4, 0
- muls r3, r0
- mov r8, r3
- ldr r1, =gEnemyParty
- add r1, r8
- mov r10, r1
- ldr r4, [sp, 0x14]
- add r4, r9
- lsls r4, 2
- adds r0, r4, r5
- adds r0, r6
- ldr r2, =gUnknown_0861156C
- adds r0, r2
- ldrh r1, [r0]
- ldr r3, [sp, 0x3C]
- lsrs r2, r3, 24
- ldrb r3, [r0, 0x4]
- movs r0, 0x1
- str r0, [sp]
- str r7, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, =0x0000ef2a
- str r0, [sp, 0xC]
- mov r0, r10
- bl CreateMon
- ldr r0, =gUnknown_0861156C
- adds r5, r0
- adds r5, r6, r5
- adds r4, r5, r4
- adds r4, 0x2
- mov r0, r10
- movs r1, 0xC
- adds r2, r4, 0
- bl SetMonData
- movs r7, 0
- mov r6, r8
- ldr r3, =gEnemyParty
-_081A4F32:
- adds r1, r7, 0
- adds r1, 0x1A
- ldr r0, [sp, 0x14]
- add r0, r9
- lsls r4, r0, 2
- adds r2, r5, r4
- adds r0, r7, 0x6
- adds r2, r0
- adds r0, r6, r3
- str r3, [sp, 0x40]
- bl SetMonData
- adds r7, 0x1
- ldr r3, [sp, 0x40]
- cmp r7, 0x5
- ble _081A4F32
- movs r1, 0xFF
- add r0, sp, 0x10
- strb r1, [r0]
- movs r7, 0
- ldr r1, [sp, 0x18]
- movs r2, 0x64
- adds r6, r1, 0
- muls r6, r2
- ldr r3, =gUnknown_08611578
- mov r8, r3
- ldr r3, =gEnemyParty
- adds r5, r4, 0
-_081A4F6A:
- ldr r4, [sp, 0x38]
- ldr r0, [sp, 0x24]
- subs r1, r4, r0
- lsls r1, 2
- adds r1, r5, r1
- ldr r2, [sp, 0x34]
- ldr r4, [sp, 0x20]
- subs r0, r2, r4
- lsls r0, 3
- adds r1, r0
- add r1, r8
- ldrh r4, [r1]
- lsls r2, r7, 24
- lsrs r2, 24
- adds r0, r6, r3
- adds r1, r4, 0
- str r3, [sp, 0x40]
- bl SetMonMoveSlot
- ldr r3, [sp, 0x40]
- cmp r4, 0xDA
- bne _081A4F9C
- movs r1, 0
- add r0, sp, 0x10
- strb r1, [r0]
-_081A4F9C:
- adds r5, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _081A4F6A
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r4, 0
- bl CalculateMonStats
- ldr r2, [sp, 0x2C]
- str r2, [sp, 0x18]
-_081A4FC4:
- ldr r4, [sp, 0x30]
- ldr r3, [sp, 0x28]
- str r3, [sp, 0x14]
- cmp r3, 0x2
- bgt _081A4FD0
- b _081A4E5C
-_081A4FD0:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A4E04
-
- thumb_func_start sub_81A4FF0
-sub_81A4FF0: @ 81A4FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrh r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A4FF0
-
- thumb_func_start sub_81A5030
-sub_81A5030: @ 81A5030
- push {lr}
- lsls r0, 24
- ldr r2, =gTrainerBattleOpponent_A
- ldr r3, =0x000003fe
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, =0x00004010
- ldr r1, =gUnknown_08611C8C
- lsrs r0, 23
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5030
-
- thumb_func_start sub_81A5060
-sub_81A5060: @ 81A5060
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r4, 1
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0xC
- adds r4, r2
- ldrh r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A5060
-
- thumb_func_start sub_81A50B0
-sub_81A50B0: @ 81A50B0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r3, =gUnknown_0861156C
- lsls r2, r4, 2
- adds r2, r4
- lsls r1, r0, 4
- subs r1, r0
- adds r1, r2
- lsls r1, 2
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1, 0x5]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50B0
-
- thumb_func_start sub_81A50F0
-sub_81A50F0: @ 81A50F0
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =0x000040cf
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- bl sub_81A513C
- ldr r2, =gUnknown_0861156C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 2
- adds r4, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 2
- adds r4, r1
- lsls r0, r5, 4
- subs r0, r5
- lsls r0, 3
- adds r4, r0
- adds r2, 0x6
- adds r4, r2
- ldrb r0, [r4]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A50F0
-
- thumb_func_start sub_81A513C
-sub_81A513C: @ 81A513C
- push {r4,r5,lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_81A3B30
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bne _081A51A0
- bl sub_81A39C4
- lsls r0, 16
- ldr r3, =gUnknown_08611550
- lsls r2, r5, 2
- adds r1, r3, 0x3
- adds r1, r2, r1
- lsrs r0, 16
- ldrb r1, [r1]
- adds r1, r0, r1
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A5180
- movs r4, 0
- b _081A51A0
- .pool
-_081A5180:
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r1, r0
- beq _081A519E
- cmp r1, r0
- ble _081A51A0
- subs r0, r1, r0
- adds r1, r3, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A51A0
-_081A519E:
- movs r4, 0x1
-_081A51A0:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A513C
-
- thumb_func_start sub_81A51A8
-sub_81A51A8: @ 81A51A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _081A51D4
- bl sub_8185EA0
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8185EAC
- lsls r0, 24
- lsrs r1, r0, 24
- b _081A51E4
- .pool
-_081A51D4:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_81A513C
- adds r1, r0, 0
-_081A51E4:
- cmp r5, 0
- beq _081A51F4
- cmp r5, 0x1
- beq _081A5214
- b _081A5228
- .pool
-_081A51F4:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB0
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _081A5228
- .pool
-_081A5214:
- ldr r0, =gStringVar4
- ldr r2, =gUnknown_08611DB8
- lsls r1, 2
- adds r1, r2
- ldr r2, [r1]
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
-_081A5228:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A51A8
-
- thumb_func_start sub_81A5238
-sub_81A5238: @ 81A5238
- push {lr}
- ldr r1, =gUnknown_08611F84
- 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_81A5238
-
- thumb_func_start sub_81A5258
-sub_81A5258: @ 81A5258
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0xA
- bls _081A5268
- b _081A5544
-_081A5268:
- lsls r0, 2
- ldr r1, =_081A5278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A5278:
- .4byte _081A52A4
- .4byte _081A52F4
- .4byte _081A531C
- .4byte _081A53B4
- .4byte _081A540C
- .4byte _081A542C
- .4byte _081A544C
- .4byte _081A5490
- .4byte _081A553E
- .4byte _081A54D4
- .4byte _081A5520
-_081A52A4:
- ldr r0, =0x7fffff1c
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, =0x00003f3e
- movs r0, 0x48
- bl SetGpuReg
- ldr r0, =gUnknown_08611F74
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08D855E8
- movs r1, 0xF8
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, =gUnknown_02022E24
- movs r0, 0xFF
- strh r0, [r1]
- ldr r1, =gUnknown_02022E26
- movs r0, 0x70
- strh r0, [r1]
- b _081A553E
- .pool
-_081A52F4:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081A5306
- b _081A5544
-_081A5306:
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0x18
- movs r3, 0xD
- bl sub_8056A3C
- b _081A553E
- .pool
-_081A531C:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _081A5328
- b _081A5544
-_081A5328:
- ldr r1, =gBattleTextBuff1
- movs r2, 0xA1
- strb r2, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- ldr r1, =gBattleTextBuff2
- strb r2, [r1]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x1]
- ldr r0, =gUnknown_085CCDB2
- bl get_battle_strings_
- ldr r4, =gUnknown_02022E2C
- adds r0, r4, 0
- movs r1, 0xF
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDB5
- movs r1, 0x10
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDB8
- bl get_battle_strings_
- adds r0, r4, 0
- movs r1, 0x11
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDBB
- movs r1, 0x12
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDC0
- movs r1, 0x13
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDC6
- movs r1, 0x14
- bl battle_show_message_maybe
- ldr r0, =gUnknown_085CCDCB
- bl get_battle_strings_
- adds r0, r4, 0
- movs r1, 0x15
- bl battle_show_message_maybe
- b _081A553E
- .pool
-_081A53B4:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _081A53C0
- b _081A5544
-_081A53C0:
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- movs r6, 0x80
- lsls r6, 15
- movs r4, 0x7
-_081A53CE:
- asrs r1, r6, 16
- ldr r0, =gUnknown_08611F5C
- movs r2, 0x54
- movs r3, 0
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 13
- adds r6, r0
- subs r4, 0x1
- cmp r4, 0
- bge _081A53CE
- b _081A553C
- .pool
-_081A540C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x28
- movs r2, 0
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x28
- movs r2, 0
- b _081A5464
- .pool
-_081A542C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x38
- movs r2, 0x1
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x38
- movs r2, 0x1
- b _081A5464
- .pool
-_081A544C:
- ldr r0, =0x00000109
- bl PlaySE
- movs r0, 0x50
- movs r1, 0x48
- movs r2, 0x2
- movs r3, 0
- bl sub_81A5558
- movs r0, 0xA0
- movs r1, 0x48
- movs r2, 0x2
-_081A5464:
- movs r3, 0x1
- bl sub_81A5558
- ldr r0, =gUnknown_085CCDCB
- bl get_battle_strings_
- ldr r0, =gUnknown_02022E2C
- movs r1, 0x15
- bl battle_show_message_maybe
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- movs r6, 0x1
- b _081A5544
- .pool
-_081A5490:
- movs r0, 0x85
- lsls r0, 1
- bl PlaySE
- ldr r0, =gBattleTextBuff1
- ldr r1, =gBattleTextBuff2
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bls _081A54BC
- movs r6, 0x2
- ldr r1, =gBattleScripting
- movs r0, 0
- strb r0, [r1, 0x17]
- b _081A553E
- .pool
-_081A54BC:
- cmp r2, r0
- bcs _081A54D0
- movs r6, 0x3
- ldr r1, =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0x17]
- b _081A553E
- .pool
-_081A54D0:
- movs r6, 0x4
- b _081A553E
-_081A54D4:
- ldr r1, =0x00003f3e
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0x18
- movs r3, 0xD
- bl sub_8056A3C
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, =0x7fffff1c
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081A553E
- .pool
-_081A5520:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081A5544
- ldr r1, =0x00003f3f
- movs r0, 0x48
- bl SetGpuReg
- movs r0, 0xFA
- lsls r0, 2
- bl FreeSpriteTilesByTag
-_081A553C:
- movs r6, 0x1
-_081A553E:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_081A5544:
- adds r0, r6, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A5258
-
- thumb_func_start sub_81A5558
-sub_81A5558: @ 81A5558
- 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
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r7, r3, 24
- movs r6, 0
- movs r1, 0
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- movs r3, 0xA6
- lsls r3, 2
- adds r4, r0, r3
- ldr r5, =0x0000029a
- adds r3, r0, r5
- adds r5, 0x2
- adds r5, r0
- mov r8, r5
- cmp r2, 0x1
- beq _081A55C4
- cmp r2, 0x1
- bgt _081A55A8
- cmp r2, 0
- beq _081A55B0
- b _081A5612
- .pool
-_081A55A8:
- mov r0, r9
- cmp r0, 0x2
- beq _081A55D8
- b _081A5612
-_081A55B0:
- adds r0, r4, r7
- movs r6, 0
- ldrsb r6, [r0, r6]
- movs r1, 0x1
- adds r0, r7, 0
- eors r0, r1
- adds r0, r4, r0
- movs r1, 0
- ldrsb r1, [r0, r1]
- b _081A5612
-_081A55C4:
- adds r0, r3, r7
- movs r6, 0
- ldrsb r6, [r0, r6]
- movs r1, 0x1
- adds r0, r7, 0
- eors r0, r1
- adds r0, r3, r0
- movs r1, 0
- ldrsb r1, [r0, r1]
- b _081A5612
-_081A55D8:
- ldr r3, =gBattleMons
- mov r9, r3
- movs r5, 0x58
- adds r0, r7, 0
- muls r0, r5
- add r0, r9
- ldrh r0, [r0, 0x28]
- movs r4, 0x64
- muls r0, r4
- lsls r1, r7, 1
- add r1, r8
- ldrh r1, [r1]
- bl __divsi3
- adds r6, r0, 0
- movs r0, 0x1
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, 0
- muls r0, r5
- add r0, r9
- ldrh r0, [r0, 0x28]
- muls r0, r4
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- bl __divsi3
- adds r1, r0, 0
-_081A5612:
- cmp r6, r1
- ble _081A5638
- movs r4, 0x2
- cmp r7, 0
- beq _081A5628
- ldr r1, =gBattleTextBuff2
- b _081A562A
- .pool
-_081A5628:
- ldr r1, =gBattleTextBuff1
-_081A562A:
- ldrb r0, [r1]
- adds r0, 0x2
- strb r0, [r1]
- b _081A565E
- .pool
-_081A5638:
- cmp r6, r1
- bne _081A565C
- movs r4, 0x1
- cmp r7, 0
- beq _081A564C
- ldr r1, =gBattleTextBuff2
- b _081A564E
- .pool
-_081A564C:
- ldr r1, =gBattleTextBuff1
-_081A564E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081A565E
- .pool
-_081A565C:
- movs r4, 0
-_081A565E:
- ldr r0, =gUnknown_08611F5C
- ldr r1, [sp]
- mov r2, r10
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r1, r4, 0
- bl StartSpriteAnim
- 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_81A5558
-
- thumb_func_start sub_81A5698
-sub_81A5698: @ 81A5698
- push {lr}
- adds r1, r0, 0
- ldr r0, =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _081A56AA
- adds r0, r1, 0
- bl DestroySprite
-_081A56AA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5698
-
- thumb_func_start sub_81A56B4
-sub_81A56B4: @ 81A56B4
- ldr r0, =gBattleStruct
- ldr r2, [r0]
- movs r0, 0xA6
- lsls r0, 2
- adds r1, r2, r0
- adds r0, 0x2
- adds r3, r2, r0
- adds r0, 0x2
- adds r2, r0
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r0, [r3]
- strb r0, [r3, 0x1]
- ldr r0, =gBattleMons
- ldrh r1, [r0, 0x28]
- strh r1, [r2]
- adds r0, 0x80
- ldrh r0, [r0]
- strh r0, [r2, 0x2]
- bx lr
- .pool
- thumb_func_end sub_81A56B4
-
- thumb_func_start sub_81A56E8
-sub_81A56E8: @ 81A56E8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- adds r1, r0
- ldr r2, =gBattleArenaMoveMindRatings
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A56E8
-
- thumb_func_start sub_81A5718
-sub_81A5718: @ 81A5718
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r0, =gBattleStruct
- ldr r2, [r0]
- ldr r0, =0x0000029a
- adds r5, r2, r0
- ldr r0, =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _081A57DA
- ldr r0, =0x000002a2
- adds r4, r2, r0
- ldrb r2, [r4]
- ldr r0, =gBitTable
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081A576C
- bics r2, r1
- strb r2, [r4]
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x2
- b _081A57D8
- .pool
-_081A576C:
- ldr r0, =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _081A5798
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081A5788
- ldr r0, =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _081A57DA
-_081A5788:
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x2
- b _081A57D8
- .pool
-_081A5798:
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x6
- bne _081A57A4
- adds r1, r5, r3
- b _081A57D4
-_081A57A4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A57B4
- adds r1, r5, r3
- ldrb r0, [r1]
- adds r0, 0x2
- b _081A57D8
-_081A57B4:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081A57C4
- adds r1, r5, r3
- ldrb r0, [r1]
- subs r0, 0x1
- b _081A57D8
-_081A57C4:
- ldr r0, =gProtectStructs
- lsls r1, r6, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- bne _081A57DA
- adds r1, r5, r6
-_081A57D4:
- ldrb r0, [r1]
- adds r0, 0x1
-_081A57D8:
- strb r0, [r1]
-_081A57DA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5718
-
- thumb_func_start sub_81A57E4
-sub_81A57E4: @ 81A57E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r1, 16
- adds r2, r1, 0
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- ldr r5, =0x0000029a
- adds r3, r0, r5
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- bgt _081A582A
- subs r0, 0x1
- cmp r1, r0
- bge _081A585C
- cmp r1, 0xC5
- bgt _081A581C
- cmp r1, 0xC3
- bge _081A585C
- cmp r1, 0x77
- beq _081A585C
- b _081A5864
- .pool
-_081A581C:
- cmp r1, 0xC7
- blt _081A5864
- cmp r1, 0xCC
- ble _081A585C
- cmp r1, 0xCE
- beq _081A585C
- b _081A5864
-_081A582A:
- ldr r0, =0x00000147
- cmp r1, r0
- beq _081A585C
- cmp r1, r0
- bgt _081A5848
- subs r0, 0x12
- cmp r1, r0
- beq _081A585C
- adds r0, 0x2
- cmp r1, r0
- beq _081A585C
- b _081A5864
- .pool
-_081A5848:
- movs r0, 0xAD
- lsls r0, 1
- cmp r2, r0
- blt _081A5864
- adds r0, 0x1
- cmp r2, r0
- ble _081A585C
- adds r0, 0x3
- cmp r2, r0
- bne _081A5864
-_081A585C:
- adds r1, r3, r4
- ldrb r0, [r1]
- subs r0, 0x3
- strb r0, [r1]
-_081A5864:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81A57E4
-
- thumb_func_start sub_81A586C
-sub_81A586C: @ 81A586C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gBattleStruct
- ldr r3, [r1]
- movs r1, 0xA7
- lsls r1, 2
- adds r3, r1
- lsls r2, r0, 1
- adds r2, r3
- ldr r5, =gBattleMons
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r2]
- movs r1, 0x1
- eors r0, r1
- lsls r1, r0, 1
- adds r1, r3
- muls r0, r4
- adds r0, r5
- ldrh r2, [r0, 0x28]
- ldrh r0, [r1]
- cmp r0, r2
- bls _081A58A4
- strh r2, [r1]
-_081A58A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A586C
-
- thumb_func_start sub_81A58B4
-sub_81A58B4: @ 81A58B4
- push {r4-r6,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r4]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r2, [r0]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, r3
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- cmp r5, 0
- beq _081A5914
- ldr r0, [r4]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x80
- b _081A591E
- .pool
-_081A5914:
- ldr r0, [r4]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r2, [r0]
- movs r0, 0x40
-_081A591E:
- ands r2, r0
- cmp r2, 0
- bne _081A5930
- ldr r0, [r4]
- lsls r1, r5, 1
- ldr r6, =0x00000dda
- adds r0, r6
- adds r0, r1
- strh r2, [r0]
-_081A5930:
- 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 r1, =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A58B4
-
- thumb_func_start sub_81A5964
-sub_81A5964: @ 81A5964
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =0x00000ca9
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A59B0
- cmp r0, 0x1
- bgt _081A5994
- cmp r0, 0
- beq _081A599A
- b _081A59EE
- .pool
-_081A5994:
- cmp r0, 0x2
- beq _081A59C8
- b _081A59EE
-_081A599A:
- ldr r0, =gScriptResult
- ldr r2, =0x00000dd8
- adds r1, r3, r2
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A59EE
- .pool
-_081A59B0:
- ldr r2, =gScriptResult
- lsls r1, 1
- ldr r4, =0x00000dda
- adds r0, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- b _081A59EC
- .pool
-_081A59C8:
- cmp r1, 0
- beq _081A59E0
- ldr r2, =gScriptResult
- ldr r1, =0x00000cdc
- adds r0, r3, r1
- ldr r0, [r0]
- movs r1, 0x80
- b _081A59EA
- .pool
-_081A59E0:
- ldr r2, =gScriptResult
- ldr r4, =0x00000cdc
- adds r0, r3, r4
- ldr r0, [r0]
- movs r1, 0x40
-_081A59EA:
- ands r0, r1
-_081A59EC:
- strh r0, [r2]
-_081A59EE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5964
-
- thumb_func_start sub_81A59FC
-sub_81A59FC: @ 81A59FC
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A5A48
- cmp r0, 0x1
- bgt _081A5A2C
- cmp r0, 0
- beq _081A5A32
- b _081A5ABA
- .pool
-_081A5A2C:
- cmp r0, 0x2
- beq _081A5A60
- b _081A5ABA
-_081A5A32:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000dd8
- adds r0, r2, r3
- strh r1, [r0]
- b _081A5ABA
- .pool
-_081A5A48:
- lsls r1, 1
- ldr r3, =0x00000dda
- adds r0, r2, r3
- adds r0, r1
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A5ABA
- .pool
-_081A5A60:
- cmp r1, 0
- beq _081A5A90
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A5A80
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- b _081A5AB8
- .pool
-_081A5A80:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- movs r2, 0x81
- negs r2, r2
- b _081A5AB6
- .pool
-_081A5A90:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A5AAC
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- b _081A5AB8
- .pool
-_081A5AAC:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- movs r2, 0x41
- negs r2, r2
-_081A5AB6:
- ands r1, r2
-_081A5AB8:
- str r1, [r0]
-_081A5ABA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A59FC
-
- thumb_func_start sub_81A5AC4
-sub_81A5AC4: @ 81A5AC4
- 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_81A5AC4
-
- thumb_func_start sub_81A5B08
-sub_81A5B08: @ 81A5B08
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000dda
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0x29
- bls _081A5B58
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08611FAC
- 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, =0x00000dd8
- adds r4, r1
- b _081A5B76
- .pool
-_081A5B58:
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08611FA0
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r2, =0x00000dd8
- adds r4, r2
-_081A5B76:
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5B08
-
- thumb_func_start sub_81A5B88
-sub_81A5B88: @ 81A5B88
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081A5BD0
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000dd8
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r5, [r0]
- b _081A5BD6
- .pool
-_081A5BD0:
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
-_081A5BD6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5B88
-
- thumb_func_start sub_81A5BE0
-sub_81A5BE0: @ 81A5BE0
- push {lr}
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_8162E20
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5BE0
-
- thumb_func_start sub_81A5BF8
-sub_81A5BF8: @ 81A5BF8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r0, 0x1B
- mov r8, r0
- movs r5, 0x7
- movs r4, 0x1
- str r4, [sp]
- movs r6, 0x6
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0xFE
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x20
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x31
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x33
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x34
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r0, 0x1C
- mov r8, r0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x35
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x36
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- movs r6, 0x5
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x37
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3A
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000831
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000833
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000834
- movs r0, 0x1A
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000835
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, =0x00000836
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5BF8
-
- thumb_func_start sub_81A5D44
-sub_81A5D44: @ 81A5D44
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r5, 0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r6, 0x4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r0, 0x1B
- mov r8, r0
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x5
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x8
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xF
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A5D44
-
- thumb_func_start sub_81A5E74
-sub_81A5E74: @ 81A5E74
- push {lr}
- ldr r1, =gUnknown_08612120
- 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_81A5E74
-
- thumb_func_start sub_81A5E94
-sub_81A5E94: @ 81A5E94
- push {r4-r7,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, [r5]
- ldr r1, =0x00000ca8
- adds r0, r1
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r5]
- ldr r3, =0x00000cb2
- adds r0, r1, r3
- strh r2, [r0]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r4, [r5]
- ldr r0, =0x00000cdc
- adds r3, r4, r0
- ldr r2, =gUnknown_08612164
- lsls r0, r7, 2
- lsls r1, r6, 3
- adds r0, r1
- adds r0, r2
- ldr r3, [r3]
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- bne _081A5F0A
- lsls r1, r7, 1
- lsls r0, r6, 2
- adds r1, r0
- ldr r2, =0x00000de2
- adds r0, r4, r2
- adds r0, r1
- strh r3, [r0]
- adds r2, 0x10
- adds r0, r4, r2
- adds r0, r1
- strh r3, [r0]
-_081A5F0A:
- ldr r1, =gUnknown_03001288
- movs r0, 0
- strb r0, [r1]
- movs r2, 0
- ldr r6, =gSaveBlock1Ptr
- movs r4, 0xE7
- lsls r4, 4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A5F1C:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, r4
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _081A5F1C
- movs r2, 0
- ldr r4, =gUnknown_03006298
- ldr r1, =0x0000ffff
- adds r3, r1, 0
-_081A5F40:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _081A5F40
- ldr r0, [r6]
- 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 r1, =gTrainerBattleOpponent_A
- movs r0, 0
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5E94
-
- thumb_func_start sub_81A5FA8
-sub_81A5FA8: @ 81A5FA8
- push {r4-r7,lr}
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _081A6000
- cmp r0, 0x2
- bgt _081A5FE4
- cmp r0, 0x1
- beq _081A5FEA
- b _081A6044
- .pool
-_081A5FE4:
- cmp r0, 0x3
- beq _081A6030
- b _081A6044
-_081A5FEA:
- ldr r3, =gScriptResult
- ldr r0, [r7]
- lsls r1, r6, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000de2
- b _081A603C
- .pool
-_081A6000:
- ldr r4, =gScriptResult
- ldr r2, [r7]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_08612164
- lsls r0, r6, 2
- lsls r1, r5, 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 _081A6044
- .pool
-_081A6030:
- ldr r3, =gScriptResult
- ldr r0, [r7]
- lsls r1, r6, 1
- lsls r2, r5, 2
- adds r1, r2
- ldr r2, =0x00000df2
-_081A603C:
- adds r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
-_081A6044:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A5FA8
-
- thumb_func_start sub_81A6054
-sub_81A6054: @ 81A6054
- 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, 0x2
- beq _081A60B4
- cmp r0, 0x2
- bgt _081A6090
- cmp r0, 0x1
- beq _081A6096
- b _081A6128
- .pool
-_081A6090:
- cmp r0, 0x3
- beq _081A6108
- b _081A6128
-_081A6096:
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, =0x00000de2
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r2]
- b _081A6128
- .pool
-_081A60B4:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A60E4
- ldr r2, [r6]
- ldr r0, =0x00000cdc
- adds r2, r0
- ldr r3, =gUnknown_08612164
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- orrs r0, r1
- str r0, [r2]
- b _081A6128
- .pool
-_081A60E4:
- ldr r2, [r6]
- ldr r1, =0x00000cdc
- adds r2, r1
- ldr r3, =gUnknown_08612174
- lsls r1, r5, 2
- lsls r0, r4, 3
- adds r1, r0
- adds r1, r3
- ldr r0, [r2]
- ldr r1, [r1]
- ands r0, r1
- str r0, [r2]
- b _081A6128
- .pool
-_081A6108:
- ldr r3, =gUnknown_03001288
- ldrb r0, [r3]
- cmp r0, 0x1
- bne _081A6128
- ldr r2, [r6]
- lsls r0, r5, 1
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, =0x00000df2
- adds r2, r1
- adds r2, r0
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- strb r1, [r3]
-_081A6128:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6054
-
- thumb_func_start sub_81A613C
-sub_81A613C: @ 81A613C
- 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_81A613C
-
- thumb_func_start nullsub_75
-nullsub_75: @ 81A6180
- bx lr
- thumb_func_end nullsub_75
-
- thumb_func_start nullsub_123
-nullsub_123: @ 81A6184
- bx lr
- thumb_func_end nullsub_123
-
- thumb_func_start sub_81A6188
-sub_81A6188: @ 81A6188
- push {lr}
- bl ZeroPlayerPartyMons
- bl sub_819A4F8
- pop {r0}
- bx r0
- thumb_func_end sub_81A6188
-
- thumb_func_start sub_81A6198
-sub_81A6198: @ 81A6198
- push {lr}
- bl sub_819DC00
- pop {r0}
- bx r0
- thumb_func_end sub_81A6198
-
- thumb_func_start sub_81A61A4
-sub_81A61A4: @ 81A61A4
- ldr r1, =gUnknown_03001288
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A61A4
-
- thumb_func_start sub_81A61B0
-sub_81A61B0: @ 81A61B0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x10]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r4]
- ldr r3, [sp, 0x10]
- lsls r2, r3, 1
- lsrs r0, 14
- adds r2, r0
- ldr r6, =0x00000de2
- adds r1, r6
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- ldr r2, =gUnknown_0203BC88
- ldr r1, =gBattleFrontierTrainers
- str r1, [r2]
- ldr r5, =0x00000cb2
- lsls r0, 24
- str r0, [sp, 0x20]
- mov r8, r0
-_081A61FA:
- ldr r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r7, 0
- ldr r1, [r4]
- adds r0, r1, r5
- ldr r6, [sp, 0x10]
- lsls r6, 24
- str r6, [sp, 0x1C]
- ldrh r0, [r0]
- cmp r7, r0
- bge _081A6244
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- ldr r6, =gSaveBlock2Ptr
- cmp r0, r3
- beq _081A6244
- ldr r1, [r6]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081A6236:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, r2
- bge _081A6244
- ldrh r0, [r1]
- cmp r0, r3
- bne _081A6236
-_081A6244:
- ldr r0, [r4]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldr r6, =gSaveBlock2Ptr
- ldrh r0, [r0]
- cmp r7, r0
- bne _081A61FA
- ldr r0, =gTrainerBattleOpponent_A
- strh r3, [r0]
- ldr r2, [r6]
- adds r1, r2, r1
- ldrh r0, [r1]
- cmp r0, 0x5
- bhi _081A626C
- adds r1, r0, 0
- lsls r1, 1
- ldr r4, =0x00000cb4
- adds r0, r2, r4
- adds r0, r1
- strh r3, [r0]
-_081A626C:
- movs r7, 0
- mov r10, sp
- movs r6, 0
- lsls r6, 1
- str r6, [sp, 0x14]
- add r6, sp
- str r6, [sp, 0x18]
-_081A627A:
- ldr r1, [sp, 0x1C]
- lsrs r0, r1, 24
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 24
- movs r2, 0
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r4, =gUnknown_0203BC8C
- ldr r2, [r4]
- lsls r1, r0, 4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0xC9
- beq _081A636E
- movs r3, 0
- ldr r6, =gSaveBlock2Ptr
- mov r8, r1
- adds r5, r0, 0
- ldr r1, [r6]
-_081A62A6:
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r2
- ldrh r0, [r0]
- cmp r5, r0
- beq _081A62C0
- adds r1, 0xC
- adds r3, 0x1
- cmp r3, 0x5
- ble _081A62A6
-_081A62C0:
- cmp r3, 0x6
- bne _081A636E
- ldr r6, [sp, 0x10]
- cmp r6, 0
- bne _081A62D0
- ldr r0, =0x00000351
- cmp r9, r0
- bhi _081A636E
-_081A62D0:
- movs r2, 0
- adds r4, r2, r7
- cmp r2, r4
- bge _081A6302
- ldr r1, [sp, 0x18]
- ldrh r0, [r1]
- cmp r0, r5
- beq _081A6302
- adds r6, r4, 0
- ldr r3, =gUnknown_0203BC8C
- mov r12, r3
- mov r5, r8
- ldr r3, [sp, 0x14]
- add r3, sp
-_081A62EC:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r6
- bge _081A6302
- mov r1, r12
- ldr r0, [r1]
- adds r0, r5, r0
- ldrh r1, [r3]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081A62EC
-_081A6302:
- cmp r2, r4
- bne _081A636E
- movs r2, 0
- cmp r2, r4
- bge _081A633E
- ldr r3, =gBattleFrontierHeldItems
- mov r12, r3
- add r0, sp, 0x8
- ldr r6, [sp, 0x14]
- adds r3, r0, r6
- mov r0, r8
- str r0, [sp, 0x24]
- adds r5, r4, 0
-_081A631C:
- ldrh r1, [r3]
- cmp r1, 0
- beq _081A6336
- ldr r6, =gUnknown_0203BC8C
- ldr r0, [r6]
- ldr r6, [sp, 0x24]
- adds r0, r6, r0
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r1, r0
- beq _081A633E
-_081A6336:
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, r5
- blt _081A631C
-_081A633E:
- cmp r2, r4
- bne _081A636E
- lsls r4, r7, 1
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- add r1, r8
- ldrh r0, [r1]
- mov r2, r10
- strh r0, [r2]
- add r2, sp, 0x8
- adds r2, r4
- ldr r3, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r0, =gUnknown_03006298
- adds r4, r0
- mov r3, r9
- strh r3, [r4]
- movs r4, 0x2
- add r10, r4
- adds r7, 0x1
-_081A636E:
- cmp r7, 0x3
- bne _081A627A
- 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_81A61B0
-
- thumb_func_start sub_81A63B8
-sub_81A63B8: @ 81A63B8
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- movs r1, 0
- bl sub_8162614
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A63B8
-
- thumb_func_start sub_81A63CC
-sub_81A63CC: @ 81A63CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081A63FC
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- b _081A6400
- .pool
-_081A63FC:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
-_081A6400:
- str r0, [r1]
- movs r7, 0
- ldr r2, =gSaveBlock2Ptr
- mov r8, r2
-_081A6408:
- mov r0, r8
- ldr r1, [r0]
- adds r0, r7, 0x3
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 2
- adds r1, r4
- ldr r0, =gUnknown_03006298
- lsls r6, r7, 1
- adds r6, r0
- ldrh r0, [r6]
- movs r2, 0xE7
- lsls r2, 4
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, =gEnemyParty
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e78
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldr r1, [r2]
- ldr r2, =0x00000e74
- adds r1, r2
- adds r1, r4
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e79
- adds r1, r2
- strb r0, [r1]
- ldrh r1, [r6]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl SetMonData
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _081A6408
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A63CC
-
- thumb_func_start sub_81A64C4
-sub_81A64C4: @ 81A64C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r3, 0x3
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0x2
- bne _081A6500
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
- str r0, [r1]
- movs r2, 0x1E
- str r2, [sp, 0x14]
- b _081A6518
- .pool
-_081A6500:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- movs r4, 0x32
- str r4, [sp, 0x14]
- cmp r0, 0
- beq _081A6518
- movs r5, 0x64
- str r5, [sp, 0x14]
-_081A6518:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _081A6522
- b _081A666C
-_081A6522:
- bl ZeroPlayerPartyMons
- movs r0, 0
- mov r8, r0
- mov r1, sp
- adds r1, 0x12
- str r1, [sp, 0x1C]
- ldr r2, =gUnknown_0203BC8C
- mov r9, r2
-_081A6534:
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- mov r5, r8
- lsls r5, 1
- mov r10, r5
- mov r3, r10
- add r3, r8
- lsls r3, 2
- adds r1, r2, r3
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r7, [r0]
- ldr r5, =0x00000e78
- adds r1, r5
- ldrb r6, [r1]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- mov r4, r9
- ldr r1, [r4]
- lsls r4, r7, 4
- adds r1, r4, r1
- ldrh r1, [r1]
- movs r5, 0x1
- str r5, [sp]
- ldr r5, =0x00000e74
- adds r2, r5
- adds r2, r3
- ldr r2, [r2]
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl CreateMon
- movs r1, 0
- mov r2, r9
- ldr r0, [r2]
- adds r4, r0
- ldrb r4, [r4, 0xB]
- mov r5, r8
- adds r5, 0x1
- str r5, [sp, 0x18]
- movs r5, 0x5
-_081A6596:
- adds r0, r4, 0
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _081A65A2
- adds r1, 0x1
-_081A65A2:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _081A6596
- movs r0, 0xFF
- lsls r0, 1
- bl __divsi3
- add r1, sp, 0x10
- strh r0, [r1]
- movs r4, 0x1
- movs r5, 0
- lsls r7, 4
- movs r0, 0x64
- mov r6, r8
- muls r6, r0
- ldr r3, =gPlayerParty
-_081A65C4:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r0, [r0, 0xB]
- ands r0, r4
- cmp r0, 0
- beq _081A65E2
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- add r2, sp, 0x10
- str r3, [sp, 0x20]
- bl SetMonData
- ldr r3, [sp, 0x20]
-_081A65E2:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A65C4
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r5, =gPlayerParty
- adds r0, r4, r5
- bl CalculateMonStats
- movs r0, 0
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- movs r6, 0
-_081A6602:
- mov r2, r9
- ldr r0, [r2]
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, r5
- bl sub_81A7024
- adds r6, 0x1
- cmp r6, 0x3
- ble _081A6602
- movs r5, 0x64
- mov r4, r8
- muls r4, r5
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x1C]
- bl SetMonData
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- add r2, r8
- lsls r2, 2
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- adds r2, r0
- ldr r0, =0x00000e79
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- ldr r1, [sp, 0x18]
- mov r8, r1
- cmp r1, 0x2
- bgt _081A666C
- b _081A6534
-_081A666C:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A667A
- cmp r0, 0x2
- beq _081A667A
- b _081A67AE
-_081A667A:
- movs r2, 0
- mov r8, r2
- ldr r4, =gUnknown_0203BC8C
- mov r9, r4
-_081A6682:
- ldr r5, =gSaveBlock2Ptr
- ldr r3, [r5]
- mov r0, r8
- adds r0, 0x3
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r1, r3, r2
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r7, [r0]
- ldr r5, =0x00000e78
- adds r1, r5
- ldrb r6, [r1]
- movs r1, 0x64
- mov r0, r8
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- mov r4, r9
- ldr r1, [r4]
- lsls r4, r7, 4
- adds r1, r4, r1
- ldrh r1, [r1]
- movs r5, 0x1
- str r5, [sp]
- ldr r5, =0x00000e74
- adds r3, r5
- adds r3, r2
- ldr r2, [r3]
- str r2, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- str r2, [sp, 0xC]
- ldr r2, [sp, 0x14]
- adds r3, r6, 0
- bl CreateMon
- movs r1, 0
- mov r2, r9
- ldr r0, [r2]
- adds r4, r0
- ldrb r4, [r4, 0xB]
- mov r5, r8
- lsls r5, 1
- mov r10, r5
- mov r0, r8
- adds r0, 0x1
- str r0, [sp, 0x18]
- movs r5, 0x5
-_081A66E8:
- adds r0, r4, 0
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- beq _081A66F4
- adds r1, 0x1
-_081A66F4:
- lsrs r4, 1
- subs r5, 0x1
- cmp r5, 0
- bge _081A66E8
- add r4, sp, 0x10
- movs r0, 0xFF
- lsls r0, 1
- bl __divsi3
- strh r0, [r4]
- movs r4, 0x1
- movs r5, 0
- lsls r7, 4
- movs r0, 0x64
- mov r6, r8
- muls r6, r0
- ldr r3, =gEnemyParty
-_081A6716:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- ldrb r0, [r0, 0xB]
- ands r0, r4
- cmp r0, 0
- beq _081A6734
- adds r1, r5, 0
- adds r1, 0x1A
- adds r0, r6, r3
- add r2, sp, 0x10
- str r3, [sp, 0x20]
- bl SetMonData
- ldr r3, [sp, 0x20]
-_081A6734:
- lsls r0, r4, 25
- lsrs r4, r0, 24
- adds r5, 0x1
- cmp r5, 0x5
- ble _081A6716
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r5, =gEnemyParty
- adds r0, r4, r5
- bl CalculateMonStats
- movs r6, 0
-_081A674E:
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r6, 24
- lsrs r2, 24
- adds r0, r4, r5
- bl sub_81A7024
- adds r6, 0x1
- cmp r6, 0x3
- ble _081A674E
- movs r2, 0x64
- mov r4, r8
- muls r4, r2
- ldr r0, =gEnemyParty
- adds r4, r0
- mov r5, r9
- ldr r0, [r5]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r2, r10
- add r2, r8
- lsls r2, 2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- adds r2, r0
- ldr r5, =0x00000e9d
- adds r2, r5
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- ldr r0, [sp, 0x18]
- mov r8, r0
- cmp r0, 0x2
- bgt _081A67AE
- b _081A6682
-_081A67AE:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A64C4
-
- thumb_func_start sub_81A67EC
-sub_81A67EC: @ 81A67EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4C
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x38]
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x3C]
- ldr r2, =gSaveBlock2Ptr
- mov r9, r2
- movs r2, 0
- adds r3, r1, 0
- adds r1, r0, 0
- mov r0, sp
- movs r4, 0x5
- mov r8, r4
-_081A681A:
- strh r2, [r0]
- strh r2, [r1]
- strh r2, [r3]
- adds r3, 0x2
- adds r1, 0x2
- adds r0, 0x2
- movs r5, 0x1
- negs r5, r5
- add r8, r5
- mov r4, r8
- cmp r4, 0
- bge _081A681A
- mov r5, r9
- ldr r0, [r5]
- ldr r7, =0x00000ca9
- adds r0, r7
- ldrb r4, [r0]
- lsls r4, 30
- lsrs r4, 30
- ldr r6, =0x000040ce
- adds r0, r6, 0
- bl VarGet
- lsls r0, 24
- ldr r1, [r5]
- lsls r4, 1
- lsrs r0, 22
- adds r4, r0
- ldr r5, =0x00000de2
- adds r1, r5
- adds r1, r4
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- adds r0, r6, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r2, 0
- cmp r0, 0x1
- bne _081A6878
- movs r2, 0x1
-_081A6878:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, r7
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081A68B4
- movs r4, 0x1
- str r4, [sp, 0x28]
- b _081A68B8
- .pool
-_081A68B4:
- movs r5, 0
- str r5, [sp, 0x28]
-_081A68B8:
- adds r0, r2, 0
- ldr r1, [sp, 0x28]
- bl sub_81A6F70
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x2C]
- movs r0, 0
- mov r10, r0
- mov r8, r0
- ldr r1, [sp, 0x3C]
- str r1, [sp, 0x40]
- mov r2, sp
- str r2, [sp, 0x44]
- lsls r4, r0, 1
- str r4, [sp, 0x30]
- ldr r5, [sp, 0x38]
- adds r5, r4
- str r5, [sp, 0x34]
-_081A68DE:
- ldr r0, [sp, 0x2C]
- cmp r8, r0
- bge _081A68EC
- ldr r0, [sp, 0x28]
- ldr r1, [sp, 0x24]
- movs r2, 0x1
- b _081A68F2
-_081A68EC:
- ldr r0, [sp, 0x28]
- ldr r1, [sp, 0x24]
- movs r2, 0
-_081A68F2:
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r2, r7, 4
- adds r4, r2, r1
- ldrh r1, [r4]
- mov r9, r2
- cmp r1, 0xC9
- beq _081A69E2
- movs r3, 0
- mov r2, r8
- adds r6, r3, r2
- cmp r3, r6
- bge _081A6950
- ldr r5, [sp, 0x34]
- ldrh r0, [r5]
- cmp r0, r7
- beq _081A6950
- mov r12, r4
- adds r2, r1, 0
- lsls r4, r3, 1
- ldr r1, [sp, 0x30]
- add r1, sp
- str r6, [sp, 0x48]
-_081A6928:
- ldrh r0, [r1]
- cmp r0, r2
- bne _081A693A
- mov r0, r10
- cmp r0, 0
- bne _081A6950
- mov r5, r12
- ldrh r5, [r5]
- mov r10, r5
-_081A693A:
- adds r4, 0x2
- adds r1, 0x2
- adds r3, 0x1
- ldr r0, [sp, 0x48]
- cmp r3, r0
- bge _081A6950
- ldr r5, [sp, 0x38]
- adds r0, r5, r4
- ldrh r0, [r0]
- cmp r0, r7
- bne _081A6928
-_081A6950:
- cmp r3, r6
- bne _081A69E2
- movs r3, 0
- cmp r3, r6
- bge _081A699C
- ldr r0, =gBattleFrontierHeldItems
- mov r12, r0
- ldr r1, [sp, 0x30]
- ldr r2, [sp, 0x3C]
- adds r5, r1, r2
-_081A6964:
- ldrh r4, [r5]
- cmp r4, 0
- beq _081A6994
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- mov r2, r9
- adds r1, r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r4, r0
- bne _081A6994
- ldrh r0, [r1]
- cmp r0, r10
- bne _081A699C
- movs r4, 0
- mov r10, r4
- b _081A699C
- .pool
-_081A6994:
- adds r5, 0x2
- adds r3, 0x1
- cmp r3, r6
- blt _081A6964
-_081A699C:
- cmp r3, r6
- bne _081A69E2
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r5, r8
- lsls r3, r5, 1
- adds r0, r3, r5
- lsls r0, 2
- adds r1, r0
- movs r0, 0xE7
- lsls r0, 4
- adds r1, r0
- strh r7, [r1]
- ldr r2, =gUnknown_0203BC8C
- ldr r1, [r2]
- add r1, r9
- ldrh r0, [r1]
- ldr r4, [sp, 0x44]
- strh r0, [r4]
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0x40]
- strh r0, [r5]
- ldr r0, [sp, 0x38]
- adds r3, r0, r3
- strh r7, [r3]
- adds r5, 0x2
- str r5, [sp, 0x40]
- adds r4, 0x2
- str r4, [sp, 0x44]
- movs r1, 0x1
- add r8, r1
-_081A69E2:
- mov r2, r8
- cmp r2, 0x6
- beq _081A69EA
- b _081A68DE
-_081A69EA:
- add sp, 0x4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A67EC
-
- thumb_func_start sub_81A6A08
-sub_81A6A08: @ 81A6A08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- movs r4, 0
- add r5, sp, 0x14
- ldr r7, =gScriptResult
- movs r1, 0
-_081A6A1E:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _081A6A1E
- movs r4, 0
- ldr r0, =gUnknown_03006298
- mov r8, r0
- ldr r0, =gUnknown_0203BC8C
- ldr r6, [r0]
- ldr r1, =gBaseStats
- mov r12, r1
-_081A6A3C:
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r12
- adds r3, r0, r2
- ldrb r2, [r3, 0x6]
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3, 0x7]
- cmp r2, r1
- beq _081A6A70
- ldrb r0, [r3, 0x7]
- mov r2, sp
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081A6A70:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6A3C
- movs r0, 0
- strb r0, [r5]
- strb r0, [r5, 0x1]
- movs r4, 0x1
- adds r3, r5, 0
-_081A6A84:
- ldrb r0, [r3]
- add r0, sp
- mov r2, sp
- adds r1, r2, r4
- ldrb r2, [r0]
- ldrb r0, [r1]
- cmp r2, r0
- bcs _081A6AAC
- strb r4, [r5]
- b _081A6AB2
- .pool
-_081A6AAC:
- cmp r2, r0
- bne _081A6AB2
- strb r4, [r3, 0x1]
-_081A6AB2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _081A6A84
- ldrb r1, [r5]
- mov r4, sp
- adds r0, r4, r1
- ldrb r2, [r0]
- cmp r2, 0
- beq _081A6ADA
- ldrb r3, [r5, 0x1]
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r2, r0
- bhi _081A6AD6
- cmp r1, r3
- bne _081A6ADA
-_081A6AD6:
- strh r1, [r7]
- b _081A6ADE
-_081A6ADA:
- movs r0, 0x12
- strh r0, [r7]
-_081A6ADE:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A6A08
-
- thumb_func_start sub_81A6AEC
-sub_81A6AEC: @ 81A6AEC
- push {r4-r7,lr}
- sub sp, 0x8
- movs r7, 0
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- movs r4, 0
- movs r1, 0
-_081A6AFC:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081A6AFC
- movs r4, 0
-_081A6B0E:
- ldr r1, =gUnknown_03006298
- lsls r0, r4, 1
- adds r0, r1
- ldrh r6, [r0]
- movs r5, 0
-_081A6B18:
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r0, r6, 4
- adds r0, r1
- lsls r1, r5, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81A6BA4
- lsls r0, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081A6B18
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6B0E
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r4, 0x1
- adds r5, r1, 0
- ldr r3, =gBattleFactoryStyleRequiredMoveCounts
- adds r2, r5, 0
-_081A6B5C:
- mov r1, sp
- adds r0, r1, r4
- subs r1, r4, 0x1
- adds r1, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _081A6B74
- strh r4, [r2]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_081A6B74:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081A6B5C
- cmp r7, 0x2
- bls _081A6B86
- movs r0, 0x8
- strh r0, [r5]
-_081A6B86:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6AEC
-
- thumb_func_start sub_81A6BA4
-sub_81A6BA4: @ 81A6BA4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- ldr r6, =gBattleFactoryStyleMoveListPointers
-_081A6BAE:
- movs r3, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- ldrh r0, [r1]
- adds r4, r2, 0x1
- cmp r0, 0
- beq _081A6BE4
- lsls r0, r4, 24
- lsrs r2, r0, 24
-_081A6BC2:
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- bne _081A6BD4
- adds r0, r2, 0
- b _081A6BEE
- .pool
-_081A6BD4:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _081A6BC2
-_081A6BE4:
- lsls r0, r4, 24
- lsrs r2, r0, 24
- cmp r2, 0x6
- bls _081A6BAE
- movs r0, 0
-_081A6BEE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A6BA4
-
- thumb_func_start sub_81A6BF4
-sub_81A6BF4: @ 81A6BF4
- push {lr}
- movs r2, 0
- ldr r1, =gUnknown_02037318
- ldr r3, =0xfffffea5
- adds r0, r3, 0
- ldrh r1, [r1, 0x12]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _081A6C0C
- movs r2, 0x1
-_081A6C0C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6BF4
-
- thumb_func_start sub_81A6C1C
-sub_81A6C1C: @ 81A6C1C
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _081A6C48
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gBattleFrontierMons
- b _081A6C4C
- .pool
-_081A6C48:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
-_081A6C4C:
- str r0, [r1]
- movs r4, 0
-_081A6C50:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r2, r1
- movs r1, 0xE7
- lsls r1, 4
- adds r2, r1
- ldrh r2, [r2]
- ldr r1, =gUnknown_0203BC8C
- ldr r1, [r1]
- lsls r2, 4
- adds r2, r1
- ldrb r2, [r2, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A6C50
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6C1C
-
- thumb_func_start sub_81A6CA8
-sub_81A6CA8: @ 81A6CA8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- negs r2, r1
- orrs r2, r1
- lsrs r2, 31
- lsrs r1, r0, 24
- cmp r1, 0x8
- bls _081A6CBE
- movs r1, 0x7
-_081A6CBE:
- ldr r0, =gUnknown_08612184
- lsls r1, 1
- adds r1, r2, r1
- adds r1, r0
- ldrb r0, [r1]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6CA8
-
- thumb_func_start sub_81A6CD0
-sub_81A6CD0: @ 81A6CD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- str r0, [sp, 0x2C]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- ldr r1, [r4]
- ldr r3, [sp, 0x2C]
- lsls r2, r3, 1
- lsrs r0, 22
- adds r2, r0
- ldr r7, =0x00000de2
- adds r1, r7
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- str r1, [sp, 0x30]
- movs r2, 0x80
- lsls r2, 18
- adds r0, r2
- lsrs r0, 24
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x24]
- bl sub_8165C40
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x20]
- movs r3, 0
- mov r9, r3
- ldr r1, [r4]
- ldrb r4, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r4, r0
- str r4, [sp, 0x28]
-_081A6D4C:
- ldr r0, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- movs r2, 0
- bl sub_81A6EF0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r7, =gUnknown_0203BC8C
- ldr r1, [r7]
- lsls r0, r5, 4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _081A6D6A
- b _081A6EB8
-_081A6D6A:
- ldr r0, [sp, 0x20]
- cmp r0, 0x32
- bne _081A6D78
- ldr r0, =0x00000351
- cmp r5, r0
- bls _081A6D78
- b _081A6EB8
-_081A6D78:
- movs r2, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r3, 0xE7
- lsls r3, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r5, r0
- beq _081A6DA2
- adds r4, r1, 0
- movs r1, 0
-_081A6D8E:
- adds r1, 0xC
- adds r2, 0x1
- cmp r2, 0x5
- bgt _081A6DA2
- ldr r0, [r4]
- adds r0, r1
- adds r0, r3
- ldrh r0, [r0]
- cmp r5, r0
- bne _081A6D8E
-_081A6DA2:
- cmp r2, 0x6
- beq _081A6DA8
- b _081A6EB8
-_081A6DA8:
- movs r4, 0
- cmp r4, r9
- bge _081A6DDC
- add r2, sp, 0xC
- ldr r7, =gUnknown_0203BC8C
- ldr r0, [r7]
- lsls r1, r5, 4
- adds r0, r1, r0
- ldrh r2, [r2]
- adds r7, r1, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _081A6DDC
- ldr r6, =gUnknown_0203BC8C
- adds r3, r7, 0
- add r2, sp, 0xC
-_081A6DC8:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r9
- bge _081A6DDC
- ldr r0, [r6]
- adds r0, r3, r0
- ldrh r1, [r2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081A6DC8
-_081A6DDC:
- cmp r4, r9
- bne _081A6EB8
- movs r4, 0
- cmp r4, r9
- bge _081A6E0C
- ldr r7, =gBattleFrontierHeldItems
- ldr r6, =gUnknown_0203BC8C
- add r2, sp, 0x14
- lsls r3, r5, 4
-_081A6DEE:
- ldrh r1, [r2]
- cmp r1, 0
- beq _081A6E04
- ldr r0, [r6]
- adds r0, r3, r0
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- beq _081A6E0C
-_081A6E04:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r9
- blt _081A6DEE
-_081A6E0C:
- cmp r4, r9
- bne _081A6EB8
- mov r0, r9
- lsls r2, r0, 1
- mov r1, sp
- adds r1, r2
- adds r1, 0xC
- ldr r3, =gUnknown_0203BC8C
- ldr r4, [r3]
- lsls r5, 4
- mov r8, r5
- add r4, r8
- ldrh r0, [r4]
- strh r0, [r1]
- add r1, sp, 0x14
- adds r1, r2
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r4, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x64
- mov r5, r9
- muls r5, r0
- ldr r6, =gEnemyParty
- adds r0, r5, r6
- ldrh r1, [r4]
- ldr r7, [sp, 0x20]
- lsls r2, r7, 24
- ldrb r3, [r4, 0xC]
- ldr r7, [sp, 0x24]
- str r7, [sp]
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r4, [sp, 0x28]
- str r4, [sp, 0x8]
- lsrs r2, 24
- bl sub_8068634
- add r0, sp, 0x1C
- movs r7, 0
- strb r7, [r0]
- movs r4, 0
- mov r7, r8
- mov r10, r0
- movs r0, 0x1
- add r0, r9
- mov r8, r0
-_081A6E6E:
- ldr r1, =gUnknown_0203BC8C
- ldr r0, [r1]
- adds r0, r7, r0
- lsls r1, r4, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, r6
- bl sub_81A7024
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A6E6E
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, r10
- bl SetMonData
- ldr r2, =gUnknown_0203BC8C
- ldr r0, [r2]
- adds r0, r7, r0
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r9, r8
-_081A6EB8:
- mov r3, r9
- cmp r3, 0x3
- beq _081A6EC0
- b _081A6D4C
-_081A6EC0:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A6CD0
-
- thumb_func_start sub_81A6EF0
-sub_81A6EF0: @ 81A6EF0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r4, 0x8
- negs r1, r0
- orrs r1, r0
- asrs r1, 31
- ands r1, r4
- adds r4, r1, 0
- cmp r3, 0x6
- bhi _081A6F2C
- cmp r2, 0
- beq _081A6F20
- ldr r2, =gUnknown_08612194
- adds r1, r3
- adds r1, 0x1
- b _081A6F38
- .pool
-_081A6F20:
- ldr r2, =gUnknown_08612194
- adds r1, r3
- b _081A6F38
- .pool
-_081A6F2C:
- adds r1, r3, 0
- cmp r1, 0x7
- beq _081A6F34
- movs r1, 0x7
-_081A6F34:
- ldr r2, =gUnknown_08612194
- adds r1, r4, r1
-_081A6F38:
- lsls r1, 2
- adds r0, r2, 0x2
- adds r0, r1, r0
- adds r1, r2
- ldrh r0, [r0]
- ldrh r4, [r1]
- subs r0, r4
- adds r0, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r4, r0, r4
- lsls r4, 16
- lsrs r0, r4, 16
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6EF0
-
- thumb_func_start sub_81A6F70
-sub_81A6F70: @ 81A6F70
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r1, 23
- lsrs r0, 22
- adds r1, r0
- ldr r0, =0x00000df2
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- movs r0, 0
- cmp r1, 0xE
- bls _081A6FA8
- movs r0, 0x1
- cmp r1, 0x15
- bls _081A6FA8
- movs r0, 0x2
- cmp r1, 0x1C
- bls _081A6FA8
- movs r0, 0x3
- cmp r1, 0x23
- bls _081A6FA8
- movs r0, 0x5
- cmp r1, 0x2A
- bhi _081A6FA8
- movs r0, 0x4
-_081A6FA8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A6F70
-
- thumb_func_start GetAiScriptsInBattleFactory
-GetAiScriptsInBattleFactory: @ 81A6FB4
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- cmp r4, 0x2
- beq _081A6FF8
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- ldr r1, [r5]
- lsls r2, r4, 1
- lsrs r0, 14
- adds r2, r0
- ldr r0, =0x00000de2
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- ldr r0, =0x000003fe
- cmp r1, r0
- beq _081A7018
- cmp r2, 0x1
- bgt _081A7014
-_081A6FF8:
- movs r0, 0
- b _081A701E
- .pool
-_081A7014:
- cmp r2, 0x3
- ble _081A701C
-_081A7018:
- movs r0, 0x7
- b _081A701E
-_081A701C:
- movs r0, 0x1
-_081A701E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetAiScriptsInBattleFactory
-
- thumb_func_start sub_81A7024
-sub_81A7024: @ 81A7024
- push {lr}
- lsls r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 16
- cmp r1, 0xD8
- bne _081A7034
- movs r1, 0xDA
-_081A7034:
- bl SetMonMoveSlot
- pop {r0}
- bx r0
- thumb_func_end sub_81A7024
-
- thumb_func_start sub_81A703C
-sub_81A703C: @ 81A703C
- push {lr}
- ldr r1, =gUnknown_086125F8
- 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_81A703C
-
- thumb_func_start sub_81A705C
-sub_81A705C: @ 81A705C
- push {lr}
- bl sub_81A79EC
- ldr r1, =gUnknown_0300128C
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A705C
-
- thumb_func_start sub_81A7070
-sub_81A7070: @ 81A7070
- push {r4-r7,lr}
- ldr r0, =0x00004010
- movs r1, 0x1C
- bl VarSet
- ldr r0, =0x00004011
- movs r1, 0xE2
- bl VarSet
- movs r4, 0x1
- movs r6, 0
- movs r5, 0
- movs r7, 0
- ldr r0, =gUnknown_0300128C
- ldrb r0, [r0]
- cmp r0, 0x8
- bhi _081A7132
- lsls r0, 2
- ldr r1, =_081A70AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A70AC:
- .4byte _081A70D0
- .4byte _081A70DA
- .4byte _081A70DE
- .4byte _081A70E8
- .4byte _081A70FC
- .4byte _081A70D6
- .4byte _081A7100
- .4byte _081A7108
- .4byte _081A710E
-_081A70D0:
- movs r0, 0
- bl sub_81A82A4
-_081A70D6:
- movs r4, 0
- b _081A711A
-_081A70DA:
- movs r5, 0x1C
- b _081A711A
-_081A70DE:
- bl sub_81A7B58
- lsls r0, 24
- lsrs r5, r0, 24
- b _081A711A
-_081A70E8:
- movs r5, 0x30
- ldr r0, =gUnknown_0300128D
- ldrb r0, [r0]
- movs r7, 0xE1
- cmp r0, 0x1
- bne _081A7118
- movs r7, 0xE2
- b _081A7118
- .pool
-_081A70FC:
- movs r5, 0x30
- b _081A711A
-_081A7100:
- movs r0, 0x1
- bl sub_81A82A4
- b _081A7114
-_081A7108:
- bl sub_81A8374
- b _081A70D6
-_081A710E:
- movs r0, 0x5
- bl sub_81A5030
-_081A7114:
- movs r7, 0x1C
- movs r4, 0
-_081A7118:
- movs r6, 0x1
-_081A711A:
- cmp r4, 0x1
- bne _081A7126
- ldr r0, =0x00004010
- adds r1, r5, 0
- bl VarSet
-_081A7126:
- cmp r6, 0x1
- bne _081A7132
- ldr r0, =0x00004011
- adds r1, r7, 0
- bl VarSet
-_081A7132:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7070
-
- thumb_func_start sub_81A7140
-sub_81A7140: @ 81A7140
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r2, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x4
- bhi _081A723A
- lsls r0, 2
- ldr r1, =_081A7174
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A7174:
- .4byte _081A7188
- .4byte _081A71A0
- .4byte _081A71C4
- .4byte _081A71E8
- .4byte _081A720C
-_081A7188:
- ldr r0, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000e02
- adds r1, r3
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A723A
- .pool
-_081A71A0:
- ldr r2, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e04
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A71C4:
- ldr r2, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e08
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A71E8:
- ldr r2, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000ca9
- adds r0, r1, r3
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r3, =0x00000e0c
- adds r1, r3
- adds r1, r0
- ldrh r0, [r1]
- b _081A7238
- .pool
-_081A720C:
- cmp r2, 0
- beq _081A7228
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 4
- b _081A7236
- .pool
-_081A7228:
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
-_081A7236:
- ands r0, r1
-_081A7238:
- strh r0, [r2]
-_081A723A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7140
-
- thumb_func_start sub_81A7248
-sub_81A7248: @ 81A7248
- push {r4,r5,lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r3, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _081A7264
- b _081A73AA
-_081A7264:
- lsls r0, 2
- ldr r1, =_081A7280
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A7280:
- .4byte _081A7294
- .4byte _081A72AC
- .4byte _081A72D8
- .4byte _081A7314
- .4byte _081A7344
-_081A7294:
- ldr r0, [r2]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r5, =0x00000e02
- adds r0, r5
- strh r1, [r0]
- b _081A73AA
- .pool
-_081A72AC:
- ldr r0, =gSpecialVar_0x8006
- ldrh r3, [r0]
- ldr r0, =0x0000270f
- cmp r3, r0
- bls _081A72B8
- b _081A73AA
-_081A72B8:
- ldr r0, [r2]
- ldr r2, =0x00000ca9
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r5, =0x00000e04
- b _081A732C
- .pool
-_081A72D8:
- ldr r0, =gSpecialVar_0x8006
- ldrh r4, [r0]
- adds r3, r4, 0
- ldr r0, =0x0000270f
- cmp r3, r0
- bhi _081A73AA
- ldr r1, [r2]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r2, r0, 30
- lsrs r0, r2, 29
- ldr r5, =0x00000e08
- adds r1, r5
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, r3
- bcs _081A73AA
- lsrs r0, r2, 29
- adds r0, r1, r0
- strh r4, [r0]
- b _081A73AA
- .pool
-_081A7314:
- ldr r0, =gSpecialVar_0x8006
- ldrh r3, [r0]
- ldr r0, =0x0000270f
- cmp r3, r0
- bhi _081A73AA
- ldr r0, [r2]
- ldr r2, =0x00000ca9
- adds r1, r0, r2
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r5, =0x00000e0c
-_081A732C:
- adds r0, r5
- adds r0, r1
- strh r3, [r0]
- b _081A73AA
- .pool
-_081A7344:
- cmp r3, 0
- beq _081A737C
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A7368
- ldr r0, [r2]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- b _081A73A8
- .pool
-_081A7368:
- ldr r0, [r2]
- ldr r2, =0x00000cdc
- adds r0, r2
- ldr r1, [r0]
- ldr r2, =0xfffff7ff
- b _081A73A6
- .pool
-_081A737C:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A739C
- ldr r0, [r2]
- ldr r5, =0x00000cdc
- adds r0, r5
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 3
- orrs r1, r2
- b _081A73A8
- .pool
-_081A739C:
- ldr r0, [r2]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r1, [r0]
- ldr r2, =0xfffffbff
-_081A73A6:
- ands r1, r2
-_081A73A8:
- str r1, [r0]
-_081A73AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7248
-
- thumb_func_start sub_81A73B8
-sub_81A73B8: @ 81A73B8
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xE
- bls _081A73DC
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _081A73E0
- .pool
-_081A73DC:
- ldr r1, =gScriptResult
- movs r0, 0
-_081A73E0:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A73B8
-
- thumb_func_start sub_81A73EC
-sub_81A73EC: @ 81A73EC
- ldr r0, =gScriptResult
- ldr r1, =gUnknown_0300128C
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A73EC
-
- thumb_func_start sub_81A7400
-sub_81A7400: @ 81A7400
- ldr r1, =gUnknown_0300128E
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A7400
-
- thumb_func_start sub_81A740C
-sub_81A740C: @ 81A740C
- ldr r1, =gUnknown_0300128E
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A740C
-
- thumb_func_start sub_81A7418
-sub_81A7418: @ 81A7418
- 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 save_serialize_map
- movs r0, 0x1
- bl TrySavingData
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7418
-
- thumb_func_start nullsub_76
-nullsub_76: @ 81A7460
- bx lr
- thumb_func_end nullsub_76
-
- thumb_func_start nullsub_124
-nullsub_124: @ 81A7464
- bx lr
- thumb_func_end nullsub_124
-
- thumb_func_start sub_81A7468
-sub_81A7468: @ 81A7468
- push {lr}
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- cmp r0, 0x20
- beq _081A748E
- cmp r0, 0x20
- bhi _081A7484
- cmp r0, 0x7
- beq _081A74BC
- cmp r0, 0x10
- beq _081A7498
- b _081A74C2
- .pool
-_081A7484:
- cmp r0, 0x40
- beq _081A74B0
- cmp r0, 0x80
- beq _081A74A4
- b _081A74C2
-_081A748E:
- ldr r1, =gScriptResult
- movs r0, 0
- b _081A74C0
- .pool
-_081A7498:
- ldr r1, =gScriptResult
- movs r0, 0x1
- b _081A74C0
- .pool
-_081A74A4:
- ldr r1, =gScriptResult
- movs r0, 0x2
- b _081A74C0
- .pool
-_081A74B0:
- ldr r1, =gScriptResult
- movs r0, 0x3
- b _081A74C0
- .pool
-_081A74BC:
- ldr r1, =gScriptResult
- movs r0, 0x4
-_081A74C0:
- strh r0, [r1]
-_081A74C2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7468
-
- thumb_func_start sub_81A74CC
-sub_81A74CC: @ 81A74CC
- ldr r0, =gScriptResult
- ldr r1, =gUnknown_0300128D
- ldrb r1, [r1]
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A74CC
-
- thumb_func_start sub_81A74E0
-sub_81A74E0: @ 81A74E0
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0x1
- ands r4, r0
- adds r4, 0x1
- adds r0, r4, 0
- bl sub_81A7F38
- ldr r0, =gScriptResult
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A74E0
-
- thumb_func_start sub_81A7508
-sub_81A7508: @ 81A7508
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _081A7538
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x2]
- b _081A7560
- .pool
-_081A7538:
- cmp r0, 0xA
- bhi _081A7554
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x3]
- b _081A7560
- .pool
-_081A7554:
- ldr r1, =gUnknown_0861231C
- ldr r0, =gUnknown_03001294
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
-_081A7560:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, =gUnknown_086123E4
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7508
-
- thumb_func_start sub_81A7580
-sub_81A7580: @ 81A7580
- push {lr}
- ldr r0, =sub_81A7EE4
- movs r1, 0x2
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7580
-
- thumb_func_start sub_81A7594
-sub_81A7594: @ 81A7594
- push {r4-r6,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r4, 0
- movs r1, 0
-_081A759E:
- mov r2, sp
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A759E
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r2, r0, 16
- mov r1, sp
- strb r0, [r1]
- mov r0, sp
- lsrs r2, 24
- strb r2, [r0, 0x1]
- adds r0, r5, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
-_081A75DA:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- adds r2, r4, 0
- bl CalculatePPWithBonus
- mov r1, sp
- strb r0, [r1]
- adds r1, r4, 0
- adds r1, 0x11
- adds r0, r5, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081A75DA
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A7594
-
- thumb_func_start sub_81A7628
-sub_81A7628: @ 81A7628
- push {r4,lr}
- adds r4, r1, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- cmp r4, 0x20
- beq _081A7652
- cmp r4, 0x20
- bhi _081A7648
- cmp r4, 0x7
- beq _081A7664
- cmp r4, 0x10
- beq _081A7658
- b _081A7674
-_081A7648:
- cmp r4, 0x40
- beq _081A765E
- cmp r4, 0x80
- beq _081A766E
- b _081A7674
-_081A7652:
- cmp r0, 0x28
- bne _081A7674
- b _081A7672
-_081A7658:
- cmp r0, 0x29
- bne _081A7674
- b _081A7672
-_081A765E:
- cmp r0, 0x7
- bne _081A7674
- b _081A7672
-_081A7664:
- cmp r0, 0xF
- beq _081A7672
- cmp r0, 0x48
- bne _081A7674
- b _081A7672
-_081A766E:
- cmp r0, 0x11
- bne _081A7674
-_081A7672:
- movs r1, 0x1
-_081A7674:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7628
-
- thumb_func_start sub_81A767C
-sub_81A767C: @ 81A767C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- cmp r1, 0x20
- beq _081A76C4
- cmp r1, 0x20
- bhi _081A7696
- cmp r1, 0x7
- beq _081A771C
- cmp r1, 0x10
- beq _081A7704
- b _081A771C
-_081A7696:
- cmp r1, 0x40
- beq _081A76E0
- cmp r1, 0x80
- bne _081A771C
- ldr r1, =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x6]
- cmp r2, 0x8
- beq _081A771A
- cmp r2, 0x3
- beq _081A771A
- ldrb r0, [r0, 0x7]
- cmp r0, 0x8
- beq _081A771A
- cmp r0, 0x3
- bne _081A771C
- b _081A771A
- .pool
-_081A76C4:
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0xF
- beq _081A771A
- ldrb r0, [r1, 0x7]
- cmp r0, 0xF
- bne _081A771C
- b _081A771A
- .pool
-_081A76E0:
- ldr r1, =gBaseStats
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x6]
- cmp r2, 0x4
- beq _081A771A
- cmp r2, 0xD
- beq _081A771A
- ldrb r0, [r0, 0x7]
- cmp r0, 0x4
- beq _081A771A
- cmp r0, 0xD
- bne _081A771C
- b _081A771A
- .pool
-_081A7704:
- ldr r0, =gBaseStats
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x6]
- cmp r0, 0xA
- beq _081A771A
- ldrb r0, [r1, 0x7]
- cmp r0, 0xA
- bne _081A771C
-_081A771A:
- movs r3, 0x1
-_081A771C:
- adds r0, r3, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A767C
-
- thumb_func_start sub_81A7728
-sub_81A7728: @ 81A7728
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r6, 0
-_081A7736:
- mov r1, sp
- adds r0, r1, r6
- strb r6, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A7736
- movs r4, 0
- mov r8, r4
-_081A774A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r2, r1, r6
- ldrb r3, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x9
- bls _081A774A
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r4, =0x00000cb2
- adds r0, r4
- ldrh r0, [r0]
- movs r1, 0x1
- mov r10, r1
- cmp r0, 0x4
- bls _081A77A8
- movs r4, 0x3
- mov r10, r4
- cmp r0, 0x9
- bhi _081A77A8
- movs r0, 0x2
- mov r10, r0
-_081A77A8:
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r7, =gUnknown_03001290
-_081A77AE:
- movs r4, 0
- mov r9, r4
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x22
- bhi _081A77DC
- movs r0, 0x80
- b _081A77FC
- .pool
-_081A77DC:
- cmp r0, 0x3B
- bhi _081A77E4
- movs r0, 0x20
- b _081A77FC
-_081A77E4:
- cmp r0, 0x4F
- bhi _081A77EC
- movs r0, 0x40
- b _081A77FC
-_081A77EC:
- cmp r1, 0x59
- bhi _081A77FA
- movs r0, 0x7
- b _081A77FC
-_081A77F4:
- movs r0, 0x1
- mov r9, r0
- b _081A786E
-_081A77FA:
- movs r0, 0x10
-_081A77FC:
- str r0, [r7]
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- ldr r1, [sp, 0x4]
- cmp r1, r0
- beq _081A7874
- str r0, [sp, 0x4]
- movs r4, 0
- mov r8, r4
- movs r6, 0
-_081A7810:
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A7860
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A7860
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, [r7]
- adds r0, r4, 0
- bl sub_81A767C
- lsls r0, 24
- cmp r0, 0
- beq _081A77F4
-_081A7860:
- cmp r8, r10
- beq _081A786E
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A7810
-_081A786E:
- mov r4, r8
- cmp r4, 0
- beq _081A78CC
-_081A7874:
- mov r0, r9
- cmp r0, 0
- beq _081A77AE
- ldr r0, =gUnknown_03001290
- ldr r0, [r0]
- cmp r0, 0x20
- beq _081A7898
- cmp r0, 0x20
- bhi _081A78D0
- cmp r0, 0x7
- beq _081A78D0
- cmp r0, 0x10
- beq _081A78A4
- b _081A78D0
- .pool
-_081A7898:
- ldr r1, =gUnknown_0300128D
- movs r0, 0x1
- b _081A78D4
- .pool
-_081A78A4:
- bl Random
- lsls r0, 16
- lsrs r1, r0, 16
- movs r2, 0x1
- ands r1, r2
- cmp r1, 0
- beq _081A78C0
- ldr r0, =gUnknown_0300128D
- strb r2, [r0]
- b _081A78D6
- .pool
-_081A78C0:
- ldr r0, =gUnknown_0300128D
- strb r1, [r0]
- b _081A78D6
- .pool
-_081A78CC:
- movs r0, 0
- b _081A7956
-_081A78D0:
- ldr r1, =gUnknown_0300128D
- movs r0, 0
-_081A78D4:
- strb r0, [r1]
-_081A78D6:
- movs r1, 0
- mov r8, r1
- movs r6, 0
-_081A78DC:
- mov r4, sp
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A7946
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, =gUnknown_03001290
- ldr r1, [r7]
- adds r0, r5, 0
- bl sub_81A7628
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- ldr r1, [r7]
- adds r0, r4, 0
- bl sub_81A767C
- lsls r0, 24
- cmp r0, 0
- bne _081A7946
- adds r0, r5, 0
- movs r1, 0x37
- adds r2, r7, 0
- bl SetMonData
-_081A7946:
- cmp r8, r10
- beq _081A7954
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _081A78DC
-_081A7954:
- movs r0, 0x1
-_081A7956:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7728
-
- thumb_func_start sub_81A7974
-sub_81A7974: @ 81A7974
- push {r4-r7,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x1
- cmp r0, 0x4
- bls _081A798E
- movs r7, 0x3
- cmp r0, 0x9
- bhi _081A798E
- movs r7, 0x2
-_081A798E:
- movs r6, 0
- movs r5, 0
- b _081A79A2
- .pool
-_081A799C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081A79A2:
- cmp r5, 0x2
- bhi _081A79D8
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A79D4
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081A79D4
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A79D4:
- cmp r6, r7
- bne _081A799C
-_081A79D8:
- cmp r6, 0
- beq _081A79E4
- movs r0, 0x1
- b _081A79E6
- .pool
-_081A79E4:
- movs r0, 0
-_081A79E6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7974
-
- thumb_func_start sub_81A79EC
-sub_81A79EC: @ 81A79EC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- movs r4, 0xE1
- lsls r4, 4
- adds r0, r4
- ldrb r2, [r0]
- movs r3, 0x78
- ands r3, r2
- adds r5, r1, 0
- cmp r3, 0x40
- bne _081A7A10
- lsls r0, r2, 25
- lsrs r0, 28
- b _081A7B48
- .pool
-_081A7A10:
- ldr r0, =gSpecialVar_0x8007
- lsls r1, r2, 29
- ldrh r0, [r0]
- lsrs r1, 29
- cmp r0, r1
- bne _081A7A34
- cmp r3, 0x18
- bne _081A7A24
- bl sub_81A7728
-_081A7A24:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- b _081A7B48
- .pool
-_081A7A34:
- movs r2, 0
- ldr r3, =gUnknown_0861266C
- movs r1, 0
-_081A7A3A:
- mov r4, sp
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7A3A
- movs r4, 0x8
- ldr r0, [r5]
- movs r6, 0xE1
- lsls r6, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- adds r0, r3
- ldrb r1, [r0]
- movs r2, 0
- adds r5, r3, 0
- movs r3, 0x1
-_081A7A64:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r1
- bne _081A7A78
- mov r6, sp
- adds r0, r6, r2
- strb r3, [r0]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7A78:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7A64
- mov r0, sp
- ldrb r0, [r0, 0x7]
- cmp r0, 0x1
- beq _081A7AA0
- bl sub_81A8554
- lsls r0, 24
- cmp r0, 0
- bne _081A7AA0
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x7]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AA0:
- mov r0, sp
- ldrb r0, [r0, 0x3]
- cmp r0, 0x1
- beq _081A7ABE
- bl sub_81A7974
- lsls r0, 24
- cmp r0, 0
- bne _081A7ABE
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x3]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7ABE:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A7AFA
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- beq _081A7AE6
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x1]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AE6:
- mov r0, sp
- ldrb r0, [r0, 0x4]
- cmp r0, 0x1
- beq _081A7AFA
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x4]
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A7AFA:
- adds r0, r4, 0
- bl AllocZeroed
- adds r5, r0, 0
- movs r3, 0
- movs r2, 0
-_081A7B06:
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081A7B1C
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5, r1
- strb r2, [r1]
-_081A7B1C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081A7B06
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- adds r0, r5, r0
- ldrb r4, [r0]
- adds r0, r5, 0
- bl Free
- cmp r4, 0x3
- bne _081A7B46
- bl sub_81A7728
-_081A7B46:
- adds r0, r4, 0
-_081A7B48:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A79EC
-
- thumb_func_start sub_81A7B58
-sub_81A7B58: @ 81A7B58
- push {r4,lr}
- ldr r4, =gUnknown_03001294
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- strb r0, [r4]
- ldr r1, =gUnknown_0861231C
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7B58
-
- thumb_func_start sub_81A7B84
-sub_81A7B84: @ 81A7B84
- ldr r0, =gUnknown_0300128E
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_81A7B84
-
- thumb_func_start sub_81A7B90
-sub_81A7B90: @ 81A7B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl sub_81A7D00
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- ldr r4, =0x00000ca9
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gUnknown_08612314
- lsrs r0, 28
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, =gEnemyParty
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r0, r5, 16
- lsrs r0, 16
- bl sub_81A890C
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081A7C1C
- bl sub_8165CB4
- adds r7, r0, 0
- cmp r7, 0x3B
- ble _081A7C08
- lsls r0, r6, 2
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- subs r7, r0
- cmp r7, 0x3B
- bgt _081A7C32
-_081A7C08:
- movs r7, 0x3C
- b _081A7C32
- .pool
-_081A7C1C:
- lsls r0, r6, 2
- ldr r2, [sp, 0x4]
- adds r0, r2
- ldr r1, [r0]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x2]
- movs r0, 0x32
- subs r7, r0, r1
-_081A7C32:
- mov r0, r8
- cmp r0, 0x1
- bne _081A7C4A
- lsls r0, r7, 24
- lsrs r0, 24
- bl sub_81A88B0
- lsls r0, 24
- cmp r0, 0
- bne _081A7C4A
- movs r0, 0
- b _081A7CE2
-_081A7C4A:
- ldr r0, =gEnemyParty
- ldr r1, =gBaseStats
- mov r8, r1
- lsls r6, 2
- mov r9, r6
- ldr r2, [sp, 0x4]
- add r2, r9
- mov r10, r2
- ldr r1, [r2]
- lsls r6, r5, 1
- adds r4, r6, r5
- lsls r4, 2
- adds r1, r4, r1
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r2, r1
- lsls r1, r7, 2
- ldr r3, =gExperienceTables
- adds r1, r3
- adds r2, r1
- movs r1, 0x19
- bl SetMonData
- mov r1, r10
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x17]
- mov r7, r9
- cmp r0, 0
- beq _081A7CA8
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
-_081A7CA8:
- str r0, [sp]
- ldr r0, =gEnemyParty
- movs r1, 0x2E
- mov r2, sp
- bl SetMonData
- movs r4, 0
- adds r0, r6, r5
- lsls r6, r0, 2
-_081A7CBA:
- ldr r2, [sp, 0x4]
- adds r0, r7, r2
- ldr r0, [r0]
- adds r0, r6, r0
- lsls r1, r4, 1
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r0, =gEnemyParty
- bl SetMonMoveSlot
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A7CBA
- ldr r0, =gEnemyParty
- bl CalculateMonStats
- movs r0, 0x1
-_081A7CE2:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7B90
-
- thumb_func_start sub_81A7D00
-sub_81A7D00: @ 81A7D00
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- adds r2, r1, 0
- movs r0, 0x8C
- lsls r0, 1
- cmp r1, r0
- bhi _081A7D34
- movs r1, 0
- b _081A7D4C
- .pool
-_081A7D34:
- movs r0, 0x8C
- lsls r0, 2
- cmp r1, r0
- bhi _081A7D40
- movs r1, 0x1
- b _081A7D4C
-_081A7D40:
- movs r0, 0xD2
- lsls r0, 2
- movs r1, 0x3
- cmp r2, r0
- bhi _081A7D4C
- movs r1, 0x2
-_081A7D4C:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_81A7D00
-
- thumb_func_start sub_81A7D54
-sub_81A7D54: @ 81A7D54
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_08612688
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_081A7D66:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _081A7D66
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7D54
-
- thumb_func_start sub_81A7D8C
-sub_81A7D8C: @ 81A7D8C
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081A7DA4
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _081A7DC8
-_081A7DA4:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _081A7DBC
- movs r0, 0x10
- strh r0, [r4, 0x16]
-_081A7DBC:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, =0x00002d6b
- bl BlendPalettes
-_081A7DC8:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- ble _081A7DDA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
-_081A7DDA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A7D8C
-
- thumb_func_start sub_81A7DE8
-sub_81A7DE8: @ 81A7DE8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081A7E00
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _081A7E22
-_081A7E00:
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- bge _081A7E16
- movs r0, 0
- strh r0, [r4, 0x16]
-_081A7E16:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, =0x00002d6b
- bl BlendPalettes
-_081A7E22:
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _081A7E56
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _081A7E50
- ldr r0, =sub_81A7D54
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _081A7E56
- .pool
-_081A7E50:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x8]
-_081A7E56:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81A7DE8
-
- thumb_func_start sub_81A7E60
-sub_81A7E60: @ 81A7E60
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, =sub_81A7D54
- movs r1, 0x3
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, r8
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A7E60
-
- thumb_func_start sub_81A7EC4
-sub_81A7EC4: @ 81A7EC4
- push {lr}
- ldr r0, =sub_81A7D54
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081A7EDC
- movs r0, 0
- b _081A7EDE
- .pool
-_081A7EDC:
- movs r0, 0x1
-_081A7EDE:
- pop {r1}
- bx r1
- thumb_func_end sub_81A7EC4
-
- thumb_func_start sub_81A7EE4
-sub_81A7EE4: @ 81A7EE4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081A7F1C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_81A7E60
- b _081A7F30
- .pool
-_081A7F1C:
- bl sub_81A7EC4
- lsls r0, 24
- cmp r0, 0
- beq _081A7F30
- bl script_env_2_enable_and_set_ctx_running
- adds r0, r4, 0
- bl DestroyTask
-_081A7F30:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A7EE4
-
- thumb_func_start sub_81A7F38
-sub_81A7F38: @ 81A7F38
- 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
- str r0, [sp, 0x4]
- cmp r0, 0
- bne _081A7F50
- b _081A807A
-_081A7F50:
- movs r0, 0
- mov r8, r0
-_081A7F54:
- mov r0, sp
- add r0, r8
- mov r1, r8
- strb r1, [r0]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081A7F54
- movs r5, 0
-_081A7F6C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- mov r2, sp
- add r2, r8
- ldrb r3, [r2]
- mov r0, sp
- adds r1, r0, r4
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _081A7F6C
- movs r1, 0
- mov r8, r1
-_081A7FB0:
- movs r0, 0
- mov r10, r0
- mov r4, sp
- add r4, r8
- ldrb r1, [r4]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- str r4, [sp, 0x8]
- cmp r5, r6
- bcc _081A8044
- adds r0, r7, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- beq _081A7FFC
- movs r0, 0x1
- mov r10, r0
- b _081A8048
- .pool
-_081A7FFC:
- adds r0, r7, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- b _081A8014
-_081A800E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081A8014:
- cmp r4, 0x3
- bhi _081A8048
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- adds r2, r4, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r6, r0, 24
- adds r1, r4, 0
- adds r1, 0x11
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r6
- bcs _081A800E
-_081A8044:
- movs r1, 0x1
- mov r10, r1
-_081A8048:
- mov r0, r10
- cmp r0, 0x1
- bne _081A806C
- ldr r0, [sp, 0x8]
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_81A7594
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- cmp r0, 0
- beq _081A807A
-_081A806C:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _081A7FB0
-_081A807A:
- 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_81A7F38
-
- thumb_func_start sub_81A8090
-sub_81A8090: @ 81A8090
- push {r4,lr}
- ldr r4, =gScriptResult
- bl InBattlePike
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8090
-
- thumb_func_start InBattlePike
-InBattlePike: @ 81A80A8
- push {lr}
- movs r2, 0
- ldr r0, =gUnknown_02037318
- ldrh r1, [r0, 0x12]
- ldr r3, =0xfffffea1
- adds r0, r1, r3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _081A80CA
- movs r0, 0xB3
- lsls r0, 1
- cmp r1, r0
- beq _081A80CA
- adds r0, 0x1
- cmp r1, r0
- bne _081A80CC
-_081A80CA:
- movs r2, 0x1
-_081A80CC:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end InBattlePike
-
- thumb_func_start sub_81A80DC
-sub_81A80DC: @ 81A80DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, =gScriptResult
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
- bl sub_81A8590
- lsls r0, 24
- cmp r0, 0
- beq _081A8138
- movs r0, 0x1
- strh r0, [r4]
- bl Random
- ldr r5, =gSaveBlock2Ptr
- ldr r4, [r5]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- movs r3, 0xE1
- lsls r3, 4
- adds r4, r3
- movs r1, 0x7
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r2, [r5]
- adds r2, r3
- ldrb r1, [r2]
- movs r0, 0x79
- negs r0, r0
- ands r0, r1
- movs r1, 0x40
- b _081A8248
- .pool
-_081A8138:
- bl Random
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- movs r3, 0xE1
- lsls r3, 4
- adds r4, r3
- movs r1, 0x7
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r0, [r7]
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- movs r6, 0x8
- cmp r0, 0
- beq _081A8172
- movs r6, 0x6
-_081A8172:
- adds r0, r6, 0
- bl AllocZeroed
- adds r5, r0, 0
- movs r2, 0
- movs r3, 0
- cmp r2, r6
- bcs _081A81BE
- adds r4, r7, 0
-_081A8184:
- ldr r0, [r4]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A81B0
- cmp r2, 0x1
- beq _081A81B4
- cmp r2, 0x4
- beq _081A81B4
- adds r1, r3, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r1, r5, r1
- strb r2, [r1]
- b _081A81B4
- .pool
-_081A81B0:
- adds r0, r5, r2
- strb r2, [r0]
-_081A81B4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcc _081A8184
-_081A81BE:
- bl Random
- ldr r7, =gSaveBlock2Ptr
- ldr r4, [r7]
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r6, 0xE1
- lsls r6, 4
- adds r4, r6
- movs r1, 0xF
- ands r1, r0
- lsls r1, 3
- ldrb r2, [r4]
- movs r0, 0x79
- negs r0, r0
- mov r8, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- adds r0, r5, 0
- bl Free
- ldr r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x78
- ands r0, r1
- cmp r0, 0x18
- bne _081A821C
- bl sub_81A7974
- lsls r0, 24
- cmp r0, 0
- bne _081A821C
- ldr r2, [r7]
- adds r2, r6
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2]
-_081A821C:
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- movs r4, 0xE1
- lsls r4, 4
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x78
- ands r0, r1
- cmp r0, 0x38
- bne _081A824C
- bl sub_81A8554
- lsls r0, 24
- cmp r0, 0
- bne _081A824C
- ldr r2, [r5]
- adds r2, r4
- ldrb r1, [r2]
- movs r0, 0x79
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_081A8248:
- orrs r0, r1
- strb r0, [r2]
-_081A824C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A80DC
-
- thumb_func_start sub_81A825C
-sub_81A825C: @ 81A825C
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r2, 0xE1
- lsls r2, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A825C
-
- thumb_func_start sub_81A827C
-sub_81A827C: @ 81A827C
- ldr r2, =gScriptResult
- ldr r1, =gUnknown_0861266C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0xE1
- lsls r3, 4
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 28
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A827C
-
- thumb_func_start sub_81A82A4
-sub_81A82A4: @ 81A82A4
- push {r4-r7,lr}
- lsls r0, 24
- movs r7, 0x6
- cmp r0, 0
- bne _081A82B0
- movs r7, 0x1
-_081A82B0:
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0xE
- bl __udivsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, r4, 0
-_081A82D2:
- lsls r0, r6, 24
- lsrs r0, 24
- adds r1, r7, 0
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, r0, 0x1
- cmp r3, r2
- bge _081A831A
- ldr r0, =0x00000cb4
- adds r1, r0
- b _081A8314
- .pool
-_081A830C:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A831A
-_081A8314:
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A830C
-_081A831A:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _081A82D2
- ldr r5, =gTrainerBattleOpponent_A
- strh r4, [r5]
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xD
- bhi _081A8356
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A8356:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A82A4
-
- thumb_func_start sub_81A8374
-sub_81A8374: @ 81A8374
- push {r4-r7,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e04
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0xE
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- lsls r7, r5, 24
- adds r6, r4, 0
-_081A83A0:
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r6]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- subs r2, r0, 0x1
- cmp r3, r2
- bge _081A83EE
- ldr r0, =0x00000cb4
- adds r1, r0
- b _081A83E8
- .pool
-_081A83E0:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A83EE
-_081A83E8:
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A83E0
-_081A83EE:
- ldr r0, [r6]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _081A83A0
- ldr r5, =gTrainerBattleOpponent_A
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0
- bl sub_8162614
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xE
- bhi _081A8424
- subs r0, 0x1
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A8424:
- adds r5, r3, 0
-_081A8426:
- lsrs r0, r7, 24
- movs r1, 0x1
- bl sub_8162548
- lsls r0, 16
- lsrs r4, r0, 16
- movs r3, 0
- ldr r1, [r5]
- ldr r2, =0x00000cb2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r3, r0
- bge _081A8466
- adds r2, 0x2
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r4
- beq _081A8466
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- subs r2, 0x2
- adds r0, r1, r2
- ldrh r2, [r0]
- ldr r0, =0x00000cb4
- adds r1, r0
-_081A8458:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, r2
- bge _081A8466
- ldrh r0, [r1]
- cmp r0, r4
- bne _081A8458
-_081A8466:
- ldr r0, [r5]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r3, r0
- bne _081A8426
- ldr r5, =gTrainerBattleOpponent_B
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x1
- bl sub_8162614
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000cb2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0xD
- bhi _081A849A
- subs r0, 0x2
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r0, [r5]
- strh r0, [r1]
-_081A849A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8374
-
- thumb_func_start sub_81A84B4
-sub_81A84B4: @ 81A84B4
- push {r4,r5,lr}
- movs r2, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r4, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r3, r0, 0
-_081A84C0:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r1, r4
- adds r1, r0
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _081A84C0
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A84B4
-
- thumb_func_start sub_81A84EC
-sub_81A84EC: @ 81A84EC
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _081A8524
- ldr r3, =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _081A8542
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- b _081A8542
- .pool
-_081A8524:
- cmp r0, 0x1
- bne _081A8542
- ldr r3, =gTrainerBattleOpponent_B
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _081A8542
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
-_081A8542:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A84EC
-
- thumb_func_start sub_81A8554
-sub_81A8554: @ 81A8554
- push {r4-r6,lr}
- ldr r5, =gPlayerParty
- movs r6, 0
- movs r4, 0
-_081A855C:
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081A856E
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A856E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, 0x64
- cmp r4, 0x2
- bls _081A855C
- cmp r6, 0x1
- bhi _081A8588
- movs r0, 0x1
- b _081A858A
- .pool
-_081A8588:
- movs r0, 0
-_081A858A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A8554
-
- thumb_func_start sub_81A8590
-sub_81A8590: @ 81A8590
- push {r4-r6,lr}
- lsls r0, 24
- movs r6, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r3, =0x00000ca9
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 30
- lsrs r1, 29
- ldr r3, =0x00000e04
- adds r2, r3
- adds r2, r1
- lsrs r4, r0, 24
- ldrh r2, [r2]
- adds r0, r4, r2
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x5
- bl sub_81A3B30
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- blt _081A85F0
- cmp r2, 0x1
- bgt _081A85F0
- ldr r1, =gUnknown_086125DC
- adds r0, r2, 0
- adds r0, 0x14
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r1, 0x17]
- subs r0, r1
- cmp r4, r0
- bne _081A8634
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _081A8634
- .pool
-_081A85F0:
- ldr r5, =gUnknown_086125DC
- movs r0, 0x5
- lsls r3, r0, 2
- adds r0, r3, r5
- ldrb r1, [r0]
- adds r0, r5, 0x3
- adds r0, r3, r0
- ldrb r2, [r0]
- subs r1, r2
- cmp r4, r1
- bne _081A8610
- movs r6, 0x3
- b _081A8634
- .pool
-_081A8610:
- adds r0, r5, 0x1
- adds r0, r3, r0
- ldrb r1, [r0]
- subs r0, r1, r2
- cmp r4, r0
- beq _081A8632
- cmp r4, r1
- bls _081A8634
- subs r0, r4, r1
- adds r0, r2
- adds r1, r5, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- bl __modsi3
- cmp r0, 0
- bne _081A8634
-_081A8632:
- movs r6, 0x4
-_081A8634:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81A8590
-
- thumb_func_start sub_81A863C
-sub_81A863C: @ 81A863C
- push {r4,lr}
- ldr r4, =gScriptResult
- movs r0, 0
- bl sub_81A8590
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A863C
-
- thumb_func_start sub_81A8658
-sub_81A8658: @ 81A8658
- push {r4,lr}
- ldr r3, =gUnknown_08612675
- ldr r2, =gSpecialVar_0x8007
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xE1
- lsls r1, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- lsls r0, r1, 1
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- adds r0, r3
- ldrb r4, [r0]
- adds r0, r4, 0
- bl sub_81A7F38
- ldr r0, =gScriptResult
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8658
-
- thumb_func_start sub_81A869C
-sub_81A869C: @ 81A869C
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8005
- ldrb r1, [r0]
- movs r0, 0xE1
- lsls r0, 4
- adds r2, r0
- lsls r1, 7
- ldrb r3, [r2]
- movs r0, 0x7F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A869C
-
- thumb_func_start sub_81A86C0
-sub_81A86C0: @ 81A86C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r10, r0
-_081A86D4:
- movs r0, 0
- mov r9, r0
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r4, r5
- bcc _081A8762
- adds r0, r7, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- cmp r0, 0
- bne _081A8762
- adds r0, r7, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
- b _081A8732
- .pool
-_081A872C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081A8732:
- cmp r6, 0x3
- bhi _081A8766
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, r8
- adds r2, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r7, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r5
- bcs _081A872C
-_081A8762:
- movs r0, 0x1
- mov r9, r0
-_081A8766:
- mov r0, r9
- cmp r0, 0x1
- bne _081A8778
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- b _081A8786
- .pool
-_081A8778:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0x2
- bls _081A86D4
-_081A8786:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A86C0
-
- thumb_func_start sub_81A8794
-sub_81A8794: @ 81A8794
- push {r4-r7,lr}
- movs r5, 0
- ldr r7, =gSaveBlock1Ptr
- ldr r6, =gSaveBlock2Ptr
-_081A879C:
- ldr r0, [r6]
- lsls r4, r5, 1
- ldr r1, =0x00000caa
- adds r0, r1
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- movs r2, 0xEA
- lsls r2, 1
- adds r1, r2
- ldr r0, [r7]
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- ldr r1, [r6]
- ldr r2, =0x00000e12
- adds r1, r2
- adds r1, r4
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A879C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8794
-
- thumb_func_start sub_81A87E8
-sub_81A87E8: @ 81A87E8
- push {r4,lr}
- movs r4, 0
-_081A87EC:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- lsls r3, r4, 1
- ldr r1, =0x00000caa
- adds r0, r2, r1
- adds r0, r3
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gBattleScripting + 0x14
- adds r0, r1
- ldr r1, =0x00000e12
- adds r3, r1
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A87EC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A87E8
-
- thumb_func_start sub_81A8830
-sub_81A8830: @ 81A8830
- push {r4-r6,lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r4, 0
- strb r4, [r1]
- ldr r1, [r3]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r4, [r0]
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r3, [r3]
- ldr r0, =0x00000cdc
- adds r2, r3, r0
- ldr r1, =gUnknown_08612690
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081A887C
- lsls r1, r5, 1
- ldr r2, =0x00000e04
- adds r0, r3, r2
- adds r0, r1
- strh r4, [r0]
-_081A887C:
- ldr r0, =gTrainerBattleOpponent_A
- strh r4, [r0]
- ldr r1, =gBattleOutcome
- movs r0, 0
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8830
-
- thumb_func_start sub_81A88B0
-sub_81A88B0: @ 81A88B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _081A8904
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x33
- beq _081A88D6
- cmp r0, 0x16
- bne _081A8904
-_081A88D6:
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _081A8904
- subs r0, 0x5
- cmp r5, r0
- bgt _081A8904
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A8904
- movs r0, 0
- b _081A8906
- .pool
-_081A8904:
- movs r0, 0x1
-_081A8906:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A88B0
-
- thumb_func_start sub_81A890C
-sub_81A890C: @ 81A890C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =0x0000017b
- cmp r2, r0
- bne _081A8920
- movs r1, 0
- b _081A892A
- .pool
-_081A8920:
- ldr r0, =0x00000149
- movs r1, 0x2
- cmp r2, r0
- bne _081A892A
- movs r1, 0x1
-_081A892A:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A890C
-
- thumb_func_start sub_81A8934
-@ void sub_81A8934(u8)
-sub_81A8934: @ 81A8934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203CE50
- ldr r0, [r4]
- cmp r0, 0
- bne _081A894A
- movs r0, 0x44
- bl AllocZeroed
- str r0, [r4]
-_081A894A:
- ldr r0, [r4]
- adds r0, 0x41
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8934
-
- thumb_func_start sub_81A895C
-sub_81A895C: @ 81A895C
- push {r4,lr}
- ldr r4, =gUnknown_0203CE50
- ldr r0, [r4]
- cmp r0, 0
- beq _081A896E
- bl Free
- movs r0, 0
- str r0, [r4]
-_081A896E:
- 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, =gUnknown_02037350
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80D338C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A895C
-
- thumb_func_start sub_81A89A0
-sub_81A89A0: @ 81A89A0
- 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
- str r0, [sp]
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0
- mov r9, r1
- movs r3, 0
- mov r10, r3
- mov r8, r3
-_081A89C4:
- mov r0, r8
- lsls r4, r0, 1
- adds r1, r4, r0
- lsls r1, 3
- add r1, r9
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gUnknown_0203CE50
- ldr r0, [r0]
- adds r0, 0x41
- ldrb r0, [r0]
- movs r2, 0xA6
- lsls r2, 2
- cmp r0, 0
- bne _081A89F8
- subs r2, 0x48
-_081A89F8:
- ldr r0, =0x0000024f
- cmp r1, r0
- bls _081A8AD4
- subs r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8A08
- adds r0, r1, 0x7
-_081A8A08:
- asrs r2, r0, 3
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _081A8AD4
- ldr r3, [sp]
- cmp r0, r3
- bne _081A8AD4
- lsls r0, r2, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bhi _081A8AD4
- movs r1, 0
- movs r2, 0
- cmp r5, 0x1
- beq _081A8A58
- cmp r5, 0x1
- bgt _081A8A44
- cmp r5, 0
- beq _081A8A4E
- b _081A8AD4
- .pool
-_081A8A44:
- cmp r5, 0x2
- beq _081A8A64
- cmp r5, 0x3
- beq _081A8A70
- b _081A8AD4
-_081A8A4E:
- ldr r7, =gUnknown_08612698
- movs r1, 0x1
- b _081A8A74
- .pool
-_081A8A58:
- ldr r7, =gUnknown_0861269C
- movs r2, 0x1
- b _081A8A74
- .pool
-_081A8A64:
- ldr r7, =gUnknown_086126A0
- movs r1, 0xFF
- b _081A8A74
- .pool
-_081A8A70:
- ldr r7, =gUnknown_086126A4
- movs r2, 0xFF
-_081A8A74:
- mov r3, r8
- adds r0, r4, r3
- lsls r0, 3
- mov r3, r9
- adds r4, r0, r3
- lsls r0, r1, 24
- asrs r0, 24
- ldrh r1, [r4, 0x4]
- adds r0, r1
- strh r0, [r4, 0x4]
- lsls r0, r2, 24
- asrs r0, 24
- ldrh r3, [r4, 0x6]
- adds r0, r3
- strh r0, [r4, 0x6]
- ldrb r0, [r4]
- ldr r6, =gSaveBlock1Ptr
- ldr r2, [r6]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _081A8ACC
- mov r0, r8
- adds r1, r5, 0
- bl sub_81A8D60
- ldrb r4, [r4]
- mov r10, r4
- mov r0, r10
- ldr r2, [r6]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- adds r3, r7, 0
- bl exec_movement
- b _081A8AD4
- .pool
-_081A8ACC:
- mov r0, r8
- adds r1, r5, 0
- bl sub_81A8D94
-_081A8AD4:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x3F
- bhi _081A8AE4
- b _081A89C4
-_081A8AE4:
- mov r0, r10
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A89A0
-
- thumb_func_start sub_81A8AF8
-sub_81A8AF8: @ 81A8AF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, =gUnknown_0203CE50
- ldr r2, [r1]
- cmp r2, 0
- bne _081A8B0C
- b _081A8D4A
-_081A8B0C:
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- movs r3, 0xA6
- lsls r3, 2
- mov r10, r3
- cmp r0, 0
- bne _081A8B22
- movs r0, 0x94
- lsls r0, 2
- mov r10, r0
-_081A8B22:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r3, 0xC7
- lsls r3, 4
- adds r7, r0, r3
- movs r0, 0
- mov r9, r0
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r9, r0
- bcc _081A8B3C
- b _081A8D4A
-_081A8B3C:
- mov r8, r1
-_081A8B3E:
- mov r1, r8
- ldr r0, [r1]
- mov r2, r9
- lsls r4, r2, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r0, 16
- mov r3, r10
- subs r1, r0, r3
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8B76
- adds r0, r1, 0x7
-_081A8B76:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldrb r1, [r1]
- subs r0, r1
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081A8B96
- cmp r1, 0x3
- bne _081A8BAC
-_081A8B96:
- movs r0, 0x3
- negs r0, r0
- movs r6, 0
- cmp r1, r0
- bne _081A8BB4
- b _081A8BB2
- .pool
-_081A8BAC:
- movs r6, 0x2
- cmp r1, 0
- ble _081A8BB4
-_081A8BB2:
- movs r6, 0x1
-_081A8BB4:
- ldr r5, =gUnknown_0203CE50
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- bne _081A8BDC
- b _081A8D32
-_081A8BDC:
- ldr r0, =gUnknown_02037350
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r0, 0
- cmp r6, 0
- bne _081A8C9C
- cmp r0, 0x2
- beq _081A8C60
- cmp r0, 0x2
- bgt _081A8C0C
- cmp r0, 0x1
- beq _081A8C30
- b _081A8D32
- .pool
-_081A8C0C:
- cmp r0, 0x3
- beq _081A8C48
- cmp r0, 0x4
- beq _081A8C16
- b _081A8D32
-_081A8C16:
- ldr r3, =gUnknown_086126AE
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x7
- b _081A8C72
- .pool
-_081A8C30:
- ldr r3, =gUnknown_086126A8
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0xA
- b _081A8C72
- .pool
-_081A8C48:
- ldr r3, =gUnknown_086126AA
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x8
- b _081A8C72
- .pool
-_081A8C60:
- ldr r3, =gUnknown_086126AC
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x9
-_081A8C72:
- strb r1, [r0, 0x9]
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl exec_movement
- b _081A8D32
- .pool
-_081A8C9C:
- cmp r6, 0x1
- bne _081A8D32
- cmp r0, 0x2
- beq _081A8D00
- cmp r0, 0x2
- bgt _081A8CAE
- cmp r0, 0x1
- beq _081A8CD0
- b _081A8D32
-_081A8CAE:
- cmp r1, 0x3
- beq _081A8CE8
- cmp r1, 0x4
- bne _081A8D32
- ldr r3, =gUnknown_086126AA
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x8
- b _081A8D12
- .pool
-_081A8CD0:
- ldr r3, =gUnknown_086126AC
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x9
- b _081A8D12
- .pool
-_081A8CE8:
- ldr r3, =gUnknown_086126AE
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0x7
- b _081A8D12
- .pool
-_081A8D00:
- ldr r3, =gUnknown_086126A8
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0xA
-_081A8D12:
- strb r1, [r0, 0x9]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r4
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl exec_movement
-_081A8D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r3, r8
- ldr r0, [r3]
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r9, r0
- bcs _081A8D4A
- b _081A8B3E
-_081A8D4A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8AF8
-
- thumb_func_start sub_81A8D60
-sub_81A8D60: @ 81A8D60
- push {r4,lr}
- ldr r4, =gUnknown_0203CE50
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0x40
- ldrb r2, [r2]
- lsls r2, 2
- adds r3, r2
- strb r0, [r3, 0x1]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0
- strb r1, [r2]
- ldr r1, [r4]
- adds r1, 0x40
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8D60
-
- thumb_func_start sub_81A8D94
-sub_81A8D94: @ 81A8D94
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r5, r0, r1
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x4]
- adds r0, 0x7
- ldrh r1, [r1, 0x6]
- adds r1, 0x7
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gUnknown_0203CE50
- ldr r0, [r0]
- adds r0, 0x41
- ldrb r0, [r0]
- movs r1, 0xA6
- lsls r1, 2
- cmp r0, 0
- bne _081A8DDA
- subs r1, 0x48
-_081A8DDA:
- subs r1, r2, r1
- adds r0, r1, 0
- cmp r1, 0
- bge _081A8DE4
- adds r0, r1, 0x7
-_081A8DE4:
- asrs r0, 3
- lsls r0, 3
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081A8DFC
- cmp r1, 0x3
- bne _081A8E08
-_081A8DFC:
- movs r2, 0
- b _081A8E1A
- .pool
-_081A8E08:
- cmp r1, 0
- bgt _081A8E14
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _081A8E18
-_081A8E14:
- movs r2, 0x1
- b _081A8E1A
-_081A8E18:
- movs r2, 0x2
-_081A8E1A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- adds r3, r0, 0
- cmp r2, 0
- bne _081A8E4C
- cmp r0, 0x8
- beq _081A8E72
- cmp r0, 0x8
- bgt _081A8E38
- cmp r0, 0x7
- beq _081A8E48
- b _081A8E76
-_081A8E38:
- cmp r0, 0x9
- beq _081A8E44
- cmp r0, 0xA
- bne _081A8E76
- movs r0, 0x7
- b _081A8E74
-_081A8E44:
- movs r0, 0x8
- b _081A8E74
-_081A8E48:
- movs r0, 0x9
- b _081A8E74
-_081A8E4C:
- cmp r2, 0x1
- bne _081A8E76
- cmp r0, 0x8
- beq _081A8E6A
- cmp r0, 0x8
- bgt _081A8E5E
- cmp r0, 0x7
- beq _081A8E72
- b _081A8E76
-_081A8E5E:
- cmp r3, 0x9
- beq _081A8E6E
- cmp r3, 0xA
- bne _081A8E76
- movs r0, 0x8
- b _081A8E74
-_081A8E6A:
- movs r0, 0x9
- b _081A8E74
-_081A8E6E:
- movs r0, 0x7
- b _081A8E74
-_081A8E72:
- movs r0, 0xA
-_081A8E74:
- strb r0, [r1, 0x9]
-_081A8E76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81A8D94
-
- thumb_func_start sub_81A8E7C
-sub_81A8E7C: @ 81A8E7C
- push {lr}
- ldr r1, =gUnknown_08613EE0
- 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_81A8E7C
-
- thumb_func_start sub_81A8E9C
-sub_81A8E9C: @ 81A8E9C
- push {r4-r6,lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r4, =0x00000ca9
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- ldr r0, =0x00000ca8
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3]
- ldr r6, =0x00000cb2
- adds r0, r1, r6
- strh r2, [r0]
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- cmp r5, 0
- beq _081A8EF0
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 6
- b _081A8EFC
- .pool
-_081A8EF0:
- ldr r0, [r3]
- ldr r6, =0x00000cdc
- adds r0, r6
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
-_081A8EFC:
- ands r2, r0
- cmp r2, 0
- bne _081A8F14
- ldr r0, [r3]
- lsls r1, r5, 1
- ldr r3, =0x00000e1a
- adds r0, r3
- adds r0, r1
- strh r2, [r0]
- adds r0, r5, 0
- bl sub_81AAA7C
-_081A8F14:
- bl sub_81C4EEC
- ldr r0, =gTrainerBattleOpponent_A
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattleOutcome
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8E9C
-
- thumb_func_start sub_81A8F38
-sub_81A8F38: @ 81A8F38
- push {r4,lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca9
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r4, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x6
- bls _081A8F54
- b _081A903A
-_081A8F54:
- lsls r0, 2
- ldr r1, =_081A8F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A8F70:
- .4byte _081A8F8C
- .4byte _081A8F9C
- .4byte _081A8FB4
- .4byte _081A8FE4
- .4byte _081A8FF8
- .4byte _081A9010
- .4byte _081A9028
-_081A8F8C:
- ldr r0, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000e18
- b _081A8FFE
- .pool
-_081A8F9C:
- ldr r2, =gScriptResult
- ldr r0, [r3]
- lsls r1, r4, 1
- ldr r3, =0x00000e1a
- adds r0, r3
- adds r0, r1
- ldrh r0, [r0]
- b _081A9038
- .pool
-_081A8FB4:
- cmp r4, 0
- beq _081A8FCC
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- b _081A9030
- .pool
-_081A8FCC:
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- b _081A9036
- .pool
-_081A8FE4:
- ldr r0, =gScriptResult
- ldr r1, [r3]
- ldr r2, =0x00000e1a
- adds r1, r2
- b _081A9000
- .pool
-_081A8FF8:
- ldr r0, =gScriptResult
- ldr r1, [r3]
- ldr r3, =0x00000e1c
-_081A8FFE:
- adds r1, r3
-_081A9000:
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A903A
- .pool
-_081A9010:
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r1, =0x00000cdc
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- b _081A9036
- .pool
-_081A9028:
- ldr r2, =gScriptResult
- ldr r0, [r3]
- ldr r3, =0x00000cdc
- adds r0, r3
-_081A9030:
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
-_081A9036:
- ands r0, r1
-_081A9038:
- strh r0, [r2]
-_081A903A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A8F38
-
- thumb_func_start sub_81A9048
-sub_81A9048: @ 81A9048
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r1, =0x00000ca9
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r1, r0, 30
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A9098
- cmp r0, 0x1
- bgt _081A9078
- cmp r0, 0
- beq _081A9082
- b _081A9126
- .pool
-_081A9078:
- cmp r0, 0x2
- beq _081A90B0
- cmp r0, 0x7
- beq _081A911C
- b _081A9126
-_081A9082:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000e18
- adds r0, r2, r3
- strh r1, [r0]
- b _081A9126
- .pool
-_081A9098:
- lsls r1, 1
- ldr r3, =0x00000e1a
- adds r0, r2, r3
- adds r0, r1
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- strh r1, [r0]
- b _081A9126
- .pool
-_081A90B0:
- cmp r1, 0
- beq _081A90E4
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A90D0
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 6
- b _081A90F6
- .pool
-_081A90D0:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- ldr r2, =0xffffdfff
- b _081A910C
- .pool
-_081A90E4:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A9104
- ldr r1, =0x00000cdc
- adds r0, r2, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 5
-_081A90F6:
- orrs r1, r2
- str r1, [r0]
- b _081A9126
- .pool
-_081A9104:
- ldr r3, =0x00000cdc
- adds r0, r2, r3
- ldr r1, [r0]
- ldr r2, =0xffffefff
-_081A910C:
- ands r1, r2
- str r1, [r0]
- b _081A9126
- .pool
-_081A911C:
- ldr r0, =gSpecialVar_0x8006
- ldrh r1, [r0]
- ldr r3, =0x00000e2a
- adds r0, r2, r3
- strb r1, [r0]
-_081A9126:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9048
-
- thumb_func_start sub_81A9134
-sub_81A9134: @ 81A9134
- 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 save_serialize_map
- movs r0, 0x1
- bl TrySavingData
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9134
-
- thumb_func_start sub_81A917C
-sub_81A917C: @ 81A917C
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r1, [r4]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 29
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0x29
- bls _081A91CC
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08613F34
- 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, =0x00000e18
- adds r4, r1
- b _081A91EA
- .pool
-_081A91CC:
- bl Random
- ldr r4, [r4]
- ldr r5, =gUnknown_08613F28
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r5
- ldrh r0, [r0]
- ldr r2, =0x00000e18
- adds r4, r2
-_081A91EA:
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A917C
-
- thumb_func_start sub_81A91FC
-sub_81A91FC: @ 81A91FC
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081A9244
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000e18
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r5, [r0]
- b _081A924A
- .pool
-_081A9244:
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
-_081A924A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A91FC
-
- thumb_func_start sub_81A9254
-sub_81A9254: @ 81A9254
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gSaveBlock2Ptr
-_081A925A:
- bl Random
- ldr r1, [r5]
- lsls r2, r4, 1
- ldr r3, =0x00000e22
- adds r1, r3
- adds r1, r2
- strh r0, [r1]
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A925A
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e2a
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9254
-
- thumb_func_start CalculateBattlePyramidItemBallItemId
-CalculateBattlePyramidItemBallItemId: @ 81A9290
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- mov r10, r0
- adds r2, 0x9
- adds r0, r1, r2
- ldrh r0, [r0]
- str r0, [sp]
- mov r2, r10
- lsls r0, r2, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x13
- bls _081A92DE
- movs r0, 0x13
- mov r8, r0
-_081A92DE:
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gScriptLastTalked
- ldrh r4, [r1]
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x1]
- subs r4, r0
- subs r7, r4, 0x1
- ldr r1, [r5]
- lsrs r0, r7, 31
- adds r0, r7, r0
- asrs r0, 1
- lsls r0, 1
- ldr r2, =0x00000e22
- adds r1, r2
- adds r1, r0
- ldrh r6, [r1]
- adds r0, r6, 0
- bl SeedRng2
- movs r5, 0
- mov r0, r8
- lsls r0, 2
- mov r9, r0
- cmp r5, r4
- bge _081A9332
-_081A9318:
- bl Random2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r5, 0x1
- adds r0, r7, 0x1
- cmp r5, r0
- blt _081A9318
-_081A9332:
- ldr r0, =gUnknown_08613B3A
- ldr r1, [sp]
- adds r0, r1, r0
- ldrb r5, [r0]
- ldr r1, =gUnknown_08613ABC
- ldr r3, =gSpecialVar_0x8000
- ldr r4, =gSpecialVar_0x8001
- cmp r5, 0x3E
- bhi _081A935E
- lsls r2, r5, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r6, r0
- blt _081A935E
- adds r0, r2, r1
-_081A9350:
- adds r0, 0x2
- adds r5, 0x1
- cmp r5, 0x3E
- bhi _081A935E
- ldrb r2, [r0]
- cmp r6, r2
- bge _081A9350
-_081A935E:
- mov r0, r10
- cmp r0, 0
- beq _081A9394
- ldr r2, =gUnknown_0861392C
- b _081A9396
- .pool
-_081A9394:
- ldr r2, =gUnknown_0861379C
-_081A9396:
- lsls r0, r5, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- mov r1, r9
- add r1, r8
- lsls r1, 2
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r0, 0x1
- strh r0, [r4]
- 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 CalculateBattlePyramidItemBallItemId
-
- thumb_func_start sub_81A93C8
-sub_81A93C8: @ 81A93C8
- push {r4,r5,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r3, r0, r1
- movs r2, 0
- ldr r4, =gScriptLastTalked
- b _081A93F4
- .pool
-_081A93E4:
- adds r2, 0x1
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _081A940A
-_081A93F4:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r3
- ldrb r0, [r1]
- ldrh r5, [r4]
- cmp r0, r5
- bne _081A93E4
- ldr r0, =0x00007fff
- strh r0, [r1, 0x4]
- strh r0, [r1, 0x6]
-_081A940A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A93C8
-
- thumb_func_start sub_81A9414
-sub_81A9414: @ 81A9414
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gBattleFrontierTrainers
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A9414
-
- thumb_func_start sub_81A9424
-sub_81A9424: @ 81A9424
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- movs r7, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0
- mov r8, r1
- ldr r2, =gUnknown_02037350
- ldr r0, =gUnknown_03005DF0
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- bl sub_81A9AA8
- lsls r0, 16
- lsrs r5, r0, 16
- movs r6, 0
- ldr r2, =gUnknown_08613C1C
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A9488
- ldrb r2, [r2, 0x1]
- mov r9, r2
- b _081A94AE
- .pool
-_081A9488:
- adds r6, 0x1
- cmp r6, 0x31
- bhi _081A94AE
- ldr r4, =gUnknown_08613C1C
- lsls r3, r6, 1
- adds r2, r3, r4
- ldr r0, =gUnknown_0203BC88
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r5
- adds r0, r1
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081A9488
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- mov r9, r0
-_081A94AE:
- ldr r3, =gUnknown_08613ED8
- ldr r2, =gUnknown_02037350
- ldr r0, =gUnknown_03005DF0
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- subs r0, 0x1
- adds r0, r3
- ldrb r0, [r0]
- str r0, [sp]
- movs r6, 0
- mov r3, r9
- lsls r3, 2
- mov r9, r3
-_081A94D0:
- ldr r0, [sp]
- cmp r0, 0x8
- bls _081A94D8
- b _081A95E8
-_081A94D8:
- lsls r0, 2
- ldr r1, =_081A94FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A94FC:
- .4byte _081A9520
- .4byte _081A9530
- .4byte _081A9572
- .4byte _081A95B4
- .4byte _081A95BA
- .4byte _081A95C0
- .4byte _081A95C6
- .4byte _081A95D2
- .4byte _081A95DE
-_081A9520:
- mov r0, sp
- movs r1, 0x8
- movs r2, 0
- bl sub_81A9998
- lsls r0, 24
- lsrs r7, r0, 24
- b _081A95EE
-_081A9530:
- movs r6, 0
- ldr r2, =0x7fff0000
- mov r4, r8
- adds r4, 0x4
- mov r5, r8
- b _081A9560
- .pool
-_081A9540:
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3B
- bne _081A955A
- movs r1, 0
- ldrsh r0, [r4, r1]
- asrs r1, r2, 16
- cmp r0, r1
- beq _081A955A
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- cmp r0, r1
- beq _081A955A
- adds r7, 0x1
-_081A955A:
- adds r4, 0x18
- adds r5, 0x18
- adds r6, 0x1
-_081A9560:
- str r2, [sp, 0x4]
- bl sub_81AAA40
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r0
- blt _081A9540
- b _081A95EE
-_081A9572:
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r7, [r0, 0x1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e2a
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, =gBitTable
- movs r6, 0x7
-_081A958E:
- ldr r0, [r1]
- ands r0, r2
- cmp r0, 0
- beq _081A9598
- subs r7, 0x1
-_081A9598:
- adds r1, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _081A958E
- b _081A95EE
- .pool
-_081A95B4:
- mov r0, sp
- movs r1, 0x8
- b _081A95D6
-_081A95BA:
- mov r0, sp
- movs r1, 0x8
- b _081A95CA
-_081A95C0:
- mov r0, sp
- movs r1, 0x10
- b _081A95D6
-_081A95C6:
- mov r0, sp
- movs r1, 0x10
-_081A95CA:
- movs r2, 0x1
- bl sub_81A9998
- b _081A95E8
-_081A95D2:
- mov r0, sp
- movs r1, 0x18
-_081A95D6:
- movs r2, 0x2
- bl sub_81A9998
- b _081A95E8
-_081A95DE:
- mov r0, sp
- movs r1, 0x18
- movs r2, 0x1
- bl sub_81A9998
-_081A95E8:
- cmp r6, 0
- bne _081A95EE
- b _081A94D0
-_081A95EE:
- ldr r1, =gUnknown_08613EC0
- add r1, r9
- ldr r0, [sp]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- bl box_related_two__2
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9424
-
- thumb_func_start sub_81A9618
-sub_81A9618: @ 81A9618
- push {r4,r5,lr}
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r2, r0, 29
- ldr r4, =0x00000e1a
- adds r1, r4
- adds r1, r2
- ldrh r3, [r1]
- ldr r0, =0x000003e6
- cmp r3, r0
- bhi _081A963A
- adds r0, r3, 0x1
- strh r0, [r1]
-_081A963A:
- ldr r0, [r5]
- adds r1, r0, r4
- adds r1, r2
- ldr r3, =0x00000e1e
- adds r0, r3
- adds r0, r2
- ldrh r1, [r1]
- ldrh r2, [r0]
- cmp r1, r2
- bls _081A9650
- strh r1, [r0]
-_081A9650:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9618
-
- thumb_func_start sub_81A966C
-sub_81A966C: @ 81A966C
- push {r4,lr}
- ldr r4, =gScriptResult
- bl InBattlePyramid
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A966C
-
- thumb_func_start sub_81A9684
-sub_81A9684: @ 81A9684
- push {r4,lr}
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A9698
- cmp r0, 0x1
- beq _081A96B4
- b _081A9754
- .pool
-_081A9698:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r2, =0x00000e68
- adds r0, r2
- strb r1, [r0]
- b _081A9754
- .pool
-_081A96B4:
- ldr r4, =gScriptResult
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _081A9710
- cmp r0, 0x1
- bgt _081A9754
- cmp r0, 0
- bne _081A9754
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081A9754
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e68
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x77
- bls _081A96F4
- movs r0, 0x78
- strb r0, [r1]
- b _081A96FC
- .pool
-_081A96F4:
- ldr r0, =gSpecialVar_0x8007
- ldrh r0, [r0]
- bl PlaySE
-_081A96FC:
- ldr r1, =gScriptResult
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081A9754
- .pool
-_081A9710:
- ldr r1, =gSpecialVar_0x8005
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A9750
- subs r0, 0x1
- strh r0, [r1]
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- ldr r2, =0x00000e68
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r3]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x78
- bls _081A973E
- movs r0, 0x78
- strb r0, [r1]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081A973E:
- bl door_upload_tiles
- b _081A9754
- .pool
-_081A9750:
- movs r0, 0x2
- strh r0, [r4]
-_081A9754:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A9684
-
- thumb_func_start sub_81A975C
-sub_81A975C: @ 81A975C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- movs r0, 0x64
- mov r9, r0
- ldr r1, =gPlayerParty
- mov r8, r1
-_081A9776:
- movs r4, 0
- adds r7, r5, 0x1
- mov r6, r9
- muls r6, r5
-_081A977E:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r4, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _081A97A2
- subs r0, 0x1
- cmp r0, r5
- bne _081A97A2
- mov r1, r8
- adds r0, r6, r1
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081A97A2:
- adds r4, 0x1
- cmp r4, 0x3
- ble _081A977E
- adds r5, r7, 0
- cmp r5, 0x5
- ble _081A9776
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A975C
-
- thumb_func_start sub_81A97C8
-sub_81A97C8: @ 81A97C8
- push {lr}
- ldr r0, =sub_81A97DC
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A97C8
-
- thumb_func_start sub_81A97DC
-sub_81A97DC: @ 81A97DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081A980C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 5
- ldr r1, =gUnknown_08D856C8
- adds r0, r1
- ldr r1, =gPlttBufferUnfaded + 0xC0
- movs r2, 0x10
- bl CpuSet
- adds r0, r4, 0
- bl DestroyTask
-_081A980C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A97DC
-
- thumb_func_start sub_81A9828
-sub_81A9828: @ 81A9828
- push {lr}
- bl sub_809FDD4
- pop {r0}
- bx r0
- thumb_func_end sub_81A9828
-
- thumb_func_start sub_81A9834
-sub_81A9834: @ 81A9834
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- str r0, [sp]
-_081A9844:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, [sp]
- lsls r1, r2, 1
- ldr r5, =0x00000caa
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- subs r5, r0, 0x1
- movs r0, 0
- str r0, [sp, 0x4]
- movs r2, 0x64
- adds r1, r5, 0
- muls r1, r2
- str r1, [sp, 0x8]
- movs r0, 0x8E
- lsls r0, 2
- adds r6, r1, r0
- movs r1, 0
- str r1, [sp, 0x10]
-_081A986C:
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- ldr r3, =gPlayerParty
- ldr r1, [sp, 0x10]
- adds r0, r1, r3
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x14]
- bl GetMonData
- ldr r3, [sp, 0x14]
- cmp r4, r0
- bne _081A993C
- movs r6, 0
- adds r2, r5, 0x1
- str r2, [sp, 0xC]
- movs r1, 0x64
- adds r0, r5, 0
- muls r0, r1
- movs r5, 0x8E
- lsls r5, 2
- adds r5, r0
- mov r9, r5
- ldr r7, [sp, 0x4]
- muls r7, r1
- mov r10, r3
-_081A98AC:
- movs r5, 0
- adds r0, r6, 0x1
- mov r8, r0
- b _081A98C6
- .pool
-_081A98C4:
- adds r5, 0x1
-_081A98C6:
- cmp r5, 0x3
- bgt _081A98EE
- ldr r1, =gSaveBlock1Ptr
- ldr r0, [r1]
- add r0, r9
- adds r1, r5, 0
- adds r1, 0xD
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- adds r1, r6, 0
- adds r1, 0xD
- mov r2, r10
- adds r0, r7, r2
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _081A98C4
-_081A98EE:
- cmp r5, 0x4
- bne _081A9900
- lsls r2, r6, 24
- lsrs r2, 24
- mov r5, r10
- adds r0, r7, r5
- movs r1, 0xA6
- bl SetMonMoveSlot
-_081A9900:
- mov r6, r8
- cmp r6, 0x3
- ble _081A98AC
- ldr r1, =gSaveBlock1Ptr
- ldr r0, [r1]
- ldr r2, [sp, 0x8]
- adds r0, r2
- movs r5, 0x8E
- lsls r5, 2
- adds r0, r5
- ldr r1, =gPlayerParty
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- movs r2, 0x64
- bl memcpy
- ldr r0, =gUnknown_0203CEF8
- ldr r5, [sp, 0x4]
- adds r0, r5, r0
- mov r1, sp
- ldrb r1, [r1, 0xC]
- strb r1, [r0]
- b _081A994C
- .pool
-_081A993C:
- ldr r2, [sp, 0x10]
- adds r2, 0x64
- str r2, [sp, 0x10]
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x4]
- cmp r0, 0x2
- ble _081A986C
-_081A994C:
- ldr r1, [sp]
- adds r1, 0x1
- str r1, [sp]
- cmp r1, 0x2
- bgt _081A9958
- b _081A9844
-_081A9958:
- movs r2, 0
- str r2, [sp]
- ldr r4, =gSaveBlock2Ptr
- ldr r3, =0x00000caa
- ldr r2, =gUnknown_0203CEF8
-_081A9962:
- ldr r1, [r4]
- ldr r5, [sp]
- lsls r0, r5, 1
- adds r1, r3
- adds r1, r0
- adds r0, r5, r2
- ldrb r0, [r0]
- strh r0, [r1]
- adds r5, 0x1
- str r5, [sp]
- cmp r5, 0x2
- ble _081A9962
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9834
-
- thumb_func_start sub_81A9998
-sub_81A9998: @ 81A9998
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r4, 0
- ldr r0, =gUnknown_03005DC0
- ldr r5, [r0, 0x8]
- ldr r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, 0xE
- adds r5, r0
- movs r3, 0
- ldr r0, =0x000003ff
- mov r8, r0
- ldr r1, =0x0000028e
- mov r12, r1
- ldr r0, =gUnknown_02037350
- mov r9, r0
-_081A99CC:
- movs r2, 0
-_081A99CE:
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- cmp r0, r12
- bne _081A9A8A
- adds r2, 0x7
- ldr r0, =gUnknown_03005DF0
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r5, 0xC
- ldrsh r1, [r0, r5]
- subs r2, r1
- adds r1, r3, 0x7
- movs r3, 0xE
- ldrsh r0, [r0, r3]
- subs r3, r1, r0
- cmp r2, r6
- bge _081A9A0E
- negs r0, r6
- cmp r2, r0
- ble _081A9A0E
- cmp r3, r6
- bge _081A9A0E
- cmp r3, r0
- ble _081A9A0E
- cmp r7, 0
- bne _081A9A84
-_081A9A0E:
- cmp r2, 0
- ble _081A9A34
- cmp r3, 0
- ble _081A9A34
- movs r4, 0x3
- cmp r2, r3
- blt _081A9A7C
- movs r4, 0x2
- b _081A9A7C
- .pool
-_081A9A34:
- cmp r2, 0
- bge _081A9A46
- cmp r3, 0
- bge _081A9A46
- movs r4, 0x1
- cmp r2, r3
- ble _081A9A7C
- movs r4, 0
- b _081A9A7C
-_081A9A46:
- cmp r2, 0
- bne _081A9A54
- movs r4, 0
- cmp r3, 0
- ble _081A9A7C
- movs r4, 0x3
- b _081A9A7C
-_081A9A54:
- cmp r3, 0
- bne _081A9A62
- movs r4, 0x1
- cmp r2, 0
- ble _081A9A7C
- movs r4, 0x2
- b _081A9A7C
-_081A9A62:
- cmp r2, 0
- bge _081A9A72
- adds r0, r2, r3
- movs r4, 0x1
- cmp r0, 0
- ble _081A9A7C
- movs r4, 0x3
- b _081A9A7C
-_081A9A72:
- adds r0, r2, r3
- mvns r0, r0
- asrs r4, r0, 31
- movs r0, 0x2
- ands r4, r0
-_081A9A7C:
- movs r0, 0
- mov r5, r10
- str r0, [r5]
- b _081A9A98
-_081A9A84:
- mov r0, r10
- str r7, [r0]
- b _081A9A98
-_081A9A8A:
- adds r2, 0x1
- cmp r2, 0x1F
- ble _081A99CE
- adds r5, 0x5E
- adds r3, 0x1
- cmp r3, 0x1F
- ble _081A99CC
-_081A9A98:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A9998
-
- thumb_func_start sub_81A9AA8
-sub_81A9AA8: @ 81A9AA8
- lsls r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- lsrs r0, 23
- adds r1, r0
- ldr r0, =0x00000cb2
- adds r1, r0
- ldrh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A9AA8
-
- thumb_func_start GetBattlePyramidTrainerFlag
-GetBattlePyramidTrainerFlag: @ 81A9AC4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r1, =0x00000e2a
- adds r2, r1
- ldr r4, =gBitTable
- ldr r3, =gUnknown_02037350
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r1, 0x8]
- subs r0, 0x1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- ands r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetBattlePyramidTrainerFlag
-
- thumb_func_start sub_81A9B04
-sub_81A9B04: @ 81A9B04
- push {lr}
- ldr r0, =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl sub_81A9B44
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _081A9B2E
- movs r0, 0x1
- bl sub_80B47E0
- ldr r1, =gUnknown_03005DF0
- strb r0, [r1]
- ldr r0, =gTrainerBattleOpponent_B
- ldrh r0, [r0]
- bl sub_81A9B44
-_081A9B2E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9B04
-
- thumb_func_start sub_81A9B44
-sub_81A9B44: @ 81A9B44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- movs r3, 0
- ldr r0, =gUnknown_02037350
- mov r12, r0
- ldr r6, =gUnknown_03005DF0
- ldr r1, =gSaveBlock1Ptr
- mov r10, r1
- ldr r7, =gSaveBlock2Ptr
- mov r9, r7
- ldr r0, =0x00000cb4
- mov r8, r0
- ldr r4, =gBitTable
-_081A9B68:
- mov r1, r9
- ldr r2, [r1]
- lsls r0, r3, 1
- mov r7, r8
- adds r1, r2, r7
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r5
- bne _081A9B86
- ldr r1, =0x00000e2a
- adds r0, r2, r1
- ldr r1, [r4]
- ldrb r2, [r0]
- orrs r1, r2
- strb r1, [r0]
-_081A9B86:
- adds r4, 0x4
- adds r3, 0x1
- cmp r3, 0x7
- ble _081A9B68
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- movs r3, 0x2
- strb r3, [r0, 0x6]
- mov r7, r10
- ldr r2, [r7]
- ldr r0, =gScriptLastTalked
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- ldr r1, =0x00000c79
- adds r2, r1
- strb r3, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x10]
- strh r1, [r0, 0xC]
- ldrb r1, [r6]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0xE]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9B44
-
- thumb_func_start sub_81A9C04
-sub_81A9C04: @ 81A9C04
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r5, r0, 30
- lsls r0, r5, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bls _081A9C3A
- movs r0, 0x13
-_081A9C3A:
- cmp r5, 0
- beq _081A9C54
- ldr r1, =gBattlePyramidOpenLevelWildMonPointers
- b _081A9C56
- .pool
-_081A9C54:
- ldr r1, =gBattlePyramidLevel50WildMonPointers
-_081A9C56:
- lsls r0, 2
- adds r0, r1
- ldr r6, [r0]
- ldr r4, =gEnemyParty
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- subs r0, 0x1
- str r0, [sp, 0x10]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r6, r2
- adds r0, r4, 0
- movs r1, 0xB
- bl SetMonData
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- mov r0, sp
- bl GetSpeciesName
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl SetMonData
- cmp r5, 0
- beq _081A9CD4
- bl sub_8165C40
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- subs r5, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x5
- adds r5, r0
- b _081A9CF6
- .pool
-_081A9CD4:
- bl Random
- ldr r2, [sp, 0x10]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- ldrb r4, [r1, 0x2]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x5
- adds r5, r4, r0
-_081A9CF6:
- ldr r4, =gEnemyParty
- ldr r2, =gBaseStats
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- adds r2, r1, 0
- muls r2, r0
- lsls r0, r5, 2
- ldr r1, =gExperienceTables
- adds r0, r1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x3]
- cmp r1, 0
- blt _081A9D4C
- cmp r1, 0x1
- bgt _081A9D4C
- adds r2, r0, 0x3
- b _081A9D7C
- .pool
-_081A9D4C:
- ldr r2, =gBaseStats
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x17]
- cmp r0, 0
- beq _081A9D90
- ldr r4, =gEnemyParty
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- movs r1, 0x1
- ands r1, r0
- str r1, [sp, 0xC]
- add r2, sp, 0xC
-_081A9D7C:
- adds r0, r4, 0
- movs r1, 0x2E
- bl SetMonData
- b _081A9D9C
- .pool
-_081A9D90:
- str r0, [sp, 0xC]
- ldr r0, =gEnemyParty
- add r2, sp, 0xC
- movs r1, 0x2E
- bl SetMonData
-_081A9D9C:
- movs r0, 0
- str r0, [sp, 0xC]
- movs r2, 0
- lsls r4, r5, 1
-_081A9DA4:
- ldr r1, [sp, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- lsls r1, r2, 1
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gEnemyParty
- bl SetMonMoveSlot
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- str r0, [sp, 0xC]
- adds r2, r0, 0
- cmp r2, 0x3
- ble _081A9DA4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e1a
- adds r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x8B
- bls _081A9E0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0xF
- str r0, [sp, 0x10]
- movs r0, 0
- str r0, [sp, 0xC]
-_081A9DF6:
- adds r1, r0, 0
- adds r1, 0x27
- ldr r0, =gEnemyParty
- add r2, sp, 0x10
- bl SetMonData
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- str r0, [sp, 0xC]
- cmp r0, 0x5
- ble _081A9DF6
-_081A9E0C:
- ldr r0, =gEnemyParty
- bl CalculateMonStats
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9C04
-
- thumb_func_start sub_81A9E28
-sub_81A9E28: @ 81A9E28
- push {lr}
- bl sub_81AA9E4
- lsls r0, 24
- ldr r1, =gUnknown_08613650
- lsrs r0, 20
- adds r0, r1
- ldrb r0, [r0, 0x4]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9E28
-
- thumb_func_start InBattlePyramid
-InBattlePyramid: @ 81A9E40
- push {lr}
- ldr r0, =gUnknown_02037318
- ldrh r1, [r0, 0x12]
- ldr r0, =0x00000169
- cmp r1, r0
- bne _081A9E58
- movs r0, 0x1
- b _081A9E66
- .pool
-_081A9E58:
- movs r0, 0xBD
- lsls r0, 1
- cmp r1, r0
- beq _081A9E64
- movs r0, 0
- b _081A9E66
-_081A9E64:
- movs r0, 0x2
-_081A9E66:
- pop {r1}
- bx r1
- thumb_func_end InBattlePyramid
-
- thumb_func_start sub_81A9E6C
-sub_81A9E6C: @ 81A9E6C
- push {lr}
- movs r2, 0
- ldr r0, =gUnknown_02037318
- ldrh r1, [r0, 0x12]
- ldr r0, =0x00000169
- cmp r1, r0
- beq _081A9E80
- adds r0, 0x11
- cmp r1, r0
- bne _081A9E82
-_081A9E80:
- movs r2, 0x1
-_081A9E82:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9E6C
-
- thumb_func_start sub_81A9E90
-sub_81A9E90: @ 81A9E90
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _081A9EB8
- bl sub_81A9834
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, =0x0000400e
- movs r1, 0
- bl VarSet
- bl copy_player_party_from_sav1
-_081A9EB8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9E90
-
- thumb_func_start sub_81A9EC8
-sub_81A9EC8: @ 81A9EC8
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- beq _081A9ED8
- bl DoSoftReset
-_081A9ED8:
- pop {r0}
- bx r0
- thumb_func_end sub_81A9EC8
-
- thumb_func_start sub_81A9EDC
-sub_81A9EDC: @ 81A9EDC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9EDC
-
- thumb_func_start sub_81A9EFC
-sub_81A9EFC: @ 81A9EFC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x18
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9EFC
-
- thumb_func_start sub_81A9F1C
-sub_81A9F1C: @ 81A9F1C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, =gUnknown_0203BC88
- movs r1, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0x24
- bl ConvertBattleFrontierTrainerSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9F1C
-
- thumb_func_start sub_81A9F3C
-sub_81A9F3C: @ 81A9F3C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0
- ldr r3, =gTrainerClassNameIndices
- ldr r1, =gUnknown_0203BC88
- ldr r2, [r1]
- movs r1, 0x34
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- ldrb r2, [r0]
- ldr r1, =gUnknown_08613B44
-_081A9F58:
- ldrb r0, [r1]
- cmp r0, r2
- bne _081A9F70
- ldrb r0, [r1, 0x1]
- b _081A9F7A
- .pool
-_081A9F70:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x35
- bls _081A9F58
- movs r0, 0
-_081A9F7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81A9F3C
-
- thumb_func_start sub_81A9F80
-sub_81A9F80: @ 81A9F80
- push {lr}
- ldr r0, =gUnknown_08252C88
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A9F80
-
- thumb_func_start sub_81A9F90
-sub_81A9F90: @ 81A9F90
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r1, =0x00000ca9
- adds r0, r4, r1
- ldrb r1, [r0]
- lsls r1, 30
- lsrs r1, 29
- ldr r2, =0x00000e1a
- adds r0, r4, r2
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =0x00000cb2
- adds r4, r1
- ldrh r1, [r4]
- cmp r1, 0x7
- bne _081AA020
- adds r0, 0x1
- lsls r7, r0, 24
- lsls r1, 24
- mov r8, r1
-_081A9FCC:
- lsrs r0, r7, 24
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r5
- bge _081AA004
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _081AA004
- adds r6, r1, 0
-_081A9FF0:
- adds r2, 0x1
- cmp r2, r5
- bge _081AA004
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _081A9FF0
-_081AA004:
- cmp r2, r5
- bne _081A9FCC
- b _081AA062
- .pool
-_081AA020:
- lsls r1, 24
- mov r8, r1
- lsls r7, r0, 24
-_081AA026:
- lsrs r0, r7, 24
- mov r2, r8
- lsrs r1, r2, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r5
- bge _081AA05E
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _081AA05E
- adds r6, r1, 0
-_081AA04A:
- adds r2, 0x1
- cmp r2, r5
- bge _081AA05E
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _081AA04A
-_081AA05E:
- cmp r2, r5
- bne _081AA026
-_081AA062:
- adds r0, r3, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A9F90
-
- thumb_func_start sub_81AA078
-sub_81AA078: @ 81AA078
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0xC]
- bl sub_81AA96C
- mov r4, sp
- adds r4, 0x1
- mov r0, sp
- adds r1, r4, 0
- bl sub_81AA33C
- movs r7, 0
-_081AA0A6:
- ldr r1, [sp, 0xC]
- adds r0, r1, r7
- ldrb r0, [r0]
- ldr r2, =0x00000169
- adds r0, r2
- lsls r0, 2
- ldr r1, =gUnknown_08481DD4
- adds r0, r1
- ldr r6, [r0]
- ldr r2, [r6, 0xC]
- mov r10, r2
- ldr r0, [sp, 0x4]
- ldr r1, =gUnknown_03005DC0
- str r0, [r1, 0x8]
- ldr r0, [r6]
- lsls r0, 2
- adds r2, r0, 0
- adds r2, 0xF
- str r2, [r1]
- ldr r0, [r6, 0x4]
- lsls r0, 2
- adds r0, 0xE
- str r0, [r1, 0x4]
- ldr r0, [sp, 0x4]
- mov r9, r0
- adds r1, r7, 0
- cmp r7, 0
- bge _081AA0E0
- adds r1, r7, 0x3
-_081AA0E0:
- asrs r1, 2
- ldr r4, [r6, 0x4]
- adds r0, r1, 0
- muls r0, r4
- adds r0, 0x7
- muls r2, r0
- lsls r1, 2
- subs r1, r7, r1
- ldr r3, [r6]
- adds r0, r1, 0
- muls r0, r3
- adds r0, 0x7
- adds r2, r0
- lsls r2, 1
- add r9, r2
- movs r1, 0
- mov r8, r1
- adds r2, r7, 0x1
- str r2, [sp, 0x10]
- cmp r8, r4
- bge _081AA1B6
-_081AA10A:
- movs r0, 0
- mov r12, r0
- mov r1, r8
- adds r1, 0x1
- str r1, [sp, 0x14]
- cmp r12, r3
- bge _081AA1A2
- ldr r2, =gSaveBlock1Ptr
- str r2, [sp, 0x18]
- mov r4, r9
- mov r5, r10
-_081AA120:
- ldrh r1, [r5]
- ldr r0, =0x000003ff
- ands r0, r1
- ldr r2, =0x0000028e
- cmp r0, r2
- bne _081AA194
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r7, r0
- beq _081AA194
- mov r0, sp
- ldrb r0, [r0]
- cmp r7, r0
- bne _081AA164
- ldr r1, [sp, 0x8]
- cmp r1, 0
- bne _081AA164
- ldr r2, [sp, 0x18]
- ldr r3, [r2]
- adds r2, r7, 0
- cmp r7, 0
- bge _081AA14E
- adds r2, r7, 0x3
-_081AA14E:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r7, r1
- ldr r0, [r6]
- muls r0, r1
- add r0, r12
- strh r0, [r3]
- ldr r0, [r6, 0x4]
- muls r0, r2
- add r0, r8
- strh r0, [r3, 0x2]
-_081AA164:
- ldrh r0, [r5]
- movs r1, 0xFC
- lsls r1, 8
- ands r1, r0
- ldr r2, =0x0000028d
- adds r0, r2, 0
- orrs r1, r0
- strh r1, [r4]
- ldr r3, [r6]
- b _081AA196
- .pool
-_081AA194:
- strh r1, [r4]
-_081AA196:
- adds r4, 0x2
- adds r5, 0x2
- movs r0, 0x1
- add r12, r0
- cmp r12, r3
- blt _081AA120
-_081AA1A2:
- lsls r0, r3, 3
- adds r0, 0x1E
- add r9, r0
- lsls r0, r3, 1
- add r10, r0
- ldr r1, [sp, 0x14]
- mov r8, r1
- ldr r0, [r6, 0x4]
- cmp r8, r0
- blt _081AA10A
-_081AA1B6:
- ldr r7, [sp, 0x10]
- cmp r7, 0xF
- bgt _081AA1BE
- b _081AA0A6
-_081AA1BE:
- bl mapheader_run_script_with_tag_x1
- ldr r0, [sp, 0xC]
- bl Free
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA078
-
- thumb_func_start sub_81AA1D8
-sub_81AA1D8: @ 81AA1D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- mov r6, sp
- adds r6, 0x1
- add r0, sp, 0x4
- mov r8, r0
- ldr r4, =gSaveBlock2Ptr
- ldr r3, =0x00000cb4
- ldr r0, =0x0000ffff
- adds r2, r0, 0
-_081AA1F2:
- ldr r0, [r4]
- lsls r1, r5, 1
- adds r0, r3
- adds r0, r1
- ldrh r1, [r0]
- orrs r1, r2
- strh r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _081AA1F2
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, sp
- adds r1, r6, 0
- bl sub_81AA33C
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0xC7
- lsls r0, 4
- adds r1, r0
- ldr r2, =0x05000180
- mov r0, r8
- bl CpuSet
- movs r5, 0
-_081AA22E:
- cmp r5, 0
- bne _081AA254
- ldr r1, =gUnknown_08613650
- lsls r0, r7, 4
- adds r0, r1
- ldrb r0, [r0, 0x3]
- b _081AA25C
- .pool
-_081AA254:
- ldr r1, =gUnknown_08613650
- lsls r0, r7, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
-_081AA25C:
- cmp r0, 0x4
- bhi _081AA2E4
- lsls r0, 2
- ldr r1, =_081AA274
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AA274:
- .4byte _081AA288
- .4byte _081AA292
- .4byte _081AA2A2
- .4byte _081AA2B0
- .4byte _081AA2CC
-_081AA288:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_81AA398
- b _081AA2E4
-_081AA292:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_81AA4D8
- b _081AA2BE
-_081AA2A2:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_81AA4D8
- b _081AA2BE
-_081AA2B0:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_81AA648
-_081AA2BE:
- lsls r0, 24
- cmp r0, 0
- beq _081AA2E4
- adds r0, r4, 0
- bl sub_81AA398
- b _081AA2E4
-_081AA2CC:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_81AA648
- lsls r0, 24
- cmp r0, 0
- beq _081AA2E4
- adds r0, r4, 0
- bl sub_81AA398
-_081AA2E4:
- adds r5, 0x1
- cmp r5, 0x1
- ble _081AA22E
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA1D8
-
- thumb_func_start sub_81AA2F8
-sub_81AA2F8: @ 81AA2F8
- push {r4,r5,lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r5, =gUnknown_08252C4F
- ldr r4, =gUnknown_08252C6A
- movs r2, 0xC8
- lsls r2, 4
- adds r1, r0, r2
- movs r3, 0xC7
- lsls r3, 4
- adds r2, r0, r3
- movs r3, 0x3F
-_081AA310:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x3B
- beq _081AA328
- str r5, [r1]
- b _081AA32A
- .pool
-_081AA328:
- str r4, [r1]
-_081AA32A:
- adds r1, 0x18
- adds r2, 0x18
- subs r3, 0x1
- cmp r3, 0
- bge _081AA310
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA2F8
-
- thumb_func_start sub_81AA33C
-sub_81AA33C: @ 81AA33C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000e28
- adds r0, r1, r2
- ldrh r2, [r0]
- movs r3, 0xF
- ands r2, r3
- strb r2, [r4]
- ldr r7, =0x00000e22
- adds r1, r7
- ldrh r0, [r1]
- ands r0, r3
- strb r0, [r6]
- cmp r2, r0
- bne _081AA386
- ldr r1, [r5]
- ldr r2, =0x00000e28
- adds r0, r1, r2
- ldrh r2, [r0]
- adds r3, r2, 0x1
- adds r0, r3, 0
- asrs r0, 4
- lsls r0, 4
- subs r0, r3, r0
- strb r0, [r4]
- adds r0, r1, r7
- ldrh r1, [r0]
- adds r2, r1, 0
- adds r2, 0xF
- adds r0, r2, 0
- asrs r0, 4
- lsls r0, 4
- subs r0, r2, r0
- strb r0, [r6]
-_081AA386:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AA33C
-
- thumb_func_start sub_81AA398
-sub_81AA398: @ 81AA398
- 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
- str r0, [sp]
- movs r5, 0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x8]
- bl sub_81AA96C
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e26
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0xF
- ands r4, r0
- ldr r0, [sp]
- cmp r0, 0
- bne _081AA3F0
- ldr r1, =gUnknown_08613650
- lsls r0, r6, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x4]
- b _081AA3FE
- .pool
-_081AA3F0:
- ldr r1, =gUnknown_08613650
- lsls r0, r6, 4
- adds r0, r1
- ldrb r1, [r0]
- mov r10, r1
- ldrb r0, [r0, 0x1]
- str r0, [sp, 0x4]
-_081AA3FE:
- movs r0, 0
- mov r8, r0
- cmp r8, r10
- bge _081AA4C0
-_081AA406:
- movs r1, 0x1
- add r1, r8
- mov r9, r1
- b _081AA42E
- .pool
-_081AA414:
- lsls r2, r4, 24
- lsrs r2, 24
- ldr r3, [sp, 0x4]
- add r3, r8
- lsls r3, 24
- lsrs r3, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA4B6
-_081AA42E:
- ldr r0, =gBitTable
- mov r12, r0
- ldr r6, =gSaveBlock2Ptr
- ldr r7, =0x00000e28
- movs r3, 0x2
- lsls r0, r4, 2
- mov r1, r12
- adds r2, r0, r1
-_081AA43E:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _081AA464
- ldr r0, [r6]
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _081AA474
- b _081AA472
- .pool
-_081AA464:
- ldr r0, [r6]
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _081AA474
-_081AA472:
- orrs r5, r3
-_081AA474:
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, 0xF
- ble _081AA480
- mov r2, r12
- movs r4, 0
-_081AA480:
- ldr r0, [r6]
- ldr r1, =0x00000e26
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0xF
- ands r1, r0
- cmp r4, r1
- bne _081AA4A6
- movs r1, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _081AA4A4
- movs r0, 0x6
- orrs r5, r0
- b _081AA4A6
- .pool
-_081AA4A4:
- orrs r5, r1
-_081AA4A6:
- adds r0, r5, 0
- ands r0, r3
- cmp r0, 0
- beq _081AA43E
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _081AA414
-_081AA4B6:
- movs r0, 0x1
- ands r5, r0
- mov r8, r9
- cmp r8, r10
- blt _081AA406
-_081AA4C0:
- ldr r0, [sp, 0x8]
- bl Free
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AA398
-
- thumb_func_start sub_81AA4D8
-sub_81AA4D8: @ 81AA4D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- movs r6, 0
- movs r7, 0
- movs r0, 0
- str r0, [sp, 0xC]
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x14]
- bl sub_81AA96C
- ldr r1, [sp]
- cmp r1, 0
- bne _081AA524
- ldr r1, =gUnknown_08613650
- lsls r0, r4, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- str r0, [sp, 0x10]
- movs r0, 0
- b _081AA530
- .pool
-_081AA524:
- ldr r1, =gUnknown_08613650
- lsls r0, r4, 4
- adds r0, r1
- ldrb r2, [r0]
- str r2, [sp, 0x10]
- ldrb r0, [r0, 0x1]
-_081AA530:
- movs r3, 0
- str r3, [sp, 0x8]
- ldr r1, [sp, 0x10]
- asrs r1, 31
- str r1, [sp, 0x18]
- ldr r2, [sp, 0x10]
- cmp r3, r2
- bge _081AA622
- str r0, [sp, 0x1C]
- adds r3, r0, 0
- lsls r3, 24
- mov r9, r3
-_081AA548:
- cmp r7, 0
- bne _081AA56E
- mov r0, r9
- lsrs r3, r0, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x4]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA568
- movs r7, 0x1
- b _081AA56E
- .pool
-_081AA568:
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0xC]
-_081AA56E:
- movs r0, 0x1
- ands r0, r7
- cmp r0, 0
- beq _081AA600
- ldr r2, =gUnknown_08613F46
- mov r8, r2
- ldr r3, [sp, 0x4]
- lsls r4, r3, 2
- adds r0, r6, r4
- add r0, r8
- ldrb r2, [r0]
- mov r0, r9
- lsrs r3, r0, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- bl sub_81AA760
- lsls r0, 24
- ldr r1, [sp, 0x1C]
- mov r10, r1
- adds r5, r4, 0
- cmp r0, 0
- beq _081AA5E8
- ldr r4, [sp, 0xC]
- adds r4, 0x1
- b _081AA5C2
- .pool
-_081AA5A8:
- adds r0, r6, r5
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r10
- lsls r3, r0, 24
- lsrs r3, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x14]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA5E0
-_081AA5C2:
- adds r6, 0x1
- ldr r0, =gUnknown_08613F46
- adds r1, r6, r5
- adds r1, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0xFF
- beq _081AA5D6
- cmp r6, 0x3
- ble _081AA5D8
-_081AA5D6:
- movs r6, 0
-_081AA5D8:
- adds r7, 0x2
- asrs r0, r7, 1
- cmp r0, 0x4
- bne _081AA5A8
-_081AA5E0:
- str r4, [sp, 0xC]
- b _081AA600
- .pool
-_081AA5E8:
- adds r6, 0x1
- adds r0, r6, r4
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081AA5F8
- cmp r6, 0x3
- ble _081AA5FA
-_081AA5F8:
- movs r6, 0
-_081AA5FA:
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0xC]
-_081AA600:
- asrs r0, r7, 1
- cmp r0, 0x4
- beq _081AA622
- movs r0, 0x1
- ands r7, r0
- ldr r2, [sp, 0x1C]
- adds r2, 0x1
- str r2, [sp, 0x1C]
- movs r3, 0x80
- lsls r3, 17
- add r9, r3
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- cmp r0, r1
- blt _081AA548
-_081AA622:
- movs r1, 0
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x18]
- subs r0, r2, r3
- asrs r0, 1
- ldr r2, [sp, 0xC]
- cmp r0, r2
- ble _081AA634
- movs r1, 0x1
-_081AA634:
- adds r0, r1, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA4D8
-
- thumb_func_start sub_81AA648
-sub_81AA648: @ 81AA648
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r6, r1, 24
- movs r4, 0
- movs r7, 0
- movs r0, 0
- mov r8, r0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x10
- bl AllocZeroed
- str r0, [sp, 0x8]
- bl sub_81AA96C
- ldr r1, [sp]
- cmp r1, 0
- bne _081AA694
- ldr r1, =gUnknown_08613650
- lsls r0, r5, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- mov r10, r0
- movs r0, 0
- b _081AA6A0
- .pool
-_081AA694:
- ldr r1, =gUnknown_08613650
- lsls r0, r5, 4
- adds r0, r1
- ldrb r2, [r0]
- mov r10, r2
- ldrb r0, [r0, 0x1]
-_081AA6A0:
- movs r3, 0
- str r3, [sp, 0x4]
- mov r1, r10
- asrs r1, 31
- str r1, [sp, 0xC]
- cmp r3, r10
- bge _081AA73E
- ldr r2, =gUnknown_08613F46
- mov r9, r2
- lsls r5, r6, 2
- lsls r6, r0, 24
-_081AA6B6:
- adds r0, r4, r5
- add r0, r9
- ldrb r2, [r0]
- lsrs r3, r6, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA714
- adds r7, 0x1
- b _081AA6EE
- .pool
-_081AA6D8:
- adds r0, r4, r5
- adds r0, r1
- ldrb r2, [r0]
- lsrs r3, r6, 24
- ldr r0, [sp]
- ldr r1, [sp, 0x8]
- bl sub_81AA760
- lsls r0, 24
- cmp r0, 0
- beq _081AA728
-_081AA6EE:
- adds r4, 0x1
- adds r0, r4, r5
- add r0, r9
- ldrb r0, [r0]
- ldr r1, =gUnknown_08613F46
- cmp r0, 0xFF
- beq _081AA700
- cmp r4, 0x3
- ble _081AA702
-_081AA700:
- movs r4, 0
-_081AA702:
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x4
- bne _081AA6D8
- b _081AA728
- .pool
-_081AA714:
- adds r4, 0x1
- adds r0, r4, r5
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _081AA724
- cmp r4, 0x3
- ble _081AA726
-_081AA724:
- movs r4, 0
-_081AA726:
- adds r7, 0x1
-_081AA728:
- mov r1, r8
- cmp r1, 0x4
- beq _081AA73E
- movs r2, 0x80
- lsls r2, 17
- adds r6, r2
- ldr r3, [sp, 0x4]
- adds r3, 0x1
- str r3, [sp, 0x4]
- cmp r3, r10
- blt _081AA6B6
-_081AA73E:
- movs r1, 0
- mov r2, r10
- ldr r3, [sp, 0xC]
- subs r0, r2, r3
- asrs r0, 1
- cmp r0, r7
- ble _081AA74E
- movs r1, 0x1
-_081AA74E:
- adds r0, r1, 0
- 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_81AA648
-
- thumb_func_start sub_81AA760
-sub_81AA760: @ 81AA760
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e22
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AA7D0
- movs r6, 0x7
-_081AA792:
- movs r4, 0x7
- lsls r5, r6, 24
-_081AA796:
- lsls r1, r4, 24
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- lsrs r2, r5, 24
- mov r3, r10
- bl sub_81AA810
- lsls r0, 24
- cmp r0, 0
- beq _081AA7CC
- subs r4, 0x1
- cmp r4, 0
- bge _081AA796
- subs r6, 0x1
- movs r1, 0x1
- negs r1, r1
- cmp r6, r1
- bgt _081AA792
- b _081AA7FC
- .pool
-_081AA7CC:
- movs r0, 0
- b _081AA7FE
-_081AA7D0:
- movs r6, 0
-_081AA7D2:
- movs r4, 0
- lsls r5, r6, 24
-_081AA7D6:
- lsls r1, r4, 24
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- lsrs r2, r5, 24
- mov r3, r10
- bl sub_81AA810
- lsls r0, 24
- cmp r0, 0
- beq _081AA7CC
- adds r4, 0x1
- cmp r4, 0x7
- ble _081AA7D6
- adds r6, 0x1
- cmp r6, 0x7
- ble _081AA7D2
-_081AA7FC:
- movs r0, 0x1
-_081AA7FE:
- 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_81AA760
-
- thumb_func_start sub_81AA810
-sub_81AA810: @ 81AA810
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r4, [sp, 0x34]
- ldr r5, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsls r5, 24
- lsrs r6, r5, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r1, r0, r1
- str r1, [sp, 0x8]
- add r3, r10
- ldrb r1, [r3]
- adds r1, 0x2C
- movs r0, 0x19
- bl get_mapheader_by_bank_and_number
- adds r5, r0, 0
- movs r7, 0
- ldr r1, [r5, 0x4]
- ldrb r2, [r1]
- cmp r7, r2
- bge _081AA95A
- movs r0, 0x3
- ands r0, r4
- lsls r0, 3
- str r0, [sp, 0xC]
-_081AA868:
- ldr r1, [r1, 0x4]
- lsls r2, r7, 1
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x4
- ldrsh r0, [r3, r4]
- ldr r1, [r5, 0x4]
- mov r12, r1
- mov r9, r2
- ldr r2, [sp, 0x4]
- cmp r0, r2
- bne _081AA950
- movs r4, 0x6
- ldrsh r0, [r3, r4]
- cmp r0, r8
- bne _081AA950
- ldr r0, [sp]
- cmp r0, 0
- bne _081AA896
- ldrb r0, [r3, 0x1]
- cmp r0, 0x3B
- bne _081AA8A2
-_081AA896:
- ldr r1, [sp]
- cmp r1, 0x1
- bne _081AA950
- ldrb r0, [r3, 0x1]
- cmp r0, 0x3B
- bne _081AA950
-_081AA8A2:
- movs r3, 0
- ldr r2, [r5, 0x4]
- mov r12, r2
- cmp r3, r6
- bge _081AA8DC
- ldr r4, [sp, 0x4]
- ldr r0, [sp, 0xC]
- adds r4, r0
- str r4, [sp, 0x10]
- mov r1, r10
- lsrs r0, r1, 2
- lsls r0, 3
- mov r2, r8
- adds r1, r2, r0
- ldr r2, [sp, 0x8]
- adds r2, 0x4
-_081AA8C2:
- movs r4, 0
- ldrsh r0, [r2, r4]
- ldr r4, [sp, 0x10]
- cmp r0, r4
- bne _081AA8D4
- movs r4, 0x2
- ldrsh r0, [r2, r4]
- cmp r0, r1
- beq _081AA8DC
-_081AA8D4:
- adds r2, 0x18
- adds r3, 0x1
- cmp r3, r6
- blt _081AA8C2
-_081AA8DC:
- cmp r3, r6
- bne _081AA950
- lsls r0, r6, 1
- mov r8, r0
- adds r0, r6
- lsls r0, 3
- ldr r1, [sp, 0x8]
- adds r5, r0, r1
- mov r3, r12
- ldr r2, [r3, 0x4]
- mov r4, r9
- adds r1, r4, r7
- lsls r1, 3
- adds r0, r5, 0
- adds r1, r2
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldrh r0, [r5, 0x4]
- ldr r1, [sp, 0xC]
- adds r0, r1
- strh r0, [r5, 0x4]
- mov r2, r10
- lsrs r0, r2, 2
- lsls r0, 3
- ldrh r3, [r5, 0x6]
- adds r0, r3
- strh r0, [r5, 0x6]
- adds r0, r6, 0x1
- strb r0, [r5]
- ldrb r0, [r5, 0x1]
- cmp r0, 0x3B
- beq _081AA940
- adds r0, r6, 0
- bl sub_81A9F90
- lsls r0, 16
- lsrs r7, r0, 16
- adds r4, r7, 0
- adds r0, r4, 0
- bl sub_81627A4
- strb r0, [r5, 0x1]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cb4
- adds r0, r1
- add r0, r8
- strh r4, [r0]
-_081AA940:
- movs r0, 0
- b _081AA95C
- .pool
-_081AA950:
- adds r7, 0x1
- mov r1, r12
- ldrb r2, [r1]
- cmp r7, r2
- blt _081AA868
-_081AA95A:
- movs r0, 0x1
-_081AA95C:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA810
-
- thumb_func_start sub_81AA96C
-sub_81AA96C: @ 81AA96C
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e22
- adds r1, r0, r2
- ldrh r4, [r1]
- ldr r1, =0x00000e24
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- orrs r4, r0
- bl sub_81AA9E4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r2, =gUnknown_08613655
- mov r12, r2
- movs r7, 0x7
-_081AA994:
- adds r2, r6, r3
- adds r0, r4, 0
- ands r0, r7
- lsls r1, r5, 4
- adds r0, r1
- add r0, r12
- ldrb r0, [r0]
- strb r0, [r2]
- asrs r4, 3
- cmp r3, 0x7
- bne _081AA9C0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000e26
- adds r0, r1, r2
- ldrh r4, [r0]
- ldr r0, =0x00000e28
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 16
- orrs r4, r0
- asrs r4, 8
-_081AA9C0:
- adds r3, 0x1
- cmp r3, 0xF
- ble _081AA994
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AA96C
-
- thumb_func_start sub_81AA9E4
-sub_81AA9E4: @ 81AA9E4
- push {r4,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r1, =0x00000e28
- adds r0, r4, r1
- ldrh r0, [r0]
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =0x00000cb2
- adds r4, r0
- ldrh r0, [r4]
- ldr r1, =gUnknown_08613794
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x21
- bhi _081AAA38
- ldr r1, =gUnknown_08613750
- lsls r0, r2, 1
- adds r0, r1
-_081AAA10:
- ldrb r1, [r0]
- cmp r3, r1
- bge _081AAA30
- ldrb r0, [r0, 0x1]
- b _081AAA3A
- .pool
-_081AAA30:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x21
- bls _081AAA10
-_081AAA38:
- movs r0, 0
-_081AAA3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81AA9E4
-
- thumb_func_start sub_81AAA40
-sub_81AAA40: @ 81AAA40
- push {lr}
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xC7
- lsls r1, 4
- adds r2, r0, r1
- movs r1, 0
- movs r3, 0xC7
- lsls r3, 4
- adds r0, r3
- b _081AAA6E
- .pool
-_081AAA5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bhi _081AAA74
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
-_081AAA6E:
- ldrb r0, [r0]
- cmp r0, 0
- bne _081AAA5C
-_081AAA74:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_81AAA40
-
- thumb_func_start sub_81AAA7C
-sub_81AAA7C: @ 81AAA7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
- lsls r1, r0, 2
- adds r1, r0
- movs r0, 0
- mov r12, r0
- lsls r4, r1, 1
- ldr r7, =0x00000e2c
- movs r6, 0
- ldr r5, =0x00000e54
- lsls r2, r1, 2
-_081AAA9E:
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, r7
- adds r1, r2
- strh r6, [r1]
- adds r1, r3, r4
- adds r0, r5
- adds r0, r1
- mov r1, r12
- strb r1, [r0]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x9
- ble _081AAA9E
- movs r0, 0x15
- movs r1, 0x1
- bl AddPyramidBagItem
- movs r0, 0x22
- movs r1, 0x1
- bl AddPyramidBagItem
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAA7C
-
- thumb_func_start CalculateBattlePyramidPickupItemId
-CalculateBattlePyramidPickupItemId: @ 81AAAE0
- push {r4-r6,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r2, =0x00000ca9
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r6, r0, 30
- lsls r0, r6, 1
- ldr r2, =0x00000e1a
- adds r1, r2
- adds r1, r0
- ldrh r0, [r1]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- ble _081AAB0A
- movs r4, 0x13
-_081AAB0A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, =gUnknown_08613F86
- ldrb r0, [r3]
- lsls r5, r4, 2
- cmp r0, r2
- bgt _081AAB36
-_081AAB28:
- adds r1, 0x1
- cmp r1, 0x9
- bhi _081AAB3A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- ble _081AAB28
-_081AAB36:
- cmp r1, 0x9
- bls _081AAB3C
-_081AAB3A:
- movs r1, 0x9
-_081AAB3C:
- cmp r6, 0
- bne _081AAB58
- ldr r2, =gUnknown_0861379C
- b _081AAB5A
- .pool
-_081AAB58:
- ldr r2, =gUnknown_0861392C
-_081AAB5A:
- lsls r1, 1
- adds r0, r5, r4
- lsls r0, 2
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CalculateBattlePyramidPickupItemId
-
- thumb_func_start ResetBagScrollPositions
-ResetBagScrollPositions: @ 81AAB70
- push {r4,lr}
- ldr r4, =gUnknown_0203CE58
- movs r0, 0
- strb r0, [r4, 0x5]
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0
- movs r2, 0xA
- bl memset
- adds r4, 0x12
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xA
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetBagScrollPositions
-
- thumb_func_start CB2_BagMenuFromStartMenu
-@ void CB2_BagMenuFromStartMenu()
-CB2_BagMenuFromStartMenu: @ 81AAB9C
- push {lr}
- ldr r2, =sub_8086194
- movs r0, 0
- movs r1, 0x5
- bl GoToBagMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_BagMenuFromStartMenu
-
- thumb_func_start sub_81AABB0
-sub_81AABB0: @ 81AABB0
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _081AABCC
- ldr r2, =sub_8059D50
- movs r0, 0x1
- movs r1, 0x5
- bl GoToBagMenu
- b _081AABD4
- .pool
-_081AABCC:
- ldr r1, =sub_8059D50
- movs r0, 0x1
- bl sub_81C4F98
-_081AABD4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AABB0
-
- thumb_func_start CB2_ChooseBerry
-CB2_ChooseBerry: @ 81AABDC
- push {lr}
- ldr r2, =sub_80861B0
- movs r0, 0x4
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_ChooseBerry
-
- thumb_func_start sub_81AABF0
-sub_81AABF0: @ 81AABF0
- push {lr}
- adds r2, r0, 0
- movs r0, 0x5
- movs r1, 0x3
- bl GoToBagMenu
- pop {r0}
- bx r0
- thumb_func_end sub_81AABF0
-
- thumb_func_start CB2_GoToSellMenu
-@ void CB2_GoToSellMenu()
-CB2_GoToSellMenu: @ 81AAC00
- push {lr}
- ldr r2, =CB2_ExitSellMenu
- movs r0, 0x3
- movs r1, 0x5
- bl GoToBagMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_GoToSellMenu
-
- thumb_func_start sub_81AAC14
-sub_81AAC14: @ 81AAC14
- push {lr}
- ldr r2, =sub_816B31C
- movs r0, 0x6
- movs r1, 0x5
- bl GoToBagMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAC14
-
- thumb_func_start sub_81AAC28
-sub_81AAC28: @ 81AAC28
- push {lr}
- ldr r2, =bag_menu_leave_maybe_3
- movs r0, 0x9
- movs r1, 0x5
- bl GoToBagMenu
- ldr r0, =gSpecialVar_0x8005
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAC28
-
- thumb_func_start sub_81AAC50
-sub_81AAC50: @ 81AAC50
- push {lr}
- ldr r2, =bag_menu_leave_maybe_2
- movs r0, 0x7
- movs r1, 0x5
- bl GoToBagMenu
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAC50
-
- thumb_func_start sub_81AAC70
-sub_81AAC70: @ 81AAC70
- push {lr}
- ldr r2, =bag_menu_leave_maybe
- movs r0, 0x8
- movs r1, 0x5
- bl GoToBagMenu
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AAC70
-
- thumb_func_start GoToBagMenu
-@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)())
-GoToBagMenu: @ 81AAC90
- push {r4-r7,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r6, =gUnknown_0203CE54
- ldr r0, =0x00000c48
- bl AllocZeroed
- str r0, [r6]
- cmp r0, 0
- bne _081AACBC
- adds r0, r4, 0
- bl SetMainCallback2
- b _081AAD3A
- .pool
-_081AACBC:
- ldr r0, =gUnknown_0203CE58
- cmp r5, 0xC
- beq _081AACC4
- strb r5, [r0, 0x4]
-_081AACC4:
- cmp r4, 0
- beq _081AACCA
- str r4, [r0]
-_081AACCA:
- cmp r7, 0x4
- bhi _081AACD0
- strb r7, [r0, 0x5]
-_081AACD0:
- ldrb r0, [r0, 0x4]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081AACF0
- ldr r2, [r6]
- ldr r0, =0x0000081b
- adds r2, r0
- ldrb r1, [r2]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_081AACF0:
- ldr r0, [r6]
- movs r1, 0
- str r1, [r0]
- ldr r1, =0x0000081a
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, =0x0000081e
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, =0x0000081f
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, =0x00000804
- adds r0, r1
- movs r1, 0xFF
- movs r2, 0xC
- bl memset
- ldr r0, [r6]
- movs r1, 0x81
- lsls r1, 4
- adds r0, r1
- movs r1, 0xFF
- movs r2, 0xA
- bl memset
- ldr r0, =CB2_Bag
- bl SetMainCallback2
-_081AAD3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GoToBagMenu
-
- thumb_func_start c2_bag_3
-c2_bag_3: @ 81AAD5C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end c2_bag_3
-
- thumb_func_start vblank_cb_bag_menu
-vblank_cb_bag_menu: @ 81AAD78
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end vblank_cb_bag_menu
-
- thumb_func_start CB2_Bag
-CB2_Bag: @ 81AAD8C
- push {lr}
-_081AAD8E:
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AADB2
- bl setup_bag_menu
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AADB2
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081AAD8E
-_081AADB2:
- pop {r0}
- bx r0
- thumb_func_end CB2_Bag
-
- thumb_func_start setup_bag_menu
-setup_bag_menu: @ 81AADB8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x14
- bls _081AADCE
- b _081AB02C
-_081AADCE:
- lsls r0, 2
- ldr r1, =_081AADE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AADE0:
- .4byte _081AAE34
- .4byte _081AAE3E
- .4byte _081AAE50
- .4byte _081AAE56
- .4byte _081AAE78
- .4byte _081AAE7E
- .4byte _081AAE86
- .4byte _081AAEA4
- .4byte _081AAECC
- .4byte _081AAEDA
- .4byte _081AAEEC
- .4byte _081AAEFA
- .4byte _081AAF0C
- .4byte _081AAF1C
- .4byte _081AAF54
- .4byte _081AAFA0
- .4byte _081AAFBC
- .4byte _081AAFC2
- .4byte _081AAFD8
- .4byte _081AAFDE
- .4byte _081AAFF8
-_081AAE34:
- bl SetVBlankHBlankCallbacksToNull
- bl clear_scheduled_bg_copies_to_vram
- b _081AB012
-_081AAE3E:
- bl remove_some_task
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAE50:
- bl FreeAllSpritePalettes
- b _081AB012
-_081AAE56:
- bl ResetPaletteFade
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAE78:
- bl ResetSpriteData
- b _081AB012
-_081AAE7E:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _081AB01A
-_081AAE86:
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- bne _081AAE94
- bl ResetTasks
-_081AAE94:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAEA4:
- bl bag_menu_init_bgs
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000834
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAECC:
- bl load_bag_menu_graphics
- lsls r0, 24
- cmp r0, 0
- bne _081AAED8
- b _081AB044
-_081AAED8:
- b _081AB012
-_081AAEDA:
- bl setup_bag_menu_textboxes
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAEEC:
- bl sub_81ABA6C
- bl sub_81ABAC4
- bl sub_81ABAE0
- b _081AB012
-_081AAEFA:
- bl allocate_bag_item_list_buffers
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAF0C:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- bl load_bag_item_list_buffers
- b _081AB012
- .pool
-_081AAF1C:
- ldr r1, =gUnknown_085E91FC
- ldr r4, =gUnknown_0203CE58
- ldrb r0, [r4, 0x5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl bag_menu_print_pocket_names
- movs r0, 0
- bl bag_menu_copy_pocket_name_to_window
- ldrb r0, [r4, 0x5]
- movs r1, 0x1
- bl bag_menu_draw_pocket_indicator_square
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAF54:
- ldr r4, =gUnknown_0203CE58
- ldrb r0, [r4, 0x4]
- bl sub_81AB1F0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_03006310
- ldrb r2, [r4, 0x5]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0x12
- adds r1, r2, r1
- ldrh r1, [r1]
- adds r4, 0x8
- adds r2, r4
- ldrh r2, [r2]
- bl ListMenuInit
- ldr r2, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x18]
- b _081AB012
- .pool
-_081AAFA0:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- bl AddBagVisualObject
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAFBC:
- bl sub_80D4FAC
- b _081AB012
-_081AAFC2:
- bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
- bl bag_menu_add_list_scroll_arrow_indicators_maybe
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAFD8:
- bl bag_menu_prepare_tmhm_move_window
- b _081AB012
-_081AAFDE:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _081AB01A
- .pool
-_081AAFF8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
-_081AB012:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
-_081AB01A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081AB044
- .pool
-_081AB02C:
- ldr r0, =vblank_cb_bag_menu
- bl SetVBlankCallback
- ldr r0, =c2_bag_3
- bl SetMainCallback2
- movs r0, 0x1
- b _081AB046
- .pool
-_081AB044:
- movs r0, 0
-_081AB046:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end setup_bag_menu
-
- thumb_func_start bag_menu_init_bgs
-bag_menu_init_bgs: @ 81AB050
- push {r4,lr}
- bl sub_8121DA0
- ldr r4, =gUnknown_0203CE54
- ldr r0, [r4]
- adds r0, 0x4
- movs r2, 0x80
- lsls r2, 4
- movs r1, 0
- bl memset
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08613F90
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0x2
- bl SetBgTilemapBuffer
- bl sub_8121E10
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_init_bgs
-
- thumb_func_start load_bag_menu_graphics
-load_bag_menu_graphics: @ 81AB0BC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gUnknown_0203CE54
- ldr r0, [r4]
- ldr r1, =0x00000834
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _081AB0D2
- b _081AB1CC
-_081AB0D2:
- lsls r0, 2
- ldr r1, =_081AB0E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AB0E8:
- .4byte _081AB0FC
- .4byte _081AB118
- .4byte _081AB13C
- .4byte _081AB174
- .4byte _081AB1A8
-_081AB0FC:
- bl reset_temp_tile_data_buffers
- ldr r1, =gUnknown_08D9A620
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _081AB1AE
- .pool
-_081AB118:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AB1E4
- ldr r0, =gUnknown_08D9A88C
- ldr r4, =gUnknown_0203CE54
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r1, [r4]
- b _081AB1B2
- .pool
-_081AB13C:
- bl IsWallysBag
- lsls r0, 24
- cmp r0, 0
- bne _081AB164
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _081AB164
- ldr r0, =gUnknown_08D9A5D4
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _081AB1AE
- .pool
-_081AB164:
- ldr r0, =gUnknown_08D9A588
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _081AB1AE
- .pool
-_081AB174:
- bl IsWallysBag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AB18A
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _081AB19C
-_081AB18A:
- ldr r0, =gUnknown_0857FB34
- bl LoadCompressedObjectPic
- b _081AB1AE
- .pool
-_081AB19C:
- ldr r0, =gUnknown_0857FB3C
- bl LoadCompressedObjectPic
- b _081AB1AE
- .pool
-_081AB1A8:
- ldr r0, =gUnknown_0857FB44
- bl LoadCompressedObjectPalette
-_081AB1AE:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
-_081AB1B2:
- ldr r0, =0x00000834
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081AB1E4
- .pool
-_081AB1CC:
- bl sub_8122328
- ldr r0, [r4]
- ldr r1, =0x00000834
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- movs r0, 0x1
- b _081AB1E6
- .pool
-_081AB1E4:
- movs r0, 0
-_081AB1E6:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end load_bag_menu_graphics
-
- thumb_func_start sub_81AB1F0
-sub_81AB1F0: @ 81AB1F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _081AB204
- ldr r0, =Task_WallyTutorialBagMenu
- b _081AB206
- .pool
-_081AB204:
- ldr r0, =Task_BagMenu
-_081AB206:
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81AB1F0
-
- thumb_func_start allocate_bag_item_list_buffers
-allocate_bag_item_list_buffers: @ 81AB218
- push {r4,lr}
- ldr r4, =gUnknown_0203CE74
- movs r0, 0x82
- lsls r0, 2
- bl Alloc
- str r0, [r4]
- ldr r4, =gUnknown_0203CE78
- movs r0, 0xC3
- lsls r0, 3
- bl Alloc
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end allocate_bag_item_list_buffers
-
- thumb_func_start load_bag_item_list_buffers
-@ void load_bag_item_list_buffers(int pocket_id)
-load_bag_item_list_buffers: @ 81AB240
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, r7, 3
- ldr r0, =gBagPockets
- adds r1, r0
- mov r8, r1
- ldr r0, =gUnknown_0203CE54
- ldr r2, [r0]
- ldr r1, =0x0000081b
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081AB2FC
- movs r6, 0
- ldr r3, =0x00000829
- adds r0, r2, r3
- adds r0, r7
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bge _081AB2B6
- ldr r5, =gUnknown_0203CE78
-_081AB276:
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- ldr r0, [r5]
- adds r0, r4
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r6, 2
- adds r1, r2
- ldrh r1, [r1]
- bl get_name
- ldr r0, =gUnknown_0203CE74
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r5]
- adds r0, r4
- str r0, [r1]
- str r6, [r1, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r3, =0x00000829
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- blt _081AB276
-_081AB2B6:
- ldr r5, =gUnknown_0203CE78
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gUnknown_085E8DB4
- bl StringCopy
- ldr r0, =gUnknown_0203CE74
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r5]
- adds r0, r4
- str r0, [r1]
- movs r0, 0x2
- negs r0, r0
- str r0, [r1, 0x4]
- b _081AB34A
- .pool
-_081AB2FC:
- movs r6, 0
- ldr r4, =0x00000829
- adds r0, r2, r4
- adds r0, r7
- ldrb r0, [r0]
- cmp r6, r0
- bcs _081AB34A
- ldr r5, =gUnknown_0203CE78
-_081AB30C:
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- ldr r0, [r5]
- adds r0, r4
- mov r1, r8
- ldr r2, [r1]
- lsls r1, r6, 2
- adds r1, r2
- ldrh r1, [r1]
- bl get_name
- ldr r0, =gUnknown_0203CE74
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r5]
- adds r0, r4
- str r0, [r1]
- str r6, [r1, 0x4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r3, =0x00000829
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- cmp r6, r0
- bcc _081AB30C
-_081AB34A:
- ldr r2, =gUnknown_03006310
- adds r1, r2, 0
- ldr r0, =gUnknown_08613F9C
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r4, =0x00000829
- adds r0, r1, r4
- adds r0, r7
- ldrb r0, [r0]
- strh r0, [r2, 0xC]
- ldr r0, =gUnknown_0203CE74
- ldr r0, [r0]
- str r0, [r2]
- ldr r5, =0x0000082e
- adds r1, r5
- adds r1, r7
- ldrb r0, [r1]
- strh r0, [r2, 0xE]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end load_bag_item_list_buffers
-
- thumb_func_start get_name
-@ void get_name(char *dest, int name_id)
-get_name: @ 81AB39C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x2
- beq _081AB3C0
- cmp r0, 0x3
- beq _081AB420
- adds r0, r5, 0
- adds r1, r6, 0
- bl CopyItemName
- b _081AB43E
- .pool
-_081AB3C0:
- ldr r4, =gStringVar2
- adds r0, r5, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0xA9
- lsls r0, 1
- cmp r5, r0
- bls _081AB408
- ldr r0, =gStringVar1
- ldr r2, =0xfffffeae
- adds r1, r5, r2
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_085E921A
- b _081AB438
- .pool
-_081AB408:
- ldr r0, =gStringVar1
- ldr r2, =0xfffffee0
- adds r1, r5, r2
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- b _081AB436
- .pool
-_081AB420:
- ldr r0, =gStringVar1
- adds r1, r5, 0
- subs r1, 0x84
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gStringVar2
- adds r0, r5, 0
- bl CopyItemName
-_081AB436:
- ldr r1, =gUnknown_085E9210
-_081AB438:
- adds r0, r6, 0
- bl StringExpandPlaceholders
-_081AB43E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end get_name
-
- thumb_func_start bag_menu_change_item_callback
-bag_menu_change_item_callback: @ 81AB450
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _081AB466
- movs r0, 0x5
- bl PlaySE
- bl ShakeBagVisual
-_081AB466:
- ldr r4, =gUnknown_0203CE54
- ldr r1, [r4]
- ldr r2, =0x0000081a
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081AB50C
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r1, [r0]
- lsls r1, 26
- lsrs r1, 30
- movs r0, 0x1
- eors r0, r1
- bl RemoveBagItemIconObject
- movs r0, 0x2
- negs r0, r0
- cmp r6, r0
- beq _081AB4C8
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r6, 16
- lsrs r1, 16
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [r4]
- ldr r2, =0x0000081b
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 26
- lsrs r1, 30
- bl AddBagItemIconObject
- b _081AB4DA
- .pool
-_081AB4C8:
- ldr r0, =0x0000ffff
- ldr r1, [r4]
- ldr r2, =0x0000081b
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 26
- lsrs r1, 30
- bl AddBagItemIconObject
-_081AB4DA:
- ldr r5, =gUnknown_0203CE54
- ldr r2, [r5]
- ldr r4, =0x0000081b
- adds r2, r4
- ldrb r3, [r2]
- lsls r0, r3, 26
- lsrs r0, 30
- movs r1, 0x1
- eors r1, r0
- lsls r1, 4
- movs r0, 0x31
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r5]
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081AB50C
- adds r0, r6, 0
- bl bag_menu_print_description_box_text
-_081AB50C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_change_item_callback
-
- thumb_func_start sub_81AB520
-@ void sub_81AB520(u8 rbox_id, int item_index_in_pocket, int a3)
-sub_81AB520: @ 81AB520
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- bne _081AB540
- b _081AB696
-_081AB540:
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x0000081a
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _081AB570
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r1, r0
- bne _081AB568
- adds r0, r7, 0
- movs r1, 0x2
- bl bag_menu_print_cursor
- b _081AB570
- .pool
-_081AB568:
- adds r0, r7, 0
- movs r1, 0xFF
- bl bag_menu_print_cursor
-_081AB570:
- ldr r5, =gUnknown_0203CE58
- ldrb r0, [r5, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r6, r0, 16
- ldrb r0, [r5, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl BagGetQuantityByPocketPosition
- lsls r0, 16
- lsrs r4, r0, 16
- mov r9, r4
- ldr r1, =0xfffffead
- adds r0, r6, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bhi _081AB5BE
- ldr r1, =gUnknown_08DC6378
- subs r3, r7, 0x1
- lsls r3, 16
- lsrs r3, 16
- movs r0, 0x10
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- movs r2, 0x8
- bl BlitBitmapToWindow
-_081AB5BE:
- ldrb r0, [r5, 0x5]
- cmp r0, 0x3
- bne _081AB610
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8DA0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x77
- bl GetStringRightAlignXOffset
- lsls r3, r0, 24
- lsrs r3, 24
- str r7, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- b _081AB652
- .pool
-_081AB610:
- cmp r0, 0x4
- beq _081AB66C
- adds r0, r6, 0
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081AB66C
- ldr r0, =gStringVar1
- mov r1, r9
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8DA0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x77
- bl GetStringRightAlignXOffset
- lsls r3, r0, 24
- lsrs r3, 24
- str r7, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- str r5, [sp, 0x10]
-_081AB652:
- mov r0, r8
- movs r1, 0x7
- adds r2, r4, 0
- bl bag_menu_print
- b _081AB696
- .pool
-_081AB66C:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00000496
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _081AB696
- cmp r0, r6
- bne _081AB696
- ldr r1, =gUnknown_086140A4
- subs r3, r7, 0x1
- lsls r3, 16
- lsrs r3, 16
- movs r0, 0x18
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- mov r0, r8
- movs r2, 0x60
- bl BlitBitmapToWindow
-_081AB696:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AB520
-
- thumb_func_start bag_menu_print_description_box_text
-@ void bag_menu_print_description_box_text(int a1)
-bag_menu_print_description_box_text: @ 81AB6B0
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081AB6E0
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _081AB6FC
- .pool
-_081AB6E0:
- ldr r0, =gStringVar1
- ldr r2, =gUnknown_085E9180
- ldr r1, =gUnknown_0203CE58
- ldrb r1, [r1, 0x4]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E91C0
- adds r0, r4, 0
- bl StringExpandPlaceholders
-_081AB6FC:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print_description_box_text
-
- thumb_func_start bag_menu_print_cursor_
-bag_menu_print_cursor_: @ 81AB73C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl bag_menu_print_cursor
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bag_menu_print_cursor_
-
- thumb_func_start bag_menu_print_cursor
-bag_menu_print_cursor: @ 81AB75C
- push {r4,r5,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0xFF
- bne _081AB798
- movs r0, 0x1
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- adds r3, r5, 0
- bl FillWindowPixelRect
- b _081AB7AE
-_081AB798:
- ldr r2, =gUnknown_085E8D60
- str r5, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- movs r3, 0
- bl bag_menu_print
-_081AB7AE:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print_cursor
-
- thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe
-bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 81AB7BC
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r5, =gUnknown_0203CE54
- ldr r4, [r5]
- ldr r1, =0x0000081e
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081AB80A
- ldr r2, =gUnknown_0203CE58
- ldrb r3, [r2, 0x5]
- ldr r6, =0x00000829
- adds r0, r4, r6
- adds r0, r3
- ldrb r1, [r0]
- adds r6, 0x5
- adds r0, r4, r6
- adds r0, r3
- ldrb r0, [r0]
- subs r1, r0
- str r1, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r2, 0x12
- adds r0, r2
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xAC
- movs r2, 0xC
- movs r3, 0x94
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r5]
- ldr r2, =0x0000081e
- adds r1, r2
- strb r0, [r1]
-_081AB80A:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe
-
- thumb_func_start sub_81AB824
-sub_81AB824: @ 81AB824
- push {r4,lr}
- ldr r4, =gUnknown_0203CE54
- ldr r0, [r4]
- ldr r2, =0x0000081e
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081AB842
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x0000081e
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_081AB842:
- bl sub_81AB89C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AB824
-
- thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe
-bag_menu_add_list_scroll_arrow_indicators_maybe: @ 81AB854
- push {r4,lr}
- ldr r4, =gUnknown_0203CE54
- ldr r2, [r4]
- ldr r1, =0x0000081b
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- beq _081AB882
- ldr r1, =0x0000081f
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081AB882
- ldr r0, =gUnknown_08614094
- ldr r1, =gUnknown_0203CE5E
- bl AddScrollIndicatorArrowPair
- ldr r1, [r4]
- ldr r2, =0x0000081f
- adds r1, r2
- strb r0, [r1]
-_081AB882:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe
-
- thumb_func_start sub_81AB89C
-sub_81AB89C: @ 81AB89C
- push {r4,lr}
- ldr r4, =gUnknown_0203CE54
- ldr r0, [r4]
- ldr r2, =0x0000081f
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081AB8BA
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x0000081f
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_081AB8BA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AB89C
-
- thumb_func_start free_bag_item_list_buffers
-free_bag_item_list_buffers: @ 81AB8C8
- push {lr}
- ldr r0, =gUnknown_0203CE78
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_0203CE74
- ldr r0, [r0]
- bl Free
- bl FreeAllWindowBuffers
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- bl Free
- pop {r0}
- bx r0
- .pool
- thumb_func_end free_bag_item_list_buffers
-
- thumb_func_start unknown_ItemMenu_Confirm
-unknown_ItemMenu_Confirm: @ 81AB8F8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- 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
- ldr r1, =task_close_bag_menu_2
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unknown_ItemMenu_Confirm
-
- thumb_func_start task_close_bag_menu_2
-task_close_bag_menu_2: @ 81AB930
- 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 r2, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081AB9A0
- ldrb r0, [r2]
- ldr r4, =gUnknown_0203CE58
- ldrb r2, [r4, 0x5]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0x12
- adds r1, r2, r1
- adds r3, r4, 0
- adds r3, 0x8
- adds r2, r3
- bl sub_81AE6C8
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r0, 0
- beq _081AB984
- bl SetMainCallback2
- b _081AB98A
- .pool
-_081AB984:
- ldr r0, [r4]
- bl SetMainCallback2
-_081AB98A:
- bl sub_81AB824
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl free_bag_item_list_buffers
- adds r0, r5, 0
- bl DestroyTask
-_081AB9A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_close_bag_menu_2
-
- thumb_func_start sub_81AB9A8
-sub_81AB9A8: @ 81AB9A8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, r5, 3
- ldr r0, =gBagPockets
- adds r4, r1, r0
- cmp r5, 0x3
- bgt _081AB9C8
- cmp r5, 0x2
- blt _081AB9C8
- adds r0, r4, 0
- bl sub_80D6FB4
- b _081AB9CE
- .pool
-_081AB9C8:
- adds r0, r4, 0
- bl sub_80D6F64
-_081AB9CE:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r6, =0x00000829
- adds r1, r6
- adds r1, r5
- movs r2, 0
- strb r2, [r1]
- adds r3, r0, 0
- ldrb r0, [r4, 0x4]
- cmp r2, r0
- bcs _081ABA12
- ldr r0, [r4]
- ldrh r0, [r0]
- cmp r0, 0
- beq _081ABA12
- adds r7, r3, 0
-_081AB9EE:
- ldr r0, [r7]
- adds r0, r6
- adds r0, r5
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrb r1, [r4, 0x4]
- cmp r2, r1
- bcs _081ABA12
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _081AB9EE
-_081ABA12:
- ldr r2, [r3]
- ldr r1, =0x0000081b
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081ABA2E
- ldr r0, =0x00000829
- adds r1, r2, r0
- adds r1, r5
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081ABA2E:
- ldr r1, [r3]
- ldr r2, =0x00000829
- adds r0, r1, r2
- adds r0, r5
- ldrb r2, [r0]
- cmp r2, 0x8
- bls _081ABA58
- ldr r3, =0x0000082e
- adds r0, r1, r3
- adds r0, r5
- movs r1, 0x8
- strb r1, [r0]
- b _081ABA60
- .pool
-_081ABA58:
- ldr r3, =0x0000082e
- adds r0, r1, r3
- adds r0, r5
- strb r2, [r0]
-_081ABA60:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AB9A8
-
- thumb_func_start sub_81ABA6C
-sub_81ABA6C: @ 81ABA6C
- push {r4,lr}
- movs r4, 0
-_081ABA70:
- adds r0, r4, 0
- bl sub_81AB9A8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _081ABA70
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81ABA6C
-
- thumb_func_start sub_81ABA88
-sub_81ABA88: @ 81ABA88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- ldr r2, =gUnknown_0203CE6A
- adds r4, r1, r2
- subs r2, 0xA
- adds r1, r2
- ldr r2, =gUnknown_0203CE54
- ldr r3, [r2]
- ldr r5, =0x0000082e
- adds r2, r3, r5
- adds r2, r0
- ldrb r2, [r2]
- subs r5, 0x5
- adds r3, r5
- adds r3, r0
- ldrb r3, [r3]
- adds r0, r4, 0
- bl sub_812225C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ABA88
-
- thumb_func_start sub_81ABAC4
-sub_81ABAC4: @ 81ABAC4
- push {r4,lr}
- movs r4, 0
-_081ABAC8:
- adds r0, r4, 0
- bl sub_81ABA88
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _081ABAC8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81ABAC4
-
- thumb_func_start sub_81ABAE0
-sub_81ABAE0: @ 81ABAE0
- push {r4-r7,lr}
- sub sp, 0x4
- movs r5, 0
- ldr r6, =gUnknown_0203CE6A
- adds r7, r6, 0
- subs r7, 0xA
-_081ABAEC:
- lsls r1, r5, 1
- adds r0, r1, r6
- adds r1, r7
- ldr r2, =gUnknown_0203CE54
- ldr r3, [r2]
- ldr r4, =0x0000082e
- adds r2, r3, r4
- adds r2, r5
- ldrb r2, [r2]
- subs r4, 0x5
- adds r3, r4
- adds r3, r5
- ldrb r3, [r3]
- movs r4, 0x8
- str r4, [sp]
- bl sub_8122298
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _081ABAEC
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ABAE0
-
- thumb_func_start sub_81ABB2C
-sub_81ABB2C: @ 81ABB2C
- lsls r0, 24
- ldr r1, =gUnknown_0203CE58
- lsrs r0, 23
- adds r2, r1, 0
- adds r2, 0x12
- adds r2, r0, r2
- adds r1, 0x8
- adds r0, r1
- ldrb r0, [r0]
- ldrb r2, [r2]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- bx lr
- .pool
- thumb_func_end sub_81ABB2C
-
- thumb_func_start DisplayItemMessage
-@ void DisplayItemMessage(u8 taskId, u8 fontId, u8 *str, void ( *callback)(u8 taskId))
-DisplayItemMessage: @ 81ABB4C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x10
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- mov r9, r3
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- movs r0, 0x4
- bl AddItemMessageWindow
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- bl sav2_get_text_speed
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0x14]
- str r6, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0xA
- movs r3, 0xD
- bl DisplayMessageAndContinueTask
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DisplayItemMessage
-
- thumb_func_start bag_menu_inits_lists_menu
-bag_menu_inits_lists_menu: @ 81ABBBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, =gTasks + 0x8
- adds r5, r0
- ldr r7, =gUnknown_0203CE58
- ldrb r4, [r7, 0x5]
- lsls r4, 1
- movs r0, 0x12
- adds r0, r7
- mov r8, r0
- add r8, r4
- adds r0, r7, 0
- adds r0, 0x8
- adds r4, r0
- movs r0, 0x4
- bl bag_menu_RemoveBagItem_message_window
- ldrb r0, [r5]
- mov r1, r8
- adds r2, r4, 0
- bl sub_81AE6C8
- ldrb r0, [r7, 0x5]
- bl sub_81AB9A8
- ldrb r0, [r7, 0x5]
- bl sub_81ABA88
- ldrb r0, [r7, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- mov r2, r8
- ldrh r1, [r2]
- ldrh r2, [r4]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl set_callback3_to_bag
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_inits_lists_menu
-
- thumb_func_start sub_81ABC3C
-sub_81ABC3C: @ 81ABC3C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl bag_menu_add_window
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_81ABC54
- pop {r0}
- bx r0
- thumb_func_end sub_81ABC3C
-
- thumb_func_start sub_81ABC54
-sub_81ABC54: @ 81ABC54
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- movs r3, 0x2
- cmp r0, 0x3
- bne _081ABC6C
- movs r3, 0x3
-_081ABC6C:
- ldr r0, =gStringVar1
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8DA0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x28
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ABC54
-
- thumb_func_start sub_81ABCC0
-sub_81ABCC0: @ 81ABCC0
- push {r4-r7,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r7, r2, 0
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- movs r3, 0x2
- cmp r0, 0x3
- bne _081ABCD4
- movs r3, 0x3
-_081ABCD4:
- ldr r0, =gStringVar1
- movs r2, 0x2
- bl ConvertIntToDecimalStringN
- ldr r6, =gStringVar4
- ldr r1, =gUnknown_085E8DA0
- adds r0, r6, 0
- bl StringExpandPlaceholders
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r6, 0
- movs r3, 0
- bl PrintTextOnWindow
- str r5, [sp]
- adds r0, r4, 0
- movs r1, 0x26
- movs r2, 0x1
- adds r3, r7, 0
- bl PrintMoneyAmount
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ABCC0
-
- thumb_func_start Task_BagMenu
-Task_BagMenu: @ 81ABD28
- 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 r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- str r0, [sp]
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- ldr r5, =gUnknown_0203CE58
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r5, 0
- adds r1, 0x12
- adds r7, r0, r1
- subs r1, 0xA
- adds r0, r1
- mov r8, r0
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081ABD66
- b _081ABEB2
-_081ABD66:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081ABD74
- b _081ABEB2
-_081ABD74:
- bl GetSwitchBagPocketDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081ABDB8
- cmp r0, 0x2
- beq _081ABDC0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- cmp r0, 0
- beq _081ABE10
- bl sub_81AC2C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081ABDA4
- b _081ABEB2
-_081ABDA4:
- b _081ABDCC
- .pool
-_081ABDB8:
- movs r1, 0x1
- negs r1, r1
- mov r0, r9
- b _081ABDC4
-_081ABDC0:
- mov r0, r9
- movs r1, 0x1
-_081ABDC4:
- movs r2, 0
- bl SwitchBagPocket
- b _081ABEB2
-_081ABDCC:
- ldrb r0, [r6]
- adds r1, r7, 0
- mov r2, r8
- bl get_coro_args_x18_x1A
- ldrh r2, [r7]
- mov r3, r8
- ldrh r0, [r3]
- adds r2, r0
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =gUnknown_0203CE58
- ldr r3, =0x00000829
- adds r0, r3
- ldrb r1, [r1, 0x5]
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r2, r0
- beq _081ABEB2
- movs r0, 0x5
- bl PlaySE
- mov r0, r9
- bl bag_menu_swap_items
- b _081ABEB2
- .pool
-_081ABE10:
- ldrb r0, [r6]
- bl ListMenuHandleInput
- adds r4, r0, 0
- ldrb r0, [r6]
- adds r1, r7, 0
- mov r2, r8
- bl get_coro_args_x18_x1A
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081ABE32
- adds r0, 0x1
- cmp r4, r0
- bne _081ABE68
- b _081ABEB2
-_081ABE32:
- ldrb r0, [r5, 0x4]
- cmp r0, 0x5
- bne _081ABE40
- movs r0, 0x20
- bl PlaySE
- b _081ABEB2
-_081ABE40:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CE7C
- mov r1, r10
- strh r1, [r0]
- ldr r0, =gTasks + 0x8
- subs r0, 0x8
- ldr r3, [sp]
- adds r0, r3, r0
- ldr r1, =unknown_ItemMenu_Confirm
- str r1, [r0]
- b _081ABEB2
- .pool
-_081ABE68:
- movs r0, 0x5
- bl PlaySE
- bl sub_81AB824
- ldrb r0, [r6]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- strh r4, [r6, 0x2]
- ldrb r0, [r5, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl BagGetQuantityByPocketPosition
- strh r0, [r6, 0x4]
- ldrb r0, [r5, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl BagGetItemIdByPocketPosition
- ldr r1, =gUnknown_0203CE7C
- strh r0, [r1]
- ldr r1, =gUnknown_08614054
- ldrb r0, [r5, 0x4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- bl _call_via_r1
-_081ABEB2:
- 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 Task_BagMenu
-
- thumb_func_start set_callback3_to_bag
-set_callback3_to_bag: @ 81ABECC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
- bl bag_menu_add_list_scroll_arrow_indicators_maybe
- movs r0, 0x3
- bl ClearWindowTilemap
- movs r0, 0x4
- bl ClearWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =Task_BagMenu
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end set_callback3_to_bag
-
- thumb_func_start GetSwitchBagPocketDirection
-GetSwitchBagPocketDirection: @ 81ABF10
- push {lr}
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x0000081b
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081ABF6A
- bl GetLRKeysState
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081ABF3C
- cmp r2, 0x1
- bne _081ABF54
-_081ABF3C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _081ABF6C
- .pool
-_081ABF54:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081ABF60
- cmp r2, 0x2
- bne _081ABF6A
-_081ABF60:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- b _081ABF6C
-_081ABF6A:
- movs r0, 0
-_081ABF6C:
- pop {r1}
- bx r1
- thumb_func_end GetSwitchBagPocketDirection
-
- thumb_func_start ChangeBagPocketId
-@ void ChangeBagPocketId(u8 *bagPocketId, u8 deltaBagPocketId)
-ChangeBagPocketId: @ 81ABF70
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- asrs r1, 24
- cmp r1, 0x1
- bne _081ABF88
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _081ABF88
- movs r0, 0
- b _081ABFA0
-_081ABF88:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- ldrb r3, [r2]
- cmp r0, r1
- bne _081ABF9E
- cmp r3, 0
- bne _081ABF9E
- movs r0, 0x4
- b _081ABFA0
-_081ABF9E:
- adds r0, r3, r4
-_081ABFA0:
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ChangeBagPocketId
-
- thumb_func_start SwitchBagPocket
-@ void SwitchBagPocket(u8 taskId, u16 deltaBagPocketId, u16 a3)
-SwitchBagPocket: @ 81ABFA8
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0x1A]
- strh r0, [r4, 0x18]
- strh r5, [r4, 0x16]
- cmp r2, 0
- bne _081AC026
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0x1
- bl ClearWindowTilemap
- ldrb r0, [r4]
- ldr r3, =gUnknown_0203CE58
- ldrb r2, [r3, 0x5]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x12
- adds r1, r2, r1
- adds r3, 0x8
- adds r2, r3
- bl sub_81AE6C8
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r3, =gSprites
- ldr r0, =gUnknown_0203CE54
- ldr r2, [r0]
- ldr r1, =0x0000081b
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 26
- lsrs r1, 30
- movs r0, 0x1
- eors r0, r1
- adds r2, r0
- ldr r0, =0x00000806
- adds r2, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bl sub_81AB824
-_081AC026:
- ldr r4, =gUnknown_0203CE58
- ldrb r1, [r4, 0x5]
- add r0, sp, 0x8
- strb r1, [r0]
- lsls r1, r5, 24
- asrs r1, 24
- bl ChangeBagPocketId
- lsls r0, r5, 16
- asrs r1, r0, 16
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081AC07C
- ldr r2, =gUnknown_085E91FC
- ldrb r0, [r4, 0x5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- add r1, sp, 0x8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl bag_menu_print_pocket_names
- movs r0, 0
- bl bag_menu_copy_pocket_name_to_window
- b _081AC09A
- .pool
-_081AC07C:
- ldr r2, =gUnknown_085E91FC
- add r0, sp, 0x8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldrb r1, [r4, 0x5]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl bag_menu_print_pocket_names
- movs r0, 0x8
- bl bag_menu_copy_pocket_name_to_window
-_081AC09A:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- movs r1, 0
- bl bag_menu_draw_pocket_indicator_square
- add r0, sp, 0x8
- ldrb r0, [r0]
- movs r1, 0x1
- bl bag_menu_draw_pocket_indicator_square
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0xB
- movs r2, 0xE
- movs r3, 0x2
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add r0, sp, 0x8
- ldrb r0, [r0]
- movs r1, 0x1
- bl SetBagVisualPocketId
- movs r0, 0x1
- bl RemoveBagObject
- asrs r0, r5, 16
- bl AddSwitchPocketRotatingBallObject
- ldr r1, =sub_81AC10C
- ldr r2, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r2
- ldr r2, [r0]
- adds r0, r6, 0
- bl SetTaskFuncWithFollowupFunc
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SwitchBagPocket
-
- thumb_func_start sub_81AC10C
-sub_81AC10C: @ 81AC10C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- bne _081AC184
- bl IsWallysBag
- lsls r0, 24
- cmp r0, 0
- bne _081AC184
- bl GetSwitchBagPocketDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AC148
- cmp r0, 0x2
- beq _081AC164
- b _081AC184
- .pool
-_081AC148:
- ldr r0, =gUnknown_0203CE5D
- movs r1, 0x16
- ldrsb r1, [r6, r1]
- bl ChangeBagPocketId
- adds r0, r7, 0
- bl SwitchTaskToFollowupFunc
- movs r1, 0x1
- negs r1, r1
- adds r0, r7, 0
- b _081AC178
- .pool
-_081AC164:
- ldr r0, =gUnknown_0203CE5D
- movs r1, 0x16
- ldrsb r1, [r6, r1]
- bl ChangeBagPocketId
- adds r0, r7, 0
- bl SwitchTaskToFollowupFunc
- adds r0, r7, 0
- movs r1, 0x1
-_081AC178:
- movs r2, 0x1
- bl SwitchBagPocket
- b _081AC22E
- .pool
-_081AC184:
- movs r1, 0x1A
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _081AC192
- cmp r0, 0x1
- beq _081AC1DC
- b _081AC22E
-_081AC192:
- ldrb r0, [r6, 0x18]
- bl sub_81AC23C
- ldrh r0, [r6, 0x18]
- adds r1, r0, 0x1
- strh r1, [r6, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081AC1CC
- movs r2, 0x16
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bne _081AC1BC
- lsls r0, r1, 16
- asrs r0, 17
- lsls r0, 24
- lsrs r0, 24
- bl bag_menu_copy_pocket_name_to_window
- b _081AC1CC
-_081AC1BC:
- lsls r1, 16
- asrs r1, 17
- movs r0, 0x8
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl bag_menu_copy_pocket_name_to_window
-_081AC1CC:
- movs r1, 0x18
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _081AC22E
- ldrh r0, [r6, 0x1A]
- adds r0, 0x1
- strh r0, [r6, 0x1A]
- b _081AC22E
-_081AC1DC:
- ldr r4, =gUnknown_0203CE5D
- movs r1, 0x16
- ldrsb r1, [r6, r1]
- adds r0, r4, 0
- bl ChangeBagPocketId
- subs r5, r4, 0x5
- ldrb r0, [r5, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- ldrb r2, [r5, 0x5]
- lsls r2, 1
- adds r1, r4, 0
- adds r1, 0xD
- adds r1, r2, r1
- ldrh r1, [r1]
- adds r4, 0x3
- adds r2, r4
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
- bl bag_menu_add_list_scroll_arrow_indicators_maybe
- adds r0, r7, 0
- bl SwitchTaskToFollowupFunc
-_081AC22E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AC10C
-
- thumb_func_start sub_81AC23C
-sub_81AC23C: @ 81AC23C
- push {lr}
- sub sp, 0x8
- adds r3, r0, 0
- lsls r3, 24
- movs r0, 0x80
- lsls r0, 18
- adds r3, r0
- lsrs r3, 24
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0x11
- movs r2, 0xE
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_81AC23C
-
- thumb_func_start bag_menu_draw_pocket_indicator_square
-@ void bag_menu_draw_pocket_indicator_square(char x, int is_current_bag)
-bag_menu_draw_pocket_indicator_square: @ 81AC26C
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _081AC298
- ldr r1, =0x00001017
- adds r2, r0, 0x5
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r3, 0x3
- bl FillBgTilemapBufferRect_Palette0
- b _081AC2AE
- .pool
-_081AC298:
- ldr r1, =0x0000102b
- adds r2, r0, 0x5
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r3, 0x3
- bl FillBgTilemapBufferRect_Palette0
-_081AC2AE:
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_draw_pocket_indicator_square
-
- thumb_func_start sub_81AC2C0
-sub_81AC2C0: @ 81AC2C0
- push {lr}
- ldr r1, =gUnknown_0203CE58
- ldrb r0, [r1, 0x4]
- cmp r0, 0x1
- bhi _081AC2E0
- ldrb r0, [r1, 0x5]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _081AC2E0
- movs r0, 0x1
- b _081AC2E2
- .pool
-_081AC2E0:
- movs r0, 0
-_081AC2E2:
- pop {r1}
- bx r1
- thumb_func_end sub_81AC2C0
-
- thumb_func_start bag_menu_swap_items
-bag_menu_swap_items: @ 81AC2E8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- mov r9, r0
- adds r6, r4, r0
- ldrb r0, [r6]
- movs r1, 0x10
- movs r2, 0x1
- bl sub_81AF15C
- ldr r3, =gUnknown_0203CE58
- ldrb r0, [r3, 0x5]
- lsls r0, 1
- adds r2, r3, 0
- adds r2, 0x12
- adds r2, r0, r2
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- strh r1, [r6, 0x2]
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r2, =0x0000081a
- adds r0, r2
- movs r5, 0
- strb r1, [r0]
- ldrb r0, [r3, 0x5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar4
- mov r8, r0
- ldr r1, =gUnknown_085E8DFE
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r1, 0x1
- mov r2, r8
- movs r3, 0x3
- bl bag_menu_print
- ldrb r0, [r6, 0x2]
- bl sub_80D4FEC
- bl sub_81AB89C
- ldrb r0, [r6]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- movs r2, 0x8
- negs r2, r2
- add r9, r2
- add r4, r9
- ldr r0, =sub_81AC3C0
- str r0, [r4]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_swap_items
-
- thumb_func_start sub_81AC3C0
-@ void sub_81AC3C0(u8 taskId)
-sub_81AC3C0: @ 81AC3C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AC48E
- ldr r0, =gMain
- mov r8, r0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081AC418
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- ldr r3, =gUnknown_0203CE58
- ldrb r2, [r3, 0x5]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x12
- adds r1, r2, r1
- adds r3, 0x8
- adds r2, r3
- bl get_coro_args_x18_x1A
- b _081AC472
- .pool
-_081AC418:
- ldrb r0, [r4]
- bl ListMenuHandleInput
- adds r7, r0, 0
- ldrb r0, [r4]
- ldr r5, =gUnknown_0203CE58
- ldrb r2, [r5, 0x5]
- lsls r2, 1
- adds r1, r5, 0
- adds r1, 0x12
- adds r1, r2, r1
- adds r4, r5, 0
- adds r4, 0x8
- adds r2, r4
- bl get_coro_args_x18_x1A
- movs r0, 0
- bl sub_80D4FC8
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r0, r4
- ldrb r0, [r0]
- bl sub_80D4FEC
- movs r0, 0x2
- negs r0, r0
- cmp r7, r0
- beq _081AC460
- adds r0, 0x1
- cmp r7, r0
- bne _081AC482
- b _081AC48E
- .pool
-_081AC460:
- movs r0, 0x5
- bl PlaySE
- mov r0, r8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AC47A
-_081AC472:
- adds r0, r6, 0
- bl sub_81AC498
- b _081AC48E
-_081AC47A:
- adds r0, r6, 0
- bl sub_81AC590
- b _081AC48E
-_081AC482:
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- bl sub_81AC498
-_081AC48E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81AC3C0
-
- thumb_func_start sub_81AC498
-sub_81AC498: @ 81AC498
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- mov r10, r0
- ldr r0, =gTasks + 0x8
- add r0, r10
- mov r9, r0
- ldr r5, =gUnknown_0203CE58
- ldrb r6, [r5, 0x5]
- lsls r1, r6, 1
- adds r0, r5, 0
- adds r0, 0x12
- adds r0, r1
- mov r8, r0
- ldr r2, =gUnknown_0203CE60
- adds r7, r1, r2
- ldrh r0, [r7]
- mov r1, r8
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- mov r0, r9
- movs r1, 0x2
- ldrsh r2, [r0, r1]
- cmp r2, r4
- beq _081AC4E2
- subs r0, r4, 0x1
- cmp r2, r0
- bne _081AC4F8
-_081AC4E2:
- adds r0, r3, 0
- bl sub_81AC590
- b _081AC566
- .pool
-_081AC4F8:
- ldr r1, =gBagPockets
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- adds r2, r4, 0
- bl sub_80D702C
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r2, =0x0000081a
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- adds r2, r7, 0
- bl sub_81AE6C8
- mov r2, r9
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- cmp r0, r4
- bge _081AC538
- ldrb r1, [r5, 0x5]
- lsls r1, 1
- ldr r2, =gUnknown_0203CE60
- adds r1, r2
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_081AC538:
- ldrb r0, [r5, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- mov r2, r8
- ldrh r1, [r2]
- ldrh r2, [r7]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- strh r0, [r1]
- movs r0, 0x1
- bl sub_80D4FC8
- bl bag_menu_add_list_scroll_arrow_indicators_maybe
- ldr r0, =gTasks + 0x8
- subs r0, 0x8
- add r0, r10
- ldr r1, =Task_BagMenu
- str r1, [r0]
-_081AC566:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AC498
-
- thumb_func_start sub_81AC590
-sub_81AC590: @ 81AC590
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r9, r1
- ldr r0, =gTasks + 0x8
- mov r10, r0
- mov r7, r9
- add r7, r10
- ldr r4, =gUnknown_0203CE58
- ldrb r0, [r4, 0x5]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x12
- adds r6, r0, r1
- movs r1, 0x8
- adds r1, r4
- mov r8, r1
- adds r5, r0, r1
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x0000081a
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_81AE6C8
- movs r0, 0x2
- ldrsh r2, [r7, r0]
- ldrh r0, [r6]
- ldrh r1, [r5]
- adds r0, r1
- cmp r2, r0
- bge _081AC5F2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- add r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
-_081AC5F2:
- ldrb r0, [r4, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- ldrh r1, [r6]
- ldrh r2, [r5]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r0, 0x1
- bl sub_80D4FC8
- bl bag_menu_add_list_scroll_arrow_indicators_maybe
- mov r0, r10
- subs r0, 0x8
- add r0, r9
- ldr r1, =Task_BagMenu
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AC590
-
- thumb_func_start sub_81AC644
-sub_81AC644: @ 81AC644
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x4]
- subs r0, 0x1
- cmp r0, 0x9
- bls _081AC654
- b _081AC82C
-_081AC654:
- lsls r0, 2
- ldr r1, =_081AC668
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AC668:
- .4byte _081AC690
- .4byte _081AC82C
- .4byte _081AC82C
- .4byte _081AC82C
- .4byte _081AC6E8
- .4byte _081AC82C
- .4byte _081AC76C
- .4byte _081AC7CC
- .4byte _081AC70C
- .4byte _081AC690
-_081AC690:
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl ItemId_GetBattleUsage
- lsls r0, 24
- cmp r0, 0
- beq _081AC6C4
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614042
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x2
- b _081ACA10
- .pool
-_081AC6C4:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614046
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x1
- b _081ACA10
- .pool
-_081AC6E8:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614047
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x4
- b _081ACA10
- .pool
-_081AC70C:
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AC748
- ldrh r0, [r4]
- cmp r0, 0xAF
- beq _081AC748
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_0861404B
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x2
- b _081ACA10
- .pool
-_081AC748:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614046
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x1
- b _081ACA10
- .pool
-_081AC76C:
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AC7A8
- ldrh r0, [r4]
- cmp r0, 0xAF
- beq _081AC7A8
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_0861404D
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x2
- b _081ACA10
- .pool
-_081AC7A8:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614046
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x1
- b _081ACA10
- .pool
-_081AC7CC:
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AC808
- ldrh r0, [r4]
- cmp r0, 0xAF
- beq _081AC808
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_0861404F
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x2
- b _081ACA10
- .pool
-_081AC808:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614046
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x1
- b _081ACA10
- .pool
-_081AC82C:
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AC840
- bl InUnionRoom
- cmp r0, 0x1
- bne _081AC8A4
-_081AC840:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _081AC856
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl sub_8122148
- lsls r0, 24
- cmp r0, 0
- bne _081AC880
-_081AC856:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614046
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x1
- b _081ACA10
- .pool
-_081AC880:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614044
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x2
- b _081ACA10
- .pool
-_081AC8A4:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- bls _081AC8AE
- b _081ACA12
-_081AC8AE:
- lsls r0, 2
- ldr r1, =_081AC8C0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AC8C0:
- .4byte _081AC8D4
- .4byte _081AC9B4
- .4byte _081AC9D8
- .4byte _081AC9FC
- .4byte _081AC92C
-_081AC8D4:
- ldr r4, =gUnknown_0203CE54
- ldr r1, [r4]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r3, =0x00000824
- adds r0, r1, r3
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r3
- ldr r1, =gUnknown_0861402C
- movs r2, 0x4
- bl memcpy
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081AC90A
- b _081ACA12
-_081AC90A:
- ldr r0, [r4]
- ldr r1, =0x00000824
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- b _081ACA12
- .pool
-_081AC92C:
- ldr r4, =gUnknown_0203CE54
- ldr r1, [r4]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r5, =0x00000824
- adds r0, r1, r5
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, r5
- ldr r1, =gUnknown_08614030
- movs r2, 0x4
- bl memcpy
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00000496
- adds r0, r1
- ldr r2, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldrh r1, [r2]
- cmp r0, r1
- bne _081AC96C
- ldr r0, [r4]
- ldr r1, =0x00000825
- adds r0, r1
- movs r1, 0x8
- strb r1, [r0]
-_081AC96C:
- ldrh r1, [r2]
- ldr r0, =0x00000103
- cmp r1, r0
- beq _081AC97A
- adds r0, 0xD
- cmp r1, r0
- bne _081ACA12
-_081AC97A:
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _081ACA12
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x7
- strb r1, [r0]
- b _081ACA12
- .pool
-_081AC9B4:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614034
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x4
- b _081ACA10
- .pool
-_081AC9D8:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_08614038
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x4
- b _081ACA10
- .pool
-_081AC9FC:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- movs r0, 0x82
- lsls r0, 4
- adds r2, r1, r0
- ldr r0, =gUnknown_0861403C
- str r0, [r2]
- ldr r0, =0x00000828
- adds r1, r0
- movs r0, 0x6
-_081ACA10:
- strb r0, [r1]
-_081ACA12:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x2
- bne _081ACA50
- movs r0, 0x1
- bl ClearWindowTilemap
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl PrintTMHMMoveData
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- b _081ACA86
- .pool
-_081ACA50:
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8DBE
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
-_081ACA86:
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000828
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081ACAB0
- movs r0, 0
- b _081ACAB6
- .pool
-_081ACAB0:
- cmp r0, 0x2
- bne _081ACAC4
- movs r0, 0x1
-_081ACAB6:
- bl bag_menu_add_window
- lsls r0, 24
- lsrs r0, 24
- bl sub_81ACAF8
- b _081ACAEE
-_081ACAC4:
- cmp r0, 0x4
- bne _081ACADC
- movs r0, 0x2
- bl bag_menu_add_window
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- movs r2, 0x2
- bl sub_81ACB54
- b _081ACAEE
-_081ACADC:
- movs r0, 0x3
- bl bag_menu_add_window
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- movs r2, 0x3
- bl sub_81ACB54
-_081ACAEE:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81AC644
-
- thumb_func_start sub_81ACAF8
-sub_81ACAF8: @ 81ACAF8
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- str r0, [sp, 0x4]
- ldr r6, =gUnknown_0203CE54
- ldr r1, [r6]
- ldr r5, =0x00000828
- adds r0, r1, r5
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- ldr r0, =gUnknown_08613FB4
- str r0, [sp, 0xC]
- movs r0, 0x82
- lsls r0, 4
- adds r1, r0
- ldr r0, [r1]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x8
- movs r3, 0x1
- bl AddItemMenuActionTextPrinters
- ldr r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ACAF8
-
- thumb_func_start sub_81ACB54
-sub_81ACB54: @ 81ACB54
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x38
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- ldr r0, =gUnknown_08613FB4
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 4
- adds r0, r1
- ldr r0, [r0]
- str r0, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x8
- movs r3, 0x1
- bl sub_8198DBC
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x38
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8199944
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ACB54
-
- thumb_func_start unknown_item_menu_type
-unknown_item_menu_type: @ 81ACBB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_81AC644
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000828
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bhi _081ACBE8
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =Task_HandleInBattleItemMenuInput
- b _081ACBF4
- .pool
-_081ACBE8:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =Task_HandleOutOfBattleItemMenuInput
-_081ACBF4:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unknown_item_menu_type
-
- thumb_func_start Task_HandleInBattleItemMenuInput
-Task_HandleInBattleItemMenuInput: @ 81ACC04
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081ACC6A
- bl ProcessMenuInputNoWrapAround
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081ACC6A
- adds r0, 0x1
- cmp r4, r0
- bne _081ACC44
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_08613FB4
- ldr r1, [r0, 0x24]
- adds r0, r5, 0
- bl _call_via_r1
- b _081ACC6A
- .pool
-_081ACC44:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_08613FB4
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- movs r2, 0x82
- lsls r2, 4
- adds r0, r2
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_081ACC6A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_HandleInBattleItemMenuInput
-
- thumb_func_start Task_HandleOutOfBattleItemMenuInput
-Task_HandleOutOfBattleItemMenuInput: @ 81ACC78
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081ACC8C
- b _081ACDF0
-_081ACC8C:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081ACCD4
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0
- bgt _081ACCAA
- b _081ACDF0
-_081ACCAA:
- subs r0, 0x2
- lsls r0, 24
- asrs r0, 24
- bl sub_81ACDFC
- lsls r0, 24
- cmp r0, 0
- bne _081ACCBC
- b _081ACDF0
-_081ACCBC:
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x1
- negs r1, r1
- movs r0, 0
- bl sub_8199134
- b _081ACDF0
- .pool
-_081ACCD4:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081ACD1C
- lsls r0, r4, 24
- asrs r1, r0, 24
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r2, =0x00000828
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x2
- cmp r1, r0
- blt _081ACCF2
- b _081ACDF0
-_081ACCF2:
- adds r0, r1, 0x2
- lsls r0, 24
- asrs r0, 24
- bl sub_81ACDFC
- lsls r0, 24
- cmp r0, 0
- beq _081ACDF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- bl sub_8199134
- b _081ACDF0
- .pool
-_081ACD1C:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081ACD30
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081ACD58
-_081ACD30:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081ACDF0
- subs r0, r1, 0x1
- lsls r0, 24
- asrs r0, 24
- bl sub_81ACDFC
- lsls r0, 24
- cmp r0, 0
- beq _081ACDF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _081ACD92
-_081ACD58:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081ACD6E
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081ACD9A
-_081ACD6E:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081ACDF0
- adds r0, r1, 0x1
- lsls r0, 24
- asrs r0, 24
- bl sub_81ACDFC
- lsls r0, 24
- cmp r0, 0
- beq _081ACDF0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_081ACD92:
- movs r1, 0
- bl sub_8199134
- b _081ACDF0
-_081ACD9A:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081ACDD8
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gUnknown_08613FB4
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- lsls r1, r4, 24
- asrs r1, 24
- movs r3, 0x82
- lsls r3, 4
- adds r0, r3
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _081ACDF0
- .pool
-_081ACDD8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081ACDF0
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_08613FB4
- ldr r1, [r0, 0x24]
- adds r0, r6, 0
- bl _call_via_r1
-_081ACDF0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_HandleOutOfBattleItemMenuInput
-
- thumb_func_start sub_81ACDFC
-sub_81ACDFC: @ 81ACDFC
- push {lr}
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- blt _081ACE30
- ldr r0, =gUnknown_0203CE54
- ldr r2, [r0]
- ldr r3, =0x00000828
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r1, r0
- bgt _081ACE30
- movs r3, 0x82
- lsls r3, 4
- adds r0, r2, r3
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _081ACE30
- movs r0, 0x1
- b _081ACE32
- .pool
-_081ACE30:
- movs r0, 0
-_081ACE32:
- pop {r1}
- bx r1
- thumb_func_end sub_81ACDFC
-
- thumb_func_start bag_menu_remove_some_window
-bag_menu_remove_some_window: @ 81ACE38
- push {lr}
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000828
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081ACE58
- movs r0, 0
- bl bag_menu_remove_window
- b _081ACE76
- .pool
-_081ACE58:
- cmp r0, 0x2
- bne _081ACE64
- movs r0, 0x1
- bl bag_menu_remove_window
- b _081ACE76
-_081ACE64:
- cmp r0, 0x4
- bne _081ACE70
- movs r0, 0x2
- bl bag_menu_remove_window
- b _081ACE76
-_081ACE70:
- movs r0, 0x3
- bl bag_menu_remove_window
-_081ACE76:
- pop {r0}
- bx r0
- thumb_func_end bag_menu_remove_some_window
-
- thumb_func_start ItemMenu_UseOutOfBattle
-@ void ItemMenu_UseOutOfBattle(u8 taskId)
-ItemMenu_UseOutOfBattle: @ 81ACE7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gUnknown_0203CE7C
- ldrh r0, [r5]
- bl ItemId_GetFieldFunc
- cmp r0, 0
- beq _081ACEEE
- bl bag_menu_remove_some_window
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _081ACEB8
- ldrh r0, [r5]
- bl ItemId_GetType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081ACEB8
- adds r0, r4, 0
- bl bag_menu_print_there_is_no_pokemon
- b _081ACEEE
- .pool
-_081ACEB8:
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x3
- beq _081ACEE8
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
- b _081ACEEE
- .pool
-_081ACEE8:
- adds r0, r4, 0
- bl sub_80FDD10
-_081ACEEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ItemMenu_UseOutOfBattle
-
- thumb_func_start ItemMenu_Toss
-ItemMenu_Toss: @ 81ACEF4
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, =gTasks + 0x8
- adds r4, r6, r7
- bl bag_menu_remove_some_window
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081ACF24
- adds r0, r5, 0
- bl BagMenuConfirmToss
- b _081ACF6A
- .pool
-_081ACF24:
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8EE0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
- movs r0, 0x7
- bl sub_81ABC3C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =Task_ChooseHowManyToToss
- str r1, [r0]
-_081ACF6A:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemMenu_Toss
-
- thumb_func_start BagMenuConfirmToss
-BagMenuConfirmToss: @ 81ACF88
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8F0E
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
- ldr r2, =gUnknown_08614084
- adds r0, r5, 0
- movs r1, 0x5
- bl bag_menu_yes_no
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BagMenuConfirmToss
-
- thumb_func_start BagMenuCancelToss
-BagMenuCancelToss: @ 81AD010
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl bag_menu_print_description_box_text
- ldrb r0, [r4]
- movs r1, 0
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl set_callback3_to_bag
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BagMenuCancelToss
-
- thumb_func_start Task_ChooseHowManyToToss
-Task_ChooseHowManyToToss: @ 81AD044
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- adds r0, r4, 0
- adds r0, 0x10
- ldrh r1, [r4, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081AD088
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000817
- adds r0, r1
- ldrb r0, [r0]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl sub_81ABC54
- b _081AD0C6
- .pool
-_081AD088:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AD0AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- bl bag_menu_remove_window
- adds r0, r5, 0
- bl BagMenuConfirmToss
- b _081AD0C6
- .pool
-_081AD0AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081AD0C6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- bl bag_menu_remove_window
- adds r0, r6, 0
- bl BagMenuCancelToss
-_081AD0C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end Task_ChooseHowManyToToss
-
- thumb_func_start BagMenuActuallyToss
-BagMenuActuallyToss: @ 81AD0CC
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r6, =gStringVar4
- ldr r1, =gUnknown_085E8EF9
- adds r0, r6, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r6, 0
- movs r3, 0x3
- bl bag_menu_print
- subs r5, 0x8
- adds r4, r5
- ldr r0, =Task_ActuallyToss
- str r0, [r4]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BagMenuActuallyToss
-
- thumb_func_start Task_ActuallyToss
-Task_ActuallyToss: @ 81AD150
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r4, =gUnknown_0203CE58
- ldrb r0, [r4, 0x5]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x12
- adds r1, r0
- mov r8, r1
- adds r1, r4, 0
- adds r1, 0x8
- adds r7, r0, r1
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081AD1CE
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldrh r1, [r5, 0x10]
- bl RemoveBagItem
- ldrb r0, [r5]
- mov r1, r8
- adds r2, r7, 0
- bl sub_81AE6C8
- ldrb r0, [r4, 0x5]
- bl sub_81AB9A8
- ldrb r0, [r4, 0x5]
- bl sub_81ABA88
- ldrb r0, [r4, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- mov r2, r8
- ldrh r1, [r2]
- ldrh r2, [r7]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl set_callback3_to_bag
-_081AD1CE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ActuallyToss
-
- thumb_func_start ItemMenu_Register
-ItemMenu_Register: @ 81AD1EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- ldr r0, =gUnknown_0203CE58
- ldrb r1, [r0, 0x5]
- lsls r1, 1
- adds r2, r0, 0
- adds r2, 0x12
- adds r6, r1, r2
- adds r0, 0x8
- adds r5, r1, r0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r2, =0x00000496
- adds r1, r0, r2
- ldr r0, =gUnknown_0203CE7C
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r0, r2
- bne _081AD238
- movs r0, 0
- strh r0, [r1]
- b _081AD23A
- .pool
-_081AD238:
- strh r2, [r1]
-_081AD23A:
- ldrb r0, [r7]
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_81AE6C8
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- ldrh r1, [r6]
- ldrh r2, [r5]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl ItemMenu_Cancel
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemMenu_Register
-
- thumb_func_start ItemMenu_Give
-ItemMenu_Give: @ 81AD278
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- bl bag_menu_remove_some_window
- ldr r5, =gUnknown_0203CE7C
- ldrh r0, [r5]
- bl itemid_80BF6D8_mail_related
- lsls r0, 24
- cmp r0, 0
- bne _081AD2AC
- ldr r2, =gUnknown_085E8DCE
- ldr r3, =sub_81AD350
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _081AD2EA
- .pool
-_081AD2AC:
- ldrh r0, [r5]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AD2E4
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _081AD2CA
- adds r0, r4, 0
- bl bag_menu_print_there_is_no_pokemon
- b _081AD2EA
-_081AD2CA:
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r0, =sub_81B7F60
- str r0, [r1]
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _081AD2EA
- .pool
-_081AD2E4:
- adds r0, r6, 0
- bl bag_menu_print_cant_be_held_msg
-_081AD2EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ItemMenu_Give
-
- thumb_func_start bag_menu_print_there_is_no_pokemon
-bag_menu_print_there_is_no_pokemon: @ 81AD2F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_085E8DE9
- ldr r3, =sub_81AD350
- movs r1, 0x1
- bl DisplayItemMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print_there_is_no_pokemon
-
- thumb_func_start bag_menu_print_cant_be_held_msg
-bag_menu_print_cant_be_held_msg: @ 81AD30C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_085E8E11
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_81AD350
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl DisplayItemMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print_cant_be_held_msg
-
- thumb_func_start sub_81AD350
-sub_81AD350: @ 81AD350
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AD36E
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl bag_menu_inits_lists_menu
-_081AD36E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD350
-
- thumb_func_start ItemMenu_CheckTag
-ItemMenu_CheckTag: @ 81AD378
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CE54
- ldr r2, [r1]
- ldr r1, =sub_8177C14
- str r1, [r2]
- bl unknown_ItemMenu_Confirm
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemMenu_CheckTag
-
- thumb_func_start ItemMenu_Cancel
-ItemMenu_Cancel: @ 81AD398
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl bag_menu_remove_some_window
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- bl bag_menu_print_description_box_text
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- movs r1, 0
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl set_callback3_to_bag
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemMenu_Cancel
-
- thumb_func_start ItemMenu_UseInBattle
-ItemMenu_UseInBattle: @ 81AD3DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- cmp r0, 0
- beq _081AD400
- bl bag_menu_remove_some_window
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
-_081AD400:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemMenu_UseInBattle
-
- thumb_func_start bag_menu_mail_related
-bag_menu_mail_related: @ 81AD40C
- push {lr}
- movs r0, 0xC
- movs r1, 0x5
- movs r2, 0
- bl GoToBagMenu
- pop {r0}
- bx r0
- thumb_func_end bag_menu_mail_related
-
- thumb_func_start item_menu_type_2
-item_menu_type_2: @ 81AD41C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl itemid_80BF6D8_mail_related
- lsls r0, 24
- cmp r0, 0
- bne _081AD44C
- ldr r2, =gUnknown_085E8DCE
- ldr r3, =sub_81AD350
- adds r0, r5, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _081AD4AE
- .pool
-_081AD44C:
- ldrh r0, [r4]
- bl sub_8122148
- lsls r0, 24
- cmp r0, 0
- bne _081AD488
- ldrh r0, [r4]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8E27
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_81AD350
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- b _081AD4AE
- .pool
-_081AD488:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _081AD4A8
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AD4A8
- adds r0, r5, 0
- bl unknown_ItemMenu_Confirm
- b _081AD4AE
- .pool
-_081AD4A8:
- adds r0, r5, 0
- bl bag_menu_print_cant_be_held_msg
-_081AD4AE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end item_menu_type_2
-
- thumb_func_start item_menu_type_b
-item_menu_type_b: @ 81AD4B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gUnknown_0203CE7C
- ldrh r0, [r5]
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081AD4E4
- ldr r2, =gUnknown_085E8DCE
- ldr r3, =sub_81AD350
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _081AD51A
- .pool
-_081AD4E4:
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x5]
- cmp r0, 0x4
- beq _081AD514
- ldrh r0, [r5]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _081AD514
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =unknown_ItemMenu_Confirm
- str r0, [r1]
- b _081AD51A
- .pool
-_081AD514:
- adds r0, r4, 0
- bl bag_menu_print_cant_be_held_msg
-_081AD51A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end item_menu_type_b
-
- thumb_func_start UseRegisteredKeyItemOnField
-@ bool8 UseRegisteredKeyItemOnField()
-UseRegisteredKeyItemOnField: @ 81AD520
- push {r4-r7,lr}
- bl InUnionRoom
- cmp r0, 0x1
- beq _081AD54C
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _081AD54C
- bl InBattlePike
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _081AD54C
- bl InMultiBattleRoom
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081AD550
-_081AD54C:
- movs r0, 0
- b _081AD5D2
-_081AD550:
- bl HideMapNamePopUpWindow
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY_ScreenOff
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r5, =0x00000496
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0
- beq _081AD5CA
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _081AD5C4
- bl script_env_2_enable
- bl player_bitmagic
- bl sub_808B864
- bl sub_808BCF4
- ldr r2, =gUnknown_0203CE7C
- ldr r0, [r4]
- adds r0, r5
- ldrh r1, [r0]
- strh r1, [r2]
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- movs r1, 0x8
- 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 r6, [r1, 0xE]
- b _081AD5D0
- .pool
-_081AD5C4:
- ldr r0, [r4]
- adds r0, r5
- strh r7, [r0]
-_081AD5CA:
- ldr r0, =gUnknown_082736B3
- bl ScriptContext1_SetupScript
-_081AD5D0:
- movs r0, 0x1
-_081AD5D2:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end UseRegisteredKeyItemOnField
-
- thumb_func_start display_sell_item_ask_str
-@ void display_sell_item_ask_str(int a1)
-display_sell_item_ask_str: @ 81AD5DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r6, =gUnknown_0203CE7C
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- cmp r0, 0
- bne _081AD634
- ldrh r0, [r6]
- ldr r1, =gStringVar2
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E960F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- b _081AD66A
- .pool
-_081AD634:
- movs r0, 0x1
- strh r0, [r4, 0x10]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081AD64C
- bl bag_menu_add_money_window
- adds r0, r5, 0
- bl sub_81AD680
- b _081AD66A
-_081AD64C:
- ldrh r0, [r6]
- ldr r1, =gStringVar2
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E962F
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_81AD730
- adds r0, r7, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
-_081AD66A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end display_sell_item_ask_str
-
- thumb_func_start sub_81AD680
-sub_81AD680: @ 81AD680
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r6, =gStringVar1
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9654
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_81AD6E4
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD680
-
- thumb_func_start sub_81AD6E4
-sub_81AD6E4: @ 81AD6E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_0861408C
- movs r1, 0x6
- bl bag_menu_yes_no
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD6E4
-
- thumb_func_start sub_81AD6FC
-sub_81AD6FC: @ 81AD6FC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl bag_menu_remove_money_window
- movs r0, 0x4
- bl bag_menu_RemoveBagItem_message_window
- ldrb r0, [r4]
- movs r1, 0
- bl bag_menu_print_cursor_
- adds r0, r5, 0
- bl set_callback3_to_bag
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD6FC
-
- thumb_func_start sub_81AD730
-sub_81AD730: @ 81AD730
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, =gTasks + 0x8
- adds r0, r4, r6
- mov r8, r0
- movs r0, 0x8
- bl bag_menu_add_window
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81ABCC0
- bl bag_menu_add_money_window
- subs r6, 0x8
- adds r4, r6
- ldr r0, =sub_81AD794
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD730
-
- thumb_func_start sub_81AD794
-sub_81AD794: @ 81AD794
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- adds r0, r6, 0
- adds r0, 0x10
- ldrh r1, [r6, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081AD7F4
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000818
- adds r0, r1
- ldrb r4, [r0]
- movs r2, 0x10
- ldrsh r5, [r6, r2]
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r6, r2]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81ABCC0
- b _081AD844
- .pool
-_081AD7F4:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AD818
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x8
- bl bag_menu_remove_window
- adds r0, r4, 0
- bl sub_81AD680
- b _081AD844
- .pool
-_081AD818:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081AD844
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r6]
- movs r1, 0
- bl bag_menu_print_cursor_
- bl bag_menu_remove_money_window
- movs r0, 0x8
- bl bag_menu_remove_window
- movs r0, 0x4
- bl bag_menu_RemoveBagItem_message_window
- adds r0, r5, 0
- bl set_callback3_to_bag
-_081AD844:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81AD794
-
- thumb_func_start sub_81AD84C
-sub_81AD84C: @ 81AD84C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r6, =gUnknown_0203CE7C
- ldrh r0, [r6]
- ldr r1, =gStringVar2
- bl CopyItemName
- ldr r0, =gStringVar1
- mov r8, r0
- ldrh r0, [r6]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- muls r1, r0
- mov r0, r8
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9677
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_81AD8C8
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD84C
-
- thumb_func_start sub_81AD8C8
-sub_81AD8C8: @ 81AD8C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- ldr r0, =gTasks + 0x8
- adds r0, r6
- mov r10, r0
- ldr r7, =gUnknown_0203CE58
- ldrb r5, [r7, 0x5]
- lsls r5, 1
- movs r1, 0x12
- adds r1, r7
- mov r9, r1
- add r9, r5
- adds r0, r7, 0
- adds r0, 0x8
- adds r5, r0
- movs r0, 0x5F
- bl PlaySE
- ldr r2, =gUnknown_0203CE7C
- mov r8, r2
- ldrh r0, [r2]
- mov r3, r10
- ldrh r1, [r3, 0x10]
- bl RemoveBagItem
- ldr r0, =gSaveBlock1Ptr
- ldr r4, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r4, r1
- mov r2, r8
- ldrh r0, [r2]
- bl itemid_get_market_price
- lsls r0, 16
- lsrs r0, 17
- mov r3, r10
- movs r2, 0x10
- ldrsh r1, [r3, r2]
- muls r1, r0
- adds r0, r4, 0
- bl add_money
- mov r3, r10
- ldrb r0, [r3]
- mov r1, r9
- adds r2, r5, 0
- bl sub_81AE6C8
- ldrb r0, [r7, 0x5]
- bl sub_81AB9A8
- ldrb r0, [r7, 0x5]
- bl sub_81ABA88
- ldrb r0, [r7, 0x5]
- bl load_bag_item_list_buffers
- ldr r0, =gUnknown_03006310
- mov r2, r9
- ldrh r1, [r2]
- ldrh r2, [r5]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- mov r3, r10
- strh r0, [r3]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000819
- adds r0, r1
- ldrb r4, [r0]
- ldr r2, =gSaveBlock1Ptr
- ldr r0, [r2]
- movs r3, 0x92
- lsls r3, 3
- adds r0, r3
- bl DecryptMoney
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- bl PrintMoneyAmountInMoneyBox
- ldr r0, =gTasks + 0x8
- subs r0, 0x8
- adds r6, r0
- ldr r0, =sub_81AD9C0
- str r0, [r6]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD8C8
-
- thumb_func_start sub_81AD9C0
-sub_81AD9C0: @ 81AD9C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081AD9E2
- movs r0, 0x5
- bl PlaySE
- bl bag_menu_remove_money_window
- adds r0, r4, 0
- bl bag_menu_inits_lists_menu
-_081AD9E2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AD9C0
-
- thumb_func_start display_deposit_item_ask_str
-display_deposit_item_ask_str: @ 81AD9EC
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r5, r0, 3
- ldr r6, =gTasks + 0x8
- adds r1, r5, r6
- movs r0, 0x1
- strh r0, [r1, 0x10]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- bne _081ADA18
- adds r0, r2, 0
- bl sub_81ADB14
- b _081ADA5E
- .pool
-_081ADA18:
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8E42
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
- movs r0, 0x7
- bl sub_81ABC3C
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, =sub_81ADA7C
- str r1, [r0]
-_081ADA5E:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end display_deposit_item_ask_str
-
- thumb_func_start sub_81ADA7C
-sub_81ADA7C: @ 81ADA7C
- push {r4-r6,lr}
- 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
- adds r0, r5, 0
- adds r0, 0x10
- ldrh r1, [r5, 0x4]
- bl AdjustQuantityAccordingToDPadInput
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081ADAC0
- ldr r0, =gUnknown_0203CE54
- ldr r0, [r0]
- ldr r1, =0x00000817
- adds r0, r1
- ldrb r0, [r0]
- movs r2, 0x10
- ldrsh r1, [r5, r2]
- bl sub_81ABC54
- b _081ADB0E
- .pool
-_081ADAC0:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081ADAE4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x7
- bl bag_menu_remove_window
- adds r0, r4, 0
- bl sub_81ADB14
- b _081ADB0E
- .pool
-_081ADAE4:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081ADB0E
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl bag_menu_print_description_box_text
- ldrb r0, [r5]
- movs r1, 0
- bl bag_menu_print_cursor_
- movs r0, 0x7
- bl bag_menu_remove_window
- adds r0, r6, 0
- bl set_callback3_to_bag
-_081ADB0E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81ADA7C
-
- thumb_func_start sub_81ADB14
-sub_81ADB14: @ 81ADB14
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r7, r1, 3
- ldr r0, =gTasks + 0x8
- mov r9, r0
- adds r2, r7, 0
- add r2, r9
- mov r8, r2
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl itemid_is_unique
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _081ADB6C
- ldr r2, =gUnknown_085E8E8E
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- str r0, [sp, 0x10]
- movs r0, 0x1
- b _081ADBE2
- .pool
-_081ADB6C:
- ldrh r0, [r4]
- mov r3, r8
- ldrh r1, [r3, 0x10]
- bl sub_80D6D70
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bne _081ADBD4
- ldrh r0, [r4]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, =gStringVar2
- mov r2, r8
- movs r3, 0x10
- ldrsh r1, [r2, r3]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E8E5A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r6, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r5, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl bag_menu_print
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =Task_ActuallyToss
- b _081ADBF2
- .pool
-_081ADBD4:
- ldr r2, =gUnknown_085E8E6E
- movs r0, 0x1
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- str r5, [sp, 0x10]
-_081ADBE2:
- movs r1, 0x1
- movs r3, 0x3
- bl bag_menu_print
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =sub_81ADC0C
-_081ADBF2:
- str r1, [r0]
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ADB14
-
- thumb_func_start sub_81ADC0C
-sub_81ADC0C: @ 81ADC0C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081ADC44
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- bl bag_menu_print_description_box_text
- ldrb r0, [r5]
- movs r1, 0
- bl bag_menu_print_cursor_
- adds r0, r4, 0
- bl set_callback3_to_bag
-_081ADC44:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81ADC0C
-
- thumb_func_start IsWallysBag
-@ bool8 IsWallysBag()
-IsWallysBag: @ 81ADC54
- push {lr}
- ldr r0, =gUnknown_0203CE58
- ldrb r0, [r0, 0x4]
- cmp r0, 0xA
- beq _081ADC68
- movs r0, 0
- b _081ADC6A
- .pool
-_081ADC68:
- movs r0, 0x1
-_081ADC6A:
- pop {r1}
- bx r1
- thumb_func_end IsWallysBag
-
- thumb_func_start PrepareBagForWallyTutorial
-@ void PrepareBagForWallyTutorial()
-PrepareBagForWallyTutorial: @ 81ADC70
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203CE80
- movs r0, 0xD0
- bl AllocZeroed
- str r0, [r4]
- ldr r5, =gSaveBlock1Ptr
- ldr r1, [r5]
- movs r2, 0xAC
- lsls r2, 3
- adds r1, r2
- movs r2, 0x78
- bl memcpy
- ldr r0, [r4]
- ldr r1, [r5]
- movs r2, 0xCA
- lsls r2, 3
- adds r1, r2
- adds r0, 0x78
- movs r2, 0x40
- bl memcpy
- ldr r0, [r4]
- ldr r2, =gUnknown_0203CE58
- ldrb r1, [r2, 0x5]
- adds r0, 0xCE
- strh r1, [r0]
- movs r6, 0
- adds r5, r2, 0
- adds r5, 0x8
-_081ADCAE:
- ldr r2, [r4]
- lsls r3, r6, 1
- adds r0, r2, 0
- adds r0, 0xB8
- adds r0, r3
- ldrh r1, [r5]
- strh r1, [r0]
- adds r2, 0xC2
- adds r2, r3
- ldrh r0, [r5, 0xA]
- strh r0, [r2]
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- bls _081ADCAE
- ldr r4, =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r1, 0xAC
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1E
- bl ClearItemSlots
- ldr r0, [r4]
- movs r2, 0xCA
- lsls r2, 3
- adds r0, r2
- movs r1, 0x10
- bl ClearItemSlots
- bl ResetBagScrollPositions
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PrepareBagForWallyTutorial
-
- thumb_func_start RestoreBagAfterWallyTutorial
-@ void RestoreBagAfterWallyTutorial()
-RestoreBagAfterWallyTutorial: @ 81ADD00
- push {r4-r6,lr}
- ldr r5, =gSaveBlock1Ptr
- ldr r0, [r5]
- movs r1, 0xAC
- lsls r1, 3
- adds r0, r1
- ldr r4, =gUnknown_0203CE80
- ldr r1, [r4]
- movs r2, 0x78
- bl memcpy
- ldr r0, [r5]
- movs r1, 0xCA
- lsls r1, 3
- adds r0, r1
- ldr r1, [r4]
- adds r1, 0x78
- movs r2, 0x40
- bl memcpy
- ldr r1, =gUnknown_0203CE58
- ldr r0, [r4]
- adds r0, 0xCE
- ldrh r0, [r0]
- strb r0, [r1, 0x5]
- movs r5, 0
- adds r6, r4, 0
- adds r3, r1, 0
- adds r3, 0x8
-_081ADD3A:
- lsls r2, r5, 1
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xB8
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
- adds r1, 0xC2
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r3, 0xA]
- adds r3, 0x2
- adds r5, 0x1
- cmp r5, 0x4
- bls _081ADD3A
- ldr r0, [r6]
- bl Free
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RestoreBagAfterWallyTutorial
-
- thumb_func_start DoWallyTutorialBagMenu
-@ void DoWallyTutorialBagMenu()
-DoWallyTutorialBagMenu: @ 81ADD70
- push {lr}
- bl PrepareBagForWallyTutorial
- movs r0, 0xD
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0x4
- movs r1, 0x1
- bl AddBagItem
- ldr r2, =sub_8059D50
- movs r0, 0xA
- movs r1, 0
- bl GoToBagMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoWallyTutorialBagMenu
-
- thumb_func_start Task_WallyTutorialBagMenu
-@ void Task_WallyTutorialBagMenu(u8 taskId)
-Task_WallyTutorialBagMenu: @ 81ADD98
- 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 r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081ADE32
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- cmp r1, 0xCC
- beq _081ADDEC
- cmp r1, 0xCC
- bgt _081ADDD0
- cmp r1, 0x66
- beq _081ADDDA
- b _081ADE2C
- .pool
-_081ADDD0:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _081ADE0C
- b _081ADE2C
-_081ADDDA:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl SwitchBagPocket
- b _081ADE2C
-_081ADDEC:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- movs r1, 0x2
- bl bag_menu_print_cursor_
- ldr r1, =gUnknown_0203CE7C
- movs r0, 0x4
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_81AC644
- b _081ADE2C
- .pool
-_081ADE0C:
- movs r0, 0x5
- bl PlaySE
- bl bag_menu_remove_some_window
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0
- bl sub_81AE6C8
- bl RestoreBagAfterWallyTutorial
- adds r0, r5, 0
- bl unknown_ItemMenu_Confirm
- b _081ADE32
-_081ADE2C:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
-_081ADE32:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_WallyTutorialBagMenu
-
- thumb_func_start unknown_ItemMenu_Show
-unknown_ItemMenu_Show: @ 81ADE38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gSpecialVar_0x8005
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bl bag_menu_remove_some_window
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unknown_ItemMenu_Show
-
- thumb_func_start bag_menu_leave_maybe_3
-bag_menu_leave_maybe_3: @ 81ADE6C
- push {lr}
- ldr r0, =gUnknown_03005DAC
- ldr r1, =sub_819FA50
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_leave_maybe_3
-
- thumb_func_start unknown_ItemMenu_Give2
-unknown_ItemMenu_Give2: @ 81ADE8C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bl bag_menu_remove_some_window
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unknown_ItemMenu_Give2
-
- thumb_func_start bag_menu_leave_maybe_2
-bag_menu_leave_maybe_2: @ 81ADEBC
- push {lr}
- ldr r0, =gUnknown_03005DAC
- ldr r1, =sub_818DEF4
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_leave_maybe_2
-
- thumb_func_start unknown_ItemMenu_Confirm2
-unknown_ItemMenu_Confirm2: @ 81ADEDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- bl bag_menu_remove_some_window
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unknown_ItemMenu_Confirm2
-
- thumb_func_start bag_menu_leave_maybe
-bag_menu_leave_maybe: @ 81ADF00
- push {lr}
- ldr r0, =gUnknown_03005DAC
- ldr r1, =sub_818E564
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_leave_maybe
-
- thumb_func_start bag_menu_print_pocket_names
-bag_menu_print_pocket_names: @ 81ADF20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- adds r4, r0, 0
- mov r8, r1
- movs r0, 0
- movs r1, 0
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
- ldr r1, =0x00ffffff
- ldr r0, [sp, 0x14]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 21
- orrs r0, r1
- str r0, [sp, 0x14]
- ldr r1, =0xffffff00
- ldr r0, [sp, 0x18]
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- str r0, [sp, 0x18]
- add r0, sp, 0x14
- bl AddWindow
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- lsls r3, r0, 24
- lsrs r3, 24
- movs r7, 0x1
- str r7, [sp]
- movs r5, 0
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- mov r9, r0
- str r0, [sp, 0xC]
- str r7, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl bag_menu_print
- mov r2, r8
- cmp r2, 0
- beq _081ADFBA
- movs r0, 0x1
- mov r1, r8
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- adds r3, 0x40
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- str r7, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0x1
- mov r2, r8
- bl bag_menu_print
-_081ADFBA:
- adds r0, r6, 0
- movs r1, 0x7
- bl GetWindowAttribute
- ldr r1, =gUnknown_0203CE54
- ldr r1, [r1]
- ldr r2, =0x00000844
- adds r1, r2
- ldr r2, =0x04000100
- bl CpuSet
- adds r0, r6, 0
- bl RemoveWindow
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print_pocket_names
-
- thumb_func_start bag_menu_copy_pocket_name_to_window
-bag_menu_copy_pocket_name_to_window: @ 81ADFF8
- push {r4-r7,lr}
- adds r7, r0, 0
- cmp r7, 0x8
- bls _081AE002
- movs r7, 0x8
-_081AE002:
- ldr r0, =gUnknown_0203CE54
- ldr r4, [r0]
- ldr r0, =0x00000844
- adds r4, r0
- movs r0, 0x2
- movs r1, 0x7
- bl GetWindowAttribute
- adds r5, r0, 0
- lsls r0, r7, 5
- adds r0, r4, r0
- ldr r6, =0x04000040
- adds r1, r5, 0
- adds r2, r6, 0
- bl CpuSet
- adds r0, r7, 0
- adds r0, 0x10
- lsls r0, 5
- adds r4, r0
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CpuSet
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_copy_pocket_name_to_window
-
- thumb_func_start setup_bag_menu_textboxes
-setup_bag_menu_textboxes: @ 81AE054
- push {r4,lr}
- ldr r0, =gUnknown_08614174
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xE0
- bl sub_809882C
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD0
- bl copy_textbox_border_tile_patterns_to_vram
- movs r0, 0xC0
- movs r1, 0x1
- bl sub_819A2BC
- ldr r0, =gUnknown_0860F074
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_081AE088:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081AE088
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end setup_bag_menu_textboxes
-
- thumb_func_start bag_menu_print
-bag_menu_print: @ 81AE0BC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r3
- ldr r3, [sp, 0x30]
- ldr r4, [sp, 0x34]
- ldr r6, [sp, 0x38]
- ldr r5, [sp, 0x3C]
- mov r8, r5
- ldr r5, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- lsls r7, 24
- lsrs r7, 24
- mov r9, r7
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- str r4, [sp]
- str r6, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_08614164
- adds r4, r5
- str r4, [sp, 0x8]
- mov r4, r8
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r2, [sp, 0x10]
- mov r2, r9
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_print
-
- thumb_func_start sub_81AE124
-sub_81AE124: @ 81AE124
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CE54
- ldr r1, [r1]
- movs r2, 0x81
- lsls r2, 4
- adds r1, r2
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81AE124
-
- thumb_func_start bag_menu_add_window
-bag_menu_add_window: @ 81AE13C
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203CE54
- movs r3, 0x81
- lsls r3, 4
- adds r1, r2, r3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081AE172
- lsls r0, r2, 3
- ldr r1, =gUnknown_086141AC
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xE
- bl SetWindowBorderStyle
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
-_081AE172:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end bag_menu_add_window
-
- thumb_func_start bag_menu_remove_window
-bag_menu_remove_window: @ 81AE184
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CE54
- movs r2, 0x81
- lsls r2, 4
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _081AE1B8
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
-_081AE1B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_remove_window
-
- thumb_func_start AddItemMessageWindow
-@ u8 AddItemMessageWindow(u8 a1)
-AddItemMessageWindow: @ 81AE1C4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203CE54
- movs r3, 0x81
- lsls r3, 4
- adds r1, r2, r3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081AE1E8
- lsls r0, r2, 3
- ldr r1, =gUnknown_086141AC
- adds r0, r1
- bl AddWindow
- strb r0, [r4]
-_081AE1E8:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddItemMessageWindow
-
- thumb_func_start bag_menu_RemoveBagItem_message_window
-bag_menu_RemoveBagItem_message_window: @ 81AE1F8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CE54
- movs r2, 0x81
- lsls r2, 4
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _081AE22C
- movs r1, 0
- bl sub_8197DF8
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0xFF
- strb r0, [r4]
-_081AE22C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_RemoveBagItem_message_window
-
- thumb_func_start bag_menu_yes_no
-bag_menu_yes_no: @ 81AE238
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 21
- ldr r3, =gUnknown_086141AC
- adds r1, r3
- movs r3, 0x2
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- movs r3, 0xE
- str r3, [sp, 0x8]
- str r2, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0
- bl CreateYesNoMenuWithCallbacks
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_yes_no
-
- thumb_func_start bag_menu_add_money_window
-bag_menu_add_money_window: @ 81AE268
- push {r4,lr}
- movs r0, 0x9
- bl bag_menu_add_window
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl DecryptMoney
- adds r3, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xE
- bl set_window_border_style_and_print_money_box
- movs r0, 0x13
- movs r1, 0xB
- bl AddMoneyLabelObject
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bag_menu_add_money_window
-
- thumb_func_start bag_menu_remove_money_window
-bag_menu_remove_money_window: @ 81AE2A4
- push {lr}
- movs r0, 0x9
- bl bag_menu_remove_window
- bl RemoveMoneyLabelObject
- pop {r0}
- bx r0
- thumb_func_end bag_menu_remove_money_window
-
- thumb_func_start bag_menu_prepare_tmhm_move_window
-bag_menu_prepare_tmhm_move_window: @ 81AE2B4
- push {lr}
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x3
- movs r1, 0x13
- movs r2, 0
- movs r3, 0
- bl blit_move_info_icon
- movs r0, 0x3
- movs r1, 0x14
- movs r2, 0
- movs r3, 0xC
- bl blit_move_info_icon
- movs r0, 0x3
- movs r1, 0x15
- movs r2, 0
- movs r3, 0x18
- bl blit_move_info_icon
- movs r0, 0x3
- movs r1, 0x16
- movs r2, 0
- movs r3, 0x24
- bl blit_move_info_icon
- movs r0, 0x3
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end bag_menu_prepare_tmhm_move_window
-
- thumb_func_start PrintTMHMMoveData
-PrintTMHMMoveData: @ 81AE2FC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x4
- movs r1, 0
- bl FillWindowPixelBuffer
- cmp r4, 0
- bne _081AE354
- movs r4, 0
- movs r5, 0
-_081AE31A:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 26
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x4
- str r0, [sp, 0x10]
- movs r1, 0x1
- ldr r2, =gUnknown_085E8D45
- movs r3, 0x7
- bl bag_menu_print
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081AE31A
- movs r0, 0x4
- movs r1, 0x2
- bl CopyWindowToVram
- b _081AE440
- .pool
-_081AE354:
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r5, r0, r1
- ldrb r1, [r5, 0x2]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl blit_move_info_icon
- ldrb r0, [r5, 0x1]
- cmp r0, 0x1
- bhi _081AE38C
- ldr r2, =gUnknown_085E8D45
- b _081AE39C
- .pool
-_081AE38C:
- ldr r4, =gStringVar1
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_081AE39C:
- movs r0, 0xC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0xFF
- str r0, [sp, 0xC]
- movs r0, 0x4
- str r0, [sp, 0x10]
- movs r1, 0x1
- movs r3, 0x7
- bl bag_menu_print
- ldr r2, =gBattleMoves
- lsls r1, r7, 1
- adds r0, r1, r7
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x3]
- adds r6, r1, 0
- cmp r0, 0
- bne _081AE3D8
- ldr r2, =gUnknown_085E8D45
- b _081AE3E8
- .pool
-_081AE3D8:
- ldr r4, =gStringVar1
- ldrb r1, [r2, 0x3]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r2, r4, 0
-_081AE3E8:
- movs r0, 0x18
- str r0, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0xFF
- mov r8, r0
- str r0, [sp, 0xC]
- movs r0, 0x4
- mov r9, r0
- str r0, [sp, 0x10]
- movs r1, 0x1
- movs r3, 0x7
- bl bag_menu_print
- ldr r5, =gStringVar1
- ldr r1, =gBattleMoves
- adds r0, r6, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x4]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x24
- str r0, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- mov r0, r9
- str r0, [sp, 0x10]
- movs r0, 0x4
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x7
- bl bag_menu_print
- movs r0, 0x4
- movs r1, 0x2
- bl CopyWindowToVram
-_081AE440:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PrintTMHMMoveData
-
- thumb_func_start ListMenuDummyTask
-@ void ListMenuDummyTask(u8 taskId)
-ListMenuDummyTask: @ 81AE458
- bx lr
- thumb_func_end ListMenuDummyTask
-
- thumb_func_start DoMysteryGiftListMenu
-@ int DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, int a3, int a4, int a5)
-DoMysteryGiftListMenu: @ 81AE45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r12, r0
- str r1, [sp]
- ldr r0, [sp, 0x28]
- lsls r2, 24
- lsrs r6, r2, 24
- mov r10, r6
- lsls r3, 16
- lsrs r7, r3, 16
- str r7, [sp, 0x4]
- lsls r0, 16
- mov r8, r0
- lsrs r0, 16
- mov r9, r0
- ldr r5, =gUnknown_0203CE84
- ldrb r4, [r5, 0x4]
- cmp r4, 0x1
- beq _081AE4F4
- cmp r4, 0x1
- ble _081AE492
- cmp r4, 0x2
- beq _081AE558
-_081AE492:
- mov r0, r12
- bl AddWindow
- strb r0, [r5, 0x5]
- cmp r6, 0x1
- beq _081AE4B0
- cmp r6, 0x2
- bne _081AE4C0
- ldrb r0, [r5, 0x5]
- mov r1, r9
- lsls r2, r1, 24
- lsrs r2, 24
- adds r1, r7, 0
- bl sub_809882C
-_081AE4B0:
- ldrb r0, [r5, 0x5]
- mov r3, r8
- lsrs r2, r3, 20
- lsls r2, 24
- lsrs r2, 24
- ldr r1, [sp, 0x4]
- bl sub_8098858
-_081AE4C0:
- ldr r0, =gUnknown_03006310
- adds r2, r0, 0
- ldr r1, [sp]
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldr r4, =gUnknown_0203CE84
- ldrb r1, [r4, 0x5]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- strb r0, [r4, 0x6]
- ldrb r0, [r4, 0x5]
- movs r1, 0x1
- bl CopyWindowToVram
- movs r0, 0x1
- strb r0, [r4, 0x4]
- b _081AE570
- .pool
-_081AE4F4:
- ldrb r0, [r5, 0x6]
- bl ListMenuHandleInput
- str r0, [r5]
- ldr r1, =gMain
- ldrh r0, [r1, 0x2E]
- ands r4, r0
- cmp r4, 0
- beq _081AE50A
- movs r0, 0x2
- strb r0, [r5, 0x4]
-_081AE50A:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081AE51E
- movs r0, 0x2
- negs r0, r0
- str r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x4]
-_081AE51E:
- ldrb r0, [r5, 0x4]
- cmp r0, 0x2
- bne _081AE570
- cmp r6, 0
- bne _081AE534
- ldrb r0, [r5, 0x5]
- bl ClearWindowTilemap
- b _081AE546
- .pool
-_081AE534:
- mov r4, r10
- cmp r4, 0
- blt _081AE546
- cmp r4, 0x2
- bgt _081AE546
- ldrb r0, [r5, 0x5]
- movs r1, 0
- bl sub_819746C
-_081AE546:
- ldr r0, =gUnknown_0203CE84
- ldrb r0, [r0, 0x5]
- movs r1, 0x1
- bl CopyWindowToVram
- b _081AE570
- .pool
-_081AE558:
- ldrb r0, [r5, 0x6]
- movs r1, 0
- movs r2, 0
- bl sub_81AE6C8
- ldrb r0, [r5, 0x5]
- bl RemoveWindow
- movs r0, 0
- strb r0, [r5, 0x4]
- ldr r0, [r5]
- b _081AE574
-_081AE570:
- movs r0, 0x1
- negs r0, r0
-_081AE574:
- 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 DoMysteryGiftListMenu
-
- thumb_func_start ListMenuInit
-@ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
-ListMenuInit: @ 81AE584
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- bl ListMenuInitInternal
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5, 0x10]
- bl PutWindowTilemap
- ldrb r0, [r5, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end ListMenuInit
-
- thumb_func_start Unused_ListMenuInit2
-@ u8 Unused_ListMenuInit2(struct ListMenuTemplate *listMenuTemplate, int a2, u16 scrollOffset, u16 selectedRow)
-Unused_ListMenuInit2: @ 81AE5B0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- bl ListMenuInitInternal
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r4, 0x4]
- cmp r0, 0xFF
- beq _081AE5F0
- adds r5, r4, 0
-_081AE5D4:
- ldrb r0, [r6, 0x10]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5, 0x2]
- ldrb r4, [r5, 0x3]
- str r4, [sp]
- ldrb r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl PutWindowRectTilemapOverridePalette
- adds r5, 0x8
- ldrb r0, [r5, 0x4]
- cmp r0, 0xFF
- bne _081AE5D4
-_081AE5F0:
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r7, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end Unused_ListMenuInit2
-
- thumb_func_start ListMenuHandleInput
-@ int ListMenuHandleInput(u8 taskId)
-ListMenuHandleInput: @ 81AE604
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r3, r1, r0
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081AE638
- ldrh r0, [r3, 0x18]
- ldrh r1, [r3, 0x1A]
- adds r0, r1
- ldr r1, [r3]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- b _081AE6C2
- .pool
-_081AE638:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081AE646
- movs r0, 0x2
- negs r0, r0
- b _081AE6C2
-_081AE646:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081AE65A
- adds r0, r3, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0
- b _081AE6BA
-_081AE65A:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081AE66A
- adds r0, r3, 0
- movs r1, 0x1
- movs r2, 0x1
- b _081AE6B8
-_081AE66A:
- ldrb r0, [r3, 0x16]
- lsrs r0, 6
- cmp r0, 0x1
- beq _081AE680
- cmp r0, 0x1
- ble _081AE67A
- cmp r0, 0x2
- beq _081AE68C
-_081AE67A:
- movs r2, 0
- movs r0, 0
- b _081AE6A0
-_081AE680:
- movs r0, 0x20
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x10
- b _081AE69A
-_081AE68C:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0x80
- lsls r0, 1
-_081AE69A:
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
-_081AE6A0:
- cmp r2, 0
- beq _081AE6AE
- ldrb r2, [r3, 0xE]
- adds r0, r3, 0
- movs r1, 0x1
- movs r3, 0
- b _081AE6BA
-_081AE6AE:
- cmp r0, 0
- beq _081AE6BE
- ldrb r2, [r3, 0xE]
- adds r0, r3, 0
- movs r1, 0x1
-_081AE6B8:
- movs r3, 0x1
-_081AE6BA:
- bl ListMenuChangeSelection
-_081AE6BE:
- movs r0, 0x1
- negs r0, r0
-_081AE6C2:
- pop {r1}
- bx r1
- thumb_func_end ListMenuHandleInput
-
- thumb_func_start sub_81AE6C8
-sub_81AE6C8: @ 81AE6C8
- push {r4,lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r1, r0, r1
- cmp r3, 0
- beq _081AE6E4
- ldrh r0, [r1, 0x18]
- strh r0, [r3]
-_081AE6E4:
- cmp r2, 0
- beq _081AE6EC
- ldrh r0, [r1, 0x1A]
- strh r0, [r2]
-_081AE6EC:
- ldrb r0, [r1, 0x1E]
- cmp r0, 0xFF
- beq _081AE6FC
- ldrb r1, [r1, 0x17]
- lsrs r1, 6
- subs r1, 0x2
- bl ListMenuRemoveCursorObject
-_081AE6FC:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AE6C8
-
- thumb_func_start sub_81AE70C
-sub_81AE70C: @ 81AE70C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldrb r0, [r4, 0x10]
- ldrb r2, [r4, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r4, 0x18]
- ldrh r3, [r4, 0xE]
- adds r0, r4, 0
- movs r2, 0
- bl ListMenuPrintEntries
- adds r0, r4, 0
- bl ListMenuDrawCursor
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AE70C
-
- thumb_func_start sub_81AE750
-sub_81AE750: @ 81AE750
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- lsrs r1, 20
- ldrb r6, [r4, 0x14]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r6
- orrs r0, r1
- strb r0, [r4, 0x14]
- ands r2, r5
- ldrb r1, [r4, 0x15]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- lsrs r3, 20
- ands r0, r5
- orrs r0, r3
- strb r0, [r4, 0x15]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AE750
-
- thumb_func_start sub_81AE794
-sub_81AE794: @ 81AE794
- push {r4,r5,lr}
- adds r3, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldrb r0, [r4, 0x10]
- movs r1, 0x1
- adds r2, r3, 0
- bl SetWindowAttribute
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- adds r2, r5, 0
- bl SetWindowAttribute
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AE794
-
- thumb_func_start sub_81AE7D0
-sub_81AE7D0: @ 81AE7D0
- push {r4-r7,lr}
- sub sp, 0x20
- mov r12, r2
- ldr r5, [sp, 0x34]
- lsls r3, 16
- lsrs r3, 16
- adds r4, r3, 0
- mov r3, sp
- ldm r0!, {r2,r6,r7}
- stm r3!, {r2,r6,r7}
- ldm r0!, {r2,r6,r7}
- stm r3!, {r2,r6,r7}
- mov r0, sp
- movs r3, 0
- strh r1, [r0, 0x18]
- mov r1, r12
- strh r1, [r0, 0x1A]
- strb r3, [r0, 0x1C]
- strb r3, [r0, 0x1D]
- cmp r4, 0x40
- bne _081AE804
- movs r1, 0
- movs r2, 0x1
- movs r3, 0
- bl ListMenuChangeSelection
-_081AE804:
- cmp r4, 0x80
- bne _081AE814
- mov r0, sp
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x1
- bl ListMenuChangeSelection
-_081AE814:
- cmp r5, 0
- beq _081AE81E
- mov r0, sp
- ldrh r0, [r0, 0x18]
- strh r0, [r5]
-_081AE81E:
- ldr r2, [sp, 0x38]
- cmp r2, 0
- beq _081AE82A
- mov r0, sp
- ldrh r0, [r0, 0x1A]
- strh r0, [r2]
-_081AE82A:
- movs r0, 0x1
- negs r0, r0
- add sp, 0x20
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81AE7D0
-
- thumb_func_start sub_81AE838
-sub_81AE838: @ 81AE838
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- cmp r2, 0
- beq _081AE856
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x18]
- adds r0, r1
- strh r0, [r2]
-_081AE856:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AE838
-
- thumb_func_start get_coro_args_x18_x1A
-get_coro_args_x18_x1A: @ 81AE860
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- cmp r3, 0
- beq _081AE87A
- ldrh r0, [r1, 0x18]
- strh r0, [r3]
-_081AE87A:
- cmp r2, 0
- beq _081AE882
- ldrh r0, [r1, 0x1A]
- strh r0, [r2]
-_081AE882:
- pop {r0}
- bx r0
- .pool
- thumb_func_end get_coro_args_x18_x1A
-
- thumb_func_start ListMenuGetYCoordForPrintingArrowCursor
-@ u8 ListMenuGetYCoordForPrintingArrowCursor(u8 taskId)
-ListMenuGetYCoordForPrintingArrowCursor: @ 81AE88C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r4, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x1A]
- adds r2, r1, 0
- muls r2, r0
- adds r1, r2, 0
- ldrb r0, [r4, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuGetYCoordForPrintingArrowCursor
-
- thumb_func_start ListMenuInitInternal
-@ u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
-ListMenuInitInternal: @ 81AE8D4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- ldr r0, =ListMenuDummyTask
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- adds r0, r7, 0
- ldm r4!, {r1-r3}
- stm r0!, {r1-r3}
- ldm r4!, {r1-r3}
- stm r0!, {r1-r3}
- movs r1, 0
- strh r5, [r7, 0x18]
- strh r6, [r7, 0x1A]
- strb r1, [r7, 0x1C]
- strb r1, [r7, 0x1D]
- movs r0, 0xFF
- strb r0, [r7, 0x1E]
- strb r1, [r7, 0x1F]
- ldr r3, =gUnknown_03006300
- ldrb r1, [r7, 0x14]
- movs r5, 0xF
- lsrs r1, 4
- ldrb r4, [r3]
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r7, 0x15]
- lsls r1, 28
- lsrs r1, 24
- ands r0, r5
- orrs r0, r1
- strb r0, [r3]
- ldrb r0, [r7, 0x15]
- lsrs r0, 4
- ands r5, r0
- ldrb r0, [r3, 0x1]
- ands r2, r0
- orrs r2, r5
- strb r2, [r3, 0x1]
- ldrb r1, [r7, 0x16]
- lsls r1, 29
- lsrs r1, 17
- ldr r0, [r3]
- ldr r2, =0xfffc0fff
- ands r0, r2
- orrs r0, r1
- str r0, [r3]
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- strb r0, [r3, 0x3]
- ldrh r0, [r7, 0xC]
- ldrh r1, [r7, 0xE]
- cmp r0, r1
- bcs _081AE96C
- strh r0, [r7, 0xE]
-_081AE96C:
- ldrb r0, [r7, 0x10]
- ldrb r2, [r7, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r7, 0x18]
- ldrh r3, [r7, 0xE]
- adds r0, r7, 0
- movs r2, 0
- bl ListMenuPrintEntries
- adds r0, r7, 0
- bl ListMenuDrawCursor
- adds r0, r7, 0
- movs r1, 0x1
- bl ListMenuCallSelectionChangedCallback
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuInitInternal
-
- thumb_func_start ListMenuPrint
-@ void ListMenuPrint(struct ListMenu *listMenu, u8 *str, u8 x, u8 y)
-ListMenuPrint: @ 81AE9B4
- push {r4-r7,lr}
- sub sp, 0x18
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- ldr r5, =gUnknown_03006300
- ldrb r1, [r5, 0x3]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _081AEA20
- add r1, sp, 0x14
- ldr r2, [r5]
- lsls r0, r2, 24
- lsrs r0, 28
- movs r3, 0
- strb r0, [r1]
- lsls r0, r2, 28
- lsrs r0, 28
- strb r0, [r1, 0x1]
- lsls r0, r2, 20
- lsrs r0, 28
- strb r0, [r1, 0x2]
- ldrb r0, [r4, 0x10]
- lsls r1, r2, 1
- lsrs r1, 25
- lsls r2, 14
- lsrs r2, 26
- str r2, [sp]
- str r3, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- movs r2, 0x1
- negs r2, r2
- str r2, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r2, r7, 0
- mov r3, r12
- bl AddTextPrinterParametrized2
- ldrb r1, [r5, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5, 0x3]
- b _081AEA5E
- .pool
-_081AEA20:
- add r2, sp, 0x14
- ldrb r1, [r4, 0x15]
- lsls r0, r1, 28
- lsrs r0, 28
- strb r0, [r2]
- ldrb r0, [r4, 0x14]
- lsrs r0, 4
- strb r0, [r2, 0x1]
- adds r0, r2, 0
- lsls r1, 24
- lsrs r1, 28
- strb r1, [r0, 0x2]
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x17]
- lsls r1, 26
- lsrs r1, 26
- ldrb r2, [r4, 0x16]
- lsls r2, 29
- lsrs r2, 29
- str r2, [sp]
- str r3, [sp, 0x4]
- add r2, sp, 0x14
- str r2, [sp, 0x8]
- movs r2, 0x1
- negs r2, r2
- str r2, [sp, 0xC]
- str r6, [sp, 0x10]
- adds r2, r7, 0
- mov r3, r12
- bl AddTextPrinterParametrized2
-_081AEA5E:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuPrint
-
- thumb_func_start ListMenuPrintEntries
-@ void ListMenuPrintEntries(struct ListMenu *listMenu, u16 startIndex, u16 yOffset, u16 count)
-ListMenuPrintEntries: @ 81AEA68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp]
- lsls r3, 16
- lsrs r3, 16
- mov r10, r3
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r4, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- cmp r8, r10
- bge _081AEB10
-_081AEAAA:
- ldr r0, [r4]
- mov r2, r9
- lsls r1, r2, 3
- adds r0, r1, r0
- ldr r2, [r0, 0x4]
- movs r0, 0x3
- negs r0, r0
- adds r5, r1, 0
- cmp r2, r0
- beq _081AEAC2
- ldrb r6, [r4, 0x12]
- b _081AEAC4
-_081AEAC2:
- ldrb r6, [r4, 0x11]
-_081AEAC4:
- ldr r0, [sp]
- add r0, r8
- ldr r2, [sp, 0x4]
- adds r1, r0, 0
- muls r1, r2
- ldrb r0, [r4, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r7, r2, 0
- ldr r3, [r4, 0x8]
- cmp r3, 0
- beq _081AEAEE
- ldrb r0, [r4, 0x10]
- ldr r1, [r4]
- adds r1, r5, r1
- ldr r1, [r1, 0x4]
- bl _call_via_r3
-_081AEAEE:
- ldr r0, [r4]
- adds r0, r5, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl ListMenuPrint
- mov r0, r9
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r0, 0x1
- add r8, r0
- cmp r8, r10
- blt _081AEAAA
-_081AEB10:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuPrintEntries
-
- thumb_func_start ListMenuDrawCursor
-@ void ListMenuDrawCursor(struct ListMenu *listMenu)
-ListMenuDrawCursor: @ 81AEB20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r6, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6, 0x13]
- mov r8, r1
- ldrh r1, [r6, 0x1A]
- muls r1, r0
- ldrb r0, [r6, 0x14]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r6, 0x17]
- lsrs r0, 6
- cmp r0, 0x1
- beq _081AEC0C
- cmp r0, 0x1
- bgt _081AEB66
- cmp r0, 0
- beq _081AEB70
- b _081AEC0C
-_081AEB66:
- cmp r0, 0x2
- beq _081AEB84
- cmp r0, 0x3
- beq _081AEBCC
- b _081AEC0C
-_081AEB70:
- ldr r1, =gUnknown_085E8D60
- adds r0, r6, 0
- mov r2, r8
- adds r3, r7, 0
- bl ListMenuPrint
- b _081AEC0C
- .pool
-_081AEB84:
- ldrb r0, [r6, 0x1E]
- cmp r0, 0xFF
- bne _081AEB94
- adds r0, r6, 0
- movs r1, 0
- bl ListMenuAddCursorObject
- strb r0, [r6, 0x1E]
-_081AEB94:
- ldrb r5, [r6, 0x1E]
- ldrb r0, [r6, 0x10]
- movs r1, 0x1
- bl GetWindowAttribute
- adds r4, r0, 0
- lsls r4, 19
- ldr r0, =0xffff0000
- adds r4, r0
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl GetWindowAttribute
- adds r2, r0, 0
- lsls r2, 3
- adds r2, r7
- subs r2, 0x1
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl ListMenuUpdateCursorObject
- b _081AEC0C
- .pool
-_081AEBCC:
- ldrb r0, [r6, 0x1E]
- cmp r0, 0xFF
- bne _081AEBDC
- adds r0, r6, 0
- movs r1, 0x1
- bl ListMenuAddCursorObject
- strb r0, [r6, 0x1E]
-_081AEBDC:
- ldrb r5, [r6, 0x1E]
- ldrb r0, [r6, 0x10]
- movs r1, 0x1
- bl GetWindowAttribute
- adds r4, r0, 0
- lsls r4, 3
- add r4, r8
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x2
- bl GetWindowAttribute
- adds r2, r0, 0
- lsls r2, 3
- adds r2, r7
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl ListMenuUpdateCursorObject
-_081AEC0C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuDrawCursor
-
- thumb_func_start ListMenuAddCursorObject
-ListMenuAddCursorObject: @ 81AEC18
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- mov r1, sp
- movs r0, 0
- strb r0, [r1]
- movs r0, 0xA0
- strb r0, [r1, 0x1]
- ldrb r0, [r4, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- mov r1, sp
- lsls r0, 3
- adds r0, 0x2
- strh r0, [r1, 0x2]
- ldrb r0, [r4, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- mov r1, sp
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x2
- strh r0, [r1, 0x4]
- movs r0, 0x80
- lsls r0, 7
- strh r0, [r1, 0x6]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x8]
- movs r0, 0xF
- strb r0, [r1, 0xA]
- mov r0, sp
- adds r1, r5, 0
- bl ListMenuAddCursorObjectInternal
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuAddCursorObject
-
- thumb_func_start ListMenuErasePrintedCursor
-ListMenuErasePrintedCursor: @ 81AEC78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldrb r1, [r7, 0x17]
- lsrs r0, r1, 6
- cmp r0, 0
- bne _081AECF4
- lsls r0, r1, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- adds r4, r0, 0
- ldrb r0, [r7, 0x16]
- lsls r0, 26
- lsrs r0, 29
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- ldrb r6, [r7, 0x10]
- ldrb r2, [r7, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- ldrb r2, [r7, 0x13]
- mov r3, r8
- muls r3, r4
- adds r4, r3, 0
- ldrb r3, [r7, 0x14]
- lsls r3, 28
- lsrs r3, 28
- adds r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r5, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl FillWindowPixelRect
-_081AECF4:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuErasePrintedCursor
-
- thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset
-@ u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(int, bool8 movingDown)
-ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 81AED00
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- ldrh r3, [r4, 0x1A]
- ldrh r5, [r4, 0x18]
- cmp r1, 0
- bne _081AED74
- ldrh r0, [r4, 0xE]
- cmp r0, 0x1
- bne _081AED18
- movs r2, 0
- b _081AED2A
-_081AED18:
- ldrh r0, [r4, 0xE]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r1, r0
- adds r2, r1
- subs r0, r2
- subs r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
-_081AED2A:
- cmp r5, 0
- bne _081AED50
- cmp r3, 0
- beq _081AEDB6
- ldr r1, [r4]
- movs r2, 0x3
- negs r2, r2
-_081AED38:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r2
- bne _081AEDBA
- cmp r3, 0
- bne _081AED38
- b _081AEDB6
-_081AED50:
- cmp r3, r2
- bls _081AED70
- ldr r1, [r4]
- movs r6, 0x3
- negs r6, r6
-_081AED5A:
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _081AEDBA
- cmp r3, r2
- bhi _081AED5A
-_081AED70:
- subs r0, r5, 0x1
- b _081AEDE2
-_081AED74:
- ldrh r0, [r4, 0xE]
- cmp r0, 0x1
- bne _081AED7E
- movs r2, 0
- b _081AED88
-_081AED7E:
- ldrh r0, [r4, 0xE]
- lsrs r2, r0, 1
- movs r1, 0x1
- ands r1, r0
- adds r2, r1
-_081AED88:
- adds r1, r0, 0
- ldrh r0, [r4, 0xC]
- subs r0, r1
- cmp r5, r0
- bne _081AEDC0
- subs r0, r1, 0x1
- cmp r3, r0
- bge _081AEDB6
- ldr r2, [r4]
- movs r6, 0x3
- negs r6, r6
- adds r1, r0, 0
-_081AEDA0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _081AEDBA
- cmp r3, r1
- blt _081AEDA0
-_081AEDB6:
- movs r0, 0
- b _081AEDE8
-_081AEDBA:
- strh r3, [r4, 0x1A]
- movs r0, 0x1
- b _081AEDE8
-_081AEDC0:
- cmp r3, r2
- bcs _081AEDE0
- ldr r1, [r4]
- movs r6, 0x3
- negs r6, r6
-_081AEDCA:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r0, r5, r3
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- cmp r0, r6
- bne _081AEDBA
- cmp r3, r2
- bcc _081AEDCA
-_081AEDE0:
- adds r0, r5, 0x1
-_081AEDE2:
- strh r2, [r4, 0x1A]
- strh r0, [r4, 0x18]
- movs r0, 0x2
-_081AEDE8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset
-
- thumb_func_start ListMenuScroll
-@ void ListMenuScroll(struct ListMenu *listMenu, int a2, bool8 movingDown)
-ListMenuScroll: @ 81AEDF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldrh r0, [r6, 0xE]
- cmp r5, r0
- bcc _081AEE2A
- ldrb r0, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrh r1, [r6, 0x18]
- ldrh r3, [r6, 0xE]
- adds r0, r6, 0
- movs r2, 0
- bl ListMenuPrintEntries
- b _081AEF1A
-_081AEE2A:
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0x1
- bl GetFontAttribute
- ldrb r1, [r6, 0x16]
- lsls r1, 26
- lsrs r1, 29
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- cmp r1, 0
- bne _081AEEBC
- ldrb r0, [r6, 0x10]
- adds r2, r5, 0
- muls r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r1, [r6, 0x15]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0x1
- bl ScrollWindow
- ldrh r1, [r6, 0x18]
- adds r0, r6, 0
- movs r2, 0
- adds r3, r5, 0
- bl ListMenuPrintEntries
- ldrh r0, [r6, 0xE]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r1, 0
- ldrb r4, [r6, 0x14]
- lsls r4, 28
- lsrs r4, 28
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- adds r5, r0, 0
- lsls r5, 19
- lsrs r5, 16
- ldrb r0, [r6, 0x10]
- movs r1, 0x4
- bl GetWindowAttribute
- lsls r0, 3
- subs r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldrb r3, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- str r5, [sp]
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r2, 0
- adds r3, r4, 0
- bl FillWindowPixelRect
- b _081AEF1A
-_081AEEBC:
- ldrb r0, [r6, 0x10]
- adds r2, r7, 0
- muls r2, r4
- lsls r2, 24
- lsrs r2, 24
- ldrb r1, [r6, 0x15]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- ldrh r2, [r6, 0xE]
- subs r2, r7
- ldrh r1, [r6, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r3, r7, 0
- bl ListMenuPrintEntries
- ldrb r0, [r6, 0x10]
- movs r1, 0x3
- bl GetWindowAttribute
- lsls r0, 19
- lsrs r0, 16
- ldrb r3, [r6, 0x10]
- ldrb r2, [r6, 0x15]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- str r0, [sp]
- ldrb r0, [r6, 0x14]
- lsls r0, 28
- lsrs r0, 28
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0
- bl FillWindowPixelRect
-_081AEF1A:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ListMenuScroll
-
- thumb_func_start ListMenuChangeSelection
-@ bool8 ListMenuChangeSelection(struct ListMenu *listMenu, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown)
-ListMenuChangeSelection: @ 81AEF28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- ldrh r0, [r4, 0x1A]
- mov r10, r0
- movs r7, 0
- movs r5, 0
- movs r0, 0
- cmp r7, r8
- bcs _081AEF90
-_081AEF56:
- adds r6, r0, 0x1
- b _081AEF76
-_081AEF5A:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r4, 0x18]
- ldrh r1, [r4, 0x1A]
- adds r0, r1
- ldr r1, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _081AEF88
-_081AEF76:
- adds r0, r4, 0
- mov r1, r9
- bl ListMenuUpdateSelectedRowIndexAndScrollOffset
- lsls r0, 24
- lsrs r0, 24
- orrs r5, r0
- cmp r0, 0x2
- beq _081AEF5A
-_081AEF88:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _081AEF56
-_081AEF90:
- ldr r0, [sp]
- cmp r0, 0
- beq _081AEFEE
- cmp r5, 0x1
- beq _081AEFA6
- cmp r5, 0x1
- ble _081AEFA2
- cmp r5, 0x3
- ble _081AEFC6
-_081AEFA2:
- movs r0, 0x1
- b _081AEFF0
-_081AEFA6:
- adds r0, r4, 0
- mov r1, r10
- bl ListMenuErasePrintedCursor
- adds r0, r4, 0
- bl ListMenuDrawCursor
- adds r0, r4, 0
- movs r1, 0
- bl ListMenuCallSelectionChangedCallback
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
- b _081AEFEE
-_081AEFC6:
- adds r0, r4, 0
- mov r1, r10
- bl ListMenuErasePrintedCursor
- adds r0, r4, 0
- adds r1, r7, 0
- mov r2, r9
- bl ListMenuScroll
- adds r0, r4, 0
- bl ListMenuDrawCursor
- adds r0, r4, 0
- movs r1, 0
- bl ListMenuCallSelectionChangedCallback
- ldrb r0, [r4, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
-_081AEFEE:
- movs r0, 0
-_081AEFF0:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ListMenuChangeSelection
-
- thumb_func_start ListMenuCallSelectionChangedCallback
-@ void ListMenuCallSelectionChangedCallback(struct ListMenu *listMenu, u8 a2)
-ListMenuCallSelectionChangedCallback: @ 81AF000
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r3, [r2, 0x4]
- cmp r3, 0
- beq _081AF022
- ldrh r0, [r2, 0x18]
- ldrh r1, [r2, 0x1A]
- adds r0, r1
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl _call_via_r3
-_081AF022:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ListMenuCallSelectionChangedCallback
-
- thumb_func_start sub_81AF028
-sub_81AF028: @ 81AF028
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r6, =gUnknown_03006300
- movs r5, 0xF
- ands r0, r5
- ldrb r3, [r6]
- mov r8, r3
- movs r4, 0x10
- negs r4, r4
- adds r3, r4, 0
- mov r7, r8
- ands r3, r7
- orrs r3, r0
- lsrs r1, 20
- ands r3, r5
- orrs r3, r1
- strb r3, [r6]
- ands r2, r5
- ldrb r0, [r6, 0x1]
- ands r4, r0
- orrs r4, r2
- strb r4, [r6, 0x1]
- ldrb r0, [r6, 0x3]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r6, 0x3]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AF028
-
- thumb_func_start sub_81AF078
-sub_81AF078: @ 81AF078
- push {lr}
- lsls r1, 24
- cmp r1, 0
- bne _081AF086
- movs r0, 0x5
- bl PlaySE
-_081AF086:
- pop {r0}
- bx r0
- thumb_func_end sub_81AF078
-
- thumb_func_start sub_81AF08C
-sub_81AF08C: @ 81AF08C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r2, r1, r0
- cmp r3, 0x10
- bhi _081AF154
- lsls r0, r3, 2
- ldr r1, =_081AF0B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AF0B8:
- .4byte _081AF0FC
- .4byte _081AF0FC
- .4byte _081AF100
- .4byte _081AF104
- .4byte _081AF108
- .4byte _081AF10C
- .4byte _081AF110
- .4byte _081AF114
- .4byte _081AF118
- .4byte _081AF11C
- .4byte _081AF122
- .4byte _081AF12A
- .4byte _081AF130
- .4byte _081AF138
- .4byte _081AF140
- .4byte _081AF146
- .4byte _081AF14E
-_081AF0FC:
- ldr r0, [r2, 0x4]
- b _081AF158
-_081AF100:
- ldrh r0, [r2, 0xC]
- b _081AF158
-_081AF104:
- ldrh r0, [r2, 0xE]
- b _081AF158
-_081AF108:
- ldrb r0, [r2, 0x10]
- b _081AF158
-_081AF10C:
- ldrb r0, [r2, 0x11]
- b _081AF158
-_081AF110:
- ldrb r0, [r2, 0x12]
- b _081AF158
-_081AF114:
- ldrb r0, [r2, 0x13]
- b _081AF158
-_081AF118:
- ldrb r0, [r2, 0x14]
- b _081AF124
-_081AF11C:
- ldrb r0, [r2, 0x14]
- lsrs r0, 4
- b _081AF158
-_081AF122:
- ldrb r0, [r2, 0x15]
-_081AF124:
- lsls r0, 28
- lsrs r0, 28
- b _081AF158
-_081AF12A:
- ldrb r0, [r2, 0x15]
- lsrs r0, 4
- b _081AF158
-_081AF130:
- ldrb r0, [r2, 0x16]
- lsls r0, 29
- lsrs r0, 29
- b _081AF158
-_081AF138:
- ldrb r0, [r2, 0x16]
- lsls r0, 26
- lsrs r0, 29
- b _081AF158
-_081AF140:
- ldrb r0, [r2, 0x16]
- lsrs r0, 6
- b _081AF158
-_081AF146:
- ldrb r0, [r2, 0x17]
- lsls r0, 26
- lsrs r0, 26
- b _081AF158
-_081AF14E:
- ldrb r0, [r2, 0x17]
- lsrs r0, 6
- b _081AF158
-_081AF154:
- movs r0, 0x1
- negs r0, r0
-_081AF158:
- pop {r1}
- bx r1
- thumb_func_end sub_81AF08C
-
- thumb_func_start sub_81AF15C
-sub_81AF15C: @ 81AF15C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r3, r1, r0
- cmp r4, 0x10
- bhi _081AF25C
- lsls r0, r4, 2
- ldr r1, =_081AF188
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081AF188:
- .4byte _081AF1CC
- .4byte _081AF1CC
- .4byte _081AF1D0
- .4byte _081AF1D4
- .4byte _081AF1D8
- .4byte _081AF1DC
- .4byte _081AF1E0
- .4byte _081AF1E4
- .4byte _081AF1E8
- .4byte _081AF1F4
- .4byte _081AF202
- .4byte _081AF20E
- .4byte _081AF21C
- .4byte _081AF228
- .4byte _081AF236
- .4byte _081AF244
- .4byte _081AF250
-_081AF1CC:
- str r2, [r3, 0x4]
- b _081AF25C
-_081AF1D0:
- strh r2, [r3, 0xC]
- b _081AF25C
-_081AF1D4:
- strh r2, [r3, 0xE]
- b _081AF25C
-_081AF1D8:
- strb r2, [r3, 0x10]
- b _081AF25C
-_081AF1DC:
- strb r2, [r3, 0x11]
- b _081AF25C
-_081AF1E0:
- strb r2, [r3, 0x12]
- b _081AF25C
-_081AF1E4:
- strb r2, [r3, 0x13]
- b _081AF25C
-_081AF1E8:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x14]
- movs r0, 0x10
- negs r0, r0
- b _081AF1FA
-_081AF1F4:
- lsls r2, 4
- ldrb r1, [r3, 0x14]
- movs r0, 0xF
-_081AF1FA:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x14]
- b _081AF25C
-_081AF202:
- movs r0, 0xF
- ands r2, r0
- ldrb r1, [r3, 0x15]
- movs r0, 0x10
- negs r0, r0
- b _081AF214
-_081AF20E:
- lsls r2, 4
- ldrb r1, [r3, 0x15]
- movs r0, 0xF
-_081AF214:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x15]
- b _081AF25C
-_081AF21C:
- movs r0, 0x7
- ands r2, r0
- ldrb r1, [r3, 0x16]
- movs r0, 0x8
- negs r0, r0
- b _081AF23C
-_081AF228:
- movs r0, 0x7
- ands r2, r0
- lsls r2, 3
- ldrb r1, [r3, 0x16]
- movs r0, 0x39
- negs r0, r0
- b _081AF23C
-_081AF236:
- lsls r2, 6
- ldrb r1, [r3, 0x16]
- movs r0, 0x3F
-_081AF23C:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x16]
- b _081AF25C
-_081AF244:
- movs r0, 0x3F
- ands r2, r0
- ldrb r1, [r3, 0x17]
- movs r0, 0x40
- negs r0, r0
- b _081AF256
-_081AF250:
- lsls r2, 6
- ldrb r1, [r3, 0x17]
- movs r0, 0x3F
-_081AF256:
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x17]
-_081AF25C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81AF15C
-
- thumb_func_start sub_81AF264
-sub_81AF264: @ 81AF264
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF276
- cmp r0, 0x1
- beq _081AF28A
- b _081AF2E4
-_081AF276:
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081AF2E4
-_081AF28A:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF29A
- cmp r0, 0x1
- beq _081AF2C0
- ldrh r2, [r4, 0x38]
- b _081AF2DE
-_081AF29A:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _081AF2B4
- adds r0, 0xFF
-_081AF2B4:
- asrs r0, 8
- strh r0, [r4, 0x24]
- b _081AF2DE
- .pool
-_081AF2C0:
- movs r0, 0x34
- ldrsh r3, [r4, r0]
- ldr r1, =gSineTable
- ldrh r2, [r4, 0x38]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- muls r0, r3
- cmp r0, 0
- bge _081AF2DA
- adds r0, 0xFF
-_081AF2DA:
- asrs r0, 8
- strh r0, [r4, 0x26]
-_081AF2DE:
- ldrh r0, [r4, 0x36]
- adds r0, r2, r0
- strh r0, [r4, 0x38]
-_081AF2E4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AF264
-
- thumb_func_start AddScrollIndicatorArrowObject
-AddScrollIndicatorArrowObject: @ 81AF2F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- adds r6, r0, 0
- ldr r5, [sp, 0x30]
- lsls r6, 24
- lsrs r6, 24
- mov r8, r6
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 16
- lsrs r5, 16
- mov r12, r5
- mov r4, sp
- ldr r0, =gUnknown_08614244
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r4!, {r5-r7}
- mov r0, sp
- movs r4, 0
- strh r3, [r0]
- mov r3, r12
- strh r3, [r0, 0x2]
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r1
- adds r5, r3, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r5]
- strh r4, [r3, 0x2E]
- ldr r1, =gUnknown_086141FC
- mov r5, r8
- lsls r6, r5, 2
- adds r6, r1
- ldrb r2, [r6]
- lsls r1, r2, 28
- lsrs r1, 28
- strh r1, [r3, 0x30]
- lsrs r2, 4
- strh r2, [r3, 0x32]
- ldrb r1, [r6, 0x1]
- strh r1, [r3, 0x34]
- ldrh r1, [r6, 0x2]
- strh r1, [r3, 0x36]
- strh r4, [r3, 0x38]
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowObject
-
- thumb_func_start AddScrollIndicatorArrowPair
-AddScrollIndicatorArrowPair: @ 81AF380
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- adds r6, r0, 0
- mov r9, r1
- ldr r0, =gUnknown_086142C8
- str r0, [sp, 0x4]
- ldr r5, =0xffff0000
- ldr r0, [sp, 0x8]
- ands r0, r5
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- ldr r4, =0x0000ffff
- ands r0, r4
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0xC]
- cmp r2, r4
- bne _081AF3DC
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r6, 0xE]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AF3EE
- .pool
-_081AF3DC:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0xC]
- add r0, sp, 0xC
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AF3EE:
- ldr r0, =Task_ScrollIndicatorArrowPair
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- movs r0, 0
- strb r0, [r7]
- mov r0, r9
- str r0, [r7, 0x4]
- ldrh r0, [r6, 0x6]
- strh r0, [r7, 0x8]
- ldrh r0, [r6, 0x8]
- strh r0, [r7, 0xA]
- ldrh r0, [r6, 0xA]
- strh r0, [r7, 0xE]
- ldrh r0, [r6, 0xC]
- strh r0, [r7, 0x10]
- ldrb r0, [r6]
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xC]
- ldrb r0, [r6, 0x3]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x5]
- ldrh r3, [r6, 0xA]
- ldrh r4, [r6, 0xC]
- str r4, [sp]
- bl AddScrollIndicatorArrowObject
- strb r0, [r7, 0xD]
- ldrh r1, [r6, 0xC]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AF47C
- ldr r5, =gSprites
- ldrb r0, [r7, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r6, 0xE]
- lsls r3, 4
- ldrb r4, [r1, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r7, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r6, 0xE]
- lsls r1, 4
- ldrb r3, [r0, 0x5]
- ands r2, r3
- orrs r2, r1
- strb r2, [r0, 0x5]
-_081AF47C:
- mov r0, r8
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowPair
-
- thumb_func_start AddScrollIndicatorArrowPairParametrized
-AddScrollIndicatorArrowPairParametrized: @ 81AF4A0
- push {r4,lr}
- adds r4, r1, 0
- subs r0, 0x2
- cmp r0, 0x1
- bhi _081AF4C4
- ldr r0, =gUnknown_0203CE8C
- movs r1, 0x2
- strb r1, [r0]
- strb r4, [r0, 0x1]
- strb r2, [r0, 0x2]
- movs r1, 0x3
- strb r1, [r0, 0x3]
- strb r4, [r0, 0x4]
- strb r3, [r0, 0x5]
- b _081AF4D6
- .pool
-_081AF4C4:
- ldr r0, =gUnknown_0203CE8C
- movs r1, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r4, [r0, 0x2]
- movs r1, 0x1
- strb r1, [r0, 0x3]
- strb r3, [r0, 0x4]
- strb r4, [r0, 0x5]
-_081AF4D6:
- adds r2, r0, 0
- movs r1, 0
- movs r0, 0
- strh r0, [r2, 0x6]
- ldr r0, [sp, 0x8]
- strh r0, [r2, 0x8]
- ldr r0, [sp, 0xC]
- strh r0, [r2, 0xA]
- ldr r0, [sp, 0x10]
- strh r0, [r2, 0xC]
- strb r1, [r2, 0xE]
- adds r0, r2, 0
- ldr r1, [sp, 0x14]
- bl AddScrollIndicatorArrowPair
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddScrollIndicatorArrowPairParametrized
-
- thumb_func_start Task_ScrollIndicatorArrowPair
-Task_ScrollIndicatorArrowPair: @ 81AF504
- push {r4,r5,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
- ldr r0, [r4, 0x4]
- ldrh r5, [r0]
- ldrh r0, [r4, 0x8]
- cmp r5, r0
- bne _081AF548
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _081AF548
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF55E
- .pool
-_081AF548:
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF55E:
- strb r1, [r0]
- ldrh r0, [r4, 0xA]
- cmp r5, r0
- bne _081AF580
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF594
- .pool
-_081AF580:
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF594:
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_ScrollIndicatorArrowPair
-
- thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu
-Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C
- 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, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081AF5E8
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- b _081AF612
- .pool
-_081AF5E8:
- ldr r3, =gSprites
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081AF612:
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu
-
- thumb_func_start RemoveScrollIndicatorArrowPair
-RemoveScrollIndicatorArrowPair: @ 81AF620
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldrh r0, [r5, 0xE]
- ldr r4, =0x0000ffff
- cmp r0, r4
- beq _081AF63E
- bl FreeSpriteTilesByTag
-_081AF63E:
- ldrh r0, [r5, 0x10]
- cmp r0, r4
- beq _081AF648
- bl FreeSpritePaletteByTag
-_081AF648:
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- ldrb r1, [r5, 0xD]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r6, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveScrollIndicatorArrowPair
-
- thumb_func_start ListMenuAddCursorObjectInternal
-ListMenuAddCursorObjectInternal: @ 81AF680
- push {lr}
- cmp r1, 0
- beq _081AF68A
- cmp r1, 0x1
- beq _081AF690
-_081AF68A:
- bl ListMenuAddRedOutlineCursorObject
- b _081AF694
-_081AF690:
- bl ListMenuAddRedArrowCursorObject
-_081AF694:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuAddCursorObjectInternal
-
- thumb_func_start ListMenuUpdateCursorObject
-@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4)
-ListMenuUpdateCursorObject: @ 81AF69C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r3, 0
- beq _081AF6B4
- cmp r3, 0x1
- beq _081AF6BA
- b _081AF6BE
-_081AF6B4:
- bl ListMenuUpdateRedOutlineCursorObject
- b _081AF6BE
-_081AF6BA:
- bl ListMenuUpdateRedArrowCursorObject
-_081AF6BE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuUpdateCursorObject
-
- thumb_func_start ListMenuRemoveCursorObject
-ListMenuRemoveCursorObject: @ 81AF6C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r1, 0
- beq _081AF6D4
- cmp r1, 0x1
- beq _081AF6DA
- b _081AF6DE
-_081AF6D4:
- bl ListMenuRemoveRedOutlineCursorObject
- b _081AF6DE
-_081AF6DA:
- bl ListMenuRemoveRedArrowCursorObject
-_081AF6DE:
- pop {r0}
- bx r0
- thumb_func_end ListMenuRemoveCursorObject
-
- thumb_func_start Task_RedOutlineCursor
-Task_RedOutlineCursor: @ 81AF6E4
- bx lr
- thumb_func_end Task_RedOutlineCursor
-
- thumb_func_start ListMenuGetRedOutlineCursorSpriteCount
-ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0x4
- cmp r0, 0x10
- bls _081AF708
- movs r2, 0x8
- subs r0, 0x8
- cmp r2, r0
- bge _081AF708
-_081AF700:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r0
- blt _081AF700
-_081AF708:
- cmp r1, 0x10
- bls _081AF71C
- movs r2, 0x8
- subs r1, 0x8
- cmp r2, r1
- bge _081AF71C
-_081AF714:
- adds r3, 0x2
- adds r2, 0x8
- cmp r2, r1
- blt _081AF714
-_081AF71C:
- lsls r0, r3, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ListMenuGetRedOutlineCursorSpriteCount
-
- thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable
-ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r3, r2, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldr r0, =gUnknown_0861425C
- ldr r0, [r0]
- str r0, [r3]
- movs r1, 0x88
- strb r1, [r3]
- strb r1, [r3, 0x1]
- ldr r0, =gUnknown_08614260
- ldr r0, [r0]
- str r0, [r3, 0x4]
- mov r2, r8
- adds r2, 0x80
- strb r2, [r3, 0x4]
- strb r1, [r3, 0x5]
- ldr r0, =gUnknown_08614274
- ldr r0, [r0]
- str r0, [r3, 0x8]
- strb r1, [r3, 0x8]
- mov r4, r9
- adds r4, 0x80
- strb r4, [r3, 0x9]
- ldr r0, =gUnknown_08614278
- ldr r0, [r0]
- str r0, [r3, 0xC]
- strb r2, [r3, 0xC]
- strb r4, [r3, 0xD]
- movs r0, 0x4
- mov r12, r0
- mov r2, r8
- cmp r2, 0x10
- bls _081AF7B8
- movs r2, 0x8
- mov r5, r8
- subs r5, 0x8
- cmp r2, r5
- bge _081AF7B8
- ldr r0, =gUnknown_08614264
- ldr r0, [r0]
- str r0, [sp]
- ldr r0, =gUnknown_08614270
- ldr r6, [r0]
- adds r1, r3, 0
- adds r1, 0x10
- movs r7, 0x88
- mov r10, r7
-_081AF796:
- ldr r0, [sp]
- str r0, [r1]
- adds r0, r2, 0
- subs r0, 0x78
- strb r0, [r1]
- mov r7, r10
- strb r7, [r1, 0x1]
- adds r1, 0x4
- str r6, [r1]
- strb r0, [r1]
- strb r4, [r1, 0x1]
- adds r1, 0x4
- movs r0, 0x2
- add r12, r0
- adds r2, 0x8
- cmp r2, r5
- blt _081AF796
-_081AF7B8:
- mov r2, r9
- cmp r2, 0x10
- bls _081AF7F6
- movs r1, 0x8
- mov r4, r9
- subs r4, 0x8
- cmp r1, r4
- bge _081AF7F6
- ldr r0, =gUnknown_08614268
- ldr r6, [r0]
- ldr r0, =gUnknown_0861426C
- ldr r5, [r0]
- mov r7, r12
- lsls r0, r7, 2
- adds r2, r0, r3
- movs r7, 0x88
- mov r3, r8
- adds r3, 0x80
-_081AF7DC:
- str r6, [r2]
- strb r7, [r2]
- adds r0, r1, 0
- subs r0, 0x78
- strb r0, [r2, 0x1]
- adds r2, 0x4
- str r5, [r2]
- strb r3, [r2]
- strb r0, [r2, 0x1]
- adds r2, 0x4
- adds r1, 0x8
- cmp r1, r4
- blt _081AF7DC
-_081AF7F6:
- 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 ListMenuSetUpRedOutlineCursorSpriteOamTable
-
- thumb_func_start ListMenuAddRedOutlineCursorObject
-ListMenuAddRedOutlineCursorObject: @ 81AF828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x28
- adds r6, r0, 0
- ldr r0, =gUnknown_08614338
- str r0, [sp, 0x18]
- ldr r5, =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r5
- movs r2, 0x80
- lsls r2, 1
- orrs r1, r2
- ldrh r2, [r6, 0x6]
- lsls r2, 16
- ldr r3, =0x0000ffff
- ands r1, r3
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r6, 0x8]
- ldr r7, =0x0000ffff
- cmp r2, r7
- bne _081AF884
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r6, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AF896
- .pool
-_081AF884:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r5
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AF896:
- ldr r0, =Task_RedOutlineCursor
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldrh r0, [r6, 0x6]
- movs r3, 0
- mov r8, r3
- strh r0, [r5, 0xE]
- ldrh r0, [r6, 0x8]
- strh r0, [r5, 0x10]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuGetRedOutlineCursorSpriteCount
- strb r0, [r5]
- ldrb r0, [r5]
- lsls r0, 2
- bl Alloc
- adds r2, r0, 0
- str r2, [r5, 0x8]
- str r2, [r5, 0x4]
- ldrh r0, [r6, 0x2]
- ldrh r1, [r6, 0x4]
- bl ListMenuSetUpRedOutlineCursorSpriteOamTable
- mov r1, sp
- ldr r0, =gDummySpriteTemplate
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r6, 0x6]
- strh r0, [r1]
- ldrh r0, [r6, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r6]
- adds r1, 0x78
- ldrb r2, [r6, 0x1]
- adds r2, 0x78
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r5, 0xC]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, =gSprites
- adds r0, r7
- adds r1, r5, 0
- bl SetSubspriteTables
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x43
- mov r1, r8
- strb r1, [r0]
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x42
- ldrb r2, [r0]
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r1, [r6, 0x8]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AF96E
- ldrb r0, [r5, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r6, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081AF96E:
- adds r0, r4, 0
- add sp, 0x28
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuAddRedOutlineCursorObject
-
- thumb_func_start ListMenuUpdateRedOutlineCursorObject
-@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y)
-ListMenuUpdateRedOutlineCursorObject: @ 81AF994
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, =gTasks + 0x8
- adds r3, r0
- ldr r5, =gSprites
- ldrb r4, [r3, 0xC]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- adds r1, 0x78
- strh r1, [r0, 0x20]
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r2, 0x78
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuUpdateRedOutlineCursorObject
-
- thumb_func_start ListMenuRemoveRedOutlineCursorObject
-ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, [r4, 0x8]
- bl Free
- ldrh r0, [r4, 0xE]
- ldr r6, =0x0000ffff
- cmp r0, r6
- beq _081AF9FC
- bl FreeSpriteTilesByTag
-_081AF9FC:
- ldrh r0, [r4, 0x10]
- cmp r0, r6
- beq _081AFA06
- bl FreeSpritePaletteByTag
-_081AFA06:
- ldrb r1, [r4, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuRemoveRedOutlineCursorObject
-
- thumb_func_start ObjectCB_RedArrowCursor
-ObjectCB_RedArrowCursor: @ 81AFA30
- push {lr}
- adds r2, r0, 0
- ldr r1, =gSineTable
- ldrh r3, [r2, 0x2E]
- lsls r0, r3, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _081AFA48
- adds r0, 0x3F
-_081AFA48:
- asrs r0, 6
- strh r0, [r2, 0x24]
- adds r0, r3, 0
- adds r0, 0x8
- strh r0, [r2, 0x2E]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ObjectCB_RedArrowCursor
-
- thumb_func_start Task_RedArrowCursor
-Task_RedArrowCursor: @ 81AFA5C
- bx lr
- thumb_func_end Task_RedArrowCursor
-
- thumb_func_start ListMenuAddRedArrowCursorObject
-ListMenuAddRedArrowCursorObject: @ 81AFA60
- push {r4-r7,lr}
- sub sp, 0x28
- adds r5, r0, 0
- ldr r0, =gUnknown_08614378
- str r0, [sp, 0x18]
- ldr r6, =0xffff0000
- add r0, sp, 0x18
- ldr r1, [r0, 0x4]
- ands r1, r6
- movs r2, 0x80
- orrs r1, r2
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r4, =0x0000ffff
- ands r1, r4
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPic
- ldrh r2, [r5, 0x8]
- cmp r2, r4
- bne _081AFAB4
- ldr r0, =gUnknown_086142A8
- ldrb r1, [r5, 0xA]
- lsls r1, 20
- movs r2, 0x80
- lsls r2, 17
- adds r1, r2
- lsrs r1, 16
- movs r2, 0x20
- bl LoadPalette
- b _081AFAC6
- .pool
-_081AFAB4:
- ldr r0, =gUnknown_086142A8
- str r0, [sp, 0x20]
- add r0, sp, 0x20
- ldr r1, [r0, 0x4]
- ands r1, r6
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpritePalette
-_081AFAC6:
- ldr r0, =Task_RedArrowCursor
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0x4]
- mov r1, sp
- ldr r0, =gUnknown_08614290
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- mov r1, sp
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strh r0, [r1, 0x2]
- ldrb r1, [r5]
- ldrb r2, [r5, 0x1]
- mov r0, sp
- movs r3, 0
- bl CreateSprite
- strb r0, [r4]
- ldr r3, =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x8
- strh r2, [r0, 0x24]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x26]
- ldrh r1, [r5, 0x8]
- ldr r0, =0x0000ffff
- cmp r1, r0
- bne _081AFB46
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r5, 0xA]
- lsls r2, 4
- ldrb r3, [r1, 0x5]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081AFB46:
- adds r0, r6, 0
- add sp, 0x28
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ListMenuAddRedArrowCursorObject
-
- thumb_func_start ListMenuUpdateRedArrowCursorObject
-@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y)
-ListMenuUpdateRedArrowCursorObject: @ 81AFB68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, =gTasks + 0x8
- adds r3, r0
- ldr r5, =gSprites
- ldrb r4, [r3]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- strh r1, [r0, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuUpdateRedArrowCursorObject
-
- thumb_func_start ListMenuRemoveRedArrowCursorObject
-ListMenuRemoveRedArrowCursorObject: @ 81AFBA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- ldr r6, =0x0000ffff
- cmp r0, r6
- beq _081AFBBE
- bl FreeSpriteTilesByTag
-_081AFBBE:
- ldrh r0, [r4, 0x4]
- cmp r0, r6
- beq _081AFBC8
- bl FreeSpritePaletteByTag
-_081AFBC8:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ListMenuRemoveRedArrowCursorObject
-
- thumb_func_start sub_81AFBF0
-sub_81AFBF0: @ 81AFBF0
- push {lr}
- ldr r1, =gUnknown_0203CE9C
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1C
-_081AFBFA:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _081AFBFA
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AFBF0
-
- thumb_func_start sub_81AFC0C
-sub_81AFC0C: @ 81AFC0C
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x7
- bhi _081AFC20
- ldr r1, =gUnknown_0203CE9C
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
-_081AFC20:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AFC0C
-
- thumb_func_start sub_81AFC28
-sub_81AFC28: @ 81AFC28
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _081AFC68
- ldr r5, =gUnknown_0203CE9C
-_081AFC38:
- cmp r1, 0xF7
- beq _081AFC48
- strb r1, [r2]
- adds r4, 0x1
- adds r2, 0x1
- b _081AFC60
- .pool
-_081AFC48:
- adds r4, 0x1
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- cmp r1, 0
- beq _081AFC5E
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
-_081AFC5E:
- adds r4, 0x1
-_081AFC60:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081AFC38
-_081AFC68:
- movs r0, 0xFF
- strb r0, [r2]
- adds r0, r2, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81AFC28
-
- thumb_func_start sub_81AFC74
-sub_81AFC74: @ 81AFC74
- lsls r0, 24
- ldr r1, =gUnknown_0203CE9C
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_81AFC74
-
- thumb_func_start sav1_are_mapnumbers_in_given_list
-sav1_are_mapnumbers_in_given_list: @ 81AFC84
- push {r4,lr}
- adds r2, r0, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r0, [r2]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _081AFCC4
- adds r4, r1, 0
- adds r1, r2, 0
-_081AFCAA:
- ldrh r0, [r1]
- cmp r0, r3
- bne _081AFCBC
- movs r0, 0x1
- b _081AFCC6
- .pool
-_081AFCBC:
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _081AFCAA
-_081AFCC4:
- movs r0, 0
-_081AFCC6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sav1_are_mapnumbers_in_given_list
-
- thumb_func_start sav1_is_in_pokecenter
-sav1_is_in_pokecenter: @ 81AFCCC
- push {lr}
- ldr r0, =gUnknown_086143BC
- bl sav1_are_mapnumbers_in_given_list
- pop {r1}
- bx r1
- .pool
- thumb_func_end sav1_is_in_pokecenter
-
- thumb_func_start sub_81AFCDC
-sub_81AFCDC: @ 81AFCDC
- push {lr}
- ldr r0, =gUnknown_0861440A
- bl sav1_are_mapnumbers_in_given_list
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81AFCDC
-
- thumb_func_start sub_81AFCEC
-sub_81AFCEC: @ 81AFCEC
- push {lr}
- ldr r0, =gUnknown_0861440E
- bl sav1_are_mapnumbers_in_given_list
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81AFCEC
-
- thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter
-sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC
- push {lr}
- bl sav1_is_in_pokecenter
- cmp r0, 0
- bne _081AFD18
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFD
- ands r0, r1
- b _081AFD22
- .pool
-_081AFD18:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- orrs r0, r1
-_081AFD22:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter
-
- thumb_func_start sub_81AFD2C
-sub_81AFD2C: @ 81AFD2C
- push {lr}
- bl sub_81AFCDC
- cmp r0, 0
- bne _081AFD48
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xFB
- ands r0, r1
- b _081AFD52
- .pool
-_081AFD48:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x4
- orrs r0, r1
-_081AFD52:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AFD2C
-
- thumb_func_start sub_81AFD5C
-sub_81AFD5C: @ 81AFD5C
- push {lr}
- bl sub_81AFCEC
- cmp r0, 0
- bne _081AFD78
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0xF7
- ands r0, r1
- b _081AFD82
- .pool
-_081AFD78:
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x8
- orrs r0, r1
-_081AFD82:
- strb r0, [r2, 0x9]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81AFD5C
-
- thumb_func_start sav2_set_x9_depending_on_sav1_map
-sav2_set_x9_depending_on_sav1_map: @ 81AFD8C
- push {lr}
- bl sav2_set_x9_bit3_when_sav1_in_pokecenter
- bl sub_81AFD2C
- bl sub_81AFD5C
- pop {r0}
- bx r0
- thumb_func_end sav2_set_x9_depending_on_sav1_map
-
- thumb_func_start sub_81AFDA0
-sub_81AFDA0: @ 81AFDA0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xA8
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- movs r1, 0x1
- orrs r0, r1
- movs r1, 0x2
- orrs r0, r1
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- movs r1, 0x8
- orrs r0, r1
- str r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81AFDA0
-
- thumb_func_start sub_81AFDD0
-sub_81AFDD0: @ 81AFDD0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2, 0x9]
- bx lr
- .pool
- thumb_func_end sub_81AFDD0
-
- thumb_func_start AllocItemIconTemporaryBuffers
-@ bool8 AllocItemIconTemporaryBuffers()
-AllocItemIconTemporaryBuffers: @ 81AFDE4
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CEBC
- movs r0, 0x90
- lsls r0, 1
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _081AFE1A
- ldr r4, =gUnknown_0203CEC0
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- cmp r0, 0
- beq _081AFE14
- movs r0, 0x1
- b _081AFE1C
- .pool
-_081AFE14:
- ldr r0, [r5]
- bl Free
-_081AFE1A:
- movs r0, 0
-_081AFE1C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end AllocItemIconTemporaryBuffers
-
- thumb_func_start FreeItemIconTemporaryBuffers
-@ void FreeItemIconTemporaryBuffers()
-FreeItemIconTemporaryBuffers: @ 81AFE24
- push {lr}
- ldr r0, =gUnknown_0203CEBC
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_0203CEC0
- ldr r0, [r0]
- bl Free
- pop {r0}
- bx r0
- .pool
- thumb_func_end FreeItemIconTemporaryBuffers
-
- thumb_func_start CopyItemIconPicTo4x4Buffer
-@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest)
-CopyItemIconPicTo4x4Buffer: @ 81AFE44
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
-_081AFE4C:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 5
- adds r0, r6, r0
- lsls r1, r4, 7
- adds r1, r5, r1
- movs r2, 0x30
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081AFE4C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end CopyItemIconPicTo4x4Buffer
-
- thumb_func_start AddItemIconObject
-@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
-AddItemIconObject: @ 81AFE70
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl AllocItemIconTemporaryBuffers
- lsls r0, 24
- cmp r0, 0
- beq _081AFF28
- adds r0, r5, 0
- movs r1, 0
- bl GetItemIconPicOrPalette
- ldr r4, =gUnknown_0203CEBC
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r0, [r4]
- ldr r4, =gUnknown_0203CEC0
- ldr r1, [r4]
- bl CopyItemIconPicTo4x4Buffer
- ldr r0, [r4]
- str r0, [sp]
- ldr r4, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- lsls r2, r7, 16
- ldr r1, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- movs r1, 0x1
- bl GetItemIconPicOrPalette
- str r0, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r6
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- movs r0, 0x18
- bl Alloc
- adds r5, r0, 0
- ldr r0, =gUnknown_08614FF4
- adds r1, r5, 0
- movs r2, 0xC
- bl CpuSet
- strh r7, [r5]
- strh r6, [r5, 0x2]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeItemIconTemporaryBuffers
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- b _081AFF2A
- .pool
-_081AFF28:
- movs r0, 0x40
-_081AFF2A:
- add sp, 0x10
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObject
-
- thumb_func_start AddItemIconObjectWithCustomObjectTemplate
-@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId)
-AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- bl AllocItemIconTemporaryBuffers
- lsls r0, 24
- cmp r0, 0
- beq _081AFFEC
- adds r0, r5, 0
- movs r1, 0
- bl GetItemIconPicOrPalette
- ldr r4, =gUnknown_0203CEBC
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r0, [r4]
- ldr r4, =gUnknown_0203CEC0
- ldr r1, [r4]
- bl CopyItemIconPicTo4x4Buffer
- ldr r0, [r4]
- str r0, [sp]
- ldr r4, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- lsls r2, r7, 16
- ldr r1, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- movs r1, 0x1
- bl GetItemIconPicOrPalette
- str r0, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r6
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- movs r0, 0x18
- bl Alloc
- adds r5, r0, 0
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0xC
- bl CpuSet
- strh r7, [r5]
- strh r6, [r5, 0x2]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeItemIconTemporaryBuffers
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- b _081AFFEE
- .pool
-_081AFFEC:
- movs r0, 0x40
-_081AFFEE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObjectWithCustomObjectTemplate
-
- thumb_func_start GetItemIconPicOrPalette
-@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which)
-GetItemIconPicOrPalette: @ 81AFFFC
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =0x0000ffff
- cmp r3, r0
- bne _081B0018
- ldr r3, =0x00000179
- b _081B0022
- .pool
-_081B0018:
- movs r0, 0xBC
- lsls r0, 1
- cmp r3, r0
- bls _081B0022
- movs r3, 0
-_081B0022:
- ldr r2, =gItemIconTable
- lsls r0, r1, 2
- lsls r1, r3, 3
- adds r0, r1
- adds r0, r2
- ldr r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetItemIconPicOrPalette
-
- thumb_func_start sub_81B0038
-sub_81B0038: @ 81B0038
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 24
- lsrs r6, r4, 24
- bl reset_brm
- ldr r0, =gUnknown_0203CEC4
- mov r10, r0
- movs r0, 0x8E
- lsls r0, 2
- bl Alloc
- adds r5, r0, 0
- mov r1, r10
- str r5, [r1]
- cmp r5, 0
- bne _081B0088
- ldr r0, [sp, 0x2C]
- bl SetMainCallback2
- b _081B0194
- .pool
-_081B0088:
- ldr r3, =gUnknown_0203CEC8
- movs r1, 0xF
- mov r4, r8
- ands r1, r4
- ldrb r2, [r3, 0x8]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x8]
- ldr r0, [sp, 0x2C]
- str r0, [r3]
- movs r4, 0
- strb r7, [r3, 0xB]
- lsls r2, r6, 2
- ldrh r1, [r5, 0xA]
- movs r0, 0x3
- ands r0, r1
- orrs r0, r2
- strh r0, [r5, 0xA]
- ldr r0, [sp, 0x28]
- str r0, [r5]
- str r4, [r5, 0x4]
- ldrb r1, [r5, 0x8]
- movs r0, 0xF
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x8]
- mov r1, r10
- ldr r2, [r1]
- ldrh r0, [r2, 0x8]
- movs r4, 0xFE
- lsls r4, 3
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xFE
- lsls r1, 10
- orrs r0, r1
- str r0, [r2, 0x8]
- adds r6, r3, 0
- mov r5, r8
- cmp r5, 0x4
- bne _081B00F0
- ldrb r0, [r2, 0x8]
- movs r1, 0x1
- orrs r0, r1
- b _081B00F8
- .pool
-_081B00F0:
- ldrb r1, [r2, 0x8]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_081B00F8:
- strb r0, [r2, 0x8]
- mov r0, r9
- cmp r0, 0xFF
- beq _081B0114
- movs r0, 0x3
- mov r1, r9
- ands r0, r1
- lsls r0, 4
- ldrb r2, [r6, 0x8]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x8]
-_081B0114:
- movs r2, 0
- ldr r5, =gUnknown_0203CEC4
- movs r4, 0x86
- lsls r4, 2
- movs r3, 0
-_081B011E:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _081B011E
- movs r2, 0
- ldr r4, =gUnknown_0203CEC4
- movs r3, 0xFF
-_081B0138:
- ldr r0, [r4]
- adds r0, 0xC
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x2
- bls _081B0138
- ldr r4, [sp]
- cmp r4, 0
- bne _081B015C
- strb r4, [r6, 0x9]
- b _081B017E
- .pool
-_081B015C:
- adds r1, r6, 0
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _081B017A
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _081B017E
-_081B017A:
- movs r0, 0
- strb r0, [r6, 0x9]
-_081B017E:
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl CalculatePlayerPartyCount
- ldr r0, =c2_811EBD0
- bl SetMainCallback2
-_081B0194:
- 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_81B0038
-
- thumb_func_start sub_81B01B0
-sub_81B01B0: @ 81B01B0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_81B01B0
-
- thumb_func_start sub_81B01CC
-sub_81B01CC: @ 81B01CC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81B01CC
-
- thumb_func_start c2_811EBD0
-c2_811EBD0: @ 81B01E0
- push {lr}
-_081B01E2:
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B0206
- bl sub_81B020C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B0206
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B01E2
-_081B0206:
- pop {r0}
- bx r0
- thumb_func_end c2_811EBD0
-
- thumb_func_start sub_81B020C
-sub_81B020C: @ 81B020C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x16
- bls _081B0222
- b _081B0498
-_081B0222:
- lsls r0, 2
- ldr r1, =_081B0234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B0234:
- .4byte _081B0290
- .4byte _081B02AC
- .4byte _081B02B2
- .4byte _081B02D4
- .4byte _081B02DA
- .4byte _081B02EC
- .4byte _081B02FE
- .4byte _081B0310
- .4byte _081B0338
- .4byte _081B0354
- .4byte _081B0368
- .4byte _081B038C
- .4byte _081B03A0
- .4byte _081B03A6
- .4byte _081B03B8
- .4byte _081B03BE
- .4byte _081B03E0
- .4byte _081B0400
- .4byte _081B0414
- .4byte _081B0428
- .4byte _081B0430
- .4byte _081B044C
- .4byte _081B0474
-_081B0290:
- bl SetVBlankHBlankCallbacksToNull
- bl sub_8121DA0
- bl clear_scheduled_bg_copies_to_vram
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B02AC:
- bl remove_some_task
- b _081B0484
-_081B02B2:
- bl ResetPaletteFade
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B02D4:
- bl ResetSpriteData
- b _081B0484
-_081B02DA:
- bl FreeAllSpritePalettes
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B02EC:
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- beq _081B02F8
- b _081B0484
-_081B02F8:
- bl ResetTasks
- b _081B0484
-_081B02FE:
- bl sub_81B209C
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B0310:
- bl sub_81B0550
- lsls r0, 24
- cmp r0, 0
- bne _081B0322
- bl sub_81B04BC
- movs r0, 0x1
- b _081B04B2
-_081B0322:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081B0484
- .pool
-_081B0338:
- bl sub_81B05C8
- lsls r0, 24
- cmp r0, 0
- bne _081B0344
- b _081B04B0
-_081B0344:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B0354:
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- lsls r0, 26
- lsrs r0, 30
- bl sub_81B239C
- b _081B0484
- .pool
-_081B0368:
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- lsls r0, 26
- lsrs r0, 30
- bl sub_81B0740
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081B0484
- .pool
-_081B038C:
- bl sub_81B5D30
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B03A0:
- bl sub_81B6040
- b _081B0484
-_081B03A6:
- bl sub_81B6160
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B03B8:
- bl sub_80D2F04
- b _081B0484
-_081B03BE:
- bl party_menu_add_per_mon_objects
- lsls r0, 24
- cmp r0, 0
- bne _081B03CA
- b _081B04B0
-_081B03CA:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081B0484
- .pool
-_081B03E0:
- bl sub_81B0DA0
- lsls r0, 24
- cmp r0, 0
- beq _081B04B0
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081B0484
- .pool
-_081B0400:
- bl sub_81B0F28
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B0414:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- lsrs r0, 31
- bl sub_81B2428
- b _081B0484
- .pool
-_081B0428:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _081B048C
-_081B0430:
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldr r0, [r4]
- ldrh r0, [r0, 0xA]
- lsrs r0, 2
- bl display_pokemon_menu_message
- b _081B0484
- .pool
-_081B044C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081B048C
- .pool
-_081B0474:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081B0484:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_081B048C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081B04B0
- .pool
-_081B0498:
- ldr r0, =sub_81B01CC
- bl SetVBlankCallback
- ldr r0, =sub_81B01B0
- bl SetMainCallback2
- movs r0, 0x1
- b _081B04B2
- .pool
-_081B04B0:
- movs r0, 0
-_081B04B2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B020C
-
- thumb_func_start sub_81B04BC
-sub_81B04BC: @ 81B04BC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =sub_81B04F8
- movs r1, 0
- bl CreateTask
- ldr r0, =sub_81B01CC
- bl SetVBlankCallback
- ldr r0, =sub_81B01B0
- bl SetMainCallback2
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B04BC
-
- thumb_func_start sub_81B04F8
-sub_81B04F8: @ 81B04F8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B051C
- ldr r0, =gUnknown_0203CEC8
- ldr r0, [r0]
- bl SetMainCallback2
- bl sub_81B06F4
- adds r0, r4, 0
- bl DestroyTask
-_081B051C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B04F8
-
- thumb_func_start reset_brm
-reset_brm: @ 81B052C
- ldr r0, =gUnknown_0203CEC4
- movs r1, 0
- str r1, [r0]
- ldr r0, =gUnknown_0203CEE4
- str r1, [r0]
- ldr r0, =gUnknown_0203CEDC
- str r1, [r0]
- ldr r0, =gUnknown_0203CEE0
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end reset_brm
-
- thumb_func_start sub_81B0550
-sub_81B0550: @ 81B0550
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CEE4
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _081B05C0
- movs r1, 0
- adds r2, r4, 0
- bl memset
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_086156B8
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r5]
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl sub_8121E10
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- b _081B05C2
- .pool
-_081B05C0:
- movs r0, 0
-_081B05C2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81B0550
-
- thumb_func_start sub_81B05C8
-sub_81B05C8: @ 81B05C8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- bhi _081B06B0
- lsls r0, 2
- ldr r1, =_081B05F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B05F0:
- .4byte _081B0610
- .4byte _081B0638
- .4byte _081B0658
- .4byte _081B0684
- .4byte _081B0688
- .4byte _081B068C
- .4byte _081B0690
- .4byte _081B0694
-_081B0610:
- ldr r4, =gUnknown_0203CEE0
- ldr r0, =gUnknown_08D967EC
- mov r1, sp
- bl malloc_and_decompress
- adds r1, r0, 0
- str r1, [r4]
- ldr r2, [sp]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- b _081B069A
- .pool
-_081B0638:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _081B06B4
- ldr r0, =gUnknown_08D96BA0
- ldr r1, =gUnknown_0203CEE4
- ldr r1, [r1]
- bl LZDecompressWram
- b _081B069A
- .pool
-_081B0658:
- ldr r0, =gUnknown_08D96AB4
- movs r2, 0xB0
- lsls r2, 1
- movs r1, 0
- bl LoadCompressedPalette
- ldr r0, =gPlttBufferUnfaded
- ldr r4, =gUnknown_0203CEC4
- ldr r1, [r4]
- adds r1, 0x18
- movs r2, 0xB0
- bl CpuSet
- ldr r1, [r4]
- b _081B069E
- .pool
-_081B0684:
- movs r0, 0x4
- b _081B0696
-_081B0688:
- movs r0, 0x5
- b _081B0696
-_081B068C:
- movs r0, 0x6
- b _081B0696
-_081B0690:
- movs r0, 0x7
- b _081B0696
-_081B0694:
- movs r0, 0x8
-_081B0696:
- bl sub_81B06C0
-_081B069A:
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
-_081B069E:
- movs r0, 0x86
- lsls r0, 2
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081B06B4
- .pool
-_081B06B0:
- movs r0, 0x1
- b _081B06B6
-_081B06B4:
- movs r0, 0
-_081B06B6:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B05C8
-
- thumb_func_start sub_81B06C0
-sub_81B06C0: @ 81B06C0
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 28
- ldr r5, =gPlttBufferUnfaded + 0x60
- lsrs r4, 23
- adds r1, r5, 0
- subs r1, 0x60
- adds r1, r4, r1
- adds r0, r5, 0
- movs r2, 0x10
- bl CpuSet
- ldr r0, =gPlttBufferFaded
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x10
- bl CpuSet
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B06C0
-
- thumb_func_start sub_81B06F4
-sub_81B06F4: @ 81B06F4
- push {lr}
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- cmp r0, 0
- beq _081B0702
- bl Free
-_081B0702:
- ldr r0, =gUnknown_0203CEE4
- ldr r0, [r0]
- cmp r0, 0
- beq _081B070E
- bl Free
-_081B070E:
- ldr r0, =gUnknown_0203CEE0
- ldr r0, [r0]
- cmp r0, 0
- beq _081B071A
- bl Free
-_081B071A:
- ldr r0, =gUnknown_0203CEDC
- ldr r0, [r0]
- cmp r0, 0
- beq _081B0726
- bl Free
-_081B0726:
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B06F4
-
- thumb_func_start sub_81B0740
-sub_81B0740: @ 81B0740
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203CEDC
- movs r0, 0x60
- bl Alloc
- str r0, [r4]
- movs r5, 0
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 4
- mov r8, r0
- movs r6, 0xFF
- mov r9, r4
-_081B0764:
- ldr r2, [r4]
- lsls r3, r5, 4
- adds r2, r3, r2
- ldr r0, =gUnknown_086156E4
- mov r12, r0
- str r0, [r2]
- lsls r0, r5, 3
- ldr r1, =gUnknown_08615704
- adds r0, r1
- add r0, r8
- str r0, [r2, 0x4]
- strb r5, [r2, 0x8]
- ldr r1, [r4]
- adds r1, r3, r1
- ldrb r0, [r1, 0x9]
- orrs r0, r6
- strb r0, [r1, 0x9]
- ldr r1, [r4]
- adds r1, r3, r1
- ldrb r0, [r1, 0xA]
- orrs r0, r6
- strb r0, [r1, 0xA]
- ldr r1, [r4]
- adds r1, r3, r1
- ldrb r0, [r1, 0xB]
- orrs r0, r6
- strb r0, [r1, 0xB]
- ldr r0, [r4]
- adds r3, r0
- ldrb r0, [r3, 0xC]
- orrs r0, r6
- strb r0, [r3, 0xC]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _081B0764
- mov r1, r9
- ldr r0, [r1]
- mov r1, r12
- subs r1, 0x20
- str r1, [r0]
- cmp r7, 0x3
- bne _081B07CC
- str r1, [r0, 0x30]
- b _081B07D2
- .pool
-_081B07CC:
- cmp r7, 0
- beq _081B07D2
- str r1, [r0, 0x10]
-_081B07D2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0740
-
- thumb_func_start sub_81B07E0
-sub_81B07E0: @ 81B07E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x5
- bne _081B085C
- cmp r5, 0x2
- bls _081B085C
- adds r0, r5, 0
- bl sub_81B0CEC
- ldr r0, =gUnknown_02022FF8
- subs r1, r5, 0x3
- lsls r1, 5
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- bne _081B0828
- ldr r0, =gUnknown_0203CEDC
- lsls r4, r5, 4
- ldr r0, [r0]
- adds r0, r4
- movs r1, 0x40
- bl sub_81B2748
- b _081B0836
- .pool
-_081B0828:
- ldr r0, =gUnknown_0203CEDC
- lsls r4, r5, 4
- ldr r0, [r0]
- adds r0, r4
- movs r1, 0x8
- bl sub_81B2748
-_081B0836:
- adds r5, r4, 0
- ldr r4, =gUnknown_0203CEDC
- ldr r0, [r4]
- adds r0, r5, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, [r4]
- adds r0, r5, r0
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- b _081B093E
- .pool
-_081B085C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _081B089C
- ldr r4, =gUnknown_0203CEDC
- ldr r0, [r4]
- lsls r5, 4
- adds r0, r5, r0
- ldrb r0, [r0, 0x8]
- bl sub_81B2720
- ldr r0, [r4]
- adds r0, r5
- movs r1, 0x40
- bl sub_81B2748
- ldr r0, [r4]
- adds r0, r5, r0
- ldrb r0, [r0, 0x8]
- movs r1, 0x2
- bl CopyWindowToVram
- b _081B092C
- .pool
-_081B089C:
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0x7
- bne _081B08B4
- adds r0, r5, 0
- bl sub_81B0B60
- b _081B08F6
- .pool
-_081B08B4:
- cmp r1, 0x2
- bne _081B08C0
- adds r0, r5, 0
- bl sub_81B0B08
- b _081B08F6
-_081B08C0:
- cmp r1, 0x4
- bne _081B08CC
- adds r0, r5, 0
- bl sub_81B0A9C
- b _081B08F6
-_081B08CC:
- cmp r1, 0xB
- bne _081B08D8
- adds r0, r5, 0
- bl sub_81B0B98
- b _081B08F6
-_081B08D8:
- cmp r1, 0xC
- bne _081B08E4
- adds r0, r5, 0
- bl sub_81B0BC4
- b _081B08F6
-_081B08E4:
- adds r0, r5, 0
- bl sub_81B0BFC
- lsls r0, 24
- cmp r0, 0
- bne _081B08F6
- adds r0, r5, 0
- bl sub_81B0948
-_081B08F6:
- ldr r2, =gUnknown_0203CEC8
- ldrb r1, [r2, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x5
- bne _081B0910
- adds r0, r5, 0
- movs r1, 0
- bl sub_81B0FCC
- b _081B092A
- .pool
-_081B0910:
- movs r0, 0x9
- ldrsb r0, [r2, r0]
- cmp r0, r5
- bne _081B0922
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81B0FCC
- b _081B092A
-_081B0922:
- adds r0, r5, 0
- movs r1, 0
- bl sub_81B0FCC
-_081B092A:
- lsls r5, 4
-_081B092C:
- ldr r0, =gUnknown_0203CEDC
- ldr r0, [r0]
- adds r0, r5, r0
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_081B093E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B07E0
-
- thumb_func_start sub_81B0948
-sub_81B0948: @ 81B0948
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x2D
- bl GetMonData
- adds r2, r0, 0
- cmp r2, 0
- beq _081B09A0
- ldr r6, =gUnknown_0203CEDC
- ldr r0, [r6]
- lsls r5, r4, 4
- adds r0, r5, r0
- ldr r2, [r0]
- ldrb r0, [r0, 0x8]
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r4, [r2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl _call_via_r4
- ldr r1, [r6]
- adds r1, r5
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2A70
- b _081B0A02
- .pool
-_081B09A0:
- ldr r5, =gUnknown_0203CEDC
- ldr r0, [r5]
- lsls r4, 4
- adds r0, r4, r0
- ldr r1, [r0]
- ldrb r0, [r0, 0x8]
- str r2, [sp]
- str r2, [sp, 0x4]
- ldr r6, [r1]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl _call_via_r6
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2A70
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2AC8
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2B8C
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2CD4
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- movs r2, 0
- bl sub_81B2D74
- ldr r1, [r5]
- adds r1, r4
- adds r0, r7, 0
- bl sub_81B2E28
-_081B0A02:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0948
-
- thumb_func_start sub_81B0A10
-sub_81B0A10: @ 81B0A10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- movs r1, 0x64
- adds r2, r0, 0
- muls r2, r1
- ldr r1, =gPlayerParty
- adds r6, r2, r1
- ldr r7, =gUnknown_0203CEDC
- ldr r1, [r7]
- lsls r5, r0, 4
- adds r1, r5, r1
- ldr r2, [r1]
- ldrb r0, [r1, 0x8]
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r4, [r2]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl _call_via_r4
- ldr r1, [r7]
- adds r1, r5
- adds r0, r6, 0
- movs r2, 0
- bl sub_81B2A70
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081B0A7C
- ldr r1, [r7]
- adds r1, r5
- adds r0, r6, 0
- movs r2, 0
- bl sub_81B2AC8
- ldr r1, [r7]
- adds r1, r5
- adds r0, r6, 0
- movs r2, 0
- bl sub_81B2B8C
-_081B0A7C:
- ldr r1, [r7]
- adds r1, r5
- mov r0, r8
- movs r2, 0
- bl sub_81B2FA8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0A10
-
- thumb_func_start sub_81B0A9C
-sub_81B0A9C: @ 81B0A9C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r6, =gUnknown_0203CEF8
- bl sub_81B85AC
- lsls r0, 24
- cmp r0, 0
- bne _081B0AD6
- adds r0, r5, 0
- movs r1, 0x7
- bl sub_81B0A10
- b _081B0B02
- .pool
-_081B0AC8:
- adds r1, r4, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_81B0A10
- b _081B0B02
-_081B0AD6:
- movs r4, 0
- b _081B0AEE
-_081B0ADA:
- adds r1, r6, r4
- ldrb r0, [r1]
- cmp r0, 0
- beq _081B0AE8
- subs r0, 0x1
- cmp r0, r5
- beq _081B0AC8
-_081B0AE8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081B0AEE:
- bl sub_81B8830
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _081B0ADA
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81B0A10
-_081B0B02:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0A9C
-
- thumb_func_start sub_81B0B08
-sub_81B0B08: @ 81B0B08
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_80DAE0C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _081B0B5A
- lsls r0, 2
- ldr r1, =_081B0B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B0B34:
- .4byte _081B0B48
- .4byte _081B0B52
- .4byte _081B0B52
- .4byte _081B0B48
- .4byte _081B0B48
-_081B0B48:
- adds r0, r4, 0
- movs r1, 0x7
- bl sub_81B0A10
- b _081B0B5A
-_081B0B52:
- adds r0, r4, 0
- movs r1, 0x6
- bl sub_81B0A10
-_081B0B5A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0B08
-
- thumb_func_start sub_81B0B60
-sub_81B0B60: @ 81B0B60
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNumberOfRelearnableMoves
- lsls r0, 24
- cmp r0, 0
- bne _081B0B88
- adds r0, r4, 0
- movs r1, 0x9
- bl sub_81B0A10
- b _081B0B90
- .pool
-_081B0B88:
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_81B0A10
-_081B0B90:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0B60
-
- thumb_func_start sub_81B0B98
-sub_81B0B98: @ 81B0B98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_81B218C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B0BB6
- adds r0, r4, 0
- movs r1, 0x6
- bl sub_81B0A10
- b _081B0BBE
-_081B0BB6:
- adds r0, r4, 0
- movs r1, 0x7
- bl sub_81B0A10
-_081B0BBE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0B98
-
- thumb_func_start sub_81B0BC4
-sub_81B0BC4: @ 81B0BC4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- beq _081B0BEC
- adds r0, r4, 0
- movs r1, 0xB
- bl sub_81B0A10
- b _081B0BF4
- .pool
-_081B0BEC:
- adds r0, r4, 0
- movs r1, 0xC
- bl sub_81B0A10
-_081B0BF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0BC4
-
- thumb_func_start sub_81B0BFC
-sub_81B0BFC: @ 81B0BFC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r6, r1, r0
- ldr r0, =gUnknown_0203CE7C
- ldrh r4, [r0]
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0xC
- bne _081B0C40
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSpecialVar_0x8005
- ldrb r2, [r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_81B0C94
- b _081B0C8A
- .pool
-_081B0C40:
- cmp r0, 0x3
- bne _081B0C56
- adds r0, r4, 0
- bl CheckIfItemIsTMHMOrEvolutionStone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B0C5A
- cmp r0, 0x2
- beq _081B0C66
-_081B0C56:
- movs r0, 0
- b _081B0C8C
-_081B0C5A:
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_81B0C94
- b _081B0C8A
-_081B0C66:
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081B0C82
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- cmp r0, 0
- bne _081B0C56
-_081B0C82:
- adds r0, r5, 0
- movs r1, 0
- bl sub_81B0A10
-_081B0C8A:
- movs r0, 0x1
-_081B0C8C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81B0BFC
-
- thumb_func_start sub_81B0C94
-sub_81B0C94: @ 81B0C94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x64
- muls r0, r4
- ldr r3, =gPlayerParty
- adds r0, r3
- bl sub_81B22D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _081B0CD2
- cmp r0, 0x2
- bgt _081B0CC4
- cmp r0, 0x1
- beq _081B0CC8
- b _081B0CDC
- .pool
-_081B0CC4:
- cmp r0, 0x3
- bne _081B0CDC
-_081B0CC8:
- adds r0, r4, 0
- movs r1, 0x9
- bl sub_81B0A10
- b _081B0CE4
-_081B0CD2:
- adds r0, r4, 0
- movs r1, 0xA
- bl sub_81B0A10
- b _081B0CE4
-_081B0CDC:
- adds r0, r4, 0
- movs r1, 0x8
- bl sub_81B0A10
-_081B0CE4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B0C94
-
- thumb_func_start sub_81B0CEC
-sub_81B0CEC: @ 81B0CEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CEDC
- lsls r2, r0, 4
- ldr r1, [r1]
- adds r6, r1, r2
- subs r0, 0x3
- lsls r0, 24
- ldr r5, =gUnknown_02022FF8
- lsrs r0, 19
- mov r8, r0
- adds r7, r0, r5
- ldrh r0, [r7]
- cmp r0, 0
- bne _081B0D24
- ldrb r0, [r6, 0x8]
- bl sub_81B2720
- b _081B0D8E
- .pool
-_081B0D24:
- ldr r2, [r6]
- ldrb r0, [r6, 0x8]
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- ldr r4, [r2]
- movs r2, 0
- movs r3, 0
- bl _call_via_r4
- ldr r4, =gStringVar1
- adds r5, 0x4
- add r5, r8
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringCopy
- adds r0, r4, 0
- bl StringGetEnd10
- adds r0, r4, 0
- bl sub_81DB52C
- ldrb r0, [r6, 0x8]
- ldr r3, [r6]
- adds r3, 0x4
- adds r1, r4, 0
- movs r2, 0
- bl sub_81B2A3C
- ldrb r0, [r7, 0xF]
- adds r1, r6, 0
- bl sub_81B2B40
- ldrb r0, [r7, 0x1C]
- ldrh r1, [r7]
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_81B2BF4
- ldrh r0, [r7, 0x10]
- adds r1, r6, 0
- bl sub_81B2D3C
- ldrh r0, [r7, 0x12]
- adds r1, r6, 0
- bl sub_81B2DDC
- ldrh r0, [r7, 0x10]
- ldrh r1, [r7, 0x12]
- adds r2, r6, 0
- bl sub_81B2E64
-_081B0D8E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0CEC
-
- thumb_func_start sub_81B0DA0
-sub_81B0DA0: @ 81B0DA0
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CEC4
- ldr r0, [r5]
- movs r4, 0x86
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl sub_81B07E0
- ldr r1, [r5]
- adds r1, r4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _081B0DCC
- movs r0, 0
- b _081B0DCE
- .pool
-_081B0DCC:
- movs r0, 0x1
-_081B0DCE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81B0DA0
-
- thumb_func_start sub_81B0DD4
-sub_81B0DD4: @ 81B0DD4
- lsls r0, 16
- ldr r1, =gUnknown_0203CEE0
- lsrs r0, 11
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .pool
- thumb_func_end sub_81B0DD4
-
- thumb_func_start party_menu_add_per_mon_objects_internal
-party_menu_add_per_mon_objects_internal: @ 81B0DE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x5
- bne _081B0E98
- cmp r7, 0x2
- bls _081B0E98
- subs r0, r7, 0x3
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, =gUnknown_02022FF8
- mov r9, r0
- mov r2, r10
- lsls r2, 5
- mov r8, r2
- mov r6, r8
- add r6, r9
- ldrh r0, [r6]
- cmp r0, 0
- beq _081B0EDC
- mov r1, r9
- adds r1, 0x18
- add r1, r8
- ldr r1, [r1]
- ldr r4, =gUnknown_0203CEDC
- lsls r5, r7, 4
- ldr r2, [r4]
- adds r2, r5
- movs r3, 0
- str r3, [sp]
- bl party_menu_link_mon_icon_anim
- ldrh r0, [r6]
- ldrh r1, [r6, 0x2]
- ldr r2, [r4]
- adds r2, r5
- bl party_menu_link_mon_held_item_object
- ldrh r0, [r6]
- ldr r1, [r4]
- adds r1, r5
- bl party_menu_link_mon_pokeball_object
- ldrh r0, [r6, 0x10]
- cmp r0, 0
- bne _081B0E68
- movs r3, 0x7
- b _081B0E78
- .pool
-_081B0E68:
- mov r0, r9
- adds r0, 0x14
- add r0, r8
- ldr r0, [r0]
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r3, r0, 24
-_081B0E78:
- ldr r1, =gUnknown_02022FF8
- mov r2, r10
- lsls r0, r2, 5
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gUnknown_0203CEDC
- ldr r2, [r1]
- adds r2, r5
- adds r1, r3, 0
- bl party_menu_link_mon_status_condition_object
- b _081B0EDC
- .pool
-_081B0E98:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B0EDC
- ldr r4, =gUnknown_0203CEDC
- lsls r5, r7, 4
- ldr r1, [r4]
- adds r1, r5
- adds r0, r6, 0
- adds r2, r7, 0
- bl party_menu_icon_anim
- ldr r1, [r4]
- adds r1, r5
- adds r0, r6, 0
- bl party_menu_held_item_object
- ldr r1, [r4]
- adds r1, r5
- adds r0, r6, 0
- bl party_menu_pokeball_object
- ldr r1, [r4]
- adds r1, r5
- adds r0, r6, 0
- bl party_menu_status_condition_object
-_081B0EDC:
- 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 party_menu_add_per_mon_objects_internal
-
- thumb_func_start party_menu_add_per_mon_objects
-party_menu_add_per_mon_objects: @ 81B0EF4
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CEC4
- ldr r0, [r5]
- movs r4, 0x86
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- bl party_menu_add_per_mon_objects_internal
- ldr r1, [r5]
- adds r1, r4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _081B0F20
- movs r0, 0
- b _081B0F22
- .pool
-_081B0F20:
- movs r0, 0x1
-_081B0F22:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end party_menu_add_per_mon_objects
-
- thumb_func_start sub_81B0F28
-sub_81B0F28: @ 81B0F28
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x5
- bne _081B0F54
- movs r0, 0x7
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r1, 0xE
- movs r2, 0x17
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- b _081B0FBC
- .pool
-_081B0F54:
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B0F94
- movs r0, 0xBF
- movs r1, 0x88
- bl sub_81B5F74
- ldr r3, [r4]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x7F
- ands r0, r1
- lsls r0, 4
- ldrh r2, [r3, 0x8]
- ldr r1, =0xfffff80f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x8]
- bl sub_81B120C
- movs r0, 0xBF
- movs r1, 0x98
- bl sub_81B5F74
- b _081B0F9C
- .pool
-_081B0F94:
- movs r0, 0xC6
- movs r1, 0x94
- bl sub_81B5F34
-_081B0F9C:
- ldr r3, [r4]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x7F
- ands r0, r1
- lsls r0, 11
- ldr r1, [r3, 0x8]
- ldr r2, =0xfffc07ff
- ands r1, r2
- orrs r1, r0
- str r1, [r3, 0x8]
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
-_081B0FBC:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0F28
-
- thumb_func_start sub_81B0FCC
-sub_81B0FCC: @ 81B0FCC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- cmp r7, 0x6
- beq _081B1038
- cmp r7, 0x7
- beq _081B1074
- movs r0, 0x64
- muls r0, r7
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B10E8
- ldr r6, =gUnknown_0203CEDC
- lsls r5, r7, 4
- ldr r4, [r6]
- adds r4, r5
- adds r0, r7, 0
- mov r1, r8
- bl sub_81B10F8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_81B2748
- ldr r0, [r6]
- adds r0, r5, r0
- ldrb r0, [r0, 0x9]
- mov r1, r8
- bl sub_81B5B6C
- ldr r0, [r6]
- adds r5, r0
- ldrb r0, [r5, 0xB]
- mov r1, r8
- bl sub_81B5F98
- b _081B10E8
- .pool
-_081B1038:
- mov r0, r8
- cmp r0, 0
- bne _081B1052
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r1, 0x17
- movs r2, 0x10
- movs r3, 0x7
- bl sub_8199C30
- b _081B1064
-_081B1052:
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x17
- movs r2, 0x10
- movs r3, 0x7
- bl sub_8199C30
-_081B1064:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrh r0, [r0, 0x8]
- lsls r0, 21
- b _081B10DA
- .pool
-_081B1074:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- bne _081B10A6
- mov r0, r8
- cmp r0, 0
- bne _081B1098
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r1, 0x17
- movs r2, 0x11
- b _081B10B8
- .pool
-_081B1098:
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x17
- movs r2, 0x11
- b _081B10B8
-_081B10A6:
- mov r0, r8
- cmp r0, 0
- bne _081B10C0
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r1, 0x17
- movs r2, 0x12
-_081B10B8:
- movs r3, 0x7
- bl sub_8199C30
- b _081B10D2
-_081B10C0:
- movs r0, 0x2
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x17
- movs r2, 0x12
- movs r3, 0x7
- bl sub_8199C30
-_081B10D2:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- lsls r0, 14
-_081B10DA:
- lsrs r0, 25
- mov r1, r8
- bl sub_81B5F98
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
-_081B10E8:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0FCC
-
- thumb_func_start sub_81B10F8
-sub_81B10F8: @ 81B10F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r4, 0
- cmp r1, 0x1
- bne _081B110A
- movs r4, 0x1
-_081B110A:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081B1120
- movs r0, 0x2
- orrs r4, r0
-_081B1120:
- adds r0, r5, 0
- bl sub_81B118C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B1136
- movs r0, 0x8
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_081B1136:
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0xB]
- adds r2, r0, 0
- cmp r1, 0x9
- bne _081B1148
- movs r0, 0x10
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_081B1148:
- cmp r1, 0x8
- bne _081B1164
- movs r0, 0x9
- ldrsb r0, [r2, r0]
- cmp r5, r0
- beq _081B115C
- movs r0, 0xA
- ldrsb r0, [r2, r0]
- cmp r5, r0
- bne _081B1164
-_081B115C:
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_081B1164:
- ldrb r0, [r2, 0xB]
- cmp r0, 0xA
- bne _081B117A
- movs r0, 0x9
- ldrsb r0, [r2, r0]
- cmp r5, r0
- bne _081B117A
- movs r0, 0x20
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_081B117A:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B10F8
-
- thumb_func_start sub_81B118C
-sub_81B118C: @ 81B118C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0x20
- bne _081B11B4
- cmp r2, 0x1
- beq _081B11AA
- cmp r2, 0x4
- beq _081B11AA
- cmp r2, 0x5
- bne _081B11B4
-_081B11AA:
- movs r0, 0x1
- b _081B11F8
- .pool
-_081B11B4:
- cmp r2, 0x2
- bhi _081B11F6
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- beq _081B11F6
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B11F6
- adds r0, r2, 0
- bl sub_81B8F38
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- movs r2, 0xA8
- lsls r2, 2
- adds r1, r2
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 24
- asrs r1, r0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _081B11F8
-_081B11F6:
- movs r0, 0
-_081B11F8:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B118C
-
- thumb_func_start sub_81B120C
-sub_81B120C: @ 81B120C
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r1, =gUnknown_086157C4
- movs r6, 0x7
- str r6, [sp]
- movs r5, 0x2
- str r5, [sp, 0x4]
- movs r4, 0x11
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r2, 0x17
- movs r3, 0x10
- bl CopyToBgTilemapBufferRect_ChangePalette
- ldr r1, =gUnknown_086157E0
- str r6, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r2, 0x17
- movs r3, 0x12
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B120C
-
- thumb_func_start sub_81B1250
-sub_81B1250: @ 81B1250
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x49
- ands r0, r1
- cmp r0, 0x49
- bne _081B1280
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B1280
- movs r0, 0x1
- b _081B1282
- .pool
-_081B1280:
- movs r0, 0
-_081B1282:
- pop {r1}
- bx r1
- thumb_func_end sub_81B1250
-
- thumb_func_start sub_81B1288
-sub_81B1288: @ 81B1288
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- movs r0, 0x64
- bl Alloc
- adds r5, r0, 0
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- bl Free
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B1288
-
- thumb_func_start sub_81B12C0
-sub_81B12C0: @ 81B12C0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- 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
- ldr r1, =c3_0811FAB4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B12C0
-
- thumb_func_start c3_0811FAB4
-c3_0811FAB4: @ 81B12F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B134C
- ldr r4, =gUnknown_0203CEC8
- ldrb r1, [r4, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _081B131A
- bl sub_81B9080
-_081B131A:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r0, 0
- beq _081B1338
- bl SetMainCallback2
- b _081B133E
- .pool
-_081B1338:
- ldr r0, [r4]
- bl SetMainCallback2
-_081B133E:
- bl ResetSpriteData
- bl sub_81B06F4
- adds r0, r5, 0
- bl DestroyTask
-_081B134C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end c3_0811FAB4
-
- thumb_func_start brm_get_pokemon_selection
-brm_get_pokemon_selection: @ 81B1354
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- bx lr
- .pool
- thumb_func_end brm_get_pokemon_selection
-
- thumb_func_start sub_81B1360
-sub_81B1360: @ 81B1360
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- lsls r0, 28
- lsrs r0, 28
- bx lr
- .pool
- thumb_func_end sub_81B1360
-
- thumb_func_start sub_81B1370
-sub_81B1370: @ 81B1370
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B13E0
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B13E0
- bl sub_81B13EC
- adds r4, r0, 0
- bl sub_81B1760
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _081B13C0
- cmp r0, 0x2
- bgt _081B13B0
- cmp r0, 0x1
- beq _081B13B6
- b _081B13E0
- .pool
-_081B13B0:
- cmp r0, 0x8
- beq _081B13CA
- b _081B13E0
-_081B13B6:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81B140C
- b _081B13E0
-_081B13C0:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81B15D0
- b _081B13E0
-_081B13CA:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B13E0
- movs r0, 0x5
- bl PlaySE
- bl sub_81B4F88
-_081B13E0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1370
-
- thumb_func_start sub_81B13EC
-sub_81B13EC: @ 81B13EC
- push {lr}
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0xB]
- cmp r1, 0x8
- beq _081B13FA
- cmp r1, 0xA
- bne _081B1404
-_081B13FA:
- adds r0, 0xA
- b _081B1406
- .pool
-_081B1404:
- adds r0, 0x9
-_081B1406:
- pop {r1}
- bx r1
- thumb_func_end sub_81B13EC
-
- thumb_func_start sub_81B140C
-sub_81B140C: @ 81B140C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x6
- bne _081B142C
- ldr r0, =gUnknown_0203CEC8
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl _call_via_r1
- b _081B159E
- .pool
-_081B142C:
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- subs r0, 0x3
- cmp r0, 0xA
- bls _081B1438
- b _081B1592
-_081B1438:
- lsls r0, 2
- ldr r1, =_081B144C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B144C:
- .4byte _081B149C
- .4byte _081B1592
- .4byte _081B1538
- .4byte _081B1538
- .4byte _081B1510
- .4byte _081B1560
- .4byte _081B1592
- .4byte _081B1478
- .4byte _081B156E
- .4byte _081B14E8
- .4byte _081B157C
-_081B1478:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- bne _081B1486
- b _081B159E
-_081B1486:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl sub_81615A8
- b _081B159E
- .pool
-_081B149C:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- bne _081B14AA
- b _081B159E
-_081B14AA:
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- ldr r2, =gUnknown_0203CEC4
- cmp r0, 0x1
- bne _081B14BE
- ldr r1, [r2]
- ldr r0, =sub_81B9140
- str r0, [r1, 0x4]
-_081B14BE:
- ldr r0, [r2]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gUnknown_03006328
- ldr r1, =sub_81B6794
- ldr r2, [r0]
- adds r0, r5, 0
- bl _call_via_r2
- b _081B159E
- .pool
-_081B14E8:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- beq _081B159E
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl sub_81B7E4C
- b _081B159E
- .pool
-_081B1510:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- beq _081B159E
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl sub_81B8474
- b _081B159E
- .pool
-_081B1538:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- beq _081B159E
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl sub_81B7FAC
- b _081B159E
- .pool
-_081B1560:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81B3938
- b _081B159E
-_081B156E:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81B12C0
- b _081B159E
-_081B157C:
- adds r0, r4, 0
- bl sub_81B15A4
- lsls r0, 24
- cmp r0, 0
- beq _081B159E
- ldrb r1, [r4]
- adds r0, r5, 0
- bl sub_81B21AC
- b _081B159E
-_081B1592:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81B36FC
-_081B159E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B140C
-
- thumb_func_start sub_81B15A4
-sub_81B15A4: @ 81B15A4
- push {lr}
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _081B15C4
- movs r0, 0x1
- b _081B15CC
- .pool
-_081B15C4:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0
-_081B15CC:
- pop {r1}
- bx r1
- thumb_func_end sub_81B15A4
-
- thumb_func_start sub_81B15D0
-sub_81B15D0: @ 81B15D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x8
- beq _081B1602
- cmp r0, 0x8
- bgt _081B15F0
- cmp r0, 0x1
- beq _081B15FA
- b _081B161E
- .pool
-_081B15F0:
- cmp r0, 0xA
- beq _081B1602
- cmp r0, 0xD
- beq _081B1610
- b _081B161E
-_081B15FA:
- movs r0, 0x20
- bl PlaySE
- b _081B1652
-_081B1602:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B407C
- b _081B1652
-_081B1610:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B2210
- b _081B1652
-_081B161E:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B1660
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B1652
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- bne _081B1642
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x7
- strh r0, [r1]
-_081B1642:
- ldr r0, =gUnknown_0203CEE8
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x7
- strb r0, [r5]
- adds r0, r4, 0
- bl sub_81B12C0
-_081B1652:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B15D0
-
- thumb_func_start sub_81B1660
-sub_81B1660: @ 81B1660
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0x2
- bne _081B1680
- ldr r5, =gUnknown_085EA110
- b _081B168A
- .pool
-_081B1680:
- cmp r1, 0x4
- bne _081B168A
- bl sub_81B88BC
- adds r5, r0, 0
-_081B168A:
- cmp r5, 0
- beq _081B16CC
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B16D4
- str r1, [r0]
- movs r0, 0x1
- b _081B16CE
- .pool
-_081B16CC:
- movs r0, 0
-_081B16CE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81B1660
-
- thumb_func_start sub_81B16D4
-sub_81B16D4: @ 81B16D4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B16F8
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1708
- str r0, [r1]
-_081B16F8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B16D4
-
- thumb_func_start sub_81B1708
-sub_81B1708: @ 81B1708
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B172E
- cmp r1, 0
- bgt _081B1728
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B174C
- b _081B1758
-_081B1728:
- cmp r1, 0x1
- beq _081B1752
- b _081B1758
-_081B172E:
- ldr r0, =gUnknown_0203CEE8
- strb r1, [r0]
- ldr r1, =gUnknown_0203CEC8
- movs r0, 0x7
- strb r0, [r1, 0x9]
- bl sub_81B8558
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B1758
- .pool
-_081B174C:
- movs r0, 0x5
- bl PlaySE
-_081B1752:
- adds r0, r4, 0
- bl sub_81B1C1C
-_081B1758:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B1708
-
- thumb_func_start sub_81B1760
-sub_81B1760: @ 81B1760
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x30]
- adds r3, r0, 0
- cmp r1, 0x20
- beq _081B178E
- cmp r1, 0x20
- bgt _081B177C
- cmp r1, 0x10
- beq _081B1792
- b _081B1796
- .pool
-_081B177C:
- cmp r1, 0x40
- beq _081B1786
- cmp r1, 0x80
- beq _081B178A
- b _081B1796
-_081B1786:
- movs r1, 0xFF
- b _081B17B2
-_081B178A:
- movs r1, 0x1
- b _081B17B2
-_081B178E:
- movs r1, 0xFE
- b _081B17B2
-_081B1792:
- movs r1, 0x2
- b _081B17B2
-_081B1796:
- bl sub_812210C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B17AA
- cmp r0, 0x2
- beq _081B17AE
- movs r1, 0
- b _081B17B0
-_081B17AA:
- movs r1, 0xFF
- b _081B17B0
-_081B17AE:
- movs r1, 0x1
-_081B17B0:
- ldr r3, =gMain
-_081B17B2:
- ldrh r2, [r3, 0x2E]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _081B17C4
- movs r0, 0x8
- b _081B17F0
- .pool
-_081B17C4:
- lsls r0, r1, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B17D6
- adds r0, r4, 0
- bl sub_81B17F8
- movs r0, 0
- b _081B17F0
-_081B17D6:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _081B17EA
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x7
- bne _081B17EA
- movs r0, 0x2
- b _081B17F0
-_081B17EA:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x3
- ands r0, r1
-_081B17F0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B1760
-
- thumb_func_start sub_81B17F8
-sub_81B17F8: @ 81B17F8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrb r4, [r5]
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x8]
- lsls r0, 26
- lsrs r0, 30
- cmp r0, 0
- bne _081B1820
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl sub_81B1854
- b _081B182A
- .pool
-_081B1820:
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl sub_81B195C
-_081B182A:
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r4, 24
- asrs r0, r4, 24
- cmp r1, r0
- beq _081B184C
- movs r0, 0x5
- bl PlaySE
- lsrs r0, r4, 24
- movs r1, 0
- bl sub_81B0FCC
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_81B0FCC
-_081B184C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B17F8
-
- thumb_func_start sub_81B1854
-sub_81B1854: @ 81B1854
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B187A
- cmp r1, r0
- bgt _081B1870
- subs r0, 0x1
- cmp r1, r0
- beq _081B1924
- b _081B1952
-_081B1870:
- cmp r1, 0x1
- beq _081B18C0
- cmp r1, 0x2
- beq _081B18F8
- b _081B1952
-_081B187A:
- ldrb r0, [r4]
- movs r1, 0
- ldrsb r1, [r4, r1]
- cmp r1, 0
- bne _081B1888
- movs r0, 0x7
- b _081B1950
-_081B1888:
- cmp r1, 0x6
- bne _081B1898
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- b _081B1950
- .pool
-_081B1898:
- cmp r1, 0x7
- bne _081B18BC
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B18B0
- movs r0, 0x6
- b _081B1950
- .pool
-_081B18B0:
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- b _081B1950
- .pool
-_081B18BC:
- subs r0, 0x1
- b _081B1950
-_081B18C0:
- ldrb r2, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x7
- beq _081B194E
- movs r1, 0
- ldrsb r1, [r4, r1]
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _081B18F4
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B18F0
- movs r0, 0x6
- b _081B1950
- .pool
-_081B18F0:
- movs r0, 0x7
- b _081B1950
-_081B18F4:
- adds r0, r2, 0x1
- b _081B1950
-_081B18F8:
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081B1952
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _081B1952
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 28
- lsrs r0, 29
- cmp r0, 0
- bne _081B1950
- movs r0, 0x1
- b _081B1950
- .pool
-_081B1924:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- beq _081B1952
- cmp r0, 0x6
- beq _081B1952
- cmp r0, 0x7
- beq _081B1952
- ldr r0, =gUnknown_0203CEC4
- ldr r3, [r0]
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x8]
- movs r0, 0xF
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x8]
-_081B194E:
- movs r0, 0
-_081B1950:
- strb r0, [r4]
-_081B1952:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1854
-
- thumb_func_start sub_81B195C
-sub_81B195C: @ 81B195C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- asrs r5, r1, 24
- movs r6, 0x1
- negs r6, r6
- cmp r5, r6
- beq _081B1988
- cmp r5, r6
- bgt _081B197E
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- bne _081B197C
- b _081B1A9C
-_081B197C:
- b _081B1AF4
-_081B197E:
- cmp r5, 0x1
- beq _081B19E4
- cmp r5, 0x2
- beq _081B1A24
- b _081B1AF4
-_081B1988:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _081B1996
- movs r0, 0x7
- b _081B1AF2
-_081B1996:
- cmp r0, 0x6
- bne _081B19A8
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- subs r0, 0x1
- b _081B1AF2
- .pool
-_081B19A8:
- cmp r0, 0x7
- bne _081B19C4
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B19C0
- movs r0, 0x6
- b _081B1AF2
- .pool
-_081B19C0:
- subs r0, r1, 0x1
- strb r0, [r4]
-_081B19C4:
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r1, r2, 24
- asrs r1, 24
- bl sub_81B1B00
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _081B19E0
- b _081B1AF4
-_081B19E0:
- strb r2, [r4]
- b _081B1AF4
-_081B19E4:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0x6
- bne _081B19F0
- movs r0, 0x7
- b _081B1AF2
-_081B19F0:
- cmp r0, 0x7
- bne _081B19F8
- movs r0, 0
- b _081B1AF2
-_081B19F8:
- movs r0, 0
- ldrsb r0, [r4, r0]
- movs r1, 0x1
- bl sub_81B1B00
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r6
- bne _081B19E0
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B1A20
- movs r0, 0x6
- b _081B1AF2
- .pool
-_081B1A20:
- movs r0, 0x7
- b _081B1AF2
-_081B1A24:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _081B1A5C
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 28
- lsrs r6, r0, 29
- cmp r6, 0x3
- bne _081B1A54
- ldr r0, =gPlayerParty + 300
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B1AF4
- strb r6, [r4]
- b _081B1AF4
- .pool
-_081B1A54:
- ldr r0, =gPlayerParty + 200
- b _081B1A70
- .pool
-_081B1A5C:
- cmp r0, 0x1
- bne _081B1AF4
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 28
- lsrs r5, r0, 29
- cmp r5, 0x5
- bne _081B1A88
- ldr r0, =gPlayerParty + 500
-_081B1A70:
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B1AF4
- strb r5, [r4]
- b _081B1AF4
- .pool
-_081B1A88:
- ldr r0, =gPlayerParty + 400
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B1AF4
- movs r0, 0x4
- b _081B1AF2
- .pool
-_081B1A9C:
- ldrb r1, [r4]
- subs r0, r1, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081B1ACC
- ldr r0, =gUnknown_0203CEC4
- ldr r3, [r0]
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x8]
- movs r0, 0xF
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x8]
- movs r0, 0
- b _081B1AF2
- .pool
-_081B1ACC:
- subs r0, r1, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081B1AF4
- ldr r0, =gUnknown_0203CEC4
- ldr r3, [r0]
- movs r1, 0
- ldrsb r1, [r4, r1]
- movs r0, 0x7
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x8]
- movs r0, 0xF
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x8]
- movs r0, 0x1
-_081B1AF2:
- strb r0, [r4]
-_081B1AF4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B195C
-
- thumb_func_start sub_81B1B00
-sub_81B1B00: @ 81B1B00
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- asrs r6, r1, 24
-_081B1B0A:
- lsls r0, r5, 24
- asrs r0, 24
- adds r0, r6
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, r5, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _081B1B38
- asrs r4, r1, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B1B0A
- adds r0, r4, 0
- b _081B1B3C
- .pool
-_081B1B38:
- movs r0, 0x1
- negs r0, r0
-_081B1B3C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81B1B00
-
- thumb_func_start GetMonNickname
-@ u8 *GetMonNickname(struct pokemon *mon, u8 *dest)
-GetMonNickname: @ 81B1B44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start sub_81B1B5C
-sub_81B1B5C: @ 81B1B5C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_81B3300
- ldr r0, =sub_81B1B8C
- movs r1, 0x1
- 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]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B1B5C
-
- thumb_func_start sub_81B1B8C
-sub_81B1B8C: @ 81B1B8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r0, 0x6
- bl sub_8121F20
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _081B1BC8
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _081B1BC2
- movs r0, 0x6
- movs r1, 0
- bl sub_8198070
- movs r0, 0x6
- bl ClearWindowTilemap
-_081B1BC2:
- adds r0, r5, 0
- bl DestroyTask
-_081B1BC8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1B8C
-
- thumb_func_start sub_81B1BD4
-sub_81B1BD4: @ 81B1BD4
- push {lr}
- ldr r0, =sub_81B1B8C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B1BD4
-
- thumb_func_start sub_81B1BE8
-sub_81B1BE8: @ 81B1BE8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B1C0E
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
- str r0, [r1]
-_081B1C0E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1BE8
-
- thumb_func_start sub_81B1C1C
-sub_81B1C1C: @ 81B1C1C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B1C74
- movs r0, 0x6
- movs r1, 0
- bl sub_8198070
- movs r0, 0x6
- bl ClearWindowTilemap
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B1C60
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1BE8
- b _081B1C72
- .pool
-_081B1C60:
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
-_081B1C72:
- str r0, [r1]
-_081B1C74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1C1C
-
- thumb_func_start sub_81B1C84
-sub_81B1C84: @ 81B1C84
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r1, =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E991B
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1C84
-
- thumb_func_start sub_81B1CD0
-sub_81B1CD0: @ 81B1CD0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r1, =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E999D
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1CD0
-
- thumb_func_start sub_81B1D1C
-sub_81B1D1C: @ 81B1D1C
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r1, =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E993A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1D1C
-
- thumb_func_start sub_81B1D68
-sub_81B1D68: @ 81B1D68
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r1, =gStringVar2
- adds r0, r4, 0
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E99DB
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1D68
-
- thumb_func_start sub_81B1DB8
-sub_81B1DB8: @ 81B1DB8
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r5, r1, 16
- lsrs r4, r5, 16
- adds r7, r4, 0
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B1DE2
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80D4420
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081B1DF6
-_081B1DE2:
- mov r0, sp
- strb r7, [r0]
- mov r1, sp
- lsrs r0, r5, 24
- strb r0, [r1, 0x1]
- adds r0, r6, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
-_081B1DF6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B1DB8
-
- thumb_func_start sub_81B1E00
-sub_81B1E00: @ 81B1E00
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- strh r0, [r1]
- cmp r0, 0
- bne _081B1E1C
- movs r0, 0
- b _081B1E3E
-_081B1E1C:
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- beq _081B1E3C
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- movs r0, 0x2
- b _081B1E3E
-_081B1E3C:
- movs r0, 0x1
-_081B1E3E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B1E00
-
- thumb_func_start pokemon_item_not_removed
-pokemon_item_not_removed: @ 81B1E48
- push {lr}
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9A69
- bl StringExpandPlaceholders
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemon_item_not_removed
-
- thumb_func_start sub_81B1E60
-sub_81B1E60: @ 81B1E60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- ldrh r0, [r7, 0x4]
- ldrh r1, [r7]
- adds r0, r1
- strh r0, [r7]
- ldrh r0, [r7, 0x6]
- subs r0, 0x1
- strh r0, [r7, 0x6]
- movs r2, 0x8
- ldrsh r0, [r7, r2]
- movs r5, 0x64
- muls r0, r5
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x39
- adds r2, r7, 0
- bl SetMonData
- movs r3, 0x8
- ldrsh r2, [r7, r3]
- adds r0, r2, 0
- muls r0, r5
- adds r0, r4
- ldr r6, =gUnknown_0203CEDC
- lsls r2, 4
- ldr r1, [r6]
- adds r1, r2
- movs r2, 0x1
- bl sub_81B2CD4
- movs r0, 0x8
- ldrsh r2, [r7, r0]
- adds r0, r2, 0
- muls r0, r5
- adds r0, r4
- lsls r2, 4
- ldr r1, [r6]
- adds r1, r2
- bl sub_81B2E28
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _081B1EDC
- movs r2, 0
- ldrsh r1, [r7, r2]
- cmp r1, 0
- beq _081B1EDC
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- cmp r1, r0
- bne _081B1EFE
-_081B1EDC:
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r2, 0xA
- ldrsh r0, [r7, r2]
- cmp r1, r0
- ble _081B1EF8
- ldr r0, =gStringVar2
- movs r3, 0xA
- ldrsh r2, [r7, r3]
- subs r1, r2
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081B1EF8:
- mov r0, r8
- bl SwitchTaskToFollowupFunc
-_081B1EFE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1E60
-
- thumb_func_start sub_81B1F18
-sub_81B1F18: @ 81B1F18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- mov r9, r1
- adds r5, r2, 0
- mov r10, r3
- ldr r7, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- mov r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r0, 0x64
- mov r6, r9
- muls r6, r0
- ldr r0, =gPlayerParty
- adds r6, r0
- mov r0, r8
- lsls r4, r0, 2
- add r4, r8
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4]
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r4, 0x4]
- mov r0, r10
- strh r0, [r4, 0x6]
- mov r0, r9
- strh r0, [r4, 0x8]
- ldrh r0, [r4]
- strh r0, [r4, 0xA]
- ldr r1, =sub_81B1E60
- mov r0, r8
- adds r2, r7, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1F18
-
- thumb_func_start sub_81B1FA8
-sub_81B1FA8: @ 81B1FA8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r3, r0, r1
- cmp r5, 0x5
- bhi _081B200A
- lsls r0, r5, 2
- ldr r1, =_081B1FD4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B1FD4:
- .4byte _081B1FEC
- .4byte _081B1FF2
- .4byte _081B1FF6
- .4byte _081B1FFA
- .4byte _081B1FFE
- .4byte _081B2002
-_081B1FEC:
- strh r2, [r3]
- strh r2, [r3, 0xA]
- b _081B200A
-_081B1FF2:
- strh r2, [r3, 0x2]
- b _081B200A
-_081B1FF6:
- strh r2, [r3, 0x4]
- b _081B200A
-_081B1FFA:
- strh r2, [r3, 0x6]
- b _081B200A
-_081B1FFE:
- strh r2, [r3, 0x8]
- b _081B200A
-_081B2002:
- ldr r1, =sub_81B1E60
- adds r0, r4, 0
- bl SetTaskFuncWithFollowupFunc
-_081B200A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B1FA8
-
- thumb_func_start pokemon_ailments_get_primary
-pokemon_ailments_get_primary: @ 81B2014
- push {lr}
- adds r1, r0, 0
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- beq _081B2024
- movs r0, 0x1
- b _081B2056
-_081B2024:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081B2030
- movs r0, 0x2
- b _081B2056
-_081B2030:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _081B203C
- movs r0, 0x3
- b _081B2056
-_081B203C:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081B2048
- movs r0, 0x4
- b _081B2056
-_081B2048:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081B2054
- movs r0, 0
- b _081B2056
-_081B2054:
- movs r0, 0x5
-_081B2056:
- pop {r1}
- bx r1
- thumb_func_end pokemon_ailments_get_primary
-
- thumb_func_start sub_81B205C
-@ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3)
-sub_81B205C: @ 81B205C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081B206E
- movs r0, 0x7
- b _081B2096
-_081B206E:
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _081B2096
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _081B2094
- movs r0, 0
- b _081B2096
-_081B2094:
- movs r0, 0x6
-_081B2096:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B205C
-
- thumb_func_start sub_81B209C
-sub_81B209C: @ 81B209C
- push {r4,r5,lr}
- ldr r2, =gUnknown_0203CEC8
- ldrb r1, [r2, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0xB
- bne _081B2126
- adds r5, r2, 0
- adds r5, 0xE
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- bne _081B20FC
- movs r4, 0
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcs _081B2126
-_081B20C4:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_81B2134
- lsls r0, 16
- lsrs r0, 16
- lsls r0, r4
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _081B20C4
- b _081B2126
- .pool
-_081B20FC:
- movs r4, 0
- b _081B211E
-_081B2100:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_81B2164
- lsls r0, 16
- lsrs r0, 16
- lsls r0, r4
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081B211E:
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bcc _081B2100
-_081B2126:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B209C
-
- thumb_func_start sub_81B2134
-sub_81B2134: @ 81B2134
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _081B215A
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl sub_802C908
- cmp r0, 0
- beq _081B215A
- movs r0, 0x1
- b _081B215C
-_081B215A:
- movs r0, 0
-_081B215C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B2134
-
- thumb_func_start sub_81B2164
-sub_81B2164: @ 81B2164
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _081B2182
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0x55
- bne _081B2182
- movs r0, 0x1
- b _081B2184
-_081B2182:
- movs r0, 0
-_081B2184:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B2164
-
- thumb_func_start sub_81B218C
-sub_81B218C: @ 81B218C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CEC8
- movs r2, 0xE
- ldrsh r1, [r1, r2]
- asrs r1, r0
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _081B21A4
- movs r0, 0
-_081B21A4:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B218C
-
- thumb_func_start sub_81B21AC
-sub_81B21AC: @ 81B21AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r5, 0
- bl sub_81B218C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B21DC
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gSpecialVar_0x8004
- strh r5, [r0]
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B21FE
- .pool
-_081B21DC:
- movs r0, 0x20
- bl PlaySE
- ldr r0, =gUnknown_085EA0EE
- movs r1, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
-_081B21FE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B21AC
-
- thumb_func_start sub_81B2210
-sub_81B2210: @ 81B2210
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_085EA110
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B2248
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2210
-
- thumb_func_start sub_81B2248
-sub_81B2248: @ 81B2248
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B226C
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B227C
- str r0, [r1]
-_081B226C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2248
-
- thumb_func_start sub_81B227C
-sub_81B227C: @ 81B227C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B22A2
- cmp r1, 0
- bgt _081B229C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B22B4
- b _081B22C8
-_081B229C:
- cmp r1, 0x1
- beq _081B22BA
- b _081B22C8
-_081B22A2:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x7
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B22C8
- .pool
-_081B22B4:
- movs r0, 0x5
- bl PlaySE
-_081B22BA:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1C1C
- str r0, [r1]
-_081B22C8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B227C
-
- thumb_func_start sub_81B22D8
-sub_81B22D8: @ 81B22D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r7, r4, 0
- lsls r2, 24
- lsrs r6, r2, 24
- mov r8, r6
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _081B22FA
- movs r0, 0x3
- b _081B2356
-_081B22FA:
- movs r0, 0x90
- lsls r0, 1
- cmp r4, r0
- bls _081B231C
- adds r1, r4, 0
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- beq _081B2334
- adds r0, r7, 0
- bl ItemIdToBattleMoveId
- b _081B233E
-_081B231C:
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl sub_81B2370
- lsls r0, 24
- cmp r0, 0
- bne _081B2338
-_081B2334:
- movs r0, 0x1
- b _081B2356
-_081B2338:
- mov r0, r8
- bl sub_81B2360
-_081B233E:
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r5, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B2354
- movs r0, 0
- b _081B2356
-_081B2354:
- movs r0, 0x2
-_081B2356:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81B22D8
-
- thumb_func_start sub_81B2360
-sub_81B2360: @ 81B2360
- lsls r0, 24
- ldr r1, =gUnknown_0861500C
- lsrs r0, 23
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_81B2360
-
- thumb_func_start sub_81B2370
-sub_81B2370: @ 81B2370
- push {lr}
- lsls r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_08615048
- lsrs r0, 14
- adds r0, r2
- movs r2, 0x1
- lsls r2, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081B2394
- movs r0, 0
- b _081B2396
- .pool
-_081B2394:
- movs r0, 0x1
-_081B2396:
- pop {r1}
- bx r1
- thumb_func_end sub_81B2370
-
- thumb_func_start sub_81B239C
-sub_81B239C: @ 81B239C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _081B23C4
- cmp r0, 0x1
- bgt _081B23B2
- cmp r0, 0
- beq _081B23B8
- b _081B23DC
-_081B23B2:
- cmp r1, 0x2
- beq _081B23D0
- b _081B23DC
-_081B23B8:
- ldr r0, =gUnknown_08615810
- bl InitWindows
- b _081B23E2
- .pool
-_081B23C4:
- ldr r0, =gUnknown_08615850
- bl InitWindows
- b _081B23E2
- .pool
-_081B23D0:
- ldr r0, =gUnknown_08615890
- bl InitWindows
- b _081B23E2
- .pool
-_081B23DC:
- ldr r0, =gUnknown_086158D0
- bl InitWindows
-_081B23E2:
- bl DeactivateAllTextPrinters
- movs r4, 0
-_081B23E8:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081B23E8
- movs r0, 0
- movs r1, 0x4F
- movs r2, 0xD0
- bl sub_809882C
- bl sub_8098C64
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_0860F074
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B239C
-
- thumb_func_start sub_81B2428
-sub_81B2428: @ 81B2428
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x5
- bne _081B243E
- b _081B2554
-_081B243E:
- cmp r2, 0x1
- bne _081B24B4
- ldr r0, =gUnknown_08615918
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_085E8CE3
- movs r0, 0
- adds r1, r5, 0
- movs r2, 0x30
- bl GetStringCenterAlignXOffset
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_086157FC
- str r0, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- str r5, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0
- movs r3, 0x1
- bl AddTextPrinterParametrized2
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, =gUnknown_08615910
- bl AddWindow
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- b _081B24C0
- .pool
-_081B24B4:
- ldr r0, =gUnknown_08615908
- bl AddWindow
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0x3
-_081B24C0:
- adds r0, r5, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0xA
- beq _081B2514
- ldr r4, =gUnknown_085E8CF0
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x30
- bl GetStringCenterAlignXOffset
- lsls r0, 24
- lsrs r2, r0, 24
- adds r2, r6
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_086157FC
- str r0, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0x1
- bl box_print
- b _081B2540
- .pool
-_081B2514:
- ldr r4, =gUnknown_085E8CF7
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x30
- bl GetStringCenterAlignXOffset
- lsls r0, 24
- lsrs r2, r0, 24
- adds r2, r6
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_086157FC
- str r0, [sp]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0
- movs r3, 0x1
- bl box_print
-_081B2540:
- adds r0, r5, 0
- bl PutWindowTilemap
- adds r0, r5, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_081B2554:
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2428
-
- thumb_func_start sub_81B2564
-sub_81B2564: @ 81B2564
- lsls r0, 24
- ldr r1, =gUnknown_0203CEC4
- lsrs r0, 23
- adds r0, 0x18
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .pool
- thumb_func_end sub_81B2564
-
- thumb_func_start sub_81B2578
-sub_81B2578: @ 81B2578
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- str r1, [sp, 0xC]
- ldr r1, [sp, 0x4C]
- ldr r4, [sp, 0x50]
- ldr r5, [sp, 0x54]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x10]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x14]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r10, r5
- mov r0, r10
- muls r0, r6
- lsls r0, 5
- bl AllocZeroed
- mov r9, r0
- cmp r0, 0
- beq _081B2646
- movs r5, 0
- ldr r0, [sp, 0x14]
- lsls r0, 19
- str r0, [sp, 0x1C]
- ldr r1, [sp, 0x18]
- lsls r1, 19
- str r1, [sp, 0x20]
- lsls r2, r6, 19
- str r2, [sp, 0x24]
- mov r0, r10
- lsls r0, 19
- str r0, [sp, 0x28]
- cmp r5, r10
- bcs _081B2624
-_081B25DA:
- movs r4, 0
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r6
- bcs _081B261A
- ldr r2, [sp, 0x18]
- adds r0, r2, r5
- ldr r2, [sp, 0x10]
- adds r1, r0, 0
- muls r1, r2
- adds r7, r1, 0
-_081B25F0:
- ldr r1, [sp, 0x14]
- adds r0, r1, r4
- adds r0, r7
- ldr r2, [sp, 0xC]
- adds r0, r2, r0
- ldrb r0, [r0]
- bl sub_81B0DD4
- adds r1, r5, 0
- muls r1, r6
- adds r1, r4
- lsls r1, 5
- add r1, r9
- movs r2, 0x10
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _081B25F0
-_081B261A:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, r10
- bcc _081B25DA
-_081B2624:
- ldr r0, [sp, 0x1C]
- lsrs r2, r0, 16
- ldr r1, [sp, 0x20]
- lsrs r3, r1, 16
- ldr r1, [sp, 0x24]
- lsrs r0, r1, 16
- str r0, [sp]
- ldr r1, [sp, 0x28]
- lsrs r0, r1, 16
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x8]
- mov r1, r9
- bl BlitBitmapToWindow
- mov r0, r9
- bl Free
-_081B2646:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2578
-
- thumb_func_start sub_81B2658
-sub_81B2658: @ 81B2658
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- cmp r3, 0
- bne _081B2684
- cmp r4, 0
- bne _081B2684
- movs r3, 0xA
- movs r4, 0x7
-_081B2684:
- cmp r5, 0
- bne _081B26A0
- ldr r1, =gUnknown_08615988
- str r2, [sp]
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_81B2578
- b _081B26B0
- .pool
-_081B26A0:
- ldr r1, =gUnknown_086159CE
- str r2, [sp]
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_81B2578
-_081B26B0:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2658
-
- thumb_func_start sub_81B26BC
-sub_81B26BC: @ 81B26BC
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r4, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- cmp r3, 0
- bne _081B26E8
- cmp r4, 0
- bne _081B26E8
- movs r3, 0x12
- movs r4, 0x3
-_081B26E8:
- cmp r5, 0
- bne _081B2704
- ldr r1, =gUnknown_08615A14
- str r2, [sp]
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0x12
- adds r3, r6, 0
- bl sub_81B2578
- b _081B2714
- .pool
-_081B2704:
- ldr r1, =gUnknown_08615A4A
- str r2, [sp]
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r2, 0x12
- adds r3, r6, 0
- bl sub_81B2578
-_081B2714:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B26BC
-
- thumb_func_start sub_81B2720
-sub_81B2720: @ 81B2720
- push {lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_08615A80
- movs r2, 0
- str r2, [sp]
- movs r2, 0x12
- str r2, [sp, 0x4]
- movs r2, 0x3
- str r2, [sp, 0x8]
- movs r2, 0x12
- movs r3, 0
- bl sub_81B2578
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2720
-
- thumb_func_start sub_81B2748
-sub_81B2748: @ 81B2748
- push {r4-r7,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- adds r5, r4, 0
- ldrb r0, [r0, 0x8]
- movs r1, 0x5
- bl GetWindowAttribute
- lsls r0, 28
- lsrs r6, r0, 24
- adds r7, r6, 0
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _081B277C
- ldr r5, =gUnknown_08615AF1
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615AC0
- b _081B297E
- .pool
-_081B277C:
- movs r0, 0x20
- ands r0, r4
- cmp r0, 0
- beq _081B27D8
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081B2794
- ldr r5, =gUnknown_08615ADF
- b _081B2942
- .pool
-_081B2794:
- ldr r5, =gUnknown_08615ADF
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AEE
- b _081B2976
- .pool
-_081B27D8:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _081B2824
- ldr r5, =gUnknown_08615ADF
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AEE
- b _081B2976
- .pool
-_081B2824:
- movs r0, 0x4
- ands r0, r4
- cmp r0, 0
- beq _081B2880
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081B283C
- ldr r5, =gUnknown_08615ADF
- b _081B2942
- .pool
-_081B283C:
- ldr r5, =gUnknown_08615ADF
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AEE
- b _081B2976
- .pool
-_081B2880:
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _081B28DC
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081B2898
- ldr r5, =gUnknown_08615ADC
- b _081B2942
- .pool
-_081B2898:
- ldr r5, =gUnknown_08615AD3
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AE8
- b _081B2976
- .pool
-_081B28DC:
- movs r0, 0x8
- ands r0, r4
- cmp r0, 0
- beq _081B2938
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _081B28F4
- ldr r5, =gUnknown_08615AD9
- b _081B2942
- .pool
-_081B28F4:
- ldr r5, =gUnknown_08615AD0
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AE5
- b _081B2976
- .pool
-_081B2938:
- movs r0, 0x1
- ands r5, r0
- cmp r5, 0
- beq _081B29BC
- ldr r5, =gUnknown_08615AD6
-_081B2942:
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AEB
-_081B2976:
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABD
-_081B297E:
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- b _081B2A24
- .pool
-_081B29BC:
- ldr r5, =gUnknown_08615ACD
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABA
- ldrb r1, [r4]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldr r5, =gUnknown_08615AE2
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615ABD
- ldrb r1, [r4]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x2]
- bl sub_81B2564
- ldrb r1, [r4, 0x2]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
-_081B2A24:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2748
-
- thumb_func_start sub_81B2A3C
-sub_81B2A3C: @ 81B2A3C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldrb r5, [r3]
- ldrb r3, [r3, 0x1]
- lsls r4, r2, 1
- adds r4, r2
- ldr r2, =gUnknown_086157FC
- adds r4, r2
- str r4, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0
- adds r2, r5, 0
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2A3C
-
- thumb_func_start sub_81B2A70
-sub_81B2A70: @ 81B2A70
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B2AC0
- cmp r4, 0x1
- bne _081B2AAA
- ldr r5, [r6]
- ldrb r0, [r6, 0x8]
- ldrb r1, [r5, 0x4]
- lsrs r1, 3
- ldrb r2, [r5, 0x5]
- lsrs r2, 3
- ldrb r3, [r5, 0x6]
- lsrs r3, 3
- ldrb r4, [r5, 0x7]
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2AAA:
- adds r0, r7, 0
- add r1, sp, 0x8
- bl GetMonNickname
- ldrb r0, [r6, 0x8]
- ldr r3, [r6]
- adds r3, 0x4
- add r1, sp, 0x8
- movs r2, 0
- bl sub_81B2A3C
-_081B2AC0:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2A70
-
- thumb_func_start sub_81B2AC8
-sub_81B2AC8: @ 81B2AC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- mov r8, r4
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B2B34
- adds r0, r6, 0
- bl sub_81B205C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081B2AF6
- cmp r0, 0x6
- bne _081B2B34
-_081B2AF6:
- cmp r4, 0
- beq _081B2B1C
- ldr r5, [r7]
- ldrb r0, [r7, 0x8]
- ldrb r1, [r5, 0x8]
- lsrs r1, 3
- ldrb r2, [r5, 0x9]
- lsrs r2, 3
- adds r2, 0x1
- ldrb r3, [r5, 0xA]
- lsrs r3, 3
- ldrb r4, [r5, 0xB]
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2B1C:
- mov r0, r8
- cmp r0, 0x2
- beq _081B2B34
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- adds r1, r7, 0
- bl sub_81B2B40
-_081B2B34:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2AC8
-
- thumb_func_start sub_81B2B40
-sub_81B2B40: @ 81B2B40
- push {r4-r6,lr}
- adds r2, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r5, =gStringVar2
- adds r0, r5, 0
- adds r1, r2, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar1
- ldr r1, =gUnknown_085E8D4D
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringAppend
- ldrb r0, [r6, 0x8]
- ldr r3, [r6]
- adds r3, 0x8
- adds r1, r4, 0
- movs r2, 0
- bl sub_81B2A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2B40
-
- thumb_func_start sub_81B2B8C
-sub_81B2B8C: @ 81B2B8C
- push {r4-r7,lr}
- sub sp, 0x14
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x1
- bne _081B2BBE
- ldr r5, [r7]
- ldrb r0, [r7, 0x8]
- ldrb r1, [r5, 0xC]
- lsrs r1, 3
- ldrb r2, [r5, 0xD]
- lsrs r2, 3
- adds r2, 0x1
- ldrb r3, [r5, 0xE]
- lsrs r3, 3
- ldrb r4, [r5, 0xF]
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2BBE:
- adds r0, r6, 0
- add r1, sp, 0x8
- bl GetMonNickname
- adds r0, r6, 0
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- add r2, sp, 0x8
- adds r3, r7, 0
- bl sub_81B2BF4
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2B8C
-
- thumb_func_start sub_81B2BF4
-sub_81B2BF4: @ 81B2BF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- adds r7, r3, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r5, r4, 0
- ldrb r0, [r7, 0x8]
- movs r1, 0x5
- bl GetWindowAttribute
- lsls r0, 28
- lsrs r6, r0, 24
- cmp r4, 0
- beq _081B2CBA
- cmp r4, 0x20
- beq _081B2C24
- cmp r4, 0x1D
- bne _081B2C38
-_081B2C24:
- movs r0, 0xB
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- mov r0, r9
- bl StringCompare
- cmp r0, 0
- beq _081B2CBA
-_081B2C38:
- mov r0, r8
- cmp r0, 0
- beq _081B2C48
- cmp r0, 0xFE
- beq _081B2C88
- b _081B2CBA
- .pool
-_081B2C48:
- ldr r5, =gUnknown_08615AC3
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615AB6
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r7, 0x8]
- ldr r1, =gUnknown_085E8D49
- ldr r3, [r7]
- adds r3, 0xC
- movs r2, 0x2
- bl sub_81B2A3C
- b _081B2CBA
- .pool
-_081B2C88:
- ldr r5, =gUnknown_08615AC5
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615AB6
- ldrb r1, [r4]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r6
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r7, 0x8]
- ldr r1, =gUnknown_085E8D4B
- ldr r3, [r7]
- adds r3, 0xC
- movs r2, 0x2
- bl sub_81B2A3C
-_081B2CBA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2BF4
-
- thumb_func_start sub_81B2CD4
-sub_81B2CD4: @ 81B2CD4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- mov r8, r4
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B2D2E
- cmp r4, 0
- beq _081B2D16
- ldr r5, [r6]
- ldrb r0, [r6, 0x8]
- ldrb r1, [r5, 0x10]
- lsrs r1, 3
- ldrb r2, [r5, 0x11]
- lsrs r2, 3
- adds r2, 0x1
- ldrb r3, [r5, 0x12]
- lsrs r3, 3
- ldrb r4, [r5, 0x13]
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2D16:
- mov r0, r8
- cmp r0, 0x2
- beq _081B2D2E
- adds r0, r7, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl sub_81B2D3C
-_081B2D2E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2CD4
-
- thumb_func_start sub_81B2D3C
-sub_81B2D3C: @ 81B2D3C
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, =gStringVar1
- adds r0, r5, 0
- adds r1, r2, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r1, 0xBA
- strb r1, [r0]
- movs r1, 0xFF
- strb r1, [r0, 0x1]
- ldrb r0, [r4, 0x8]
- ldr r3, [r4]
- adds r3, 0x10
- adds r1, r5, 0
- movs r2, 0
- bl sub_81B2A3C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2D3C
-
- thumb_func_start sub_81B2D74
-sub_81B2D74: @ 81B2D74
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r4, r2, 24
- mov r8, r4
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B2DD0
- cmp r4, 0
- beq _081B2DB8
- ldr r5, [r6]
- ldrb r0, [r6, 0x8]
- ldrb r1, [r5, 0x14]
- lsrs r1, 3
- adds r1, 0x1
- ldrb r2, [r5, 0x15]
- lsrs r2, 3
- adds r2, 0x1
- ldrb r3, [r5, 0x16]
- lsrs r3, 3
- ldrb r4, [r5, 0x17]
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2DB8:
- mov r0, r8
- cmp r0, 0x2
- beq _081B2DD0
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl sub_81B2DDC
-_081B2DD0:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2D74
-
- thumb_func_start sub_81B2DDC
-sub_81B2DDC: @ 81B2DDC
- push {r4-r6,lr}
- adds r2, r0, 0
- adds r6, r1, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, =gStringVar2
- adds r0, r5, 0
- adds r1, r2, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar1
- ldr r1, =gUnknown_085E8D3E
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringAppend
- ldrb r0, [r6, 0x8]
- ldr r3, [r6]
- adds r3, 0x14
- adds r1, r4, 0
- movs r2, 0
- bl sub_81B2A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2DDC
-
- thumb_func_start sub_81B2E28
-sub_81B2E28: @ 81B2E28
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B2E5C
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- adds r2, r6, 0
- bl sub_81B2E64
-_081B2E5C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B2E28
-
- thumb_func_start sub_81B2E64
-sub_81B2E64: @ 81B2E64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r6, r2, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrb r0, [r6, 0x8]
- movs r1, 0x5
- bl GetWindowAttribute
- lsls r0, 28
- lsrs r7, r0, 24
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl sub_8075060
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _081B2EB0
- cmp r0, 0x2
- blt _081B2EE0
- cmp r0, 0x4
- bgt _081B2EE0
- ldr r5, =gUnknown_08615AC7
- b _081B2EB2
- .pool
-_081B2EB0:
- ldr r5, =gUnknown_08615AC9
-_081B2EB2:
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615AB8
- ldrb r1, [r4]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- b _081B2F04
- .pool
-_081B2EE0:
- ldr r5, =gUnknown_08615ACB
- ldrb r0, [r5]
- bl sub_81B2564
- ldr r4, =gUnknown_08615AB8
- ldrb r1, [r4]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
- ldrb r0, [r5, 0x1]
- bl sub_81B2564
- ldrb r1, [r4, 0x1]
- adds r1, r7
- movs r2, 0x2
- bl LoadPalette
-_081B2F04:
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- ldr r2, [r6]
- ldrb r2, [r2, 0x1A]
- bl sub_8075034
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r0, [r6, 0x8]
- ldr r4, =gUnknown_08615AB8
- ldrb r1, [r4, 0x1]
- ldr r3, [r6]
- ldrb r2, [r3, 0x18]
- ldrb r3, [r3, 0x19]
- str r5, [sp]
- movs r7, 0x1
- str r7, [sp, 0x4]
- bl FillWindowPixelRect
- ldrb r0, [r6, 0x8]
- ldrb r1, [r4]
- ldr r3, [r6]
- ldrb r2, [r3, 0x18]
- ldrb r3, [r3, 0x19]
- adds r3, 0x1
- str r5, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- bl FillWindowPixelRect
- ldr r1, [r6]
- ldrb r0, [r1, 0x1A]
- cmp r5, r0
- beq _081B2F88
- ldrb r0, [r6, 0x8]
- ldrb r2, [r1, 0x18]
- adds r2, r5
- ldrb r3, [r1, 0x19]
- ldrb r1, [r1, 0x1A]
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- str r7, [sp, 0x4]
- movs r1, 0xD
- bl FillWindowPixelRect
- ldrb r0, [r6, 0x8]
- ldr r1, [r6]
- ldrb r2, [r1, 0x18]
- adds r2, r5
- ldrb r3, [r1, 0x19]
- adds r3, 0x1
- ldrb r1, [r1, 0x1A]
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x2
- bl FillWindowPixelRect
-_081B2F88:
- ldrb r0, [r6, 0x8]
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2E64
-
- thumb_func_start sub_81B2FA8
-sub_81B2FA8: @ 81B2FA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r7, r2, 24
- cmp r7, 0
- beq _081B2FF2
- ldr r5, [r6]
- ldrb r1, [r5, 0x1C]
- movs r4, 0x7
- adds r0, r1, 0
- ands r0, r4
- ldrb r2, [r5, 0x1E]
- adds r0, r2
- adds r3, r0, 0x7
- asrs r3, 3
- ldrb r2, [r5, 0x1D]
- adds r0, r2, 0
- ands r0, r4
- ldrb r4, [r5, 0x1F]
- adds r0, r4
- adds r4, r0, 0x7
- ldrb r0, [r6, 0x8]
- lsrs r1, 3
- lsrs r2, 3
- lsrs r4, 3
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- ldr r4, [r5]
- bl _call_via_r4
-_081B2FF2:
- cmp r7, 0x2
- beq _081B3018
- ldrb r0, [r6, 0x8]
- ldr r1, [r6]
- ldrb r2, [r1, 0x1C]
- ldrb r3, [r1, 0x1D]
- ldr r1, =gUnknown_086157FC
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r4, =gUnknown_08615B60
- mov r5, r8
- lsls r1, r5, 2
- adds r1, r4
- ldr r1, [r1]
- str r1, [sp, 0x8]
- movs r1, 0x1
- bl box_print
-_081B3018:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B2FA8
-
- thumb_func_start sub_81B302C
-sub_81B302C: @ 81B302C
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _081B304C
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
-_081B304C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B302C
-
- thumb_func_start display_pokemon_menu_message
-display_pokemon_menu_message: @ 81B3054
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r0, =gUnknown_0203CEC4
- ldr r4, [r0]
- adds r5, r4, 0
- adds r5, 0xD
- ldrb r0, [r4, 0xD]
- cmp r0, 0xFF
- beq _081B306E
- adds r0, r5, 0
- bl sub_81B302C
-_081B306E:
- cmp r6, 0x7F
- beq _081B313C
- adds r0, r6, 0
- subs r0, 0x15
- cmp r0, 0x5
- bhi _081B30D4
- lsls r0, 2
- ldr r1, =_081B308C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B308C:
- .4byte _081B30A4
- .4byte _081B30BC
- .4byte _081B30BC
- .4byte _081B30AC
- .4byte _081B30B4
- .4byte _081B30C4
-_081B30A4:
- ldr r0, =gUnknown_08615928
- b _081B30C6
- .pool
-_081B30AC:
- ldr r0, =gUnknown_08615930
- b _081B30C6
- .pool
-_081B30B4:
- ldr r0, =gUnknown_08615938
- b _081B30C6
- .pool
-_081B30BC:
- ldr r0, =gUnknown_08615940
- b _081B30C6
- .pool
-_081B30C4:
- ldr r0, =gUnknown_08615948
-_081B30C6:
- bl AddWindow
- strb r0, [r5]
- b _081B30DC
- .pool
-_081B30D4:
- ldr r0, =gUnknown_08615920
- bl AddWindow
- strb r0, [r4, 0xD]
-_081B30DC:
- cmp r6, 0
- bne _081B3104
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 31
- cmp r0, 0
- beq _081B30F8
- movs r6, 0x2
- b _081B3104
- .pool
-_081B30F8:
- bl sub_81B314C
- lsls r0, 24
- cmp r0, 0
- bne _081B3104
- movs r6, 0x1
-_081B3104:
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0x4F
- movs r3, 0xD
- bl SetWindowBorderStyle
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_08615AF4
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldrb r0, [r5]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl PrintTextOnWindow
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
-_081B313C:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end display_pokemon_menu_message
-
- thumb_func_start sub_81B314C
-sub_81B314C: @ 81B314C
- push {r4-r7,lr}
- ldr r7, =gPlayerParty
- movs r6, 0
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x1
- bne _081B3168
-_081B315A:
- movs r0, 0x1
- b _081B31AA
- .pool
-_081B3168:
- movs r5, 0
-_081B316A:
- movs r0, 0x64
- muls r0, r5
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B319A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081B3194
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _081B319A
-_081B3194:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_081B319A:
- cmp r6, 0x1
- bhi _081B315A
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _081B316A
- movs r0, 0
-_081B31AA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81B314C
-
- thumb_func_start sub_81B31B0
-sub_81B31B0: @ 81B31B0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- beq _081B320C
- cmp r4, 0x1
- bgt _081B31CC
- cmp r4, 0
- beq _081B31D2
- b _081B321C
-_081B31CC:
- cmp r4, 0x2
- beq _081B3214
- b _081B321C
-_081B31D2:
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldrb r0, [r1, 0x17]
- lsls r0, 1
- movs r3, 0x13
- subs r3, r0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0xA
- str r0, [sp]
- ldrb r0, [r1, 0x17]
- lsls r0, 25
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0xE
- str r0, [sp, 0x8]
- ldr r0, =0x000002e9
- str r0, [sp, 0xC]
- add r0, sp, 0x14
- movs r1, 0x2
- movs r2, 0x13
- bl rbox_template_set
- b _081B3226
- .pool
-_081B320C:
- ldr r0, =gUnknown_08615950
- b _081B321E
- .pool
-_081B3214:
- ldr r0, =gUnknown_08615958
- b _081B321E
- .pool
-_081B321C:
- ldr r0, =gUnknown_08615960
-_081B321E:
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x14]
- str r1, [sp, 0x18]
-_081B3226:
- add r0, sp, 0x14
- bl AddWindow
- ldr r6, =gUnknown_0203CEC4
- ldr r1, [r6]
- strb r0, [r1, 0xC]
- ldr r0, [r6]
- ldrb r0, [r0, 0xC]
- movs r1, 0
- movs r2, 0x4F
- movs r3, 0xD
- bl SetWindowBorderStyle
- cmp r4, 0x3
- bne _081B3250
- ldr r0, [r6]
- b _081B32E2
- .pool
-_081B3250:
- movs r0, 0x1
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0x1
- movs r1, 0x2
- bl GetFontAttribute
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, [r6]
- ldrb r0, [r0, 0x17]
- cmp r5, r0
- bcs _081B32CA
- adds r7, r6, 0
- movs r6, 0
-_081B327A:
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xF
- adds r4, r0, r5
- ldrb r0, [r4]
- movs r2, 0x3
- cmp r0, 0x12
- bls _081B328C
- movs r2, 0x4
-_081B328C:
- ldrb r0, [r1, 0xC]
- lsls r3, r5, 4
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- mov r1, r8
- str r1, [sp]
- str r6, [sp, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- ldr r2, =gUnknown_086157FC
- adds r1, r2
- str r1, [sp, 0x8]
- str r6, [sp, 0xC]
- ldr r2, =gUnknown_08615C08
- ldrb r1, [r4]
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- str r1, [sp, 0x10]
- movs r1, 0x1
- mov r2, r9
- bl AddTextPrinterParametrized2
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r7]
- ldrb r0, [r0, 0x17]
- cmp r5, r0
- bcc _081B327A
-_081B32CA:
- ldr r4, =gUnknown_0203CEC4
- ldr r1, [r4]
- ldrb r0, [r1, 0xC]
- ldrb r1, [r1, 0x17]
- movs r2, 0
- movs r3, 0x1
- bl InitMenuInUpperLeftCorner
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, [r4]
-_081B32E2:
- ldrb r0, [r0, 0xC]
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B31B0
-
- thumb_func_start sub_81B3300
-sub_81B3300: @ 81B3300
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- movs r0, 0x6
- movs r1, 0
- movs r2, 0x4F
- movs r3, 0xD
- bl SetWindowBorderStyle
- ldr r2, =gTextFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- bl sav2_get_text_speed
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0x6
- movs r1, 0x1
- adds r2, r4, 0
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3300
-
- thumb_func_start sub_81B334C
-sub_81B334C: @ 81B334C
- push {lr}
- ldr r0, =gUnknown_08615968
- movs r1, 0x4F
- movs r2, 0xD
- movs r3, 0
- bl CreateYesNoMenu
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B334C
-
- thumb_func_start sub_81B3364
-sub_81B3364: @ 81B3364
- push {r4,lr}
- ldr r0, =gUnknown_08615970
- bl AddWindow
- ldr r4, =gUnknown_0203CEC4
- ldr r1, [r4]
- strb r0, [r1, 0xC]
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- movs r1, 0
- movs r2, 0x4F
- movs r3, 0xD
- bl SetWindowBorderStyle
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B3364
-
- thumb_func_start sub_81B3394
-sub_81B3394: @ 81B3394
- push {r4,lr}
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- ldrb r0, [r0, 0xC]
- bl ClearWindowTilemap
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3394
-
- thumb_func_start sub_81B33B4
-sub_81B33B4: @ 81B33B4
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- bne _081B33C8
- bl sub_81B3414
- b _081B3400
-_081B33C8:
- ldr r4, =gUnknown_0203CEC4
- ldr r1, [r4]
- ldr r0, =gUnknown_08615D70
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r1, 0x17]
- movs r3, 0
- ldr r0, [r4]
- ldrb r0, [r0, 0x17]
- cmp r3, r0
- bcs _081B3400
- ldr r1, =gUnknown_08615D38
- lsls r0, r2, 2
- adds r2, r0, r1
-_081B33E4:
- ldr r1, [r4]
- adds r1, 0xF
- adds r1, r3
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, [r4]
- ldrb r0, [r0, 0x17]
- cmp r3, r0
- bcc _081B33E4
-_081B3400:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B33B4
-
- thumb_func_start sub_81B3414
-sub_81B3414: @ 81B3414
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- ldr r2, =gUnknown_0203CEC4
- ldr r1, [r2]
- movs r0, 0
- strb r0, [r1, 0x17]
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- movs r2, 0
- bl AppendToList
- movs r7, 0
- ldr r0, =gUnknown_08615D7E
- ldrh r0, [r0]
- str r0, [sp]
-_081B3446:
- movs r4, 0
- adds r0, r7, 0x1
- mov r8, r0
- ldr r1, [sp]
- cmp r1, 0xE
- beq _081B34A0
- movs r0, 0x64
- mov r6, r10
- muls r6, r0
- ldr r5, =gUnknown_08615D7E
-_081B345A:
- mov r1, r9
- adds r0, r1, r6
- adds r1, r7, 0
- adds r1, 0xD
- bl GetMonData
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- cmp r0, r1
- bne _081B3490
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- adds r2, r4, 0
- adds r2, 0x13
- lsls r2, 24
- lsrs r2, 24
- bl AppendToList
- b _081B34A0
- .pool
-_081B3490:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0xE
- bne _081B345A
-_081B34A0:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _081B3446
- bl InBattlePike
- lsls r0, 24
- cmp r0, 0
- bne _081B3518
- mov r0, r9
- adds r0, 0x64
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B34D2
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- movs r2, 0x1
- bl AppendToList
-_081B34D2:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B3508
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- movs r2, 0x6
- bl AppendToList
- b _081B3518
- .pool
-_081B3508:
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- movs r2, 0x3
- bl AppendToList
-_081B3518:
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xF
- adds r1, 0x17
- movs r2, 0x2
- bl AppendToList
- 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_81B3414
-
- thumb_func_start sub_81B353C
-sub_81B353C: @ 81B353C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, =gUnknown_0203CEC8
- ldrb r0, [r1, 0x8]
- lsls r0, 28
- lsrs r0, 28
- adds r2, r1, 0
- cmp r0, 0xC
- bhi _081B35FE
- lsls r0, 2
- ldr r1, =_081B3560
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B3560:
- .4byte _081B3594
- .4byte _081B35B0
- .4byte _081B35FE
- .4byte _081B35FE
- .4byte _081B35BC
- .4byte _081B35FE
- .4byte _081B35DC
- .4byte _081B35FE
- .4byte _081B35EE
- .4byte _081B35F2
- .4byte _081B35F6
- .4byte _081B35FE
- .4byte _081B35FA
-_081B3594:
- bl InMultiBattleRoom
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B35AC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _081B35FE
-_081B35AC:
- movs r1, 0x1
- b _081B3600
-_081B35B0:
- adds r0, r4, 0
- bl sub_81B8A2C
- lsls r0, 24
- lsrs r1, r0, 24
- b _081B3600
-_081B35BC:
- movs r0, 0x9
- ldrsb r0, [r2, r0]
- bl sub_81B856C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081B35D4
- cmp r0, 0x1
- beq _081B35D8
- movs r1, 0x7
- b _081B3600
-_081B35D4:
- movs r1, 0x4
- b _081B3600
-_081B35D8:
- movs r1, 0x5
- b _081B3600
-_081B35DC:
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- movs r1, 0x6
- cmp r0, 0
- beq _081B3600
- movs r1, 0x7
- b _081B3600
-_081B35EE:
- movs r1, 0xA
- b _081B3600
-_081B35F2:
- movs r1, 0xB
- b _081B3600
-_081B35F6:
- movs r1, 0xC
- b _081B3600
-_081B35FA:
- movs r1, 0xD
- b _081B3600
-_081B35FE:
- movs r1, 0
-_081B3600:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B353C
-
- thumb_func_start sub_81B3608
-sub_81B3608: @ 81B3608
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r4, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r4, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r7, =gPlayerParty
- adds r5, r0, r7
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- ldrb r1, [r4, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0xC
- beq _081B3674
- ldrb r4, [r4, 0x9]
- adds r0, r5, 0
- bl sub_81B353C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_81B33B4
- movs r0, 0
- bl sub_81B31B0
- movs r0, 0x15
- bl display_pokemon_menu_message
- b _081B36EA
- .pool
-_081B3674:
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- bne _081B36C0
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9980
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- str r1, [r0]
- movs r0, 0
- b _081B36EC
- .pool
-_081B36C0:
- ldrb r4, [r4, 0x9]
- adds r0, r5, 0
- bl sub_81B353C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_81B33B4
- movs r0, 0x1
- bl sub_81B31B0
- ldr r1, =gStringVar2
- adds r0, r6, 0
- bl CopyItemName
- movs r0, 0x1A
- bl display_pokemon_menu_message
-_081B36EA:
- movs r0, 0x1
-_081B36EC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B3608
-
- thumb_func_start sub_81B36FC
-sub_81B36FC: @ 81B36FC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_81B3608
- lsls r0, 24
- cmp r0, 0
- beq _081B3720
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0, 0x8]
- ldr r1, =sub_81B3730
- str r1, [r0]
-_081B3720:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B36FC
-
- thumb_func_start sub_81B3730
-sub_81B3730: @ 81B3730
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B37EE
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B37EE
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- ldrb r0, [r0, 0x17]
- cmp r0, 0x3
- bhi _081B3774
- bl ProcessMenuInputNoWrapAround_other
- b _081B3778
- .pool
-_081B3774:
- bl ProcessMenuInput_other
-_081B3778:
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- lsls r0, r4, 24
- asrs r5, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r5, r0
- beq _081B37EE
- adds r0, 0x1
- cmp r5, r0
- bne _081B37CC
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xE
- bl sub_81B302C
- ldr r2, =gUnknown_08615C08
- ldr r0, [r4]
- ldrb r1, [r0, 0x17]
- adds r0, r1
- ldrb r0, [r0, 0xE]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
- b _081B37EE
- .pool
-_081B37CC:
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xE
- bl sub_81B302C
- ldr r1, =gUnknown_08615C08
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_081B37EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3730
-
- thumb_func_start sub_81B37FC
-sub_81B37FC: @ 81B37FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B3828
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B37FC
-
- thumb_func_start sub_81B3828
-sub_81B3828: @ 81B3828
- push {r4,lr}
- sub sp, 0x4
- ldr r4, =gUnknown_0203CEC8
- ldrb r1, [r4, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _081B3868
- bl pokemon_change_order
- ldr r1, =gPlayerParty
- ldrb r2, [r4, 0x9]
- ldr r0, =gPlayerPartyCount
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =sub_81B3894
- str r0, [sp]
- movs r0, 0x1
- bl sub_81BF8EC
- b _081B3880
- .pool
-_081B3868:
- ldr r1, =gPlayerParty
- ldrb r2, [r4, 0x9]
- ldr r0, =gPlayerPartyCount
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =sub_81B3894
- str r0, [sp]
- movs r0, 0
- bl sub_81BF8EC
-_081B3880:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3828
-
- thumb_func_start sub_81B3894
-sub_81B3894: @ 81B3894
- push {lr}
- sub sp, 0xC
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r3, =gUnknown_0203CEC8
- ldr r0, =gUnknown_0203CF20
- ldrb r0, [r0]
- strb r0, [r3, 0x9]
- ldrb r0, [r3, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r3, 0xB]
- movs r1, 0x15
- str r1, [sp]
- ldr r1, =sub_81B36FC
- str r1, [sp, 0x4]
- ldr r1, [r3]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3894
-
- thumb_func_start brm_switch
-brm_switch: @ 81B38DC
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x5
- bl PlaySE
- ldr r5, =gUnknown_0203CEC8
- movs r0, 0x8
- strb r0, [r5, 0xB]
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- movs r0, 0x3
- bl display_pokemon_menu_message
- ldrb r0, [r5, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
- ldrb r0, [r5, 0x9]
- strb r0, [r5, 0xA]
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1370
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end brm_switch
-
- thumb_func_start sub_81B3938
-sub_81B3938: @ 81B3938
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- ldr r3, =gUnknown_0203CEC8
- movs r1, 0xA
- ldrsb r1, [r3, r1]
- movs r0, 0x9
- ldrsb r0, [r3, r0]
- cmp r1, r0
- bne _081B3968
- adds r0, r7, 0
- bl sub_81B407C
- b _081B3ABA
- .pool
-_081B3968:
- add r2, sp, 0x8
- movs r0, 0x9
- ldrsb r0, [r3, r0]
- ldr r1, =gUnknown_0203CEDC
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r4, 0
- strb r0, [r2]
- adds r0, r2, 0
- ldrb r0, [r0]
- movs r1, 0x1
- bl GetWindowAttribute
- strh r0, [r6]
- add r0, sp, 0x8
- ldrb r0, [r0]
- movs r1, 0x2
- bl GetWindowAttribute
- strh r0, [r6, 0x2]
- add r0, sp, 0x8
- ldrb r0, [r0]
- movs r1, 0x3
- bl GetWindowAttribute
- strh r0, [r6, 0x4]
- add r0, sp, 0x8
- ldrb r0, [r0]
- movs r1, 0x4
- bl GetWindowAttribute
- strh r0, [r6, 0x6]
- strh r4, [r6, 0x10]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0xA
- bne _081B39C4
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- b _081B39C6
- .pool
-_081B39C4:
- movs r0, 0x1
-_081B39C6:
- strh r0, [r6, 0x14]
- add r2, sp, 0x8
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xA]
- lsls r0, 24
- asrs r0, 24
- ldr r1, =gUnknown_0203CEDC
- ldr r1, [r1]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- movs r4, 0
- strb r0, [r2, 0x1]
- adds r0, r2, 0
- ldrb r0, [r0, 0x1]
- movs r1, 0x1
- bl GetWindowAttribute
- strh r0, [r6, 0x8]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- movs r1, 0x2
- bl GetWindowAttribute
- strh r0, [r6, 0xA]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- movs r1, 0x3
- bl GetWindowAttribute
- strh r0, [r6, 0xC]
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- movs r1, 0x4
- bl GetWindowAttribute
- strh r0, [r6, 0xE]
- strh r4, [r6, 0x12]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- cmp r0, 0xA
- bne _081B3A2C
- movs r2, 0x1
- negs r2, r2
- adds r0, r2, 0
- b _081B3A2E
- .pool
-_081B3A2C:
- movs r0, 0x1
-_081B3A2E:
- strh r0, [r6, 0x16]
- ldr r4, =gUnknown_0203CEF0
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- lsls r0, 1
- muls r0, r1
- bl Alloc
- str r0, [r4]
- ldr r5, =gUnknown_0203CEF4
- movs r0, 0xC
- ldrsh r1, [r6, r0]
- movs r2, 0xE
- ldrsh r0, [r6, r2]
- lsls r0, 1
- muls r0, r1
- bl Alloc
- str r0, [r5]
- ldr r1, [r4]
- ldrb r2, [r6]
- ldrb r3, [r6, 0x2]
- ldrb r0, [r6, 0x4]
- str r0, [sp]
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- movs r0, 0
- bl sub_8199CBC
- ldr r1, [r5]
- ldrb r2, [r6, 0x8]
- ldrb r3, [r6, 0xA]
- ldrb r0, [r6, 0xC]
- str r0, [sp]
- ldrb r0, [r6, 0xE]
- str r0, [sp, 0x4]
- movs r0, 0
- bl sub_8199CBC
- add r0, sp, 0x8
- ldrb r0, [r0]
- bl ClearWindowTilemap
- add r0, sp, 0x8
- ldrb r0, [r0, 0x1]
- bl ClearWindowTilemap
- ldr r4, =gUnknown_0203CEC8
- movs r0, 0x9
- strb r0, [r4, 0xB]
- ldrb r0, [r4, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_81B0FCC
- adds r0, r7, 0
- bl sub_81B3CC0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B3D48
- str r1, [r0]
-_081B3ABA:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3938
-
- thumb_func_start sub_81B3AD8
-sub_81B3AD8: @ 81B3AD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r2, 0
- mov r12, r3
- ldr r7, [sp, 0x18]
- lsls r0, 16
- lsrs r3, r0, 16
- adds r5, r3, 0
- lsls r1, 16
- lsrs r2, r1, 16
- mov r8, r2
- lsls r0, r3, 16
- asrs r1, r0, 16
- lsls r0, r2, 16
- asrs r0, 16
- adds r4, r1, r0
- cmp r4, 0
- blt _081B3B02
- cmp r1, 0x1F
- ble _081B3B06
-_081B3B02:
- movs r0, 0
- b _081B3B34
-_081B3B06:
- cmp r1, 0
- bge _081B3B1A
- negs r0, r1
- strb r0, [r6]
- movs r0, 0
- mov r1, r12
- strb r0, [r1]
- adds r0, r2, r3
- strb r0, [r7]
- b _081B3B32
-_081B3B1A:
- movs r0, 0
- strb r0, [r6]
- mov r0, r12
- strb r5, [r0]
- cmp r4, 0x1F
- ble _081B3B2E
- movs r0, 0x20
- subs r0, r5
- strb r0, [r7]
- b _081B3B32
-_081B3B2E:
- mov r1, r8
- strb r1, [r7]
-_081B3B32:
- movs r0, 0x1
-_081B3B34:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81B3AD8
-
- thumb_func_start sub_81B3B40
-sub_81B3B40: @ 81B3B40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- str r0, [sp, 0x28]
- ldr r0, [sp, 0x54]
- ldr r4, [sp, 0x58]
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r3, 16
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x30]
- lsls r1, 16
- asrs r7, r1, 16
- lsrs r0, r3, 16
- str r0, [sp, 0x2C]
- asrs r3, 16
- mov r8, r3
- mov r5, sp
- adds r5, 0x25
- mov r6, sp
- adds r6, 0x26
- str r6, [sp]
- adds r0, r7, 0
- mov r1, r8
- add r2, sp, 0x24
- adds r3, r5, 0
- bl sub_81B3AD8
- lsls r0, 24
- cmp r0, 0
- beq _081B3BFA
- ldrb r2, [r5]
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r9, r0
- ldrb r0, [r6]
- str r0, [sp]
- mov r1, r10
- lsls r0, r1, 24
- lsrs r4, r0, 24
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- mov r3, r9
- bl FillBgTilemapBufferRect_Palette0
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- adds r0, r7, r0
- lsls r0, 16
- asrs r0, 16
- str r6, [sp]
- mov r1, r8
- add r2, sp, 0x24
- adds r3, r5, 0
- bl sub_81B3AD8
- lsls r0, 24
- cmp r0, 0
- beq _081B3BFA
- add r0, sp, 0x24
- ldrb r2, [r0]
- ldr r1, [sp, 0x2C]
- lsls r0, r1, 24
- lsrs r0, 24
- str r0, [sp]
- str r4, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- ldrb r0, [r6]
- str r0, [sp, 0x10]
- str r4, [sp, 0x14]
- movs r0, 0x11
- str r0, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x1C]
- str r0, [sp, 0x20]
- ldr r1, [sp, 0x28]
- movs r3, 0
- bl CopyRectToBgTilemapBufferRect
-_081B3BFA:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B3B40
-
- thumb_func_start sub_81B3C0C
-sub_81B3C0C: @ 81B3C0C
- push {r4,lr}
- ldr r4, =gSprites
- ldrb r2, [r0, 0xB]
- lsls r3, r2, 4
- adds r3, r2
- lsls r3, 2
- adds r3, r4
- lsls r1, 16
- asrs r1, 13
- ldrh r2, [r3, 0x24]
- adds r2, r1
- strh r2, [r3, 0x24]
- ldrb r3, [r0, 0xA]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x24]
- adds r3, r1
- strh r3, [r2, 0x24]
- ldrb r3, [r0, 0x9]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x24]
- adds r3, r1
- strh r3, [r2, 0x24]
- ldrb r2, [r0, 0xC]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r2, [r0, 0x24]
- adds r2, r1
- strh r2, [r0, 0x24]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3C0C
-
- thumb_func_start sub_81B3C60
-sub_81B3C60: @ 81B3C60
- 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, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081B3C8E
- ldr r2, =gUnknown_0203CEDC
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- lsls r1, 4
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- bl sub_81B3C0C
-_081B3C8E:
- movs r1, 0x16
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _081B3CAC
- ldr r2, =gUnknown_0203CEDC
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0xA
- ldrsb r1, [r0, r1]
- lsls r1, 4
- ldr r0, [r2]
- adds r0, r1
- movs r2, 0x16
- ldrsh r1, [r4, r2]
- bl sub_81B3C0C
-_081B3CAC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3C60
-
- thumb_func_start sub_81B3CC0
-sub_81B3CC0: @ 81B3CC0
- push {r4-r6,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 r5, r1, r0
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081B3D00
- ldr r0, =gUnknown_0203CEF0
- ldr r0, [r0]
- ldrh r1, [r5, 0x10]
- ldrh r2, [r5]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r3, 0x2
- ldrsh r2, [r5, r3]
- movs r4, 0x4
- ldrsh r3, [r5, r4]
- movs r6, 0x6
- ldrsh r4, [r5, r6]
- str r4, [sp]
- movs r6, 0x14
- ldrsh r4, [r5, r6]
- str r4, [sp, 0x4]
- bl sub_81B3B40
-_081B3D00:
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081B3D2E
- ldr r0, =gUnknown_0203CEF4
- ldr r0, [r0]
- ldrh r1, [r5, 0x12]
- ldrh r2, [r5, 0x8]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- movs r3, 0xA
- ldrsh r2, [r5, r3]
- movs r4, 0xC
- ldrsh r3, [r5, r4]
- movs r6, 0xE
- ldrsh r4, [r5, r6]
- str r4, [sp]
- movs r6, 0x16
- ldrsh r4, [r5, r6]
- str r4, [sp, 0x4]
- bl sub_81B3B40
-_081B3D2E:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3CC0
-
- thumb_func_start sub_81B3D48
-sub_81B3D48: @ 81B3D48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r7, r0, 3
- ldr r0, =gTasks + 0x8
- mov r8, r0
- adds r6, r7, r0
- adds r0, r4, 0
- bl sub_81B3CC0
- adds r0, r4, 0
- bl sub_81B3C60
- ldrh r1, [r6, 0x14]
- ldrh r2, [r6, 0x10]
- adds r1, r2
- strh r1, [r6, 0x10]
- ldrh r0, [r6, 0x16]
- ldrh r3, [r6, 0x12]
- adds r0, r3
- strh r0, [r6, 0x12]
- add r2, sp, 0x8
- ldrh r0, [r6]
- adds r0, r1
- strh r0, [r2]
- adds r1, r2, 0
- ldrh r0, [r6, 0x12]
- ldrh r3, [r6, 0x8]
- adds r2, r0, r3
- strh r2, [r1, 0x2]
- adds r0, r1, 0
- ldrh r0, [r0]
- cmp r0, 0x21
- bls _081B3E3A
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0x21
- bls _081B3E3A
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- negs r0, r0
- strh r0, [r6, 0x14]
- movs r2, 0x16
- ldrsh r0, [r6, r2]
- negs r0, r0
- strh r0, [r6, 0x16]
- bl swap_pokemon_and_oams
- ldr r4, =gUnknown_0203CEC8
- ldrb r0, [r4, 0x9]
- bl sub_81B0948
- ldrb r0, [r4, 0xA]
- bl sub_81B0948
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- ldr r5, =gUnknown_0203CEDC
- ldr r1, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- movs r0, 0xA
- ldrsb r0, [r4, r0]
- ldr r1, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- ldr r0, =gUnknown_0203CEF0
- ldr r1, [r0]
- ldrb r2, [r6]
- ldrb r3, [r6, 0x2]
- ldrb r0, [r6, 0x4]
- str r0, [sp]
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- movs r0, 0
- bl sub_8199CBC
- ldr r0, =gUnknown_0203CEF4
- ldr r1, [r0]
- ldrb r2, [r6, 0x8]
- ldrb r3, [r6, 0xA]
- ldrb r0, [r6, 0xC]
- str r0, [sp]
- ldrb r0, [r6, 0xE]
- str r0, [sp, 0x4]
- movs r0, 0
- bl sub_8199CBC
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- ldr r1, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl ClearWindowTilemap
- movs r0, 0xA
- ldrsb r0, [r4, r0]
- ldr r1, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl ClearWindowTilemap
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =sub_81B3E60
- str r1, [r0]
-_081B3E3A:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B3D48
-
- thumb_func_start sub_81B3E60
-sub_81B3E60: @ 81B3E60
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- adds r0, r6, 0
- bl sub_81B3CC0
- adds r0, r6, 0
- bl sub_81B3C60
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081B3EE4
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081B3EE4
- ldr r5, =gUnknown_0203CEC8
- movs r0, 0x9
- ldrsb r0, [r5, r0]
- ldr r4, =gUnknown_0203CEDC
- ldr r1, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- movs r0, 0xA
- ldrsb r0, [r5, r0]
- ldr r1, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x8]
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gUnknown_0203CEF0
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_0203CEF4
- ldr r0, [r0]
- bl Free
- adds r0, r6, 0
- bl sub_81B407C
- b _081B3F08
- .pool
-_081B3EE4:
- ldrh r1, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- adds r1, r0
- strh r1, [r4, 0x10]
- ldrh r0, [r4, 0x16]
- ldrh r2, [r4, 0x12]
- adds r0, r2
- strh r0, [r4, 0x12]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0
- bne _081B3EFE
- strh r1, [r4, 0x14]
-_081B3EFE:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081B3F08
- strh r0, [r4, 0x16]
-_081B3F08:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B3E60
-
- thumb_func_start oamt_swap_pos
-oamt_swap_pos: @ 81B3F10
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldrb r3, [r0]
- ldrb r2, [r1]
- strb r2, [r0]
- strb r3, [r1]
- ldr r5, =gSprites
- ldrb r2, [r0]
- lsls r3, r2, 4
- adds r3, r2
- lsls r3, 2
- adds r3, r5
- ldrh r6, [r3, 0x20]
- ldrh r2, [r3, 0x22]
- mov r8, r2
- ldrh r2, [r3, 0x24]
- mov r9, r2
- ldrh r2, [r3, 0x26]
- mov r10, r2
- ldrb r4, [r1]
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x20]
- strh r2, [r3, 0x20]
- ldrb r2, [r0]
- lsls r3, r2, 4
- adds r3, r2
- lsls r3, 2
- adds r3, r5
- ldrb r4, [r1]
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x22]
- strh r2, [r3, 0x22]
- ldrb r2, [r0]
- lsls r3, r2, 4
- adds r3, r2
- lsls r3, 2
- adds r3, r5
- ldrb r4, [r1]
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x24]
- strh r2, [r3, 0x24]
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x26]
- strh r0, [r2, 0x26]
- ldrb r2, [r1]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x20]
- ldrb r2, [r1]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- mov r2, r8
- strh r2, [r0, 0x22]
- ldrb r2, [r1]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- mov r2, r9
- strh r2, [r0, 0x24]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r10
- strh r1, [r0, 0x26]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end oamt_swap_pos
-
- thumb_func_start swap_pokemon_and_oams
-swap_pokemon_and_oams: @ 81B3FDC
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, =gUnknown_0203CEDC
- ldr r2, =gUnknown_0203CEC8
- movs r3, 0x9
- ldrsb r3, [r2, r3]
- lsls r0, r3, 4
- ldr r1, [r1]
- adds r0, r1, r0
- str r0, [sp]
- ldrb r2, [r2, 0xA]
- lsls r2, 24
- asrs r2, 24
- lsls r0, r2, 4
- adds r0, r1, r0
- str r0, [sp, 0x4]
- movs r1, 0x64
- adds r4, r3, 0
- muls r4, r1
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r5, r2, 0
- muls r5, r1
- adds r5, r0
- movs r0, 0x64
- bl Alloc
- adds r6, r0, 0
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r6, 0
- bl Free
- ldr r0, [sp]
- adds r0, 0xB
- ldr r1, [sp, 0x4]
- adds r1, 0xB
- bl oamt_swap_pos
- ldr r0, [sp]
- adds r0, 0xA
- ldr r1, [sp, 0x4]
- adds r1, 0xA
- bl oamt_swap_pos
- ldr r0, [sp]
- adds r0, 0x9
- ldr r1, [sp, 0x4]
- adds r1, 0x9
- bl oamt_swap_pos
- ldr r0, [sp]
- adds r0, 0xC
- ldr r1, [sp, 0x4]
- adds r1, 0xC
- bl oamt_swap_pos
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end swap_pokemon_and_oams
-
- thumb_func_start sub_81B407C
-sub_81B407C: @ 81B407C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- ldr r4, =gUnknown_0203CEC8
- movs r0, 0
- strb r0, [r4, 0xB]
- ldrb r0, [r4, 0x9]
- movs r1, 0
- bl sub_81B0FCC
- ldrb r0, [r4, 0xA]
- strb r0, [r4, 0x9]
- ldrb r0, [r4, 0xA]
- movs r1, 0x1
- bl sub_81B0FCC
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1370
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B407C
-
- thumb_func_start brm_cancel_1
-brm_cancel_1: @ 81B40D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x6
- bne _081B4110
- movs r0, 0xF
- bl display_pokemon_menu_message
- b _081B4116
- .pool
-_081B4110:
- movs r0, 0
- bl display_pokemon_menu_message
-_081B4116:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end brm_cancel_1
-
- thumb_func_start sub_81B4134
-sub_81B4134: @ 81B4134
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gPlayerParty
- ldr r1, =gUnknown_0203CEC8
- ldrb r1, [r1, 0x9]
- movs r2, 0x8
- bl sub_81B33B4
- movs r0, 0x1
- bl sub_81B31B0
- movs r0, 0x18
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0, 0x8]
- ldr r1, =sub_81B3730
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4134
-
- thumb_func_start sub_81B4198
-sub_81B4198: @ 81B4198
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B41C4
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4198
-
- thumb_func_start sub_81B41C4
-sub_81B41C4: @ 81B41C4
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _081B41E0
- ldr r2, =c2_8123744
- movs r0, 0x2
- movs r1, 0x5
- bl GoToBagMenu
- b _081B41E8
- .pool
-_081B41E0:
- ldr r1, =c2_8123744
- movs r0, 0x2
- bl sub_81C4F98
-_081B41E8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B41C4
-
- thumb_func_start c2_8123744
-c2_8123744: @ 81B41F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r6, =gUnknown_0203CE7C
- ldrh r0, [r6]
- cmp r0, 0
- bne _081B4224
- ldr r3, =gUnknown_0203CEC8
- ldrb r0, [r3, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r3, 0xB]
- movs r1, 0x7F
- str r1, [sp]
- ldr r1, =sub_81B36FC
- str r1, [sp, 0x4]
- ldr r1, [r3]
- b _081B425A
- .pool
-_081B4224:
- ldr r4, =gUnknown_0203CEFC
- ldr r5, =gUnknown_0203CEC8
- movs r0, 0x9
- ldrsb r0, [r5, r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, =gPlayerParty
- adds r0, r7
- movs r1, 0xC
- bl GetMonData
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _081B4278
- ldrb r0, [r5, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r5, 0xB]
- movs r1, 0x7F
- str r1, [sp]
- ldr r1, =sub_81B4350
- str r1, [sp, 0x4]
- ldr r1, [r5]
-_081B425A:
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
- b _081B42C0
- .pool
-_081B4278:
- ldrh r0, [r6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B42A4
- ldrh r0, [r6]
- movs r1, 0x1
- bl RemoveBagItem
- movs r0, 0x9
- ldrsb r0, [r5, r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- ldrh r1, [r6]
- bl sub_81B1DB8
- bl sub_81B452C
- b _081B42C0
-_081B42A4:
- ldrb r0, [r5, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r5, 0xB]
- movs r1, 0x7F
- str r1, [sp]
- ldr r1, =sub_81B42D0
- str r1, [sp, 0x4]
- ldr r1, [r5]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
-_081B42C0:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_8123744
-
- thumb_func_start sub_81B42D0
-sub_81B42D0: @ 81B42D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B432C
- ldr r0, =gUnknown_0203CE7C
- ldrh r4, [r0]
- ldr r0, =gUnknown_0203CEC8
- mov r8, r0
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B1C84
- mov r1, r8
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- muls r0, r6
- adds r0, r5
- adds r1, r4, 0
- bl sub_81B1DB8
- adds r0, r4, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- str r1, [r0]
-_081B432C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B42D0
-
- thumb_func_start sub_81B4350
-sub_81B4350: @ 81B4350
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B4388
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_0203CEFC
- ldrh r1, [r1]
- movs r2, 0x1
- bl sub_81B1D1C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B43A8
- str r1, [r0]
-_081B4388:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4350
-
- thumb_func_start sub_81B43A8
-sub_81B43A8: @ 81B43A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B43CC
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B43DC
- str r0, [r1]
-_081B43CC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B43A8
-
- thumb_func_start sub_81B43DC
-sub_81B43DC: @ 81B43DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B4402
- cmp r1, 0
- bgt _081B43FC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B44D8
- b _081B44EC
-_081B43FC:
- cmp r1, 0x1
- beq _081B44DE
- b _081B44EC
-_081B4402:
- ldr r5, =gUnknown_0203CE7C
- ldrh r0, [r5]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r6, =gUnknown_0203CEFC
- ldrh r0, [r6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- bne _081B4458
- ldrh r0, [r5]
- movs r1, 0x1
- bl AddBagItem
- ldrh r0, [r6]
- bl pokemon_item_not_removed
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
- b _081B44EC
- .pool
-_081B4458:
- ldrh r0, [r5]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B4498
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldrh r1, [r5]
- bl sub_81B1DB8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B44FC
- str r1, [r0]
- b _081B44EC
- .pool
-_081B4498:
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldrh r1, [r5]
- bl sub_81B1DB8
- ldrh r0, [r5]
- ldrh r1, [r6]
- movs r2, 0x1
- bl sub_81B1D68
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- str r1, [r0]
- b _081B44EC
- .pool
-_081B44D8:
- movs r0, 0x5
- bl PlaySE
-_081B44DE:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1C1C
- str r0, [r1]
-_081B44EC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B43DC
-
- thumb_func_start sub_81B44FC
-sub_81B44FC: @ 81B44FC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B451C
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B452C
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
-_081B451C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B44FC
-
- thumb_func_start sub_81B452C
-sub_81B452C: @ 81B452C
- push {lr}
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock1Ptr
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- ldr r0, =0x00002be0
- adds r2, r0
- ldr r1, [r1]
- adds r1, r2
- ldr r2, =sub_81B4578
- movs r0, 0x4
- movs r3, 0x3
- bl sub_811A20C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B452C
-
- thumb_func_start sub_81B4578
-sub_81B4578: @ 81B4578
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r6, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r6, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gScriptResult
- ldrh r7, [r0]
- cmp r7, 0
- bne _081B45F8
- adds r0, r5, 0
- bl sub_80D4680
- ldr r4, =gUnknown_0203CEFC
- adds r0, r5, 0
- movs r1, 0xC
- adds r2, r4, 0
- bl SetMonData
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- mov r0, r8
- movs r1, 0x1
- bl AddBagItem
- ldrb r0, [r6, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r6, 0xB]
- str r7, [sp]
- ldr r1, =sub_81B36FC
- str r1, [sp, 0x4]
- ldr r1, [r6]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
- b _081B4614
- .pool
-_081B45F8:
- ldrb r0, [r6, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r6, 0xB]
- movs r1, 0x7F
- str r1, [sp]
- ldr r1, =sub_81B4624
- str r1, [sp, 0x4]
- ldr r1, [r6]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
-_081B4614:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4578
-
- thumb_func_start sub_81B4624
-sub_81B4624: @ 81B4624
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B468A
- ldr r1, =gUnknown_0203CEFC
- ldrh r0, [r1]
- cmp r0, 0
- bne _081B4670
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_0203CE7C
- ldrh r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_81B1C84
- b _081B467C
- .pool
-_081B4670:
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- ldrh r1, [r1]
- movs r2, 0
- bl sub_81B1D68
-_081B467C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B469C
- str r0, [r1]
-_081B468A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4624
-
- thumb_func_start sub_81B469C
-sub_81B469C: @ 81B469C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r4, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r6, r1, r0
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B471C
- ldr r5, =gUnknown_0203CEDC
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- lsls r0, 4
- ldr r1, [r5]
- adds r1, r0
- adds r0, r6, 0
- bl sub_81B5C94
- ldrb r1, [r4, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0xC
- bne _081B4716
- adds r0, r6, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- beq _081B4704
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- lsls r0, 4
- ldr r1, [r5]
- adds r1, r0
- movs r0, 0xB
- movs r2, 0x1
- bl sub_81B2FA8
- b _081B4716
- .pool
-_081B4704:
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- lsls r0, 4
- ldr r1, [r5]
- adds r1, r0
- movs r0, 0xC
- movs r2, 0x1
- bl sub_81B2FA8
-_081B4716:
- adds r0, r7, 0
- bl sub_81B1C1C
-_081B471C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B469C
-
- thumb_func_start sub_81B4724
-sub_81B4724: @ 81B4724
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl sub_81B1E00
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081B4788
- cmp r0, 0x1
- beq _081B47AC
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_81B1CD0
- b _081B47BA
- .pool
-_081B4788:
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9980
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- b _081B47B4
- .pool
-_081B47AC:
- adds r0, r6, 0
- bl pokemon_item_not_removed
- ldr r0, =gStringVar4
-_081B47B4:
- movs r1, 0x1
- bl sub_81B1B5C
-_081B47BA:
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B469C
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4724
-
- thumb_func_start sub_81B47E0
-sub_81B47E0: @ 81B47E0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- cmp r5, 0
- bne _081B4864
- ldr r1, =gStringVar1
- adds r0, r7, 0
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9980
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- b _081B488A
- .pool
-_081B4864:
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9E00
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B48A8
-_081B488A:
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B47E0
-
- thumb_func_start sub_81B48A8
-sub_81B48A8: @ 81B48A8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B48CC
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B48DC
- str r0, [r1]
-_081B48CC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B48A8
-
- thumb_func_start sub_81B48DC
-sub_81B48DC: @ 81B48DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B491A
- cmp r1, 0
- bgt _081B4914
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B4964
- b _081B4978
- .pool
-_081B4914:
- cmp r1, 0x1
- beq _081B496A
- b _081B4978
-_081B491A:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9E14
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B4988
- str r1, [r0]
- b _081B4978
- .pool
-_081B4964:
- movs r0, 0x5
- bl PlaySE
-_081B496A:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1C1C
- str r0, [r1]
-_081B4978:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B48DC
-
- thumb_func_start sub_81B4988
-sub_81B4988: @ 81B4988
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r6, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B49EC
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- ldr r4, =gUnknown_0203CEDC
- movs r0, 0x9
- ldrsb r0, [r6, r0]
- lsls r0, 4
- ldr r1, [r4]
- adds r1, r0
- adds r0, r5, 0
- bl sub_81B5C94
- movs r0, 0x9
- ldrsb r0, [r6, r0]
- lsls r0, 4
- ldr r1, [r4]
- adds r1, r0
- movs r0, 0xC
- movs r2, 0x1
- bl sub_81B2FA8
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
-_081B49EC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4988
-
- thumb_func_start sub_81B4A08
-sub_81B4A08: @ 81B4A08
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gPlayerParty
- ldr r1, =gUnknown_0203CEC8
- ldrb r1, [r1, 0x9]
- movs r2, 0x9
- bl sub_81B33B4
- movs r0, 0x2
- bl sub_81B31B0
- movs r0, 0x19
- bl display_pokemon_menu_message
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0, 0x8]
- ldr r1, =sub_81B3730
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4A08
-
- thumb_func_start sub_81B4A6C
-sub_81B4A6C: @ 81B4A6C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B4A98
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4A6C
-
- thumb_func_start sub_81B4A98
-sub_81B4A98: @ 81B4A98
- push {lr}
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x40
- bl GetMonData
- ldr r2, =gSaveBlock1Ptr
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =0x00002be0
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- ldr r1, =sub_81B4AE0
- movs r2, 0x1
- bl sub_8121478
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4A98
-
- thumb_func_start sub_81B4AE0
-sub_81B4AE0: @ 81B4AE0
- push {lr}
- sub sp, 0xC
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r3, =gUnknown_0203CEC8
- ldrb r0, [r3, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r3, 0xB]
- movs r1, 0x15
- str r1, [sp]
- ldr r1, =sub_81B36FC
- str r1, [sp, 0x4]
- ldr r1, [r3]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4AE0
-
- thumb_func_start brm_take_2
-brm_take_2: @ 81B4B20
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r5, =gUnknown_0203CEC4
- ldr r0, [r5]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, [r5]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, =gUnknown_085E9855
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B4B6C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end brm_take_2
-
- thumb_func_start sub_81B4B6C
-sub_81B4B6C: @ 81B4B6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B4B90
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B4BA0
- str r0, [r1]
-_081B4B90:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4B6C
-
- thumb_func_start sub_81B4BA0
-sub_81B4BA0: @ 81B4BA0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B4BC6
- cmp r1, 0
- bgt _081B4BC0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B4C30
- b _081B4C4C
-_081B4BC0:
- cmp r1, 0x1
- beq _081B4C36
- b _081B4C4C
-_081B4BC6:
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_80D4700
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081B4C0C
- ldr r0, =gUnknown_085E9877
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- b _081B4C4A
- .pool
-_081B4C0C:
- ldr r0, =gUnknown_085E9897
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- b _081B4C4A
- .pool
-_081B4C30:
- movs r0, 0x5
- bl PlaySE
-_081B4C36:
- ldr r0, =gUnknown_085E98B4
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B4C60
-_081B4C4A:
- str r1, [r0]
-_081B4C4C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4BA0
-
- thumb_func_start sub_81B4C60
-sub_81B4C60: @ 81B4C60
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B4C84
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B4C94
- str r0, [r1]
-_081B4C84:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4C60
-
- thumb_func_start sub_81B4C94
-sub_81B4C94: @ 81B4C94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B4CBE
- cmp r1, 0
- bgt _081B4CB8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B4D50
- b _081B4D64
-_081B4CB8:
- cmp r1, 0x1
- beq _081B4D56
- b _081B4D64
-_081B4CBE:
- ldr r0, =gUnknown_0203CEC8
- mov r8, r0
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- movs r7, 0x64
- muls r0, r7
- ldr r6, =gPlayerParty
- adds r0, r6
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B4D24
- mov r1, r8
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- muls r0, r7
- adds r0, r6
- bl sub_80D4680
- ldr r0, =gUnknown_085E99B8
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B469C
- str r1, [r0]
- b _081B4D64
- .pool
-_081B4D24:
- adds r0, r4, 0
- bl pokemon_item_not_removed
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
- b _081B4D64
- .pool
-_081B4D50:
- movs r0, 0x5
- bl PlaySE
-_081B4D56:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1C1C
- str r0, [r1]
-_081B4D64:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4C94
-
- thumb_func_start sub_81B4D78
-sub_81B4D78: @ 81B4D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r5, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r5, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r6, =gPlayerParty
- adds r7, r0, r6
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldrb r4, [r5, 0x9]
- adds r0, r7, 0
- bl sub_81B353C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81B33B4
- ldrb r1, [r5, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0xC
- beq _081B4DE4
- movs r0, 0
- bl sub_81B31B0
- movs r0, 0x15
- bl display_pokemon_menu_message
- b _081B4E02
- .pool
-_081B4DE4:
- movs r0, 0x1
- bl sub_81B31B0
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gStringVar2
- bl CopyItemName
- movs r0, 0x1A
- bl display_pokemon_menu_message
-_081B4E02:
- ldr r1, =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0xFF
- strh r1, [r0, 0x8]
- ldr r1, =sub_81B3730
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4D78
-
- thumb_func_start brm_shift_sendout
-brm_shift_sendout: @ 81B4E2C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r5, =gUnknown_0203CEC4
- ldr r0, [r5]
- adds r0, 0xC
- bl sub_81B302C
- bl sub_81B8A7C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B4E5C
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B4E7A
- .pool
-_081B4E5C:
- ldr r0, [r5]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gStringVar4
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
-_081B4E7A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end brm_shift_sendout
-
- thumb_func_start sub_81B4E8C
-sub_81B4E8C: @ 81B4E8C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- bl sub_81B8830
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _081B4F36
- ldr r2, =gUnknown_0203CEC8
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- mov r8, r0
-_081B4EC6:
- ldr r0, =gUnknown_0203CEF8
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- bne _081B4F2C
- movs r0, 0x5
- str r2, [sp]
- bl PlaySE
- ldr r2, [sp]
- ldrb r0, [r2, 0x9]
- adds r0, 0x1
- strb r0, [r4]
- adds r0, r5, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CEDC
- ldrb r2, [r2, 0x9]
- lsls r2, 24
- asrs r2, 24
- lsls r2, 4
- ldr r1, [r1]
- adds r1, r2
- movs r2, 0x1
- bl sub_81B2FA8
- subs r0, r6, 0x1
- cmp r5, r0
- bne _081B4F04
- bl sub_81B4F88
-_081B4F04:
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r0, =sub_81B1370
- mov r1, r8
- str r0, [r1]
- b _081B4F68
- .pool
-_081B4F2C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _081B4EC6
-_081B4F36:
- ldr r0, =gStringVar1
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9830
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x20
- bl PlaySE
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
-_081B4F68:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4E8C
-
- thumb_func_start sub_81B4F88
-sub_81B4F88: @ 81B4F88
- push {r4,lr}
- ldr r4, =gUnknown_0203CEC8
- ldrb r0, [r4, 0x9]
- movs r1, 0
- bl sub_81B0FCC
- movs r0, 0x6
- strb r0, [r4, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4F88
-
- thumb_func_start sub_81B4FA8
-sub_81B4FA8: @ 81B4FA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- bl sub_81B8830
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _081B502A
- ldr r6, =gUnknown_0203CEF8
- subs r2, r5, 0x1
- adds r7, r6, 0
- ldr r3, =gUnknown_0203CEC8
-_081B4FE2:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x9
- ldrsb r0, [r3, r0]
- adds r0, 0x1
- cmp r1, r0
- bne _081B5020
- adds r0, r4, 0
- adds r4, r2, 0
- cmp r0, r4
- bge _081B500C
- adds r3, r7, 0
-_081B4FFA:
- adds r2, r0, r3
- adds r1, r0, 0x1
- adds r0, r1, r3
- ldrb r0, [r0]
- strb r0, [r2]
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, r4
- blt _081B4FFA
-_081B500C:
- adds r1, r0, r6
- movs r0, 0
- strb r0, [r1]
- b _081B502A
- .pool
-_081B5020:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081B4FE2
-_081B502A:
- ldr r6, =gUnknown_0203CEDC
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 4
- ldr r1, [r6]
- adds r1, r0
- movs r0, 0x1
- movs r2, 0x1
- bl sub_81B2FA8
- movs r4, 0
- subs r5, 0x1
- mov r0, r8
- lsls r7, r0, 2
- cmp r4, r5
- bge _081B5078
-_081B504E:
- ldr r0, =gUnknown_0203CEF8
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _081B506E
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r1]
- lsls r2, 4
- subs r2, 0x10
- ldr r1, [r6]
- adds r1, r2
- movs r2, 0x1
- bl sub_81B2FA8
-_081B506E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- blt _081B504E
-_081B5078:
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- mov r2, r8
- adds r1, r7, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B4FA8
-
- thumb_func_start sub_81B50AC
-sub_81B50AC: @ 81B50AC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B12C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B50AC
-
- thumb_func_start sub_81B50C8
-sub_81B50C8: @ 81B50C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CEC8
- mov r9, r0
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x41
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r9
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4
- movs r1, 0x50
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800F7DC
- ldr r0, [r0]
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_807A8D0
- cmp r0, 0x1
- beq _081B515C
- cmp r0, 0x2
- beq _081B5170
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_81B12C0
- b _081B51B0
- .pool
-_081B515C:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA210
- bl StringExpandPlaceholders
- b _081B5178
- .pool
-_081B5170:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA234
- bl StringExpandPlaceholders
-_081B5178:
- movs r0, 0x20
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EA1CA
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
-_081B51B0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B50C8
-
- thumb_func_start brm_trade_1
-brm_trade_1: @ 81B51D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CEC8
- mov r8, r0
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- movs r6, 0x64
- muls r0, r6
- ldr r4, =gPlayerParty
- adds r0, r4
- movs r1, 0x41
- bl GetMonData
- mov r9, r0
- mov r1, r9
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- mov r1, r8
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- muls r0, r6
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r8
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- muls r0, r6
- adds r0, r4
- movs r1, 0x50
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800F7DC
- ldr r0, [r0]
- ldr r1, =gUnknown_02022C38
- ldr r1, [r1]
- ldr r2, =gUnknown_02022C3C
- ldrh r3, [r2]
- ldr r2, =gUnknown_02022C3E
- ldrb r2, [r2]
- str r2, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r2, r9
- bl sub_807A7E0
- cmp r0, 0
- beq _081B52C8
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_08615E0C
- subs r0, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x20
- bl PlaySE
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r1, =gUnknown_085EA1CA
- adds r0, r5, 0
- bl StringAppend
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
- b _081B52D4
- .pool
-_081B52C8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl sub_81B12C0
-_081B52D4:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end brm_trade_1
-
- thumb_func_start sub_81B52E4
-sub_81B52E4: @ 81B52E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r4]
- adds r0, 0xD
- bl sub_81B302C
- ldr r0, =gPlayerParty
- ldr r1, =gUnknown_0203CEC8
- ldrb r1, [r1, 0x9]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl sub_807A918
- cmp r0, 0x2
- beq _081B5340
- cmp r0, 0x2
- bgt _081B5328
- cmp r0, 0x1
- beq _081B532E
- b _081B5368
- .pool
-_081B5328:
- cmp r0, 0x3
- beq _081B5354
- b _081B5368
-_081B532E:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA1E8
- bl StringExpandPlaceholders
- b _081B53C0
- .pool
-_081B5340:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA210
- bl StringExpandPlaceholders
- b _081B53C0
- .pool
-_081B5354:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA234
- bl StringExpandPlaceholders
- b _081B53C0
- .pool
-_081B5368:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EA1CD
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B53FC
- b _081B53E4
- .pool
-_081B53C0:
- movs r0, 0x20
- bl PlaySE
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085EA1CA
- adds r0, r4, 0
- bl StringAppend
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
-_081B53E4:
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B52E4
-
- thumb_func_start sub_81B53FC
-sub_81B53FC: @ 81B53FC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B5420
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B5430
- str r0, [r1]
-_081B5420:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B53FC
-
- thumb_func_start sub_81B5430
-sub_81B5430: @ 81B5430
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B5456
- cmp r1, 0
- bgt _081B5450
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B545E
- b _081B546A
-_081B5450:
- cmp r1, 0x1
- beq _081B5464
- b _081B546A
-_081B5456:
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B546A
-_081B545E:
- movs r0, 0x5
- bl PlaySE
-_081B5464:
- adds r0, r4, 0
- bl sub_81B1C1C
-_081B546A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B5430
-
- thumb_func_start sub_81B5470
-sub_81B5470: @ 81B5470
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl GetMenuCursorPos
- ldr r5, =gUnknown_0203CEC4
- ldr r1, [r5]
- lsls r0, 24
- lsrs r0, 24
- adds r1, 0xF
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x13
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_08615D9C
- lsls r0, r4, 3
- adds r7, r0, r1
- ldr r0, [r7]
- cmp r0, 0
- bne _081B54A2
- b _081B5664
-_081B54A2:
- ldr r0, [r5]
- adds r0, 0xC
- bl sub_81B302C
- ldr r0, [r5]
- adds r0, 0xD
- bl sub_81B302C
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B54C6
- bl InUnionRoom
- cmp r0, 0x1
- bne _081B54E8
-_081B54C6:
- adds r0, r4, 0
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081B54E4
- movs r0, 0xD
- bl display_pokemon_menu_message
- b _081B5656
- .pool
-_081B54E4:
- ldrb r0, [r7, 0x4]
- b _081B5652
-_081B54E8:
- cmp r4, 0x7
- bhi _081B5524
- ldr r1, =0x00000867
- adds r0, r4, r1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B5524
- ldr r0, =gUnknown_085E97FC
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B1C1C
- str r1, [r0]
- b _081B5664
- .pool
-_081B5524:
- ldr r1, =gUnknown_08615D9C
- lsls r0, r4, 3
- adds r5, r0, r1
- ldr r0, [r5]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B553A
- b _081B563C
-_081B553A:
- subs r0, r4, 0x5
- cmp r0, 0x7
- bhi _081B5624
- lsls r0, 2
- ldr r1, =_081B5554
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B5554:
- .4byte _081B5614
- .4byte _081B5624
- .4byte _081B5624
- .4byte _081B557C
- .4byte _081B55B8
- .4byte _081B5624
- .4byte _081B5574
- .4byte _081B5574
-_081B5574:
- adds r0, r6, 0
- bl sub_8161560
- b _081B5664
-_081B557C:
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x1D]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r1, r0, 0
- ldr r0, =gStringVar1
- ldrb r1, [r1, 0x14]
- bl sub_81245DC
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA196
- b _081B55E8
- .pool
-_081B55B8:
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x24
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x25
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl get_mapheader_by_bank_and_number
- adds r1, r0, 0
- ldr r0, =gStringVar1
- ldrb r1, [r1, 0x14]
- bl sub_81245DC
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085EA16B
-_081B55E8:
- bl StringExpandPlaceholders
- adds r0, r6, 0
- bl sub_81B5674
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- strh r4, [r0]
- b _081B5664
- .pool
-_081B5614:
- ldr r1, =gUnknown_0203CEC8
- ldr r0, =sub_8124690
- b _081B5628
- .pool
-_081B5624:
- ldr r1, =gUnknown_0203CEC8
- ldr r0, =c2_exit_to_overworld_2_switch
-_081B5628:
- str r0, [r1]
- adds r0, r6, 0
- bl sub_81B12C0
- b _081B5664
- .pool
-_081B563C:
- cmp r4, 0x1
- beq _081B564A
- cmp r4, 0x4
- bne _081B5650
- bl sub_81B5864
- b _081B5656
-_081B564A:
- bl sub_81B57DC
- b _081B5656
-_081B5650:
- ldrb r0, [r5, 0x4]
-_081B5652:
- bl display_pokemon_menu_message
-_081B5656:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =task_brm_cancel_1_on_keypad_a_or_b
- str r0, [r1]
-_081B5664:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5470
-
- thumb_func_start sub_81B5674
-sub_81B5674: @ 81B5674
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gStringVar4
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B56A4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5674
-
- thumb_func_start sub_81B56A4
-sub_81B56A4: @ 81B56A4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B56C8
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B56D8
- str r0, [r1]
-_081B56C8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B56A4
-
- thumb_func_start sub_81B56D8
-sub_81B56D8: @ 81B56D8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B56FE
- cmp r1, 0
- bgt _081B56F8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B5714
- b _081B572A
-_081B56F8:
- cmp r1, 0x1
- beq _081B571A
- b _081B572A
-_081B56FE:
- ldr r1, =gUnknown_0203CEC8
- ldr r0, =c2_exit_to_overworld_2_switch
- str r0, [r1]
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B572A
- .pool
-_081B5714:
- movs r0, 0x5
- bl PlaySE
-_081B571A:
- ldr r0, =gFieldCallback
- movs r1, 0
- str r1, [r0]
- ldr r0, =gUnknown_0203CEEC
- str r1, [r0]
- adds r0, r4, 0
- bl sub_81B1C1C
-_081B572A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B56D8
-
- thumb_func_start hm_add_c3_launch_phase_2
-hm_add_c3_launch_phase_2: @ 81B5738
- push {lr}
- bl pal_fill_black
- ldr r0, =task_launch_hm_phase_2
- movs r1, 0x8
- bl CreateTask
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end hm_add_c3_launch_phase_2
-
- thumb_func_start task_launch_hm_phase_2
-task_launch_hm_phase_2: @ 81B5750
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B577C
- bl brm_get_selected_species
- ldr r1, =gUnknown_02038C08
- lsls r0, 16
- lsrs r0, 16
- str r0, [r1]
- ldr r0, =gUnknown_0203CEEC
- ldr r0, [r0]
- bl _call_via_r0
- adds r0, r4, 0
- bl DestroyTask
-_081B577C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_launch_hm_phase_2
-
- thumb_func_start brm_get_selected_species
-brm_get_selected_species: @ 81B578C
- push {lr}
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end brm_get_selected_species
-
- thumb_func_start task_brm_cancel_1_on_keypad_a_or_b
-task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081B57CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B57D4
-_081B57CE:
- adds r0, r2, 0
- bl brm_cancel_1
-_081B57D4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_brm_cancel_1_on_keypad_a_or_b
-
- thumb_func_start sub_81B57DC
-sub_81B57DC: @ 81B57DC
- push {lr}
- ldr r0, =0x00000888
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B57F8
- movs r0, 0xC
- bl display_pokemon_menu_message
- b _081B57FE
- .pool
-_081B57F8:
- movs r0, 0xD
- bl display_pokemon_menu_message
-_081B57FE:
- pop {r0}
- bx r0
- thumb_func_end sub_81B57DC
-
- thumb_func_start hm_surf_run_dp02scr
-hm_surf_run_dp02scr: @ 81B5804
- push {lr}
- bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- movs r0, 0x9
- bl FieldEffectStart
- pop {r0}
- bx r0
- .pool
- thumb_func_end hm_surf_run_dp02scr
-
- thumb_func_start sub_81B5820
-sub_81B5820: @ 81B5820
- push {lr}
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B585C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B585C
- ldr r1, =gFieldCallback
- ldr r0, =hm_add_c3_launch_phase_2
- str r0, [r1]
- ldr r1, =gUnknown_0203CEEC
- ldr r0, =hm_surf_run_dp02scr
- str r0, [r1]
- movs r0, 0x1
- b _081B585E
- .pool
-_081B585C:
- movs r0, 0
-_081B585E:
- pop {r1}
- bx r1
- thumb_func_end sub_81B5820
-
- thumb_func_start sub_81B5864
-sub_81B5864: @ 81B5864
- push {lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _081B587A
- movs r0, 0x9
- bl display_pokemon_menu_message
- b _081B5880
-_081B587A:
- movs r0, 0x8
- bl display_pokemon_menu_message
-_081B5880:
- pop {r0}
- bx r0
- thumb_func_end sub_81B5864
-
- thumb_func_start sub_81B5884
-sub_81B5884: @ 81B5884
- push {lr}
- ldr r0, =gUnknown_02037318
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B58A0
- movs r0, 0
- b _081B58A2
- .pool
-_081B58A0:
- movs r0, 0x1
-_081B58A2:
- pop {r1}
- bx r1
- thumb_func_end sub_81B5884
-
- thumb_func_start sub_81B58A8
-sub_81B58A8: @ 81B58A8
- push {lr}
- sub sp, 0xC
- movs r0, 0
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_8086194
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B58A8
-
- thumb_func_start hm2_waterfall
-hm2_waterfall: @ 81B58D4
- push {lr}
- bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- movs r0, 0x2B
- bl FieldEffectStart
- pop {r0}
- bx r0
- .pool
- thumb_func_end hm2_waterfall
-
- thumb_func_start hm_prepare_waterfall
-hm_prepare_waterfall: @ 81B58F0
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B594C
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B594C
- ldr r1, =gFieldCallback
- ldr r0, =hm_add_c3_launch_phase_2
- str r0, [r1]
- ldr r1, =gUnknown_0203CEEC
- ldr r0, =hm2_waterfall
- str r0, [r1]
- movs r0, 0x1
- b _081B594E
- .pool
-_081B594C:
- movs r0, 0
-_081B594E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end hm_prepare_waterfall
-
- thumb_func_start sub_81B5958
-sub_81B5958: @ 81B5958
- push {lr}
- bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1]
- movs r0, 0x2C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5958
-
- thumb_func_start sub_81B5974
-sub_81B5974: @ 81B5974
- push {lr}
- bl sub_809D1E8
- ldr r1, =gUnknown_02038C08
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x4]
- cmp r0, 0
- bne _081B5990
- movs r0, 0
- b _081B599E
- .pool
-_081B5990:
- ldr r1, =gFieldCallback
- ldr r0, =hm_add_c3_launch_phase_2
- str r0, [r1]
- ldr r1, =gUnknown_0203CEEC
- ldr r0, =sub_81B5958
- str r0, [r1]
- movs r0, 0x1
-_081B599E:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B5974
-
- thumb_func_start party_menu_icon_anim
-@ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3)
-party_menu_icon_anim: @ 81B59B4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r7, r1, 0
- adds r4, r2, 0
- movs r6, 0x1
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B59EA
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B59EA
- ldr r0, =gUnknown_08616020
- adds r0, r4, r0
- ldrb r1, [r0]
- eors r1, r6
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
-_081B59EA:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- adds r1, r0, 0
- str r6, [sp]
- adds r0, r4, 0
- adds r2, r7, 0
- movs r3, 0x1
- bl party_menu_link_mon_icon_anim
- ldrb r0, [r7, 0x9]
- adds r1, r5, 0
- bl sub_81B5B38
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_icon_anim
-
- thumb_func_start party_menu_link_mon_icon_anim
-@ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5)
-party_menu_link_mon_icon_anim: @ 81B5A2C
- push {r4-r7,lr}
- sub sp, 0xC
- adds r6, r1, 0
- adds r4, r2, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r3, 24
- lsrs r7, r3, 24
- cmp r5, 0
- beq _081B5A7A
- ldr r1, =sub_80D3014
- ldr r0, [r4, 0x4]
- ldrb r2, [r0]
- ldrb r3, [r0, 0x1]
- movs r0, 0x4
- str r0, [sp]
- str r6, [sp, 0x4]
- ldr r0, [sp, 0x20]
- str r0, [sp, 0x8]
- adds r0, r5, 0
- bl sub_80D2CC4
- strb r0, [r4, 0x9]
- ldr r2, =gSprites
- ldrb r0, [r4, 0x9]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3
- adds r2, r7, 0
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081B5A7A:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_link_mon_icon_anim
-
- thumb_func_start sub_81B5A8C
-sub_81B5A8C: @ 81B5A8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8075060
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _081B5AEC
- cmp r0, 0x2
- bgt _081B5AB4
- cmp r0, 0x1
- beq _081B5B04
- b _081B5B1C
-_081B5AB4:
- cmp r0, 0x3
- beq _081B5AD4
- cmp r0, 0x4
- bne _081B5B1C
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0
- bl sub_80D32C8
- b _081B5B2C
- .pool
-_081B5AD4:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x1
- bl sub_80D32C8
- b _081B5B2C
- .pool
-_081B5AEC:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x2
- bl sub_80D32C8
- b _081B5B2C
- .pool
-_081B5B04:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x3
- bl sub_80D32C8
- b _081B5B2C
- .pool
-_081B5B1C:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x4
- bl sub_80D32C8
-_081B5B2C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5A8C
-
- thumb_func_start sub_81B5B38
-sub_81B5B38: @ 81B5B38
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81B5A8C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B5B38
-
- thumb_func_start sub_81B5B6C
-sub_81B5B6C: @ 81B5B6C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- ldr r5, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r6, r0, 2
- adds r2, r6, r5
- movs r7, 0
- movs r3, 0
- strh r3, [r2, 0x2E]
- mov r12, r5
- cmp r1, 0
- bne _081B5BC4
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- cmp r0, 0x10
- bne _081B5BA4
- strh r3, [r2, 0x24]
- ldr r0, =0x0000fffc
- strh r0, [r2, 0x26]
- b _081B5BAA
- .pool
-_081B5BA4:
- ldr r0, =0x0000fffc
- strh r0, [r2, 0x24]
- strh r3, [r2, 0x26]
-_081B5BAA:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- mov r1, r12
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_81B5C08
- b _081B5BD0
- .pool
-_081B5BC4:
- strh r3, [r2, 0x24]
- strh r3, [r2, 0x26]
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r6, r0
- ldr r1, =sub_81B5BDC
-_081B5BD0:
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5B6C
-
- thumb_func_start sub_81B5BDC
-sub_81B5BDC: @ 81B5BDC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80D30DC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081B5C02
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081B5C00
- ldr r0, =0x0000fffd
- strh r0, [r4, 0x26]
- b _081B5C02
- .pool
-_081B5C00:
- strh r1, [r4, 0x26]
-_081B5C02:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B5BDC
-
- thumb_func_start sub_81B5C08
-sub_81B5C08: @ 81B5C08
- push {lr}
- bl sub_80D30DC
- pop {r0}
- bx r0
- thumb_func_end sub_81B5C08
-
- thumb_func_start party_menu_held_item_object
-party_menu_held_item_object: @ 81B5C14
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B5C3C
- ldr r0, =gUnknown_08615EC0
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- strb r0, [r4, 0xA]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81B5C94
-_081B5C3C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_held_item_object
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 81B5C48
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r0, 0
- beq _081B5C84
- ldr r0, =gUnknown_08615EC0
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x2]
- ldrb r2, [r2, 0x3]
- movs r3, 0
- bl CreateSprite
- strb r0, [r4, 0xA]
- ldr r2, =gSprites
- ldrb r0, [r4, 0xA]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81B5CB0
-_081B5C84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start sub_81B5C94
-sub_81B5C94: @ 81B5C94
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_81B5CB0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B5C94
-
- thumb_func_start sub_81B5CB0
-sub_81B5CB0: @ 81B5CB0
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _081B5CD8
- ldr r2, =gSprites
- ldrb r1, [r4, 0xA]
- 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
- b _081B5D24
- .pool
-_081B5CD8:
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B5CFC
- ldrb r1, [r4, 0xA]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- b _081B5D0E
- .pool
-_081B5CFC:
- ldrb r1, [r4, 0xA]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
-_081B5D0E:
- ldr r2, =gSprites
- ldrb r1, [r4, 0xA]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081B5D24:
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5CB0
-
- thumb_func_start sub_81B5D30
-sub_81B5D30: @ 81B5D30
- push {lr}
- ldr r0, =gUnknown_08615EB0
- bl LoadSpriteSheet
- ldr r0, =gUnknown_08615EB8
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5D30
-
- thumb_func_start sub_81B5D4C
-sub_81B5D4C: @ 81B5D4C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _081B5D60
- cmp r2, 0x1
- beq _081B5DA8
- b _081B5DE4
-_081B5D60:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _081B5DE4
-_081B5D68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _081B5D94
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_81B5DF0
-_081B5D94:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _081B5D68
- b _081B5DE4
- .pool
-_081B5DA8:
- movs r5, 0
- b _081B5DDE
-_081B5DAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _081B5DD8
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_81B5DF0
-_081B5DD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_081B5DDE:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _081B5DAC
-_081B5DE4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5D4C
-
- thumb_func_start sub_81B5DF0
-sub_81B5DF0: @ 81B5DF0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, =gSprites
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, =gUnknown_08615EC0
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, =sub_81B5E74
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5DF0
-
- thumb_func_start sub_81B5E74
-sub_81B5E74: @ 81B5E74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _081B5EA8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081B5EC6
- .pool
-_081B5EA8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_081B5EC6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B5E74
-
- thumb_func_start party_menu_pokeball_object
-party_menu_pokeball_object: @ 81B5ECC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B5EEA
- ldr r0, =gUnknown_08615F08
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x6]
- ldrb r2, [r2, 0x7]
- movs r3, 0x8
- bl CreateSprite
- strb r0, [r4, 0xB]
-_081B5EEA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_pokeball_object
-
- thumb_func_start party_menu_link_mon_pokeball_object
-party_menu_link_mon_pokeball_object: @ 81B5EF4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- cmp r0, 0
- beq _081B5F24
- ldr r0, =gUnknown_08615F08
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x6]
- ldrb r2, [r2, 0x7]
- movs r3, 0x8
- bl CreateSprite
- strb r0, [r4, 0xB]
- ldr r2, =gSprites
- ldrb r0, [r4, 0xB]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081B5F24:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_link_mon_pokeball_object
-
- thumb_func_start sub_81B5F34
-sub_81B5F34: @ 81B5F34
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08615F08
- adds r1, r3, 0
- movs r3, 0x8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- ands r2, r3
- movs r3, 0x8
- orrs r2, r3
- strb r2, [r1, 0x5]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B5F34
-
- thumb_func_start sub_81B5F74
-sub_81B5F74: @ 81B5F74
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08615F78
- adds r1, r3, 0
- movs r3, 0x8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B5F74
-
- thumb_func_start sub_81B5F98
-sub_81B5F98: @ 81B5F98
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- ldr r2, =gSprites
- adds r0, r2
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5F98
-
- thumb_func_start sub_81B5FBC
-sub_81B5FBC: @ 81B5FBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- cmp r6, 0
- bne _081B6000
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- mov r8, r0
- add r4, r8
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r8
- adds r0, r5, 0
- movs r1, 0x4
- bl StartSpriteAnim
- strh r6, [r4, 0x26]
- strh r6, [r5, 0x26]
- b _081B602C
- .pool
-_081B6000:
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, =gSprites
- mov r8, r0
- add r5, r8
- adds r0, r5, 0
- movs r1, 0x3
- bl StartSpriteAnim
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- add r4, r8
- adds r0, r4, 0
- movs r1, 0x5
- bl StartSpriteAnim
- ldr r0, =0x0000fffc
- strh r0, [r5, 0x26]
- movs r0, 0x4
- strh r0, [r4, 0x26]
-_081B602C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B5FBC
-
- thumb_func_start sub_81B6040
-sub_81B6040: @ 81B6040
- push {lr}
- ldr r0, =gUnknown_08615EF8
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08615F70
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08615F00
- bl LoadCompressedObjectPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6040
-
- thumb_func_start party_menu_status_condition_object
-party_menu_status_condition_object: @ 81B6064
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B608C
- ldr r0, =gUnknown_08616008
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x4]
- ldrb r2, [r2, 0x5]
- movs r3, 0
- bl CreateSprite
- strb r0, [r4, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl party_menu_get_status_condition_and_update_object
-_081B608C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_status_condition_object
-
- thumb_func_start party_menu_link_mon_status_condition_object
-party_menu_link_mon_status_condition_object: @ 81B6098
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r0, 0
- beq _081B60D4
- ldr r0, =gUnknown_08616008
- ldr r2, [r4, 0x4]
- ldrb r1, [r2, 0x4]
- ldrb r2, [r2, 0x5]
- movs r3, 0
- bl CreateSprite
- strb r0, [r4, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl party_menu_update_status_condition_object
- ldr r2, =gSprites
- ldrb r0, [r4, 0xC]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081B60D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_link_mon_status_condition_object
-
- thumb_func_start party_menu_get_status_condition_and_update_object
-@ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3)
-party_menu_get_status_condition_and_update_object: @ 81B60E4
- push {r4,lr}
- adds r4, r1, 0
- bl sub_81B205C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl party_menu_update_status_condition_object
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end party_menu_get_status_condition_and_update_object
-
- thumb_func_start party_menu_update_status_condition_object
-@ void party_menu_update_status_condition_object(u8 a1, void *a2)
-party_menu_update_status_condition_object: @ 81B60FC
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _081B610C
- cmp r2, 0x6
- bne _081B6128
-_081B610C:
- ldr r2, =gSprites
- ldrb r1, [r5, 0xC]
- 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
- b _081B6152
- .pool
-_081B6128:
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- subs r1, r2, 0x1
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldrb r1, [r5, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
-_081B6152:
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end party_menu_update_status_condition_object
-
- thumb_func_start sub_81B6160
-sub_81B6160: @ 81B6160
- push {lr}
- ldr r0, =gUnknown_08615FF8
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_08616000
- bl LoadCompressedObjectPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6160
-
- thumb_func_start sub_81B617C
-sub_81B617C: @ 81B617C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, =c2_815ABFC
- mov r8, r0
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B61BC
- movs r7, 0x1
- bl sub_81B8984
- lsls r0, 24
- lsrs r6, r0, 24
- b _081B61C0
- .pool
-_081B61B0:
- ldr r0, =gUnknown_0203CEC8
- strb r5, [r0, 0x9]
- b _081B6204
- .pool
-_081B61BC:
- movs r7, 0
- movs r6, 0
-_081B61C0:
- ldr r4, =gUnknown_0203CE7C
- ldrh r0, [r4]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _081B621C
- ldr r1, =gUnknown_0203CEC8
- movs r0, 0
- strb r0, [r1, 0x9]
- movs r5, 0
-_081B61D8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B61FA
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081B61B0
-_081B61FA:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _081B61D8
-_081B6204:
- ldr r0, =sub_81B6280
- movs r1, 0x7F
- b _081B6230
- .pool
-_081B621C:
- ldrh r0, [r4]
- bl GetPocketByItemId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- cmp r0, 0x3
- bne _081B622E
- movs r1, 0x4
-_081B622E:
- ldr r0, =sub_81B1370
-_081B6230:
- str r1, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_81B0038
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B617C
-
- thumb_func_start c2_815ABFC
-c2_815ABFC: @ 81B6254
- push {lr}
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _081B626C
- movs r0, 0xC
- movs r1, 0x5
- movs r2, 0
- bl GoToBagMenu
- b _081B6276
-_081B626C:
- ldr r0, =gUnknown_0203CF30
- ldr r1, [r0]
- movs r0, 0x4
- bl sub_81C4F98
-_081B6276:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_815ABFC
-
- thumb_func_start sub_81B6280
-sub_81B6280: @ 81B6280
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B62B2
- ldr r0, =gUnknown_0203CEC8
- ldrb r1, [r0, 0x8]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _081B62A6
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B9140
- str r0, [r1, 0x4]
-_081B62A6:
- ldr r0, =gUnknown_03006328
- ldr r1, =sub_81B6794
- ldr r2, [r0]
- adds r0, r3, 0
- bl _call_via_r2
-_081B62B2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6280
-
- thumb_func_start IsHPRecoveryItem
-@ bool8 IsHPRecoveryItem(u16 itemId)
-IsHPRecoveryItem: @ 81B62D0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _081B62EC
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003214
- adds r0, r1
- b _081B62F6
- .pool
-_081B62EC:
- ldr r1, =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_081B62F6:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _081B6308
- movs r0, 0
- b _081B630A
- .pool
-_081B6308:
- movs r0, 0x1
-_081B630A:
- pop {r1}
- bx r1
- thumb_func_end IsHPRecoveryItem
-
- thumb_func_start GetMedicineItemEffectMessage
-@ void GetMedicineItemEffectMessage(u16 itemId)
-GetMedicineItemEffectMessage: @ 81B6310
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _081B6326
- b _081B64BC
-_081B6326:
- lsls r0, 2
- ldr r1, =_081B6334
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B6334:
- .4byte _081B6380
- .4byte _081B6394
- .4byte _081B63A8
- .4byte _081B63BC
- .4byte _081B63D0
- .4byte _081B63E4
- .4byte _081B63F8
- .4byte _081B64BC
- .4byte _081B640C
- .4byte _081B6430
- .4byte _081B6420
- .4byte _081B6460
- .4byte _081B6470
- .4byte _081B6450
- .4byte _081B6440
- .4byte _081B64BC
- .4byte _081B6494
- .4byte _081B6494
- .4byte _081B64A8
-_081B6380:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9C3E
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B6394:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9C7C
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B63A8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9C8A
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B63BC:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9CA2
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B63D0:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9C5F
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B63E4:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9DBE
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B63F8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9DE1
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B640C:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9CE0
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B6420:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085E96E3
- b _081B6474
- .pool
-_081B6430:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085EA33C
- b _081B6474
- .pool
-_081B6440:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085EA343
- b _081B6474
- .pool
-_081B6450:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085EA35B
- b _081B6474
- .pool
-_081B6460:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085E96E6
- b _081B6474
- .pool
-_081B6470:
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_085E96EE
-_081B6474:
- bl StringCopy
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9D25
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B6494:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9CF5
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B64A8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9CB7
- bl StringExpandPlaceholders
- b _081B64C4
- .pool
-_081B64BC:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E96F6
- bl StringExpandPlaceholders
-_081B64C4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start UsingHPEVItemOnShedinja
-@ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId)
-UsingHPEVItemOnShedinja: @ 81B64D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _081B64FC
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, =0x0000012f
- cmp r0, r1
- bne _081B64FC
- movs r0, 0
- b _081B64FE
- .pool
-_081B64FC:
- movs r0, 0x1
-_081B64FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end UsingHPEVItemOnShedinja
-
- thumb_func_start IsBlueYellowRedFlute
-@ bool8 IsBlueYellowRedFlute(u16 itemId)
-IsBlueYellowRedFlute: @ 81B6504
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _081B6516
- cmp r0, 0x29
- beq _081B6516
- cmp r0, 0x28
- bne _081B651A
-_081B6516:
- movs r0, 0x1
- b _081B651C
-_081B651A:
- movs r0, 0
-_081B651C:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start ExecuteTableBasedItemEffect__
-@ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex)
-ExecuteTableBasedItemEffect__: @ 81B6520
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081B6558
- movs r0, 0x64
- muls r0, r3
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _081B6572
- .pool
-_081B6558:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r3, 0
- bl sub_81B8F38
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_081B6572:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start ItemUseCB_Medicine
-ItemUseCB_Medicine: @ 81B6588
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r1, [sp, 0x4]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r0, 0
- mov r10, r0
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- ldr r0, =gUnknown_0203CE7C
- ldrh r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl UsingHPEVItemOnShedinja
- lsls r0, 24
- cmp r0, 0
- beq _081B6600
- adds r0, r6, 0
- bl IsHPRecoveryItem
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bne _081B65EE
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- cmp r10, r0
- bne _081B65EE
- movs r1, 0
- mov r8, r1
-_081B65EE:
- ldr r4, =gUnknown_0203CEC8
- ldrb r0, [r4, 0x9]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _081B6624
-_081B6600:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_085E96F6
- b _081B66F4
- .pool
-_081B6624:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _081B6650
- movs r0, 0x1
- bl PlaySE
- ldrb r0, [r4, 0xB]
- cmp r0, 0xE
- beq _081B6656
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- b _081B6656
- .pool
-_081B6650:
- movs r0, 0x75
- bl PlaySE
-_081B6656:
- ldr r4, =gUnknown_0203CEDC
- ldr r7, =gUnknown_0203CEC8
- movs r0, 0x9
- ldrsb r0, [r7, r0]
- lsls r0, 4
- ldr r1, [r4]
- adds r1, r0
- adds r0, r5, 0
- bl party_menu_get_status_condition_and_update_object
- ldr r2, =gSprites
- movs r0, 0x9
- ldrsb r0, [r7, r0]
- ldr r1, [r4]
- lsls r0, 4
- adds r3, r0, r1
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _081B6694
- adds r0, r5, 0
- adds r1, r3, 0
- movs r2, 0x1
- bl sub_81B2AC8
-_081B6694:
- mov r2, r8
- cmp r2, 0x1
- bne _081B66E4
- mov r0, r10
- cmp r0, 0
- bne _081B66A8
- ldrb r0, [r7, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
-_081B66A8:
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r10
- subs r3, r1
- lsls r3, 16
- asrs r3, 16
- ldrb r1, [r7, 0x9]
- ldr r0, =sub_81B672C
- str r0, [sp]
- mov r0, r9
- movs r2, 0x1
- bl sub_81B1F18
- mov r0, r9
- movs r1, 0
- mov r2, r10
- bl sub_81B1FA8
- b _081B6710
- .pool
-_081B66E4:
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldr r0, =gStringVar4
-_081B66F4:
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, [sp, 0x4]
- str r1, [r0]
-_081B6710:
- 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 ItemUseCB_Medicine
-
- thumb_func_start sub_81B672C
-sub_81B672C: @ 81B672C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9C17
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- bl sub_805EAE8
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6794
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B672C
-
- thumb_func_start sub_81B6794
-sub_81B6794: @ 81B6794
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B67BA
- ldr r0, =gUnknown_0203CEE8
- ldrb r1, [r0]
- cmp r1, 0
- bne _081B67B4
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- str r1, [r0, 0x4]
-_081B67B4:
- adds r0, r4, 0
- bl sub_81B12C0
-_081B67BA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6794
-
- thumb_func_start sub_81B67C8
-sub_81B67C8: @ 81B67C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r4, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- ldr r0, =gUnknown_0203CE7C
- ldrh r6, [r0]
- adds r0, r6, 0
- bl GetItemEffectType
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_81B691C
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldrb r0, [r4, 0x9]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x20
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_81B691C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r4, 0
- bne _081B6850
- ldr r0, [sp, 0x4]
- cmp r0, r9
- bne _081B6874
- ldr r1, [sp, 0x8]
- cmp r1, r8
- bne _081B6874
-_081B6850:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_085E96F6
- b _081B68E2
- .pool
-_081B6874:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl PlaySE
- adds r0, r6, 0
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r1, =gStringVar2
- adds r0, r7, 0
- bl option_menu_get_string
- ldr r2, [sp, 0x4]
- cmp r2, r9
- beq _081B68D8
- ldr r0, [sp, 0x8]
- cmp r0, r8
- beq _081B68C4
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9D45
- bl StringExpandPlaceholders
- b _081B68E0
- .pool
-_081B68C4:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9D90
- bl StringExpandPlaceholders
- b _081B68E0
- .pool
-_081B68D8:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9D6D
- bl StringExpandPlaceholders
-_081B68E0:
- ldr r0, =gStringVar4
-_081B68E2:
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldr r1, [sp]
- str r1, [r0]
- 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_81B67C8
-
- thumb_func_start sub_81B691C
-sub_81B691C: @ 81B691C
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- subs r0, 0xC
- cmp r0, 0x5
- bhi _081B6992
- lsls r0, 2
- ldr r1, =_081B693C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B693C:
- .4byte _081B696C
- .4byte _081B6954
- .4byte _081B697E
- .4byte _081B6984
- .4byte _081B6978
- .4byte _081B6972
-_081B6954:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, =0x0000012f
- cmp r0, r1
- beq _081B6992
- adds r0, r4, 0
- movs r1, 0x1A
- b _081B6988
- .pool
-_081B696C:
- adds r0, r4, 0
- movs r1, 0x1B
- b _081B6988
-_081B6972:
- adds r0, r4, 0
- movs r1, 0x1C
- b _081B6988
-_081B6978:
- adds r0, r4, 0
- movs r1, 0x1D
- b _081B6988
-_081B697E:
- adds r0, r4, 0
- movs r1, 0x1E
- b _081B6988
-_081B6984:
- adds r0, r4, 0
- movs r1, 0x1F
-_081B6988:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- b _081B6994
-_081B6992:
- movs r0, 0
-_081B6994:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B691C
-
- thumb_func_start option_menu_get_string
-option_menu_get_string: @ 81B699C
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0xC
- cmp r0, 0x5
- bhi _081B6A08
- lsls r0, 2
- ldr r1, =_081B69B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081B69B8:
- .4byte _081B69D8
- .4byte _081B69D0
- .4byte _081B69F0
- .4byte _081B6A00
- .4byte _081B69E8
- .4byte _081B69E0
-_081B69D0:
- ldr r1, =gUnknown_085E96E3
- b _081B69F2
- .pool
-_081B69D8:
- ldr r1, =gUnknown_085EA33C
- b _081B69F2
- .pool
-_081B69E0:
- ldr r1, =gUnknown_085EA343
- b _081B69F2
- .pool
-_081B69E8:
- ldr r1, =gUnknown_085EA35B
- b _081B69F2
- .pool
-_081B69F0:
- ldr r1, =gUnknown_085E96E6
-_081B69F2:
- adds r0, r2, 0
- bl StringCopy
- b _081B6A08
- .pool
-_081B6A00:
- ldr r1, =gUnknown_085E96EE
- adds r0, r2, 0
- bl StringCopy
-_081B6A08:
- pop {r0}
- bx r0
- .pool
- thumb_func_end option_menu_get_string
-
- thumb_func_start sub_81B6A10
-sub_81B6A10: @ 81B6A10
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r7, 0
- movs r0, 0x1
- mov r10, r0
- movs r0, 0x3
- bl sub_81B31B0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- mov r8, r1
- ldr r0, =gPlayerParty
- mov r9, r0
-_081B6A40:
- adds r1, r5, 0
- adds r1, 0xD
- mov r0, r8
- add r0, r9
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- adds r2, r4, 0
- muls r2, r0
- ldr r0, =gMoveNames
- adds r2, r0
- lsls r0, r5, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- mov r1, r10
- movs r3, 0x8
- bl PrintTextOnWindow
- cmp r4, 0
- beq _081B6A82
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_081B6A82:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081B6A40
- adds r0, r6, 0
- adds r1, r7, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- 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_81B6A10
-
- thumb_func_start ether_effect_related_3
-ether_effect_related_3: @ 81B6AB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081B6AF0
- adds r0, 0x1
- cmp r1, r0
- bne _081B6AE0
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B6BB4
- b _081B6AF0
-_081B6AE0:
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xD
- bl sub_81B302C
- adds r0, r5, 0
- bl ether_effect_related_2
-_081B6AF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ether_effect_related_3
-
- thumb_func_start dp05_ether
-dp05_ether: @ 81B6AFC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _081B6B20
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003214
- adds r0, r1
- b _081B6B2A
- .pool
-_081B6B20:
- ldr r1, =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_081B6B2A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081B6B4C
- ldr r0, =gUnknown_0203CEC8
- strh r1, [r0, 0xE]
- adds r0, r4, 0
- bl ether_effect_related
- b _081B6B6E
- .pool
-_081B6B4C:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x16
- bl display_pokemon_menu_message
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- bl sub_81B6A10
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =ether_effect_related_3
- str r1, [r0]
-_081B6B6E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 81B6B80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81B302C
- bl GetMenuCursorPos
- ldr r1, =gUnknown_0203CEC8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_81B6BB4
-sub_81B6BB4: @ 81B6BB4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =sub_81B1370
- str r0, [r1]
- ldr r0, =gUnknown_0203CEC4
- ldr r0, [r0]
- movs r1, 0
- str r1, [r0, 0x4]
- adds r0, 0xC
- bl sub_81B302C
- movs r0, 0x5
- bl display_pokemon_menu_message
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6BB4
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 81B6BEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r7, =gUnknown_0203CED6
- ldr r0, =gUnknown_0203CE7C
- ldrh r5, [r0]
- movs r0, 0xE
- negs r0, r0
- adds r0, r7
- mov r8, r0
- ldrb r0, [r0, 0x9]
- ldrb r2, [r7]
- adds r1, r5, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _081B6C34
- ldr r0, =gUnknown_0203CEE8
- strb r4, [r0]
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_085E96F6
- b _081B6C7E
- .pool
-_081B6C34:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- mov r0, r8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- movs r0, 0x1
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0x1
- bl RemoveBagItem
- movs r0, 0
- ldrsh r1, [r7, r0]
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, =gStringVar1
- movs r1, 0xD
- muls r1, r4
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- adds r0, r5, 0
- bl GetMedicineItemEffectMessage
- ldr r0, =gStringVar4
-_081B6C7E:
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6794
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 81B6CC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x17
- bl display_pokemon_menu_message
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- bl sub_81B6A10
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =ether_effect_related_3
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp05_pp_up
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 81B6CFC
- lsls r0, 16
- ldr r1, =0xfedf0000
- adds r0, r1
- ldr r1, =gUnknown_08616040
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .pool
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start sub_81B6D14
-sub_81B6D14: @ 81B6D14
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, =gUnknown_08616040
-_081B6D1E:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _081B6D34
- movs r0, 0x1
- b _081B6D40
- .pool
-_081B6D34:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _081B6D1E
- movs r0, 0
-_081B6D40:
- pop {r1}
- bx r1
- thumb_func_end sub_81B6D14
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 81B6D44
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_081B6D4E:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl GetMonData
- cmp r0, r5
- bne _081B6D60
- movs r0, 0x1
- b _081B6D6C
-_081B6D60:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081B6D4E
- movs r0, 0
-_081B6D6C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start sub_81B6D74
-sub_81B6D74: @ 81B6D74
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6D74
-
- thumb_func_start sub_81B6D98
-sub_81B6D98: @ 81B6D98
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_81B6D74
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6794
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6D98
-
- thumb_func_start sub_81B6DC4
-sub_81B6DC4: @ 81B6DC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r7, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r7, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- movs r0, 0xE
- adds r0, r7
- mov r8, r0
- ldr r0, =gUnknown_0203CE7C
- ldrh r4, [r0]
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- adds r0, r4, 0
- bl ItemIdToBattleMoveId
- strh r0, [r7, 0xE]
- ldr r0, =gStringVar2
- movs r1, 0xE
- ldrsh r2, [r7, r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- movs r0, 0
- mov r1, r8
- strh r0, [r1, 0x2]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_81B22D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B6E70
- cmp r0, 0x2
- beq _081B6E78
- ldrh r1, [r7, 0xE]
- adds r0, r5, 0
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- beq _081B6E88
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B6EB4
- str r0, [r1]
- b _081B6E9C
- .pool
-_081B6E70:
- ldr r1, =gUnknown_085E9AB4
- b _081B6E7A
- .pool
-_081B6E78:
- ldr r1, =gUnknown_085E9C00
-_081B6E7A:
- adds r0, r6, 0
- bl sub_81B6D98
- b _081B6E9C
- .pool
-_081B6E88:
- ldr r0, =gUnknown_085E9AE9
- bl sub_81B6D74
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6FF4
- str r1, [r0]
-_081B6E9C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6DC4
-
- thumb_func_start sub_81B6EB4
-sub_81B6EB4: @ 81B6EB4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r2, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r6, r2, 0
- adds r6, 0xE
- ldr r0, =gUnknown_0203CE7C
- ldrh r4, [r0]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081B6EF0
- adds r0, r5, 0
- movs r1, 0x4
- bl AdjustFriendship
- movs r0, 0xA9
- lsls r0, 1
- cmp r4, r0
- bhi _081B6EF0
- adds r0, r4, 0
- movs r1, 0x1
- bl RemoveBagItem
-_081B6EF0:
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, =gStringVar2
- movs r1, 0
- ldrsh r2, [r6, r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9AA5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6F60
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6EB4
-
- thumb_func_start sub_81B6F60
-sub_81B6F60: @ 81B6F60
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B6F86
- ldr r0, =0x0000016f
- bl PlayFanfare
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6F98
- str r1, [r0]
-_081B6F86:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6F60
-
- thumb_func_start sub_81B6F98
-sub_81B6F98: @ 81B6F98
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _081B6FEA
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081B6FC0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B6FEA
-_081B6FC0:
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x10
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081B6FDC
- adds r0, r4, 0
- bl sub_81B77AC
- b _081B6FEA
- .pool
-_081B6FDC:
- cmp r0, 0x2
- bne _081B6FE4
- ldr r0, =gScriptResult
- strh r2, [r0]
-_081B6FE4:
- adds r0, r5, 0
- bl sub_81B12C0
-_081B6FEA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6F98
-
- thumb_func_start sub_81B6FF4
-sub_81B6FF4: @ 81B6FF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B7018
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B7028
- str r0, [r1]
-_081B7018:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B6FF4
-
- thumb_func_start sub_81B7028
-sub_81B7028: @ 81B7028
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B704E
- cmp r1, 0
- bgt _081B7048
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B7074
- b _081B7080
-_081B7048:
- cmp r1, 0x1
- beq _081B707A
- b _081B7080
-_081B704E:
- ldr r0, =gUnknown_085E9B96
- movs r1, 0x1
- bl sub_81B1B5C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B7088
- str r1, [r0]
- b _081B7080
- .pool
-_081B7074:
- movs r0, 0x5
- bl PlaySE
-_081B707A:
- adds r0, r4, 0
- bl sub_81B7230
-_081B7080:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B7028
-
- thumb_func_start sub_81B7088
-sub_81B7088: @ 81B7088
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B70A8
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B70B8
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
-_081B70A8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7088
-
- thumb_func_start sub_81B70B8
-sub_81B70B8: @ 81B70B8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gPlayerParty
- ldr r4, =gUnknown_0203CEC8
- ldrb r1, [r4, 0x9]
- ldr r2, =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =sub_81B70F0
- ldrh r4, [r4, 0xE]
- str r4, [sp]
- bl sub_81BFA38
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B70B8
-
- thumb_func_start sub_81B70F0
-sub_81B70F0: @ 81B70F0
- push {lr}
- sub sp, 0xC
- movs r0, 0x7F
- str r0, [sp]
- ldr r0, =sub_81B711C
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_0203CEC8
- ldr r0, [r0]
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B70F0
-
- thumb_func_start sub_81B711C
-sub_81B711C: @ 81B711C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B714E
- bl sub_81C1B94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- beq _081B7148
- adds r0, r4, 0
- bl sub_81B7154
- b _081B714E
- .pool
-_081B7148:
- adds r0, r5, 0
- bl sub_81B7230
-_081B714E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B711C
-
- thumb_func_start sub_81B7154
-sub_81B7154: @ 81B7154
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, =gPlayerParty
- adds r5, r0
- bl sub_81C1B94
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, =gUnknown_085E9BB8
- bl sub_81B6D74
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B71D4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7154
-
- thumb_func_start sub_81B71D4
-sub_81B71D4: @ 81B71D4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B7220
- ldr r5, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r5, r1]
- movs r0, 0x64
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- bl sub_81C1B94
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl RemoveMonPPBonus
- ldrh r5, [r5, 0xE]
- bl sub_81C1B94
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetMonMoveSlot
- adds r0, r6, 0
- bl sub_81B6EB4
-_081B7220:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B71D4
-
- thumb_func_start sub_81B7230
-sub_81B7230: @ 81B7230
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_0203CEC8
- movs r3, 0xE
- ldrsh r2, [r1, r3]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9B5D
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B7294
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7230
-
- thumb_func_start sub_81B7294
-sub_81B7294: @ 81B7294
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B72B8
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B72C8
- str r0, [r1]
-_081B72B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7294
-
- thumb_func_start sub_81B72C8
-sub_81B72C8: @ 81B72C8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r7, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- bl sub_8198C58
- lsls r0, 24
- asrs r5, r0, 24
- cmp r5, 0
- beq _081B7306
- cmp r5, 0
- bgt _081B7300
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- beq _081B738C
- b _081B73C2
- .pool
-_081B7300:
- cmp r5, 0x1
- beq _081B7392
- b _081B73C2
-_081B7306:
- ldr r1, =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r0, =gStringVar2
- movs r1, 0xE
- ldrsh r2, [r7, r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9B76
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r3, 0x10
- ldrsh r0, [r7, r3]
- cmp r0, 0x1
- bne _081B7368
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B73E4
- str r0, [r1]
- b _081B73C2
- .pool
-_081B7368:
- cmp r0, 0x2
- bne _081B7370
- ldr r0, =gScriptResult
- strh r5, [r0]
-_081B7370:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B6794
- str r0, [r1]
- b _081B73C2
- .pool
-_081B738C:
- movs r0, 0x5
- bl PlaySE
-_081B7392:
- ldr r1, =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r0, =gStringVar2
- ldr r1, =gUnknown_0203CEC8
- movs r3, 0xE
- ldrsh r2, [r1, r3]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, =gUnknown_085E9AE9
- bl sub_81B6D74
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6FF4
- str r1, [r0]
-_081B73C2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B72C8
-
- thumb_func_start sub_81B73E4
-sub_81B73E4: @ 81B73E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B73FC
- adds r0, r4, 0
- bl sub_81B77AC
-_081B73FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B73E4
-
- thumb_func_start dp05_rare_candy
-dp05_rare_candy: @ 81B7404
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CEC8
- mov r9, r0
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- ldr r0, =gUnknown_0203CEC4
- ldr r6, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r4, r6, r1
- ldr r2, =gUnknown_0203CE7C
- mov r8, r2
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _081B7478
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81B79A0
- mov r1, r9
- ldrb r0, [r1, 0x9]
- mov r2, r8
- ldrh r1, [r2]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x89
- lsls r0, 2
- adds r1, r6, r0
- adds r0, r5, 0
- bl sub_81B79A0
- b _081B747A
- .pool
-_081B7478:
- movs r4, 0x1
-_081B747A:
- movs r0, 0x5
- bl PlaySE
- cmp r4, 0
- beq _081B74B4
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0
- strb r0, [r1]
- ldr r0, =gUnknown_085E96F6
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- mov r1, r10
- b _081B7516
- .pool
-_081B74B4:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl PlayFanfareByFanfareNum
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0x9]
- adds r1, r5, 0
- bl sub_81B754C
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r4, =gStringVar2
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9D0A
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B75D4
-_081B7516:
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp05_rare_candy
-
- thumb_func_start sub_81B754C
-sub_81B754C: @ 81B754C
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r6, =gUnknown_0203CEDC
- lsls r4, r7, 4
- ldr r1, [r6]
- adds r1, r4
- adds r0, r5, 0
- bl party_menu_get_status_condition_and_update_object
- ldr r2, =gSprites
- ldr r0, [r6]
- adds r3, r4, r0
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _081B7588
- adds r0, r5, 0
- adds r1, r3, 0
- movs r2, 0x1
- bl sub_81B2AC8
-_081B7588:
- ldr r1, [r6]
- adds r1, r4
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_81B2CD4
- ldr r1, [r6]
- adds r1, r4
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_81B2D74
- ldr r1, [r6]
- adds r1, r4
- adds r0, r5, 0
- bl sub_81B2E28
- ldr r0, [r6]
- adds r0, r4, r0
- ldrb r0, [r0, 0x9]
- adds r1, r5, 0
- bl sub_81B5B38
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_81B0FCC
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B754C
-
- thumb_func_start sub_81B75D4
-sub_81B75D4: @ 81B75D4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _081B7620
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B7620
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081B7606
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B7620
-_081B7606:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B767C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B7634
- str r0, [r1]
-_081B7620:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B75D4
-
- thumb_func_start sub_81B7634
-sub_81B7634: @ 81B7634
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081B764E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B7668
-_081B764E:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81B76C8
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B7704
- str r0, [r1]
-_081B7668:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7634
-
- thumb_func_start sub_81B767C
-sub_81B767C: @ 81B767C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CEC4
- ldr r5, [r0]
- movs r0, 0x86
- lsls r0, 2
- adds r4, r5, r0
- bl sub_81B3364
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldrh r0, [r4, 0x18]
- movs r1, 0x89
- lsls r1, 2
- adds r2, r5, r1
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x3
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_81D3640
- ldrb r0, [r4, 0x18]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B767C
-
- thumb_func_start sub_81B76C8
-sub_81B76C8: @ 81B76C8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- movs r0, 0x86
- lsls r0, 2
- adds r4, r1, r0
- ldrh r0, [r4, 0x18]
- movs r2, 0x89
- lsls r2, 2
- adds r1, r2
- movs r2, 0x3
- str r2, [sp]
- movs r2, 0x1
- movs r3, 0x2
- bl sub_81D3784
- ldrb r0, [r4, 0x18]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B76C8
-
- thumb_func_start sub_81B7704
-sub_81B7704: @ 81B7704
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl WaitFanfare
- lsls r0, 24
- cmp r0, 0
- beq _081B77A6
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _081B772C
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B77A6
-_081B772C:
- bl sub_81B3394
- ldr r4, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r4, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- bl MonTryLearningNewMove
- lsls r0, 16
- lsrs r1, r0, 16
- strh r6, [r4, 0x10]
- ldr r0, =0x0000fffe
- cmp r1, r0
- beq _081B7788
- cmp r1, r0
- bgt _081B776C
- cmp r1, 0
- beq _081B7778
- b _081B77A0
- .pool
-_081B776C:
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _081B7780
- b _081B77A0
- .pool
-_081B7778:
- adds r0, r5, 0
- bl sub_81B7810
- b _081B77A6
-_081B7780:
- adds r0, r5, 0
- bl sub_81B787C
- b _081B77A6
-_081B7788:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B77AC
- str r0, [r1]
- b _081B77A6
- .pool
-_081B77A0:
- adds r0, r5, 0
- bl sub_81B7910
-_081B77A6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B7704
-
- thumb_func_start sub_81B77AC
-sub_81B77AC: @ 81B77AC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl MonTryLearningNewMove
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =0x0000fffe
- cmp r1, r0
- beq _081B780A
- cmp r1, r0
- bgt _081B77E8
- cmp r1, 0
- beq _081B77F4
- b _081B7804
- .pool
-_081B77E8:
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _081B77FC
- b _081B7804
- .pool
-_081B77F4:
- adds r0, r4, 0
- bl sub_81B7810
- b _081B780A
-_081B77FC:
- adds r0, r4, 0
- bl sub_81B787C
- b _081B780A
-_081B7804:
- adds r0, r4, 0
- bl sub_81B7910
-_081B780A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81B77AC
-
- thumb_func_start sub_81B7810
-sub_81B7810: @ 81B7810
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r6, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _081B7860
- bl sub_81B06F4
- ldr r0, =gUnknown_030061E8
- ldr r1, [r6]
- str r1, [r0]
- ldrb r3, [r6, 0x9]
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_813DA40
- adds r0, r5, 0
- bl DestroyTask
- b _081B786E
- .pool
-_081B7860:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B6794
- str r0, [r1]
-_081B786E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7810
-
- thumb_func_start sub_81B787C
-sub_81B787C: @ 81B787C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CEC8
- mov r8, r0
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r0, =gStringVar2
- ldr r6, =gMoveToLearn
- ldrh r2, [r6]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9AE9
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldrh r0, [r6]
- mov r1, r8
- strh r0, [r1, 0xE]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6FF4
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B787C
-
- thumb_func_start sub_81B7910
-sub_81B7910: @ 81B7910
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, =gUnknown_0203CEC8
- mov r8, r0
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r0, =gStringVar2
- movs r1, 0xD
- muls r1, r5
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9AA5
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- mov r0, r8
- strh r5, [r0, 0xE]
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6F60
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7910
-
- thumb_func_start sub_81B79A0
-sub_81B79A0: @ 81B79A0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r5, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r5, 0x4]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r5, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r5, 0x6]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B79A0
-
- thumb_func_start sub_81B79E8
-sub_81B79E8: @ 81B79E8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CEC4
- ldr r2, [r1]
- movs r3, 0x86
- lsls r3, 2
- adds r1, r2, r3
- movs r3, 0
- strh r3, [r1]
- ldr r4, =0x0000021a
- adds r1, r2, r4
- strh r3, [r1]
- ldr r1, =gUnknown_0203CEC8
- ldrb r1, [r1, 0x9]
- lsls r1, 24
- asrs r1, 24
- movs r3, 0x87
- lsls r3, 2
- adds r2, r3
- strh r1, [r2]
- bl sub_81B7A28
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B79E8
-
- thumb_func_start sub_81B7A28
-sub_81B7A28: @ 81B7A28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- ldr r6, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r6, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B7A6E
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldrb r0, [r6, 0x9]
- ldr r1, =gUnknown_0203CE7C
- ldrh r1, [r1]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _081B7A94
-_081B7A6E:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =task_intro_gamefreak
- str r0, [r1]
- b _081B7B2A
- .pool
-_081B7A94:
- movs r0, 0x1
- bl PlaySE
- ldr r4, =gUnknown_0203CEDC
- movs r0, 0x9
- ldrsb r0, [r6, r0]
- lsls r0, 4
- ldr r1, [r4]
- adds r1, r0
- adds r0, r5, 0
- bl party_menu_get_status_condition_and_update_object
- ldr r2, =gSprites
- movs r0, 0x9
- ldrsb r0, [r6, r0]
- ldr r1, [r4]
- lsls r0, 4
- adds r3, r0, r1
- ldrb r1, [r3, 0xC]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _081B7AD6
- adds r0, r5, 0
- adds r1, r3, 0
- movs r2, 0x1
- bl sub_81B2AC8
-_081B7AD6:
- ldr r4, =gUnknown_0203CEC4
- ldr r0, [r4]
- movs r1, 0x87
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_81B0FCC
- ldrb r0, [r6, 0x9]
- movs r1, 0x1
- bl sub_81B0FCC
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- subs r3, r7
- lsls r3, 16
- asrs r3, 16
- ldrb r1, [r6, 0x9]
- ldr r0, =sub_81B7C10
- str r0, [sp]
- mov r0, r8
- movs r2, 0x1
- bl sub_81B1F18
- mov r0, r8
- movs r1, 0
- adds r2, r7, 0
- bl sub_81B1FA8
- ldr r0, [r4]
- movs r2, 0x86
- lsls r2, 2
- adds r1, r0, r2
- movs r2, 0x1
- strh r2, [r1]
- ldr r1, =0x0000021a
- adds r0, r1
- strh r2, [r0]
-_081B7B2A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7A28
-
- thumb_func_start task_intro_gamefreak
-task_intro_gamefreak: @ 81B7B4C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B7C0A
- ldr r5, =gUnknown_0203CEC4
- ldr r2, [r5]
- movs r0, 0x86
- lsls r0, 2
- adds r1, r2, r0
- movs r3, 0
- ldrsh r0, [r1, r3]
- ldr r3, =gUnknown_0203CEC8
- cmp r0, 0x1
- bne _081B7B82
- movs r0, 0
- strh r0, [r1]
- movs r1, 0x9
- ldrsb r1, [r3, r1]
- movs r6, 0x87
- lsls r6, 2
- adds r0, r2, r6
- strh r1, [r0]
-_081B7B82:
- ldrb r0, [r3, 0x9]
- adds r0, 0x1
- strb r0, [r3, 0x9]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x6
- bne _081B7C04
- ldr r0, [r5]
- ldr r1, =0x0000021a
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- cmp r1, 0
- bne _081B7BC8
- ldr r0, =gUnknown_0203CEE8
- strb r1, [r0]
- ldr r0, =gUnknown_085E96F6
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- b _081B7BD8
- .pool
-_081B7BC8:
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
-_081B7BD8:
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6794
- str r1, [r0]
- ldr r1, =gUnknown_0203CEC8
- movs r0, 0
- strb r0, [r1, 0x9]
- b _081B7C0A
- .pool
-_081B7C04:
- adds r0, r4, 0
- bl sub_81B7A28
-_081B7C0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end task_intro_gamefreak
-
- thumb_func_start sub_81B7C10
-sub_81B7C10: @ 81B7C10
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_085E9C17
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =task_intro_gamefreak
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7C10
-
- thumb_func_start sub_81B7C74
-sub_81B7C74: @ 81B7C74
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gUnknown_030061E8
- ldr r1, =gUnknown_0203CEC8
- ldr r0, [r1]
- str r0, [r2]
- ldrb r0, [r1, 0x9]
- ldr r4, =gUnknown_0203CE7C
- ldrh r1, [r4]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _081B7CD8
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0
- strb r0, [r1]
- ldr r0, =gUnknown_085E96F6
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- str r6, [r0]
- b _081B7CE4
- .pool
-_081B7CD8:
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_81B06F4
-_081B7CE4:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B7C74
-
- thumb_func_start GetItemEffectType
-@ u8 GetItemEffectType(u16 itemId)
-GetItemEffectType: @ 81B7CEC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- subs r2, 0xD
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r0, 0xA5
- bls _081B7D00
- b _081B7E40
-_081B7D00:
- cmp r1, 0xAF
- bne _081B7D18
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00003214
- adds r4, r0, r1
- b _081B7D20
- .pool
-_081B7D18:
- ldr r1, =gItemEffectTable
- lsls r0, r2, 2
- adds r0, r1
- ldr r4, [r0]
-_081B7D20:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _081B7D42
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _081B7D42
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _081B7D42
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _081B7D4C
-_081B7D42:
- movs r0, 0
- b _081B7E46
- .pool
-_081B7D4C:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081B7D5A
- movs r0, 0xA
- b _081B7E46
-_081B7D5A:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _081B7D66
- movs r0, 0x1
- b _081B7E46
-_081B7D66:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _081B7D74
- lsrs r0, r1, 7
- cmp r0, 0
- beq _081B7DB6
-_081B7D74:
- cmp r2, 0x20
- bne _081B7D7C
- movs r0, 0x4
- b _081B7E46
-_081B7D7C:
- cmp r2, 0x10
- bne _081B7D84
- movs r0, 0x3
- b _081B7E46
-_081B7D84:
- cmp r2, 0x8
- bne _081B7D8C
- movs r0, 0x5
- b _081B7E46
-_081B7D8C:
- cmp r2, 0x4
- bne _081B7D94
- movs r0, 0x6
- b _081B7E46
-_081B7D94:
- cmp r2, 0x2
- bne _081B7D9C
- movs r0, 0x7
- b _081B7E46
-_081B7D9C:
- cmp r2, 0x1
- bne _081B7DA4
- movs r0, 0x8
- b _081B7E46
-_081B7DA4:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _081B7DB2
- cmp r2, 0
- bne _081B7DB2
- movs r0, 0x9
- b _081B7E46
-_081B7DB2:
- movs r0, 0xB
- b _081B7E46
-_081B7DB6:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _081B7DC6
- movs r0, 0x2
- b _081B7E46
-_081B7DC6:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _081B7DD4
- movs r0, 0xC
- b _081B7E46
-_081B7DD4:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _081B7DE2
- movs r0, 0xD
- b _081B7E46
-_081B7DE2:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _081B7DF0
- movs r0, 0xE
- b _081B7E46
-_081B7DF0:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081B7DFC
- movs r0, 0xF
- b _081B7E46
-_081B7DFC:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _081B7E08
- movs r0, 0x10
- b _081B7E46
-_081B7E08:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _081B7E14
- movs r0, 0x11
- b _081B7E46
-_081B7E14:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _081B7E20
- movs r0, 0x12
- b _081B7E46
-_081B7E20:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _081B7E2C
- movs r0, 0x13
- b _081B7E46
-_081B7E2C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081B7E38
- movs r0, 0x14
- b _081B7E46
-_081B7E38:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _081B7E44
-_081B7E40:
- movs r0, 0x16
- b _081B7E46
-_081B7E44:
- movs r0, 0x15
-_081B7E46:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetItemEffectType
-
- thumb_func_start sub_81B7E4C
-sub_81B7E4C: @ 81B7E4C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B7F1C
- ldr r7, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r7, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- movs r0, 0xE
- adds r0, r7
- mov r8, r0
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r4, =gSpecialVar_0x8005
- ldrb r0, [r4]
- bl sub_81B2360
- strh r0, [r7, 0xE]
- ldr r0, =gStringVar2
- movs r1, 0xE
- ldrsh r2, [r7, r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- movs r0, 0x2
- mov r1, r8
- strh r0, [r1, 0x2]
- ldrb r2, [r4]
- adds r0, r5, 0
- movs r1, 0
- bl sub_81B22D8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B7EF0
- cmp r0, 0x2
- beq _081B7EF8
- ldrh r1, [r7, 0xE]
- adds r0, r5, 0
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- beq _081B7F08
- adds r0, r6, 0
- bl sub_81B6EB4
- b _081B7F1C
- .pool
-_081B7EF0:
- ldr r1, =gUnknown_085E9AB4
- b _081B7EFA
- .pool
-_081B7EF8:
- ldr r1, =gUnknown_085E9C00
-_081B7EFA:
- adds r0, r6, 0
- bl sub_81B6D98
- b _081B7F1C
- .pool
-_081B7F08:
- ldr r0, =gUnknown_085E9AE9
- bl sub_81B6D74
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B6FF4
- str r1, [r0]
-_081B7F1C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7E4C
-
- thumb_func_start CB2_PartyMenuFromStartMenu
-CB2_PartyMenuFromStartMenu: @ 81B7F34
- push {lr}
- sub sp, 0xC
- movs r0, 0
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_8086194
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_PartyMenuFromStartMenu
-
- thumb_func_start sub_81B7F60
-sub_81B7F60: @ 81B7F60
- push {lr}
- sub sp, 0xC
- bl InBattlePyramid
- lsls r0, 24
- ldr r1, =sub_81C4F84
- cmp r0, 0
- bne _081B7F72
- ldr r1, =c2_815ABFC
-_081B7F72:
- movs r0, 0x6
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_81B0038
- ldr r1, =gUnknown_0203CEC8
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- strh r0, [r1, 0xC]
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7F60
-
- thumb_func_start sub_81B7FAC
-sub_81B7FAC: @ 81B7FAC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, =gUnknown_0203CEFC
- ldr r0, =gUnknown_0203CEC8
- mov r9, r0
- ldrb r0, [r0, 0x9]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, =gPlayerParty
- adds r0, r7
- movs r1, 0xC
- bl GetMonData
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _081B7FF8
- adds r0, r4, 0
- bl sub_81B8044
- b _081B8030
- .pool
-_081B7FF8:
- ldrh r0, [r5]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B800C
- adds r0, r4, 0
- bl sub_81B83B8
- b _081B8030
-_081B800C:
- mov r1, r9
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- ldrh r1, [r5]
- movs r2, 0x1
- bl sub_81B1D1C
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B82A0
- str r1, [r0]
-_081B8030:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B7FAC
-
- thumb_func_start sub_81B8044
-sub_81B8044: @ 81B8044
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, =gUnknown_0203CEC8
- ldrh r0, [r5, 0xC]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B807C
- ldrh r0, [r5, 0xC]
- bl sub_81B83F0
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B814C
- str r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81B12C0
- b _081B8082
- .pool
-_081B807C:
- adds r0, r4, 0
- bl sub_81B8088
-_081B8082:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B8044
-
- thumb_func_start sub_81B8088
-sub_81B8088: @ 81B8088
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B80E4
- ldr r4, =gUnknown_0203CEC8
- ldrh r5, [r4, 0xC]
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, =gPlayerParty
- adds r0, r6
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81B1C84
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r1, r5, 0
- bl sub_81B1DB8
- adds r0, r5, 0
- bl sub_81B83F0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B8104
- str r1, [r0]
-_081B80E4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8088
-
- thumb_func_start sub_81B8104
-sub_81B8104: @ 81B8104
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203CEC8
- ldrb r4, [r0, 0x9]
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B8138
- lsls r2, r4, 24
- asrs r2, 24
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gUnknown_0203CEDC
- lsls r2, 4
- ldr r1, [r1]
- adds r1, r2
- bl sub_81B5C94
- adds r0, r5, 0
- bl sub_81B12C0
-_081B8138:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8104
-
- thumb_func_start sub_81B814C
-sub_81B814C: @ 81B814C
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203CEC8
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- ldrh r1, [r4, 0xC]
- bl sub_81B1DB8
- movs r0, 0x9
- ldrsb r0, [r4, r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock1Ptr
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- ldr r0, =0x00002be0
- adds r2, r0
- ldr r1, [r1]
- adds r1, r2
- ldr r2, =sub_81B81A8
- movs r0, 0x4
- movs r3, 0x3
- bl sub_811A20C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B814C
-
- thumb_func_start sub_81B81A8
-sub_81B81A8: @ 81B81A8
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r6, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r6, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r0, =gScriptResult
- ldrh r0, [r0]
- cmp r0, 0
- bne _081B8208
- adds r0, r5, 0
- bl sub_80D4680
- ldr r4, =gUnknown_0203CEFC
- adds r0, r5, 0
- movs r1, 0xC
- adds r2, r4, 0
- bl SetMonData
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r7, 0
- bl sub_81B841C
- ldr r0, [r6]
- bl SetMainCallback2
- b _081B8224
- .pool
-_081B8208:
- ldrb r0, [r6, 0x8]
- lsls r0, 28
- lsrs r0, 28
- ldrb r2, [r6, 0xB]
- movs r1, 0x7F
- str r1, [sp]
- ldr r1, =sub_81B8230
- str r1, [sp, 0x4]
- ldr r1, [r6]
- str r1, [sp, 0x8]
- movs r1, 0xFF
- movs r3, 0x1
- bl sub_81B0038
-_081B8224:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B81A8
-
- thumb_func_start sub_81B8230
-sub_81B8230: @ 81B8230
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B828A
- ldr r1, =gUnknown_0203CEFC
- ldrh r0, [r1]
- cmp r0, 0
- beq _081B8264
- ldr r0, =gUnknown_0203CEC8
- ldrh r0, [r0, 0xC]
- ldrh r1, [r1]
- movs r2, 0
- bl sub_81B1D68
- b _081B827C
- .pool
-_081B8264:
- ldr r2, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r2, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldrh r1, [r2, 0xC]
- movs r2, 0
- movs r3, 0x1
- bl sub_81B1C84
-_081B827C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B8104
- str r0, [r1]
-_081B828A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8230
-
- thumb_func_start sub_81B82A0
-sub_81B82A0: @ 81B82A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81B1BD4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B82C4
- bl sub_81B334C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B82D4
- str r0, [r1]
-_081B82C4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B82A0
-
- thumb_func_start sub_81B82D4
-sub_81B82D4: @ 81B82D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081B82FA
- cmp r1, 0
- bgt _081B82F4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081B8394
- b _081B83A8
-_081B82F4:
- cmp r1, 0x1
- beq _081B839A
- b _081B83A8
-_081B82FA:
- ldr r7, =gUnknown_0203CEC8
- ldrh r4, [r7, 0xC]
- adds r0, r4, 0
- bl sub_81B83F0
- ldr r6, =gUnknown_0203CEFC
- ldrh r0, [r6]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- cmp r0, 0
- bne _081B8338
- adds r0, r4, 0
- bl sub_81B841C
- ldrh r0, [r6]
- bl pokemon_item_not_removed
- ldr r0, =gStringVar4
- movs r1, 0
- bl sub_81B1B5C
- b _081B8378
- .pool
-_081B8338:
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081B835C
- ldr r0, =gUnknown_0203CEC4
- ldr r1, [r0]
- ldr r0, =sub_81B814C
- str r0, [r1, 0x4]
- adds r0, r5, 0
- bl sub_81B12C0
- b _081B83A8
- .pool
-_081B835C:
- movs r1, 0x9
- ldrsb r1, [r7, r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_81B1DB8
- ldrh r1, [r6]
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_81B1D68
-_081B8378:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B8104
- str r1, [r0]
- b _081B83A8
- .pool
-_081B8394:
- movs r0, 0x5
- bl PlaySE
-_081B839A:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B8104
- str r0, [r1]
-_081B83A8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B82D4
-
- thumb_func_start sub_81B83B8
-sub_81B83B8: @ 81B83B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_085E98EC
- movs r1, 0x1
- bl sub_81B1B5C
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81B8104
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B83B8
-
- thumb_func_start sub_81B83F0
-sub_81B83F0: @ 81B83F0
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x6
- bne _081B8410
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_80D6E48
- b _081B8418
- .pool
-_081B8410:
- adds r0, r1, 0
- movs r1, 0x1
- bl RemoveBagItem
-_081B8418:
- pop {r0}
- bx r0
- thumb_func_end sub_81B83F0
-
- thumb_func_start sub_81B841C
-sub_81B841C: @ 81B841C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x5
- beq _081B8438
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_80D6D70
- b _081B8440
- .pool
-_081B8438:
- adds r0, r1, 0
- movs r1, 0x1
- bl AddBagItem
-_081B8440:
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_81B841C
-
- thumb_func_start sub_81B8448
-sub_81B8448: @ 81B8448
- push {lr}
- sub sp, 0xC
- movs r0, 0x6
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_816BB28
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x7
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8448
-
- thumb_func_start sub_81B8474
-sub_81B8474: @ 81B8474
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_0203CEC8
- movs r1, 0x9
- ldrsb r1, [r0, r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r5, r1, r0
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0
- strb r0, [r1]
- ldr r2, =gSaveBlock1Ptr
- ldr r0, =gUnknown_0203BCB8
- ldrh r1, [r0]
- adds r1, 0x6
- ldrh r0, [r0, 0x2]
- adds r1, r0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =0x00002be0
- adds r0, r1
- ldr r1, [r2]
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- beq _081B84DC
- ldr r0, =gUnknown_085E9A08
- movs r1, 0x1
- bl sub_81B1B5C
- b _081B84F2
- .pool
-_081B84DC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80D460C
- adds r0, r4, 0
- bl sub_80D439C
- ldr r0, =gUnknown_085E9A40
- movs r1, 0x1
- bl sub_81B1B5C
-_081B84F2:
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B8104
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8474
-
- thumb_func_start sub_81B8518
-sub_81B8518: @ 81B8518
- push {lr}
- sub sp, 0xC
- bl sub_81B8558
- movs r0, 0
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =gMain
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- ldr r1, =gUnknown_0203CEC8
- ldr r0, =sub_81B879C
- str r0, [r1, 0x4]
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8518
-
- thumb_func_start sub_81B8558
-sub_81B8558: @ 81B8558
- push {lr}
- ldr r0, =gUnknown_0203CEF8
- movs r1, 0
- movs r2, 0x4
- bl memset
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8558
-
- thumb_func_start sub_81B856C
-sub_81B856C: @ 81B856C
- push {r4,lr}
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- bl sub_81B85AC
- lsls r0, 24
- cmp r0, 0
- bne _081B858C
- movs r0, 0x2
- b _081B85A4
- .pool
-_081B858C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81B8770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B85A2
- movs r0, 0
- b _081B85A4
-_081B85A2:
- movs r0, 0x1
-_081B85A4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B856C
-
- thumb_func_start sub_81B85AC
-sub_81B85AC: @ 81B85AC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081B8608
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- bl sub_81B8888
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bhi _081B8608
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x0000191a
- cmp r1, r0
- bne _081B85EA
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- bne _081B8608
-_081B85EA:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- beq _081B864A
- cmp r0, 0x9
- bne _081B8618
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081B864A
-_081B8608:
- movs r0, 0
- b _081B864C
- .pool
-_081B8618:
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r3, =gUnknown_08611C9A
- lsls r1, r6, 1
- adds r0, r1, r3
- ldrh r0, [r0]
- ldr r2, =0x0000ffff
- cmp r0, r2
- beq _081B864A
-_081B8632:
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r4
- beq _081B8608
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, r6, 1
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _081B8632
-_081B864A:
- movs r0, 0x1
-_081B864C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B85AC
-
- thumb_func_start sub_81B865C
-sub_81B865C: @ 81B865C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl sub_81B885C
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, r2, 0
- ldr r3, =gUnknown_0203CEF8
- adds r0, r2, r3
- subs r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081B869C
- cmp r2, 0x1
- bne _081B8688
- movs r0, 0xE
- b _081B8758
- .pool
-_081B8688:
- ldr r0, =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x11
- b _081B8758
- .pool
-_081B869C:
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- movs r1, 0xF8
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081B86C0
- b _081B8756
- .pool
-_081B86B8:
- movs r0, 0x12
- b _081B8758
-_081B86BC:
- movs r0, 0x13
- b _081B8758
-_081B86C0:
- bl sub_81B8830
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- b _081B8750
-_081B86CE:
- ldr r3, =gUnknown_0203CEF8
- adds r4, r3, r5
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- subs r0, 0x64
- ldr r3, =gPlayerParty
- adds r0, r3, r0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- subs r0, 0x64
- ldr r3, =gPlayerParty
- adds r0, r3, r0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r4, r0, 24
- mov r9, r1
- cmp r4, r8
- bcs _081B8748
- movs r7, 0x64
-_081B870E:
- ldr r0, =gUnknown_0203CEF8
- adds r5, r0, r4
- ldrb r0, [r5]
- muls r0, r7
- subs r0, 0x64
- ldr r1, =gPlayerParty
- adds r0, r1, r0
- movs r1, 0xB
- bl GetMonData
- cmp r10, r0
- beq _081B86B8
- cmp r6, 0
- beq _081B873E
- ldrb r0, [r5]
- muls r0, r7
- subs r0, 0x64
- ldr r3, =gPlayerParty
- adds r0, r3, r0
- movs r1, 0xC
- bl GetMonData
- cmp r6, r0
- beq _081B86BC
-_081B873E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r8
- bcc _081B870E
-_081B8748:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r0, r8
-_081B8750:
- subs r0, 0x1
- cmp r5, r0
- blt _081B86CE
-_081B8756:
- movs r0, 0xFF
-_081B8758:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B865C
-
- thumb_func_start sub_81B8770
-sub_81B8770: @ 81B8770
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_0203CEF8
-_081B877A:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081B878C
- movs r0, 0x1
- b _081B8798
- .pool
-_081B878C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _081B877A
- movs r0, 0
-_081B8798:
- pop {r1}
- bx r1
- thumb_func_end sub_81B8770
-
- thumb_func_start sub_81B879C
-sub_81B879C: @ 81B879C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81B865C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xFF
- beq _081B87D4
- movs r0, 0x20
- bl PlaySE
- adds r0, r4, 0
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B87E8
- str r0, [r1]
- b _081B87E0
- .pool
-_081B87D4:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81B12C0
-_081B87E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81B879C
-
- thumb_func_start sub_81B87E8
-sub_81B87E8: @ 81B87E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081B8802
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081B881C
-_081B8802:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl display_pokemon_menu_message
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B1370
- str r0, [r1]
-_081B881C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B87E8
-
- thumb_func_start sub_81B8830
-sub_81B8830: @ 81B8830
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- beq _081B884C
- cmp r0, 0x9
- bne _081B8850
- movs r0, 0x3
- b _081B8854
- .pool
-_081B884C:
- movs r0, 0x2
- b _081B8854
-_081B8850:
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
-_081B8854:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B8830
-
- thumb_func_start sub_81B885C
-sub_81B885C: @ 81B885C
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- beq _081B8878
- cmp r0, 0x9
- bne _081B887C
- movs r0, 0x1
- b _081B8880
- .pool
-_081B8878:
- movs r0, 0x2
- b _081B8880
-_081B887C:
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
-_081B8880:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B885C
-
- thumb_func_start sub_81B8888
-sub_81B8888: @ 81B8888
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- beq _081B88A4
- cmp r0, 0x9
- bne _081B88A8
-_081B889C:
- movs r0, 0x64
- b _081B88B2
- .pool
-_081B88A4:
- movs r0, 0x1E
- b _081B88B2
-_081B88A8:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _081B889C
- movs r0, 0x32
-_081B88B2:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B8888
-
- thumb_func_start sub_81B88BC
-sub_81B88BC: @ 81B88BC
- push {lr}
- ldr r0, =0x000040cf
- bl VarGet
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xF8
- lsls r2, 24
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x1
- bhi _081B88E0
- ldr r0, =gUnknown_085EA126
- b _081B88FA
- .pool
-_081B88E0:
- cmp r1, 0x1
- bne _081B88F8
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _081B88F8
- ldr r0, =gUnknown_085EA139
- b _081B88FA
- .pool
-_081B88F8:
- ldr r0, =gUnknown_085EA155
-_081B88FA:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B88BC
-
- thumb_func_start sub_81B8904
-sub_81B8904: @ 81B8904
- push {lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- str r2, [sp]
- ldr r2, =sub_81B1370
- str r2, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8904
-
- thumb_func_start sub_81B892C
-sub_81B892C: @ 81B892C
- push {lr}
- sub sp, 0xC
- movs r0, 0x4
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B892C
-
- thumb_func_start sub_81B8958
-sub_81B8958: @ 81B8958
- push {lr}
- sub sp, 0xC
- movs r0, 0x1
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
- str r0, [sp, 0x8]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8958
-
- thumb_func_start sub_81B8984
-sub_81B8984: @ 81B8984
- push {lr}
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _081B8994
- movs r0, 0
- b _081B89A6
-_081B8994:
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081B89A4
- movs r0, 0x1
- b _081B89A6
-_081B89A4:
- movs r0, 0x2
-_081B89A6:
- pop {r1}
- bx r1
- thumb_func_end sub_81B8984
-
- thumb_func_start sub_81B89AC
-sub_81B89AC: @ 81B89AC
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_81B8984
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_8059D40
- str r0, [sp, 0x8]
- movs r0, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl sub_81B0038
- bl nullsub_35
- bl pokemon_change_order
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B89AC
-
- thumb_func_start sub_81B89F0
-sub_81B89F0: @ 81B89F0
- push {lr}
- sub sp, 0xC
- bl sub_81B8984
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =c2_815ABFC
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r2, 0x3
- movs r3, 0
- bl sub_81B0038
- bl nullsub_35
- bl pokemon_change_order
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B89F0
-
- thumb_func_start sub_81B8A2C
-sub_81B8A2C: @ 81B8A2C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gPlayerParty + 0x64
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B8A74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081B8A74
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x1
- bne _081B8A5C
- movs r0, 0x3
- b _081B8A76
- .pool
-_081B8A5C:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _081B8A74
- movs r0, 0x2
- b _081B8A76
- .pool
-_081B8A74:
- movs r0, 0x7
-_081B8A76:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81B8A2C
-
- thumb_func_start sub_81B8A7C
-sub_81B8A7C: @ 81B8A7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B8AC4
- cmp r5, 0x1
- beq _081B8AA2
- cmp r5, 0x4
- beq _081B8AA2
- cmp r5, 0x5
- bne _081B8AC4
-_081B8AA2:
- ldr r4, =gStringVar1
- bl sub_806EBF8
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E97B2
- b _081B8C42
- .pool
-_081B8AC4:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _081B8AF8
- ldr r1, =gStringVar1
- adds r0, r4, 0
- bl GetMonNickname
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E978F
- b _081B8C42
- .pool
-_081B8AF8:
- movs r4, 0
- b _081B8B24
-_081B8AFC:
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _081B8B1E
- adds r0, r5, 0
- bl sub_81B8F38
- lsls r0, 24
- ldr r2, =gBattlePartyID
- lsls r1, r4, 1
- adds r1, r2
- lsrs r0, 24
- ldrh r1, [r1]
- cmp r0, r1
- beq _081B8BFC
-_081B8B1E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081B8B24:
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bcc _081B8AFC
- movs r7, 0x64
- adds r0, r5, 0
- muls r0, r7
- ldr r1, =gPlayerParty
- mov r8, r1
- adds r6, r0, r1
- adds r0, r6, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _081B8B60
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E97E5
- b _081B8C42
- .pool
-_081B8B60:
- adds r0, r5, 0
- bl sub_81B8F38
- ldr r1, =gBattleStruct
- ldr r1, [r1]
- adds r1, 0x8B
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _081B8B94
- ldr r1, =gStringVar1
- adds r0, r6, 0
- bl GetMonNickname
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E976F
- b _081B8C42
- .pool
-_081B8B94:
- ldr r0, =gUnknown_0203CEC8
- ldrb r0, [r0, 0xB]
- cmp r0, 0x4
- bne _081B8BA8
- bl sub_806E994
- b _081B8C46
- .pool
-_081B8BA8:
- cmp r0, 0x2
- beq _081B8C20
- adds r0, r5, 0
- bl sub_81B8F38
- ldr r1, =gUnknown_0203CEE9
- strb r0, [r1]
- ldr r1, =gUnknown_0203CEE8
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, =gBattlePartyID
- ldr r0, =gUnknown_020244B8
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_81B8FB0
- adds r0, r4, 0
- muls r0, r7
- add r0, r8
- adds r1, r6, 0
- bl sub_81B1288
- movs r0, 0x1
- b _081B8C48
- .pool
-_081B8BFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9754
- b _081B8C42
- .pool
-_081B8C20:
- ldr r0, =gUnknown_020244B8
- ldrb r0, [r0]
- ldr r1, =gBattlePartyID
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- muls r0, r7
- add r0, r8
- ldr r1, =gStringVar1
- bl GetMonNickname
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_085E9738
-_081B8C42:
- bl StringExpandPlaceholders
-_081B8C46:
- movs r0, 0
-_081B8C48:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B8A7C
-
- thumb_func_start sub_81B8C68
-sub_81B8C68: @ 81B8C68
- push {r4,lr}
- ldr r4, =gUnknown_0203CF00
- bl sub_806D7EC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_81B8C88
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8C68
-
- thumb_func_start sub_81B8C88
-sub_81B8C88: @ 81B8C88
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B8CBE
- cmp r4, 0
- beq _081B8CB0
- movs r0, 0x30
- strb r0, [r6]
- movs r0, 0x45
- strb r0, [r6, 0x1]
- movs r0, 0x12
- strb r0, [r6, 0x2]
- b _081B8D58
-_081B8CB0:
- movs r0, 0x3
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x45
- strb r0, [r6, 0x2]
- b _081B8D58
-_081B8CBE:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _081B8CFC
- movs r5, 0x1
- movs r0, 0
- bl GetBankByPlayerAI
- mov r2, sp
- ldr r1, =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_081B8CE2:
- ldrb r0, [r1]
- cmp r4, r0
- beq _081B8CF0
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_081B8CF0:
- adds r4, 0x1
- cmp r4, 0x5
- ble _081B8CE2
- b _081B8D40
- .pool
-_081B8CFC:
- movs r5, 0x2
- movs r0, 0
- bl GetBankByPlayerAI
- mov r1, sp
- ldr r4, =gBattlePartyID
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1]
- movs r0, 0x2
- bl GetBankByPlayerAI
- mov r1, sp
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_081B8D26:
- ldrb r0, [r1]
- cmp r4, r0
- beq _081B8D3A
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _081B8D3A
- mov r2, sp
- adds r0, r2, r5
- strb r4, [r0]
- adds r5, 0x1
-_081B8D3A:
- adds r4, 0x1
- cmp r4, 0x5
- ble _081B8D26
-_081B8D40:
- movs r4, 0
- mov r3, sp
-_081B8D44:
- adds r0, r6, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _081B8D44
-_081B8D58:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8C88
-
- thumb_func_start sub_81B8D64
-sub_81B8D64: @ 81B8D64
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =gBattleStruct
- lsls r3, r2, 1
- adds r3, r2
- adds r3, 0x60
- ldr r0, [r0]
- adds r0, r3
- bl sub_81B8D88
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8D64
-
- thumb_func_start sub_81B8D88
-sub_81B8D88: @ 81B8D88
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r0, r2, 0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _081B8DB0
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x2
- b _081B8DBC
-_081B8DB0:
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x3
-_081B8DBC:
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081B8DF0
- cmp r7, 0
- beq _081B8DE2
- movs r0, 0x30
- strb r0, [r5]
- movs r0, 0x45
- strb r0, [r5, 0x1]
- movs r0, 0x12
- strb r0, [r5, 0x2]
- b _081B8E72
-_081B8DE2:
- movs r0, 0x3
- strb r0, [r5]
- movs r0, 0x12
- strb r0, [r5, 0x1]
- movs r0, 0x45
- strb r0, [r5, 0x2]
- b _081B8E72
-_081B8DF0:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _081B8E28
- movs r3, 0x1
- mov r2, sp
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strb r0, [r2]
- movs r4, 0
- mov r1, sp
-_081B8E0C:
- ldrb r0, [r1]
- cmp r4, r0
- beq _081B8E1A
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_081B8E1A:
- adds r4, 0x1
- cmp r4, 0x5
- ble _081B8E0C
- b _081B8E5A
- .pool
-_081B8E28:
- movs r3, 0x2
- mov r1, sp
- ldr r2, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- lsls r0, r6, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x1]
- movs r4, 0
-_081B8E40:
- ldrb r0, [r1]
- cmp r4, r0
- beq _081B8E54
- ldrb r0, [r1, 0x1]
- cmp r4, r0
- beq _081B8E54
- mov r2, sp
- adds r0, r2, r3
- strb r4, [r0]
- adds r3, 0x1
-_081B8E54:
- adds r4, 0x1
- cmp r4, 0x5
- ble _081B8E40
-_081B8E5A:
- movs r4, 0
- mov r3, sp
-_081B8E5E:
- adds r0, r5, r4
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r2, [r3, 0x1]
- orrs r1, r2
- strb r1, [r0]
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x2
- ble _081B8E5E
-_081B8E72:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8D88
-
- thumb_func_start sub_81B8E80
-sub_81B8E80: @ 81B8E80
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r7, 0
- bl sub_81B1250
- lsls r0, 24
- cmp r0, 0
- beq _081B8F2E
- ldr r0, =gBattleStruct
- lsls r1, r4, 1
- adds r1, r4
- adds r1, 0x60
- ldr r0, [r0]
- adds r4, r0, r1
- movs r2, 0
- add r6, sp
- mov r12, r6
- movs r6, 0xF
- mov r3, sp
-_081B8EB2:
- adds r1, r4, r2
- ldrb r0, [r1]
- lsrs r0, 4
- strb r0, [r3]
- adds r3, 0x1
- ldrb r1, [r1]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _081B8EB2
- mov r0, r12
- ldrb r3, [r0]
- movs r2, 0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, r5
- bne _081B8EE8
- mov r0, sp
- ldrb r7, [r0]
- strb r3, [r0]
- b _081B8EFC
- .pool
-_081B8EE8:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _081B8EFC
- mov r0, sp
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, r5
- bne _081B8EE8
- adds r7, r0, 0
- strb r3, [r1]
-_081B8EFC:
- cmp r2, 0x6
- beq _081B8F2E
- mov r0, r12
- strb r7, [r0]
- mov r0, sp
- ldrb r0, [r0]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x1]
- orrs r0, r1
- strb r0, [r4]
- mov r0, sp
- ldrb r0, [r0, 0x2]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x3]
- orrs r0, r1
- strb r0, [r4, 0x1]
- mov r0, sp
- ldrb r0, [r0, 0x4]
- lsls r0, 4
- mov r1, sp
- ldrb r1, [r1, 0x5]
- orrs r0, r1
- strb r0, [r4, 0x2]
-_081B8F2E:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B8E80
-
- thumb_func_start sub_81B8F38
-sub_81B8F38: @ 81B8F38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1
- ands r1, r2
- lsrs r2, r0, 25
- cmp r1, 0
- beq _081B8F58
- ldr r0, =gUnknown_0203CF00
- adds r0, r2, r0
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- b _081B8F60
- .pool
-_081B8F58:
- ldr r0, =gUnknown_0203CF00
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r1, r0, 4
-_081B8F60:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B8F38
-
- thumb_func_start sub_81B8F6C
-sub_81B8F6C: @ 81B8F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r1, 0x1
- ands r1, r3
- lsrs r3, r0, 25
- cmp r1, 0
- beq _081B8F94
- ldr r0, =gUnknown_0203CF00
- adds r0, r3, r0
- ldrb r2, [r0]
- movs r1, 0xF0
- ands r1, r2
- orrs r1, r4
- strb r1, [r0]
- b _081B8FA4
- .pool
-_081B8F94:
- ldr r2, =gUnknown_0203CF00
- adds r2, r3, r2
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r1, r4, 4
- orrs r0, r1
- strb r0, [r2]
-_081B8FA4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B8F6C
-
- thumb_func_start sub_81B8FB0
-sub_81B8FB0: @ 81B8FB0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- adds r0, r5, 0
- bl sub_81B8F38
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_81B8F38
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_81B8F6C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81B8F6C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81B8FB0
-
- thumb_func_start pokemon_order_func
-pokemon_order_func: @ 81B8FEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r5, =gUnknown_0203CF00
-_081B8FF8:
- adds r0, r3, r5
- ldrb r1, [r0]
- lsrs r0, r1, 4
- cmp r0, r4
- beq _081B9010
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0xF
- ands r0, r1
- cmp r0, r4
- bne _081B9018
-_081B9010:
- adds r0, r2, 0
- b _081B902A
- .pool
-_081B9018:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _081B8FF8
- movs r0, 0
-_081B902A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end pokemon_order_func
-
- thumb_func_start pokemon_change_order
-pokemon_change_order: @ 81B9030
- push {r4-r6,lr}
- movs r4, 0x96
- lsls r4, 2
- adds r0, r4, 0
- bl Alloc
- adds r5, r0, 0
- ldr r1, =gPlayerParty
- adds r2, r4, 0
- bl memcpy
- movs r4, 0
- movs r6, 0x64
-_081B904A:
- adds r0, r4, 0
- bl pokemon_order_func
- lsls r0, 24
- lsrs r0, 24
- muls r0, r6
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081B904A
- adds r0, r5, 0
- bl Free
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemon_change_order
-
- thumb_func_start sub_81B9080
-sub_81B9080: @ 81B9080
- push {r4-r6,lr}
- movs r4, 0x96
- lsls r4, 2
- adds r0, r4, 0
- bl Alloc
- adds r5, r0, 0
- ldr r1, =gPlayerParty
- adds r2, r4, 0
- bl memcpy
- movs r4, 0
- movs r6, 0x64
-_081B909A:
- adds r0, r4, 0
- bl sub_81B8F38
- lsls r0, 24
- lsrs r0, 24
- muls r0, r6
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081B909A
- adds r0, r5, 0
- bl Free
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9080
-
- thumb_func_start sub_81B90D0
-sub_81B90D0: @ 81B90D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- movs r7, 0x64
- ldr r0, =gPlayerParty
- mov r8, r0
-_081B90DE:
- adds r0, r6, 0
- bl sub_81B8F38
- lsls r0, 24
- lsrs r0, 24
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081B912C
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _081B912C
- movs r0, 0
- bl sub_81B8F38
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- adds r1, r6, 0
- bl sub_81B8FB0
- adds r0, r4, 0
- muls r0, r7
- add r0, r8
- adds r1, r5, 0
- bl sub_81B1288
- b _081B9136
- .pool
-_081B912C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _081B90DE
-_081B9136:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81B90D0
-
- thumb_func_start sub_81B9140
-sub_81B9140: @ 81B9140
- push {lr}
- ldr r0, =sub_8059D40
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9140
-
- thumb_func_start sub_81B9150
-sub_81B9150: @ 81B9150
- push {lr}
- sub sp, 0xC
- movs r0, 0x7F
- str r0, [sp]
- ldr r0, =sub_81B917C
- str r0, [sp, 0x4]
- ldr r0, =gMain
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r0, 0x5
- movs r1, 0x3
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9150
-
- thumb_func_start sub_81B917C
-sub_81B917C: @ 81B917C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r4, 0x8]
- bl sub_81B9294
- movs r1, 0x80
- lsls r1, 9
- movs r0, 0x2
- movs r2, 0
- bl ChangeBgX
- ldr r0, =sub_81B91B4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B917C
-
- thumb_func_start sub_81B91B4
-sub_81B91B4: @ 81B91B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081B9220
- ldrh r0, [r4]
- subs r0, 0x8
- strh r0, [r4]
- adds r0, r5, 0
- bl sub_81B9294
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081B9220
- movs r4, 0x3
- ldr r7, =gUnknown_02022FF8
-_081B91E8:
- subs r0, r4, 0x3
- lsls r0, 5
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0
- beq _081B9204
- ldr r0, =gUnknown_0203CEDC
- ldr r1, [r0]
- lsls r0, r4, 4
- adds r0, r1
- ldrb r0, [r0, 0x9]
- movs r1, 0
- bl sub_81B5B6C
-_081B9204:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081B91E8
- movs r0, 0x78
- bl PlaySE
- ldr r0, =gTasks
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81B9240
- str r0, [r1]
-_081B9220:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B91B4
-
- thumb_func_start sub_81B9240
-sub_81B9240: @ 81B9240
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- cmp r1, r0
- bne _081B9266
- adds r0, r2, 0
- bl sub_81B12C0
-_081B9266:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9240
-
- thumb_func_start sub_81B9270
-sub_81B9270: @ 81B9270
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- cmp r1, 0
- blt _081B928A
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- strh r3, [r0, 0x24]
-_081B928A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9270
-
- thumb_func_start sub_81B9294
-sub_81B9294: @ 81B9294
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- movs r6, 0x3
- ldr r7, =gUnknown_0203CEDC
-_081B92A8:
- ldr r0, =gUnknown_02022FF8
- subs r1, r6, 0x3
- lsls r1, 5
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _081B9300
- ldr r0, [r7]
- lsls r4, r6, 4
- adds r0, r4, r0
- ldrb r0, [r0, 0x9]
- ldrh r1, [r5]
- subs r1, 0x8
- lsls r1, 16
- asrs r1, 16
- bl sub_81B9270
- ldr r0, [r7]
- adds r0, r4, r0
- ldrb r0, [r0, 0xA]
- ldrh r1, [r5]
- subs r1, 0x8
- lsls r1, 16
- asrs r1, 16
- bl sub_81B9270
- ldr r0, [r7]
- adds r0, r4, r0
- ldrb r0, [r0, 0xB]
- ldrh r1, [r5]
- subs r1, 0x8
- lsls r1, 16
- asrs r1, 16
- bl sub_81B9270
- ldr r0, [r7]
- adds r4, r0
- ldrb r0, [r4, 0xC]
- ldrh r1, [r5]
- subs r1, 0x8
- lsls r1, 16
- asrs r1, 16
- bl sub_81B9270
-_081B9300:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _081B92A8
- movs r1, 0x80
- lsls r1, 4
- movs r0, 0x2
- movs r2, 0x1
- bl ChangeBgX
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9294
-
- thumb_func_start sub_81B9328
-sub_81B9328: @ 81B9328
- push {lr}
- sub sp, 0xC
- movs r0, 0xF
- str r0, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_81B9390
- str r0, [sp, 0x8]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9328
-
- thumb_func_start sub_81B9354
-sub_81B9354: @ 81B9354
- push {lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gFieldCallback
- ldr r1, =hm_add_c3_without_phase_2
- str r1, [r2]
- movs r1, 0
- str r1, [sp]
- ldr r1, =sub_81B1370
- str r1, [sp, 0x4]
- ldr r1, =c2_exit_to_overworld_2_switch
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_81B0038
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9354
-
- thumb_func_start sub_81B9390
-sub_81B9390: @ 81B9390
- push {r4,lr}
- ldr r4, =gSpecialVar_0x8004
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- cmp r0, 0x5
- bls _081B93A6
- movs r0, 0xFF
- strh r0, [r4]
-_081B93A6:
- ldr r0, =gFieldCallback
- ldr r1, =hm_add_c3_without_phase_2
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9390
-
- thumb_func_start hm_add_c3_without_phase_2
-hm_add_c3_without_phase_2: @ 81B93C8
- push {lr}
- bl pal_fill_black
- ldr r0, =task_hm_without_phase_2
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end hm_add_c3_without_phase_2
-
- thumb_func_start task_hm_without_phase_2
-task_hm_without_phase_2: @ 81B93E0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80ABDFC
- lsls r0, 24
- cmp r0, 0
- beq _081B93FE
- adds r0, r4, 0
- bl DestroyTask
- bl script_env_2_disable
- bl script_env_2_enable_and_set_ctx_running
-_081B93FE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task_hm_without_phase_2
-
- thumb_func_start sub_81B9404
-sub_81B9404: @ 81B9404
- push {lr}
- bl script_env_2_enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, =sub_81B9424
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9404
-
- thumb_func_start sub_81B9424
-sub_81B9424: @ 81B9424
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081B945C
- bl overworld_free_bg_tilemaps
- str r4, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_81B9470
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_81B0038
- adds r0, r5, 0
- bl DestroyTask
-_081B945C:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9424
-
- thumb_func_start sub_81B9470
-sub_81B9470: @ 81B9470
- push {lr}
- bl brm_get_pokemon_selection
- ldr r2, =gUnknown_02039F24
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _081B9486
- movs r0, 0xFF
- strb r0, [r2]
-_081B9486:
- ldr r1, =gSpecialVar_0x8004
- ldrb r0, [r2]
- strh r0, [r1]
- ldr r1, =gFieldCallback
- ldr r0, =hm_add_c3_without_phase_2
- str r0, [r1]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9470
-
- thumb_func_start sub_81B94B0
-sub_81B94B0: @ 81B94B0
- push {lr}
- bl script_env_2_enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, =sub_81B94D0
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B94B0
-
- thumb_func_start sub_81B94D0
-sub_81B94D0: @ 81B94D0
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081B9508
- bl overworld_free_bg_tilemaps
- str r4, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_81B9390
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_81B0038
- adds r0, r5, 0
- bl DestroyTask
-_081B9508:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B94D0
-
- thumb_func_start sub_81B951C
-sub_81B951C: @ 81B951C
- push {lr}
- bl script_env_2_enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, =sub_81B953C
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B951C
-
- thumb_func_start sub_81B953C
-sub_81B953C: @ 81B953C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081B9574
- bl overworld_free_bg_tilemaps
- str r4, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_81B9588
- str r0, [sp, 0x8]
- movs r0, 0x7
- movs r1, 0
- movs r2, 0xB
- movs r3, 0
- bl sub_81B0038
- adds r0, r5, 0
- bl DestroyTask
-_081B9574:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B953C
-
- thumb_func_start sub_81B9588
-sub_81B9588: @ 81B9588
- push {r4,r5,lr}
- ldr r5, =gSpecialVar_0x8004
- bl brm_get_pokemon_selection
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- cmp r0, 0x5
- bls _081B95A4
- movs r0, 0xFF
- strh r0, [r5]
- b _081B95BA
- .pool
-_081B95A4:
- ldr r4, =gSpecialVar_0x8005
- ldrh r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNumberOfRelearnableMoves
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_081B95BA:
- ldr r0, =gFieldCallback
- ldr r1, =hm_add_c3_without_phase_2
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9588
-
- thumb_func_start sub_81B95E0
-sub_81B95E0: @ 81B95E0
- push {r4,r5,lr}
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r5, r1, 0
- b _081B95FA
- .pool
-_081B95F4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081B95FA:
- cmp r4, 0x2
- bhi _081B9614
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- cmp r0, 0
- beq _081B95F4
- movs r0, 0x1
- strh r0, [r5]
-_081B9614:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B95E0
-
- thumb_func_start sub_81B9620
-sub_81B9620: @ 81B9620
- push {lr}
- bl script_env_2_enable
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, =sub_81B9640
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9620
-
- thumb_func_start sub_81B9640
-sub_81B9640: @ 81B9640
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081B9678
- bl overworld_free_bg_tilemaps
- str r4, [sp]
- ldr r0, =sub_81B1370
- str r0, [sp, 0x4]
- ldr r0, =sub_81B9390
- str r0, [sp, 0x8]
- movs r0, 0xC
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_81B0038
- adds r0, r5, 0
- bl DestroyTask
-_081B9678:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9640
-
- thumb_func_start sub_81B968C
-sub_81B968C: @ 81B968C
- push {lr}
- sub sp, 0x4
- ldr r1, =gPlayerParty
- ldr r0, =gSpecialVar_0x8004
- ldrb r2, [r0]
- ldr r0, =gPlayerPartyCount
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =c2_exit_to_overworld_2_switch
- str r0, [sp]
- movs r0, 0x3
- bl sub_81BF8EC
- ldr r1, =gUnknown_03005DAC
- ldr r0, =sub_80AF168
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B968C
-
- thumb_func_start sub_81B96D0
-sub_81B96D0: @ 81B96D0
- push {r4,r5,lr}
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- movs r4, 0
- adds r5, r1, 0
-_081B96DC:
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- adds r1, 0xD
- bl GetMonData
- cmp r0, 0
- beq _081B96FA
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_081B96FA:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081B96DC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B96D0
-
- thumb_func_start sub_81B9718
-sub_81B9718: @ 81B9718
- push {r4,r5,lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, =gPlayerParty
- adds r5, r0
- ldr r0, =gSpecialVar_0x8005
- ldrh r1, [r0]
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetMonNickname
- ldr r0, =gStringVar2
- movs r1, 0xD
- muls r1, r4
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9718
-
- thumb_func_start sub_81B9770
-sub_81B9770: @ 81B9770
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gSpecialVar_0x8004
- mov r8, r0
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gPlayerParty
- adds r0, r5
- ldr r4, =gSpecialVar_0x8005
- ldrb r2, [r4]
- movs r1, 0
- bl SetMonMoveSlot
- mov r1, r8
- ldrh r0, [r1]
- muls r0, r6
- adds r0, r5
- ldrb r1, [r4]
- bl RemoveMonPPBonus
- ldrh r4, [r4]
- cmp r4, 0x2
- bhi _081B97C4
-_081B97A2:
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- lsls r1, r4, 24
- lsrs r1, 24
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- bl sub_81B97DC
- lsls r4, 16
- lsrs r4, 16
- cmp r4, 0x2
- bls _081B97A2
-_081B97C4:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9770
-
- thumb_func_start sub_81B97DC
-sub_81B97DC: @ 81B97DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r8, r0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r0, 0xD
- str r0, [sp, 0x8]
- mov r0, r8
- ldr r1, [sp, 0x8]
- bl GetMonData
- mov r1, sp
- adds r1, 0x2
- str r1, [sp, 0x14]
- strh r0, [r1]
- adds r3, r4, 0
- adds r3, 0xD
- str r3, [sp, 0xC]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r7, r5, 0
- adds r7, 0x11
- str r7, [sp, 0x10]
- mov r0, r8
- adds r1, r7, 0
- bl GetMonData
- mov r1, sp
- adds r1, 0x5
- str r1, [sp, 0x18]
- strb r0, [r1]
- adds r3, r4, 0
- adds r3, 0x11
- str r3, [sp, 0x1C]
- mov r0, r8
- adds r1, r3, 0
- bl GetMonData
- add r7, sp, 0x4
- mov r10, r7
- strb r0, [r7]
- mov r0, r8
- movs r1, 0x15
- bl GetMonData
- mov r6, sp
- adds r6, 0x6
- strb r0, [r6]
- ldr r1, =gUnknown_08329D22
- adds r0, r5, r1
- ldrb r0, [r0]
- mov r9, r0
- ldrb r0, [r6]
- adds r2, r0, 0
- mov r3, r9
- ands r2, r3
- lsls r5, 1
- asrs r2, r5
- lsls r2, 24
- lsrs r2, 24
- adds r1, r4, r1
- ldrb r3, [r1]
- adds r1, r0, 0
- ands r1, r3
- lsls r4, 1
- asrs r1, r4
- lsls r1, 24
- lsrs r1, 24
- mov r7, r9
- bics r0, r7
- strb r0, [r6]
- ldrb r0, [r6]
- bics r0, r3
- strb r0, [r6]
- lsls r2, r4
- lsls r1, r5
- adds r2, r1
- ldrb r0, [r6]
- orrs r0, r2
- strb r0, [r6]
- mov r0, r8
- ldr r1, [sp, 0x8]
- mov r2, sp
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0xC]
- ldr r2, [sp, 0x14]
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x10]
- mov r2, r10
- bl SetMonData
- mov r0, r8
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x18]
- bl SetMonData
- mov r0, r8
- movs r1, 0x15
- adds r2, r6, 0
- bl SetMonData
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B97DC
-
- thumb_func_start sub_81B98DC
-sub_81B98DC: @ 81B98DC
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r1, r0, 0
- cmp r1, 0
- beq _081B990C
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _081B9910
- .pool
-_081B990C:
- ldr r0, =gScriptResult
- strh r1, [r0]
-_081B9910:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B98DC
-
- thumb_func_start sub_81B9918
-sub_81B9918: @ 81B9918
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- cmp r0, 0x39
- bne _081B999C
- movs r6, 0
- b _081B9980
- .pool
-_081B9958:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r6, r0
- beq _081B997E
- movs r4, 0
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- ldr r7, =gPlayerParty
-_081B996A:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, r7
- bl GetMonData
- cmp r0, 0x39
- beq _081B999C
- adds r4, 0x1
- cmp r4, 0x3
- bls _081B996A
-_081B997E:
- adds r6, 0x1
-_081B9980:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bcc _081B9958
- mov r0, r8
- bl sub_80D23A8
- cmp r0, 0x1
- beq _081B999C
- ldr r1, =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
-_081B999C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9918
-
- thumb_func_start sub_81B99B4
-sub_81B99B4: @ 81B99B4
- push {lr}
- ldr r1, =gUnknown_086160B4
- 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_81B99B4
-
- thumb_func_start sub_81B99D4
-sub_81B99D4: @ 81B99D4
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- 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
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B99D4
-
- thumb_func_start sub_81B9A28
-sub_81B9A28: @ 81B9A28
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e6a
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81B9A28
-
- thumb_func_start sub_81B9A44
-sub_81B9A44: @ 81B9A44
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000e6a
- adds r0, r2
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81B9A44
-
- thumb_func_start sub_81B9A60
-sub_81B9A60: @ 81B9A60
- 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_81B9A60
-
- thumb_func_start sub_81B9A90
-sub_81B9A90: @ 81B9A90
- push {lr}
- ldr r3, =gTrainerBattleOpponent_A
- ldrh r1, [r3]
- ldr r0, =0x0000012b
- cmp r1, r0
- bhi _081B9AAC
- ldr r2, =gUnknown_0203BC88
- movs r0, 0x34
- muls r1, r0
- ldr r0, [r2]
- adds r0, r1
- adds r0, 0xC
- bl ConvertBattleFrontierTrainerSpeechToString
-_081B9AAC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9A90
-
- thumb_func_start sub_81B9ABC
-sub_81B9ABC: @ 81B9ABC
- 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_81B9ABC
-
- thumb_func_start sub_81B9B00
-sub_81B9B00: @ 81B9B00
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r5, =gUnknown_086160D4
- bl Random
- ldrh r0, [r5]
- ldr r1, =0x00000e6a
- adds r4, r1
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9B00
-
- thumb_func_start sub_81B9B28
-sub_81B9B28: @ 81B9B28
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000e6a
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081B9B70
- ldr r0, [r4]
- ldr r1, =0x00000e6a
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000e6a
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r5, [r0]
- b _081B9B76
- .pool
-_081B9B70:
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
-_081B9B76:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9B28
-
- thumb_func_start sub_81B9B80
-sub_81B9B80: @ 81B9B80
- push {lr}
- ldr r1, =gUnknown_086160D8
- 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_81B9B80
-
- thumb_func_start sub_81B9BA0
-sub_81B9BA0: @ 81B9BA0
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- 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
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9BA0
-
- thumb_func_start sub_81B9BF4
-sub_81B9BF4: @ 81B9BF4
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e6c
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81B9BF4
-
- thumb_func_start sub_81B9C10
-sub_81B9C10: @ 81B9C10
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000e6c
- adds r0, r2
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81B9C10
-
- thumb_func_start sub_81B9C2C
-sub_81B9C2C: @ 81B9C2C
- 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_81B9C2C
-
- thumb_func_start sub_81B9C70
-sub_81B9C70: @ 81B9C70
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r5, =gUnknown_086160F4
- bl Random
- ldrh r0, [r5]
- ldr r1, =0x00000e6c
- adds r4, r1
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9C70
-
- thumb_func_start sub_81B9C98
-sub_81B9C98: @ 81B9C98
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000e6c
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081B9CE0
- ldr r0, [r4]
- ldr r1, =0x00000e6c
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000e6c
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r5, [r0]
- b _081B9CE6
- .pool
-_081B9CE0:
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
-_081B9CE6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9C98
-
- thumb_func_start sub_81B9CF0
-sub_81B9CF0: @ 81B9CF0
- push {lr}
- ldr r0, =gStringVar1
- ldr r1, =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_8162E20
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9CF0
-
- thumb_func_start sub_81B9D08
-sub_81B9D08: @ 81B9D08
- push {lr}
- ldr r1, =gUnknown_086160F8
- 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_81B9D08
-
- thumb_func_start sub_81B9D28
-sub_81B9D28: @ 81B9D28
- push {lr}
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r2, =0x00000ca8
- adds r0, r2
- movs r2, 0
- strb r2, [r0]
- ldr r1, [r1]
- ldr r3, =0x00000cb2
- adds r0, r1, r3
- strh r2, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- 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
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9D28
-
- thumb_func_start sub_81B9D7C
-sub_81B9D7C: @ 81B9D7C
- ldr r1, =gScriptResult
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000e6e
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81B9D7C
-
- thumb_func_start sub_81B9D98
-sub_81B9D98: @ 81B9D98
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =gSpecialVar_0x8006
- ldrh r1, [r1]
- ldr r2, =0x00000e6e
- adds r0, r2
- strh r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_81B9D98
-
- thumb_func_start sub_81B9DB4
-sub_81B9DB4: @ 81B9DB4
- 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_81B9DB4
-
- thumb_func_start sub_81B9DF8
-sub_81B9DF8: @ 81B9DF8
- push {r4,r5,lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- ldr r5, =gUnknown_08616120
- bl Random
- ldrh r0, [r5]
- ldr r1, =0x00000e6e
- adds r4, r1
- strh r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9DF8
-
- thumb_func_start sub_81B9E20
-sub_81B9E20: @ 81B9E20
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000e6e
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x1
- bl AddBagItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _081B9E68
- ldr r0, [r4]
- ldr r1, =0x00000e6e
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, =gStringVar1
- bl CopyItemName
- ldr r0, [r4]
- ldr r1, =0x00000e6e
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gScriptResult
- strh r5, [r0]
- b _081B9E6E
- .pool
-_081B9E68:
- ldr r1, =gScriptResult
- movs r0, 0
- strh r0, [r1]
-_081B9E6E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B9E20
-
- thumb_func_start sub_81B9E78
-sub_81B9E78: @ 81B9E78
- push {lr}
- bl ZeroPlayerPartyMons
- bl sub_819A4F8
- pop {r0}
- bx r0
- thumb_func_end sub_81B9E78
-
- thumb_func_start sub_81B9E88
-sub_81B9E88: @ 81B9E88
- push {lr}
- bl sub_819DC00
- pop {r0}
- bx r0
- thumb_func_end sub_81B9E88
-
- thumb_func_start sub_81B9E94
-sub_81B9E94: @ 81B9E94
- push {lr}
- movs r2, 0
- ldr r1, =gUnknown_02037318
- ldrb r0, [r1, 0x14]
- cmp r0, 0x8
- bne _081B9EB2
- ldr r3, =0xfffffe7f
- adds r0, r3, 0
- ldrh r1, [r1, 0x12]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _081B9EB2
- movs r2, 0x1
-_081B9EB2:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81B9E94
-
- thumb_func_start sub_81B9EC0
-sub_81B9EC0: @ 81B9EC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- add r0, sp, 0xC
- mov r9, r0
- mov r1, sp
- adds r1, 0x18
- str r1, [sp, 0x2C]
- ldr r5, =gUnknown_0203BC8C
- ldr r4, =gSlateportBattleTentMons
- movs r2, 0
- adds r3, r1, 0
- mov r1, r9
- mov r0, sp
- movs r6, 0x5
- mov r8, r6
-_081B9EEC:
- strh r2, [r0]
- strh r2, [r1]
- strh r2, [r3]
- adds r3, 0x2
- adds r1, 0x2
- adds r0, 0x2
- movs r7, 0x1
- negs r7, r7
- add r8, r7
- mov r6, r8
- cmp r6, 0
- bge _081B9EEC
- str r4, [r5]
- movs r7, 0
- mov r10, r7
- movs r0, 0
- mov r8, r0
- ldr r1, [sp, 0x2C]
- str r1, [sp, 0x30]
- mov r2, sp
- str r2, [sp, 0x34]
- lsls r6, r0, 1
- str r6, [sp, 0x24]
- add r6, r9
- str r6, [sp, 0x28]
-_081B9F1E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x46
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- movs r2, 0
- mov r7, r8
- adds r6, r2, r7
- cmp r2, r6
- bge _081B9F7C
- ldr r1, [sp, 0x28]
- ldrh r0, [r1]
- cmp r0, r5
- beq _081B9F7C
- ldr r0, =gUnknown_0203BC8C
- ldr r1, [r0]
- lsls r0, r5, 4
- adds r4, r0, r1
- ldrh r7, [r4]
- mov r12, r7
- lsls r3, r2, 1
- ldr r1, [sp, 0x24]
- add r1, sp
- str r6, [sp, 0x38]
-_081B9F56:
- ldrh r0, [r1]
- cmp r0, r12
- bne _081B9F66
- mov r0, r10
- cmp r0, 0
- bne _081B9F7C
- ldrh r7, [r4]
- mov r10, r7
-_081B9F66:
- adds r3, 0x2
- adds r1, 0x2
- adds r2, 0x1
- ldr r0, [sp, 0x38]
- cmp r2, r0
- bge _081B9F7C
- mov r7, r9
- adds r0, r7, r3
- ldrh r0, [r0]
- cmp r0, r5
- bne _081B9F56
-_081B9F7C:
- cmp r2, r6
- bne _081BA01C
- movs r2, 0
- cmp r2, r6
- bge _081B9FD4
- ldr r0, =gBattleFrontierHeldItems
- mov r12, r0
- ldr r7, =gUnknown_0203BC8C
- ldr r1, [sp, 0x24]
- ldr r0, [sp, 0x2C]
- adds r4, r1, r0
-_081B9F92:
- ldrh r3, [r4]
- cmp r3, 0
- beq _081B9FCC
- ldr r1, [r7]
- lsls r0, r5, 4
- adds r1, r0, r1
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r3, r0
- bne _081B9FCC
- ldrh r0, [r1]
- cmp r0, r10
- bne _081B9FD4
- movs r1, 0
- mov r10, r1
- b _081B9FD4
- .pool
-_081B9FCC:
- adds r4, 0x2
- adds r2, 0x1
- cmp r2, r6
- blt _081B9F92
-_081B9FD4:
- cmp r2, r6
- bne _081BA01C
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r8
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r1, r0
- movs r6, 0xE7
- lsls r6, 4
- adds r1, r6
- strh r5, [r1]
- ldr r0, =gUnknown_0203BC8C
- ldr r0, [r0]
- lsls r1, r5, 4
- adds r1, r0
- ldrh r0, [r1]
- ldr r7, [sp, 0x34]
- strh r0, [r7]
- ldr r2, =gBattleFrontierHeldItems
- ldrb r0, [r1, 0xA]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, [sp, 0x30]
- strh r0, [r1]
- add r3, r9
- strh r5, [r3]
- adds r1, 0x2
- str r1, [sp, 0x30]
- adds r2, r7, 0
- adds r2, 0x2
- str r2, [sp, 0x34]
- movs r6, 0x1
- add r8, r6
-_081BA01C:
- mov r7, r8
- cmp r7, 0x6
- beq _081BA024
- b _081B9F1E
-_081BA024:
- 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_81B9EC0
-
- thumb_func_start sub_81BA040
-sub_81BA040: @ 81BA040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r10, r0
- ldr r1, =gUnknown_0203BC88
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- ldr r1, =gUnknown_0203BC8C
- ldr r0, =gSlateportBattleTentMons
- str r0, [r1]
- ldr r7, =gSaveBlock2Ptr
- ldr r1, =0x0000ffff
- mov r8, r1
-_081BA062:
- mov r2, r10
- lsls r6, r2, 1
-_081BA066:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r5, 0
- ldr r1, [r7]
- ldr r4, =0x00000cb2
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r5, r0
- bge _081BA0AA
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r3
- beq _081BA0AA
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, r4
- ldrh r2, [r0]
- adds r4, 0x2
- adds r1, r4
-_081BA09C:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r2
- bge _081BA0AA
- ldrh r0, [r1]
- cmp r0, r3
- bne _081BA09C
-_081BA0AA:
- ldr r0, [r7]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _081BA066
- ldr r2, =gTrainerBattleOpponent_A
- strh r3, [r2]
- ldrh r3, [r2]
- ldr r4, =gUnknown_0203BC88
- ldr r1, [r4]
- movs r0, 0x34
- muls r0, r3
- adds r0, r1
- ldr r0, [r0, 0x30]
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, r8
- beq _081BA0DE
- ldr r3, =0x0000ffff
-_081BA0D2:
- adds r1, 0x2
- movs r6, 0x1
- add r10, r6
- ldrh r0, [r1]
- cmp r0, r3
- bne _081BA0D2
-_081BA0DE:
- mov r0, r10
- cmp r0, 0x8
- bgt _081BA110
- movs r1, 0
- mov r10, r1
- b _081BA062
- .pool
-_081BA110:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r6, =0x00000cb2
- adds r3, r1, r6
- ldrh r0, [r3]
- cmp r0, 0x1
- bhi _081BA12A
- lsls r0, 1
- ldr r3, =0x00000cb4
- adds r1, r3
- adds r1, r0
- ldrh r0, [r2]
- strh r0, [r1]
-_081BA12A:
- ldrh r1, [r2]
- ldr r2, [r4]
- movs r0, 0x34
- muls r0, r1
- adds r0, r2
- ldr r0, [r0, 0x30]
- mov r9, r0
- movs r5, 0
- ldr r7, =gUnknown_03001298
- mov r8, sp
-_081BA13E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r7]
- movs r2, 0
- ldrh r0, [r7]
- ldr r4, =gUnknown_0203BC8C
- ldr r3, [r4]
- lsls r0, 4
- adds r0, r3
- ldr r1, =gSaveBlock2Ptr
- ldrh r6, [r0]
- ldr r1, [r1]
-_081BA166:
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r6, r0
- beq _081BA180
- adds r1, 0xC
- adds r2, 0x1
- cmp r2, 0x5
- ble _081BA166
-_081BA180:
- cmp r2, 0x6
- bne _081BA220
- movs r4, 0
- cmp r4, r5
- bge _081BA1B0
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, r6
- beq _081BA1B0
- ldr r6, =gUnknown_03001298
- ldr r3, =gUnknown_0203BC8C
- mov r2, sp
-_081BA198:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r5
- bge _081BA1B0
- ldrh r0, [r6]
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- ldrh r1, [r2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081BA198
-_081BA1B0:
- cmp r4, r5
- bne _081BA220
- movs r4, 0
- cmp r4, r5
- bge _081BA1E6
- ldr r6, =gBattleFrontierHeldItems
- mov r12, r6
- add r3, sp, 0x8
-_081BA1C0:
- ldrh r2, [r3]
- cmp r2, 0
- beq _081BA1DE
- ldr r1, =gUnknown_03001298
- ldrh r0, [r1]
- ldr r6, =gUnknown_0203BC8C
- ldr r1, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r2, r0
- beq _081BA1E6
-_081BA1DE:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r5
- blt _081BA1C0
-_081BA1E6:
- cmp r4, r5
- bne _081BA220
- lsls r2, r5, 1
- ldrh r0, [r7]
- ldr r1, =gUnknown_0203BC8C
- ldr r4, [r1]
- lsls r0, 4
- adds r0, r4
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3]
- add r1, sp, 0x8
- adds r1, r2
- ldr r3, =gBattleFrontierHeldItems
- ldrh r0, [r7]
- lsls r0, 4
- adds r0, r4
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, =gUnknown_03006298
- adds r2, r0
- ldrh r0, [r7]
- strh r0, [r2]
- movs r4, 0x2
- add r8, r4
- adds r5, 0x1
-_081BA220:
- cmp r5, 0x3
- bne _081BA13E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BA040
-
- thumb_func_start Font6Func
-@ int Font6Func(struct TextPrinter *x)
-Font6Func: @ 81BA250
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r6, 0
- adds r4, 0x14
- ldrb r0, [r6, 0x1C]
- cmp r0, 0x6
- bls _081BA260
- b _081BA660
-_081BA260:
- lsls r0, 2
- ldr r1, =_081BA270
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081BA270:
- .4byte _081BA28C
- .4byte _081BA554
- .4byte _081BA566
- .4byte _081BA590
- .4byte _081BA5C8
- .4byte _081BA63C
- .4byte _081BA64E
-_081BA28C:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081BA2A6
- ldrb r1, [r4]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081BA2A6
- movs r0, 0
- strb r0, [r6, 0x1E]
-_081BA2A6:
- ldrb r1, [r6, 0x1E]
- cmp r1, 0
- beq _081BA2E8
- ldrb r0, [r6, 0x1D]
- cmp r0, 0
- beq _081BA2E8
- subs r0, r1, 0x1
- strb r0, [r6, 0x1E]
- ldr r0, =gTextFlags
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081BA2C4
- b _081BA50E
-_081BA2C4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081BA2D0
- b _081BA50E
-_081BA2D0:
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0
- strb r0, [r6, 0x1E]
- b _081BA50E
- .pool
-_081BA2E8:
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081BA2FC
- movs r0, 0x3
- b _081BA2FE
- .pool
-_081BA2FC:
- ldrb r0, [r6, 0x1D]
-_081BA2FE:
- strb r0, [r6, 0x1E]
- ldr r0, [r6]
- ldrb r3, [r0]
- adds r0, 0x1
- str r0, [r6]
- adds r0, r3, 0
- subs r0, 0xF8
- cmp r0, 0x7
- bls _081BA312
- b _081BA52E
-_081BA312:
- lsls r0, 2
- ldr r1, =_081BA320
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081BA320:
- .4byte _081BA524
- .4byte _081BA512
- .4byte _081BA504
- .4byte _081BA500
- .4byte _081BA36E
- .4byte _081BA368
- .4byte _081BA340
- .4byte _081BA660
-_081BA340:
- ldrb r0, [r6, 0x6]
- strb r0, [r6, 0x8]
- ldrb r1, [r6, 0x5]
- ldr r0, =gFonts
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r6, 0xB]
- ldrb r0, [r0, 0x5]
- adds r1, r0
- ldrb r0, [r6, 0x9]
- adds r0, r1
- strb r0, [r6, 0x9]
-_081BA35E:
- movs r0, 0x2
- b _081BA662
- .pool
-_081BA368:
- ldr r0, [r6]
- adds r0, 0x1
- b _081BA4C4
-_081BA36E:
- ldr r0, [r6]
- ldrb r3, [r0]
- adds r0, 0x1
- str r0, [r6]
- subs r0, r3, 0x1
- cmp r0, 0xF
- bls _081BA37E
- b _081BA52E
-_081BA37E:
- lsls r0, 2
- ldr r1, =_081BA38C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081BA38C:
- .4byte _081BA3CC
- .4byte _081BA3EE
- .4byte _081BA412
- .4byte _081BA42C
- .4byte _081BA478
- .4byte _081BA47E
- .4byte _081BA35E
- .4byte _081BA498
- .4byte _081BA4A8
- .4byte _081BA4BC
- .4byte _081BA4C0
- .4byte _081BA4C8
- .4byte _081BA4D2
- .4byte _081BA4DE
- .4byte _081BA4EE
- .4byte _081BA4C0
-_081BA3CC:
- ldr r2, [r6]
- ldrb r1, [r2]
- lsls r1, 4
- ldrb r3, [r6, 0xC]
- movs r0, 0xF
- ands r0, r3
- orrs r0, r1
- strb r0, [r6, 0xC]
- adds r2, 0x1
- str r2, [r6]
- lsls r0, 24
- lsrs r0, 28
- ldrb r2, [r6, 0xD]
- lsls r1, r2, 28
- lsrs r1, 28
- lsrs r2, 4
- b _081BA472
-_081BA3EE:
- ldr r1, [r6]
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- ldrb r3, [r6, 0xD]
- movs r2, 0x10
- negs r2, r2
- ands r2, r3
- orrs r2, r0
- strb r2, [r6, 0xD]
- adds r1, 0x1
- str r1, [r6]
- ldrb r0, [r6, 0xC]
- lsrs r0, 4
- lsls r1, r2, 28
- lsrs r1, 28
- lsrs r2, 4
- b _081BA472
-_081BA412:
- ldr r1, [r6]
- ldrb r0, [r1]
- lsls r0, 4
- ldrb r3, [r6, 0xD]
- movs r2, 0xF
- ands r2, r3
- orrs r2, r0
- strb r2, [r6, 0xD]
- adds r1, 0x1
- str r1, [r6]
- ldrb r0, [r6, 0xC]
- lsrs r0, 4
- b _081BA46A
-_081BA42C:
- ldr r3, [r6]
- ldrb r1, [r3]
- lsls r1, 4
- ldrb r4, [r6, 0xC]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r6, 0xC]
- adds r5, r3, 0x1
- str r5, [r6]
- ldrb r3, [r3, 0x1]
- adds r1, r2, 0
- ands r1, r3
- ldrb r4, [r6, 0xD]
- movs r3, 0x10
- negs r3, r3
- ands r3, r4
- orrs r3, r1
- strb r3, [r6, 0xD]
- adds r4, r5, 0x1
- str r4, [r6]
- ldrb r1, [r5, 0x1]
- lsls r1, 4
- ands r2, r3
- orrs r2, r1
- strb r2, [r6, 0xD]
- adds r4, 0x1
- str r4, [r6]
- lsls r0, 24
- lsrs r0, 28
-_081BA46A:
- lsls r1, r2, 28
- lsrs r1, 28
- lsls r2, 24
- lsrs r2, 28
-_081BA472:
- bl GenerateFontHalfRowLookupTable
- b _081BA35E
-_081BA478:
- ldr r0, [r6]
- adds r0, 0x1
- b _081BA4C4
-_081BA47E:
- ldr r0, [r6]
- ldrb r0, [r0]
- movs r1, 0xF
- ands r1, r0
- ldrb r2, [r4]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldr r0, [r6]
- adds r0, 0x1
- b _081BA4C4
-_081BA498:
- ldr r0, [r6]
- ldrb r1, [r0]
- strb r1, [r6, 0x1E]
- adds r0, 0x1
- str r0, [r6]
- movs r0, 0x6
- strb r0, [r6, 0x1C]
- b _081BA35E
-_081BA4A8:
- movs r0, 0x1
- strb r0, [r6, 0x1C]
- ldrb r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081BA50E
- movs r0, 0
- strb r0, [r4, 0x2]
- b _081BA50E
-_081BA4BC:
- movs r0, 0x5
- b _081BA64A
-_081BA4C0:
- ldr r0, [r6]
- adds r0, 0x2
-_081BA4C4:
- str r0, [r6]
- b _081BA35E
-_081BA4C8:
- ldr r1, [r6]
- adds r0, r1, 0x1
- str r0, [r6]
- ldrb r3, [r1, 0x1]
- b _081BA52E
-_081BA4D2:
- ldr r1, [r6]
- ldrb r0, [r1]
- ldrb r2, [r6, 0x6]
- adds r0, r2
- strb r0, [r6, 0x8]
- b _081BA4E8
-_081BA4DE:
- ldr r1, [r6]
- ldrb r0, [r1]
- ldrb r2, [r6, 0x7]
- adds r0, r2
- strb r0, [r6, 0x9]
-_081BA4E8:
- adds r1, 0x1
- str r1, [r6]
- b _081BA35E
-_081BA4EE:
- ldrb r0, [r6, 0x4]
- ldrb r2, [r6, 0xD]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- b _081BA35E
-_081BA500:
- movs r0, 0x2
- b _081BA506
-_081BA504:
- movs r0, 0x3
-_081BA506:
- strb r0, [r6, 0x1C]
- adds r0, r6, 0
- bl TextPrinterInitDownArrowCounters
-_081BA50E:
- movs r0, 0x3
- b _081BA662
-_081BA512:
- ldr r0, [r6]
- ldrb r3, [r0]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r3, r1
- adds r0, 0x1
- str r0, [r6]
- b _081BA52E
-_081BA524:
- ldr r0, [r6]
- adds r0, 0x1
- str r0, [r6]
- movs r0, 0
- b _081BA662
-_081BA52E:
- adds r0, r3, 0
- bl DecompressGlyphFont6
- adds r0, r6, 0
- bl CopyGlyphToWindow
- ldr r0, =gUnknown_03002F90
- adds r0, 0x80
- ldrb r1, [r6, 0xA]
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r6, 0x8]
- adds r0, r1
- strb r0, [r6, 0x8]
- movs r0, 0
- b _081BA662
- .pool
-_081BA554:
- adds r0, r6, 0
- bl TextPrinterWait
- lsls r0, 16
- cmp r0, 0
- beq _081BA50E
- movs r0, 0
- strb r0, [r6, 0x1C]
- b _081BA50E
-_081BA566:
- adds r0, r6, 0
- bl TextPrinterWaitWithDownArrow
- lsls r0, 16
- cmp r0, 0
- beq _081BA50E
- ldrb r0, [r6, 0x4]
- ldrb r2, [r6, 0xD]
- lsls r2, 28
- lsrs r1, r2, 4
- orrs r1, r2
- lsrs r1, 24
- bl FillWindowPixelBuffer
- ldrb r0, [r6, 0x6]
- movs r1, 0
- strb r0, [r6, 0x8]
- ldrb r0, [r6, 0x7]
- strb r0, [r6, 0x9]
- strb r1, [r6, 0x1C]
- b _081BA50E
-_081BA590:
- adds r0, r6, 0
- bl TextPrinterWaitWithDownArrow
- lsls r0, 16
- cmp r0, 0
- beq _081BA50E
- adds r0, r6, 0
- bl TextPrinterClearDownArrow
- ldrb r1, [r6, 0x5]
- ldr r0, =gFonts
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r6, 0xB]
- ldrb r0, [r0, 0x5]
- adds r1, r0
- strb r1, [r6, 0x1F]
- ldrb r0, [r6, 0x6]
- strb r0, [r6, 0x8]
- movs r0, 0x4
- strb r0, [r6, 0x1C]
- b _081BA50E
- .pool
-_081BA5C8:
- ldrb r2, [r6, 0x1F]
- cmp r2, 0
- beq _081BA638
- ldr r4, =gUnknown_08616124
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldrb r0, [r0, 0x14]
- lsls r1, r0, 29
- lsrs r0, r1, 29
- adds r0, r4
- ldrb r0, [r0]
- cmp r2, r0
- bcs _081BA604
- ldrb r0, [r6, 0x4]
- ldrb r1, [r6, 0xD]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- movs r0, 0
- strb r0, [r6, 0x1F]
- b _081BA62E
- .pool
-_081BA604:
- ldrb r0, [r6, 0x4]
- lsrs r1, 29
- adds r1, r4
- ldrb r2, [r1]
- ldrb r1, [r6, 0xD]
- lsls r1, 28
- lsrs r3, r1, 4
- orrs r3, r1
- lsrs r3, 24
- movs r1, 0
- bl ScrollWindow
- ldr r0, [r5]
- ldrb r0, [r0, 0x14]
- lsls r0, 29
- lsrs r0, 29
- adds r0, r4
- ldrb r1, [r6, 0x1F]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r6, 0x1F]
-_081BA62E:
- ldrb r0, [r6, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- b _081BA50E
-_081BA638:
- strb r2, [r6, 0x1C]
- b _081BA50E
-_081BA63C:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081BA64A
- b _081BA50E
-_081BA64A:
- strb r0, [r6, 0x1C]
- b _081BA50E
-_081BA64E:
- ldrb r0, [r6, 0x1E]
- adds r1, r0, 0
- cmp r1, 0
- beq _081BA65C
- subs r0, 0x1
- strb r0, [r6, 0x1E]
- b _081BA50E
-_081BA65C:
- strb r1, [r6, 0x1C]
- b _081BA50E
-_081BA660:
- movs r0, 0x1
-_081BA662:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end Font6Func
-
- thumb_func_start DecompressGlyphFont6
-DecompressGlyphFont6: @ 81BA668
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 19
- lsls r2, 9
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 11
- ldr r0, =gFont6BrailleGlyphs
- adds r1, r0
- adds r5, r2, r1
- ldr r4, =gUnknown_03002F90
- adds r0, r5, 0
- adds r1, r4, 0
- bl DecompressGlyphTile
- adds r0, r5, 0
- adds r0, 0x10
- adds r1, r4, 0
- adds r1, 0x20
- bl DecompressGlyphTile
- movs r1, 0x80
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r4, 0
- adds r1, 0x40
- bl DecompressGlyphTile
- movs r1, 0x88
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r4, 0
- adds r1, 0x60
- bl DecompressGlyphTile
- adds r0, r4, 0
- adds r0, 0x80
- movs r1, 0x10
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DecompressGlyphFont6
-
- thumb_func_start GetGlyphWidthFont6
-GetGlyphWidthFont6: @ 81BA6CC
- movs r0, 0x10
- bx lr
- thumb_func_end GetGlyphWidthFont6
-
-
+
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_818E9AC.s b/asm/rom_818E9AC.s
new file mode 100644
index 000000000..18e0dcc18
--- /dev/null
+++ b/asm/rom_818E9AC.s
@@ -0,0 +1,83686 @@
+ .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, =gTrainerClassNameIndices
+ 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 sub_8162BD8
+_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, =gUnknown_02022E2C
+ 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, =gUnknown_02022E2C
+ movs r2, 0x3D
+ bl GetStringWidthDifference
+ b _0819476A
+ .pool
+_08194768:
+ movs r0, 0x3
+_0819476A:
+ strb r0, [r4, 0x8]
+ ldr r0, =gUnknown_02022E2C
+ 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, =gUnknown_02022E2C
+ 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, =gUnknown_02037318
+ 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, =gUnknown_02037318
+ 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, =gUnknown_02037318
+ 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 script_env_2_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, =gUnknown_02037350
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl sub_80D338C
+ bl sub_809757C
+ bl script_env_2_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, =gUnknown_02037318
+ 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 pokedex_flag_operation
+ 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 pokedex_flag_operation
+ 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
+
+ thumb_func_start sub_8197184
+sub_8197184: @ 8197184
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl GetWindowAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0860EA6C
+ movs r2, 0x80
+ lsls r2, 1
+ lsls r4, 16
+ lsrs r4, 16
+ adds r3, r4, 0
+ bl LoadBgTiles
+ ldr r0, =gUnknown_0860EA4C
+ lsls r5, 20
+ lsrs r5, 16
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197184
+
+ thumb_func_start sub_81971C4
+sub_81971C4: @ 81971C4
+ push {lr}
+ bl sub_819645C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81971C4
+
+ thumb_func_start sub_81971D0
+sub_81971D0: @ 81971D0
+ push {lr}
+ ldr r0, =gUnknown_0860F098
+ bl InitWindows
+ ldr r0, =gUnknown_0203CD8C
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, =gUnknown_0203CD8D
+ strb r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81971D0
+
+ thumb_func_start sub_81971F4
+sub_81971F4: @ 81971F4
+ push {lr}
+ bl FreeAllWindowBuffers
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81971F4
+
+ thumb_func_start sub_8197200
+sub_8197200: @ 8197200
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ bl DeactivateAllTextPrinters
+ bl sub_81973A4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8197200
+
+ thumb_func_start sub_8197224
+sub_8197224: @ 8197224
+ push {lr}
+ bl RunTextPrinters
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8197224
+
+ thumb_func_start AddTextPrinterParametrized
+@ u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor)
+AddTextPrinterParametrized: @ 8197238
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r7, [sp, 0x28]
+ ldr r4, [sp, 0x2C]
+ mov r8, r4
+ ldr r5, [sp, 0x30]
+ ldr r6, [sp, 0x34]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ str r2, [sp]
+ mov r2, sp
+ movs r4, 0
+ strb r0, [r2, 0x4]
+ mov r0, sp
+ strb r1, [r0, 0x5]
+ strb r4, [r0, 0x6]
+ movs r1, 0x1
+ strb r1, [r0, 0x7]
+ strb r4, [r0, 0x8]
+ strb r1, [r0, 0x9]
+ strb r4, [r0, 0xA]
+ strb r4, [r0, 0xB]
+ mov r4, sp
+ ldrb r2, [r4, 0xC]
+ subs r1, 0x11
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r4, 0xC]
+ mov r0, sp
+ mov r2, r8
+ lsls r2, 4
+ movs r4, 0xF
+ strb r2, [r0, 0xC]
+ mov r2, sp
+ ands r5, r4
+ ldrb r0, [r2, 0xD]
+ ands r1, r0
+ orrs r1, r5
+ strb r1, [r2, 0xD]
+ mov r0, sp
+ lsrs r6, 20
+ ands r1, r4
+ orrs r1, r6
+ strb r1, [r0, 0xD]
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ mov r0, sp
+ adds r1, r3, 0
+ adds r2, r7, 0
+ bl AddTextPrinter
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddTextPrinterParametrized
+
+ thumb_func_start AddTextPrinterForMessage
+@ void AddTextPrinterForMessage(u8 allowSkippingDelayWithButtonPress)
+AddTextPrinterForMessage: @ 81972C4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ ldr r3, =gTextFlags
+ movs r4, 0x1
+ ands r0, r4
+ ldrb r2, [r3]
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+ bl sav2_get_text_speed
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r2, =gStringVar4
+ str r5, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AddTextPrinterForMessage
+
+ thumb_func_start AddTextPrinterForMessage_2
+@ void AddTextPrinterForMessage_2(u8 allowSkippingDelayWithButtonPress)
+AddTextPrinterForMessage_2: @ 8197310
+ push {r4,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gTextFlags
+ movs r4, 0x1
+ ands r0, r4
+ ldrb r2, [r3]
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+ bl sav2_get_text_speed
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r2, =gStringVar4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AddTextPrinterForMessage_2
+
+ thumb_func_start AddTextPrinterWithCustomSpeedForMessage
+@ void AddTextPrinterWithCustomSpeedForMessage(u8 allowSkippingDelayWithButtonPress, u8 speed)
+AddTextPrinterWithCustomSpeedForMessage: @ 819735C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r4, =gTextFlags
+ movs r5, 0x1
+ ands r0, r5
+ ldrb r2, [r4]
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4]
+ ldr r2, =gStringVar4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AddTextPrinterWithCustomSpeedForMessage
+
+ thumb_func_start sub_81973A4
+sub_81973A4: @ 81973A4
+ push {lr}
+ movs r1, 0x80
+ lsls r1, 2
+ movs r0, 0
+ movs r2, 0xF0
+ bl copy_textbox_border_tile_patterns_to_vram
+ movs r1, 0x85
+ lsls r1, 2
+ movs r0, 0
+ movs r2, 0xE0
+ bl sub_809882C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81973A4
+
+ thumb_func_start sub_81973C4
+sub_81973C4: @ 81973C4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_81975F4
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _081973F2
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_081973F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81973C4
+
+ thumb_func_start sub_81973FC
+sub_81973FC: @ 81973FC
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_81974A4
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _0819742A
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819742A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81973FC
+
+ thumb_func_start sub_8197434
+sub_8197434: @ 8197434
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_8197804
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl ClearWindowTilemap
+ cmp r4, 0x1
+ bne _08197462
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197462:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197434
+
+ thumb_func_start sub_819746C
+sub_819746C: @ 819746C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_81977BC
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl ClearWindowTilemap
+ cmp r4, 0x1
+ bne _0819749A
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819749A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819746C
+
+ thumb_func_start sub_81974A4
+sub_81974A4: @ 81974A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r4, r2, 0
+ ldr r2, [sp, 0x3C]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ movs r3, 0x85
+ lsls r3, 2
+ lsrs r0, r1, 24
+ str r0, [sp, 0xC]
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r2, r1
+ mov r8, r2
+ lsrs r2, 24
+ lsrs r0, r4, 24
+ mov r9, r0
+ movs r0, 0xFF
+ lsls r0, 24
+ adds r4, r0
+ lsrs r4, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r6, 0xE
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ adds r1, r3, 0
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000215
+ ldr r2, [sp, 0x10]
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0xC]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000216
+ ldr r3, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ adds r0, r3, r2
+ lsls r0, 24
+ mov r10, r0
+ lsrs r2, r0, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ mov r5, r9
+ ldr r0, [sp, 0x14]
+ add r0, r9
+ cmp r9, r0
+ bge _08197578
+ mov r3, r8
+ str r3, [sp, 0x18]
+ movs r6, 0x1
+ movs r0, 0xE
+ mov r8, r0
+_0819753E:
+ lsls r4, r5, 24
+ lsrs r4, 24
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r1, =0x00000217
+ ldr r3, [sp, 0x18]
+ lsrs r2, r3, 24
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r1, =0x00000219
+ mov r3, r10
+ lsrs r2, r3, 24
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ adds r5, 0x1
+ ldr r0, [sp, 0x14]
+ add r0, r9
+ cmp r5, r0
+ blt _0819753E
+_08197578:
+ ldr r1, =0x0000021a
+ ldr r2, [sp, 0xC]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, [sp, 0x14]
+ add r4, r9
+ lsls r4, 24
+ lsrs r4, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ movs r6, 0xE
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x0000021b
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ ldr r2, [sp, 0xC]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ movs r1, 0x87
+ lsls r1, 2
+ ldr r3, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ adds r2, r3, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r0, r7, 0
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ 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_81974A4
+
+ thumb_func_start sub_81975F4
+sub_81975F4: @ 81975F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ adds r6, r0, 0
+ adds r5, r2, 0
+ mov r8, r3
+ ldr r2, [sp, 0x44]
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, r1, 24
+ lsls r5, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x10]
+ ldr r1, =0x00000201
+ lsrs r2, r0, 24
+ str r2, [sp, 0xC]
+ movs r3, 0xFE
+ lsls r3, 24
+ adds r2, r0, r3
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsrs r0, r5, 24
+ mov r10, r0
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r4, 0x1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r3, 0xF
+ mov r9, r3
+ str r3, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000203
+ ldr r0, [sp, 0xC]
+ subs r0, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ movs r1, 0x81
+ lsls r1, 2
+ mov r0, r8
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0xC]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000205
+ ldr r7, [sp, 0xC]
+ add r7, r8
+ subs r0, r7, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x20]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ adds r0, r6, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000206
+ lsls r2, r7, 24
+ lsrs r7, r2, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000207
+ str r4, [sp]
+ movs r5, 0x5
+ str r5, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000209
+ add r8, r4
+ mov r3, r8
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ str r5, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x0000020a
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000a01
+ ldr r3, [sp, 0x10]
+ add r10, r3
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x14]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000a03
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x18]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000a04
+ ldr r0, [sp, 0x1C]
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0xC]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000a05
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ adds r0, r6, 0
+ ldr r2, [sp, 0x20]
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000a06
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ adds r2, r7, 0
+ mov r3, r10
+ bl FillBgTilemapBufferRect
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81975F4
+
+ thumb_func_start sub_81977BC
+sub_81977BC: @ 81977BC
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0x80
+ lsls r2, 18
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0xE
+ str r1, [sp, 0x8]
+ movs r1, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81977BC
+
+ thumb_func_start sub_8197804
+sub_8197804: @ 8197804
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFD
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ movs r2, 0x80
+ lsls r2, 18
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0xE
+ str r1, [sp, 0x8]
+ movs r1, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8197804
+
+ thumb_func_start SetStandardWindowBorderStyle
+@ void SetStandardWindowBorderStyle(u8 windowId, bool copyToVram)
+SetStandardWindowBorderStyle: @ 8197854
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x85
+ lsls r2, 2
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ pop {r0}
+ bx r0
+ thumb_func_end SetStandardWindowBorderStyle
+
+ thumb_func_start sub_819786C
+sub_819786C: @ 819786C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0x80
+ lsls r6, 2
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0xF0
+ bl copy_textbox_border_tile_patterns_to_vram
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0xF
+ bl sub_8197B1C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819786C
+
+ thumb_func_start sub_819789C
+sub_819789C: @ 819789C
+ push {lr}
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xE0
+ movs r2, 0x14
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819789C
+
+ thumb_func_start sub_81978B0
+sub_81978B0: @ 81978B0
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gUnknown_0860F074
+ movs r2, 0x14
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81978B0
+
+ thumb_func_start sub_81978C8
+sub_81978C8: @ 81978C8
+ ldr r0, =gUnknown_0860F074
+ bx lr
+ .pool
+ thumb_func_end sub_81978C8
+
+ thumb_func_start sub_81978D0
+sub_81978D0: @ 81978D0
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _081978DC
+ movs r1, 0
+_081978DC:
+ ldr r0, =gUnknown_0860F074
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81978D0
+
+ thumb_func_start DisplayItemMessageOnField
+@ void DisplayItemMessageOnField(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
+DisplayItemMessageOnField: @ 81978EC
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_81973A4
+ bl sav2_get_text_speed
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r3, 0xF
+ bl DisplayMessageAndContinueTask
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end DisplayItemMessageOnField
+
+ thumb_func_start sub_8197930
+sub_8197930: @ 8197930
+ push {lr}
+ ldr r0, =gUnknown_0860F0A8
+ movs r1, 0x85
+ lsls r1, 2
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197930
+
+ thumb_func_start sub_8197948
+sub_8197948: @ 8197948
+ push {lr}
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_0860F0A8
+ movs r1, 0x85
+ lsls r1, 2
+ movs r2, 0xE
+ bl CreateYesNoMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197948
+
+ thumb_func_start sub_8197964
+sub_8197964: @ 8197964
+ push {lr}
+ ldr r0, =gTextFlags
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08197988
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ lsls r0, 29
+ lsrs r0, 29
+ b _0819798A
+ .pool
+_08197988:
+ movs r0, 0x1
+_0819798A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8197964
+
+ thumb_func_start sav2_get_text_speed
+sav2_get_text_speed: @ 8197990
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x14]
+ lsls r0, r1, 29
+ lsrs r0, 29
+ cmp r0, 0x2
+ bls _081979AC
+ movs r0, 0x8
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x14]
+_081979AC:
+ bl sub_8197964
+ ldr r1, =gUnknown_0860F094
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sav2_get_text_speed
+
+ thumb_func_start sub_81979C4
+sub_81979C4: @ 81979C4
+ push {r4,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r4, =gUnknown_0203CD8C
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _081979F6
+ lsls r0, r1, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ ldr r0, =0x00000139
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x16
+ movs r2, 0x1
+ movs r3, 0x7
+ bl sub_8198AA4
+ strb r0, [r4]
+_081979F6:
+ ldrb r0, [r4]
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81979C4
+
+ thumb_func_start GetStartMenuWindowId
+GetStartMenuWindowId: @ 8197A08
+ ldr r0, =gUnknown_0203CD8C
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end GetStartMenuWindowId
+
+ thumb_func_start remove_start_menu_window_maybe
+remove_start_menu_window_maybe: @ 8197A14
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD8C
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _08197A26
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+_08197A26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end remove_start_menu_window_maybe
+
+ thumb_func_start sub_8197A30
+sub_8197A30: @ 8197A30
+ movs r0, 0x80
+ lsls r0, 2
+ bx lr
+ thumb_func_end sub_8197A30
+
+ thumb_func_start sub_8197A38
+sub_8197A38: @ 8197A38
+ movs r0, 0x85
+ lsls r0, 2
+ bx lr
+ thumb_func_end sub_8197A38
+
+ thumb_func_start AddMapNamePopUpWindow
+AddMapNamePopUpWindow: @ 8197A40
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r4, =gUnknown_0203CD8D
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _08197A66
+ movs r0, 0x3
+ str r0, [sp]
+ movs r0, 0xE
+ str r0, [sp, 0x4]
+ adds r0, 0xF9
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0xA
+ bl sub_8198AA4
+ strb r0, [r4]
+_08197A66:
+ ldrb r0, [r4]
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddMapNamePopUpWindow
+
+ thumb_func_start GetMapNamePopUpWindowId
+GetMapNamePopUpWindowId: @ 8197A74
+ ldr r0, =gUnknown_0203CD8D
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end GetMapNamePopUpWindowId
+
+ thumb_func_start RemoveMapNamePopUpWindow
+RemoveMapNamePopUpWindow: @ 8197A80
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD8D
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _08197A92
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+_08197A92:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RemoveMapNamePopUpWindow
+
+ thumb_func_start AddTextPrinterWithCallbackForMessage
+@ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *))
+AddTextPrinterWithCallbackForMessage: @ 8197A9C
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gTextFlags
+ movs r4, 0x1
+ ands r0, r4
+ ldrb r2, [r3]
+ movs r1, 0x2
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+ bl sav2_get_text_speed
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r2, =gStringVar4
+ str r5, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end AddTextPrinterWithCallbackForMessage
+
+ thumb_func_start sub_8197AE8
+sub_8197AE8: @ 8197AE8
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ cmp r4, 0x1
+ bne _08197B12
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+_08197B12:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8197AE8
+
+ thumb_func_start sub_8197B1C
+sub_8197B1C: @ 8197B1C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CD9C
+ strh r2, [r0]
+ ldr r0, =gUnknown_0203CD9E
+ strb r3, [r0]
+ ldr r1, =sub_8197BB4
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _08197B52
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197B52:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197B1C
+
+ thumb_func_start sub_8197B64
+sub_8197B64: @ 8197B64
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CD9C
+ strh r2, [r0]
+ ldr r5, =gUnknown_0203CD9E
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl GetWindowAttribute
+ strb r0, [r5]
+ ldr r1, =sub_8197BB4
+ adds r0, r6, 0
+ bl CallWindowFunction
+ adds r0, r6, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r6, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _08197BA2
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197BA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197B64
+
+ thumb_func_start sub_8197BB4
+sub_8197BB4: @ 8197BB4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r8, r0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r2, [sp, 0x44]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r1, 24
+ lsls r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x10]
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r3, r0, 24
+ str r3, [sp, 0xC]
+ movs r3, 0xFE
+ lsls r3, 24
+ adds r2, r0, r3
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsrs r0, r5, 24
+ mov r9, r0
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r4, 0x1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldr r3, =gUnknown_0203CD9E
+ mov r10, r3
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x14]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r1, [r0]
+ adds r1, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ subs r0, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x18]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0x4
+ lsls r1, 16
+ lsrs r1, 16
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0xC]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ adds r7, r0, r6
+ subs r0, r7, 0x1
+ lsls r2, r0, 24
+ lsrs r2, 24
+ str r2, [sp, 0x20]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x20]
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, r7, 24
+ lsrs r7, r2, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r2, r7, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ movs r5, 0x5
+ str r5, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x14]
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0x9
+ lsls r1, 16
+ lsrs r1, 16
+ adds r6, 0x1
+ lsls r6, 24
+ lsrs r6, 24
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x18]
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r3, =gUnknown_0203CD9C
+ ldrh r1, [r3]
+ adds r1, 0xA
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r2, r7, 0
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r3, =0x00000801
+ adds r1, r3, 0
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x10]
+ add r9, r2
+ mov r3, r9
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x14]
+ bl FillBgTilemapBufferRect
+ ldr r3, =0x00000803
+ adds r1, r3, 0
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r10
+ ldrb r0, [r2]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x18]
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r3, =0x00000804
+ adds r1, r3, 0
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x1C]
+ str r2, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r10
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0xC]
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r0, =0x00000805
+ adds r1, r0, 0
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r10
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r2, [sp, 0x20]
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ ldr r0, =0x00000806
+ adds r1, r0, 0
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r2, [r2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r3, r10
+ ldrb r0, [r3]
+ str r0, [sp, 0x8]
+ mov r0, r8
+ adds r2, r7, 0
+ mov r3, r9
+ bl FillBgTilemapBufferRect
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197BB4
+
+ thumb_func_start sub_8197DF8
+sub_8197DF8: @ 8197DF8
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_8197E30
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl ClearWindowTilemap
+ cmp r4, 0x1
+ bne _08197E26
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197E26:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197DF8
+
+ thumb_func_start sub_8197E30
+sub_8197E30: @ 8197E30
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFD
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ movs r2, 0x80
+ lsls r2, 18
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8197E30
+
+ thumb_func_start SetWindowBorderStyle
+@ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette)
+SetWindowBorderStyle: @ 8197E80
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CD9C
+ strh r2, [r0]
+ ldr r0, =gUnknown_0203CD9E
+ strb r3, [r0]
+ ldr r1, =DrawWindowBorder
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _08197EB6
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197EB6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SetWindowBorderStyle
+
+ thumb_func_start sub_8197EC8
+sub_8197EC8: @ 8197EC8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CD9C
+ strh r2, [r0]
+ ldr r5, =gUnknown_0203CD9E
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl GetWindowAttribute
+ strb r0, [r5]
+ ldr r1, =DrawWindowBorder
+ adds r0, r6, 0
+ bl CallWindowFunction
+ adds r0, r6, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ adds r0, r6, 0
+ bl PutWindowTilemap
+ cmp r4, 0x1
+ bne _08197F06
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08197F06:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8197EC8
+
+ thumb_func_start DrawWindowBorder
+DrawWindowBorder: @ 8197F18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r9, r0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x38]
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r6, 24
+ lsls r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ lsrs r0, r6, 24
+ str r0, [sp, 0xC]
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r6, r2
+ lsrs r6, 24
+ lsrs r0, r4, 24
+ mov r8, r0
+ adds r4, r2
+ lsrs r4, 24
+ movs r5, 0x1
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldr r7, =gUnknown_0203CD9E
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ ldr r2, [sp, 0xC]
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ adds r1, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0xC]
+ ldr r2, [sp, 0x10]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ adds r3, r4, 0
+ bl FillBgTilemapBufferRect
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r1, [r0]
+ adds r1, 0x3
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ ldr r2, [sp, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ mov r3, r8
+ bl FillBgTilemapBufferRect
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r1, [r0]
+ adds r1, 0x5
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ ldr r2, [sp, 0x14]
+ str r2, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ mov r3, r8
+ bl FillBgTilemapBufferRect
+ ldr r0, =gUnknown_0203CD9C
+ ldrh r1, [r0]
+ adds r1, 0x6
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, [sp, 0x14]
+ add r8, r2
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ adds r2, r6, 0
+ mov r3, r8
+ bl FillBgTilemapBufferRect
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ adds r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, [sp, 0x10]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ ldr r2, [sp, 0xC]
+ mov r3, r8
+ bl FillBgTilemapBufferRect
+ ldr r2, =gUnknown_0203CD9C
+ ldrh r1, [r2]
+ adds r1, 0x8
+ lsls r1, 16
+ lsrs r1, 16
+ str r5, [sp]
+ str r5, [sp, 0x4]
+ ldrb r0, [r7]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r2, r10
+ mov r3, r8
+ bl FillBgTilemapBufferRect
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end DrawWindowBorder
+
+ thumb_func_start sub_8198070
+sub_8198070: @ 8198070
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =sub_81980A8
+ adds r0, r5, 0
+ bl CallWindowFunction
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r5, 0
+ bl ClearWindowTilemap
+ cmp r4, 0x1
+ bne _0819809E
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819809E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8198070
+
+ thumb_func_start sub_81980A8
+sub_81980A8: @ 81980A8
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsls r5, 24
+ lsls r3, 24
+ lsls r1, 24
+ movs r2, 0xFF
+ lsls r2, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r5, r2
+ lsrs r5, 24
+ movs r2, 0x80
+ lsls r2, 18
+ adds r3, r2
+ lsrs r3, 24
+ str r3, [sp]
+ adds r1, r2
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81980A8
+
+ thumb_func_start sub_81980F0
+sub_81980F0: @ 81980F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ cmp r6, 0x3
+ bls _08198126
+ movs r1, 0
+ mov r0, sp
+ strb r1, [r0]
+ b _0819812A
+_08198126:
+ mov r0, sp
+ strb r6, [r0]
+_0819812A:
+ mov r1, sp
+ mov r0, r8
+ strb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ movs r0, 0x1E
+ subs r0, r7
+ strb r0, [r1, 0x1]
+ strb r7, [r1, 0x3]
+ strb r5, [r1, 0x5]
+ strh r4, [r1, 0x6]
+ ldr r4, =gUnknown_0203CDA0
+ mov r0, sp
+ bl AddWindow
+ strb r0, [r4]
+ cmp r5, 0xF
+ bls _08198158
+ movs r5, 0xF0
+ b _0819815C
+ .pool
+_08198158:
+ lsls r0, r5, 28
+ lsrs r5, r0, 24
+_0819815C:
+ ldr r0, =gUnknown_0860F0B0
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0203CDA0
+ ldrb r0, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81980F0
+
+ thumb_func_start sub_8198180
+sub_8198180: @ 8198180
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldr r5, =gUnknown_0203CDA0
+ ldrb r0, [r5]
+ cmp r0, 0xFF
+ beq _081981EE
+ bl PutWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0xFF
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetStringWidth
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ movs r2, 0xEC
+ subs r2, r7
+ lsls r0, 3
+ subs r2, r0
+ subs r2, r4
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r0, [r5]
+ ldr r1, =gUnknown_0860F0D0
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r3, 0x1
+ bl box_print
+ mov r0, r8
+ cmp r0, 0
+ beq _081981EE
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+_081981EE:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8198180
+
+ thumb_func_start sub_8198204
+sub_8198204: @ 8198204
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r10, r0
+ adds r6, r1, 0
+ ldr r0, [sp, 0x38]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, =gUnknown_0203CDA0
+ ldrb r1, [r0]
+ adds r7, r0, 0
+ cmp r1, 0xFF
+ beq _081982C8
+ cmp r2, 0
+ beq _08198244
+ add r0, sp, 0x14
+ strb r4, [r0]
+ adds r1, r0, 0
+ b _0819824A
+ .pool
+_08198244:
+ add r1, sp, 0x14
+ movs r0, 0xF
+ strb r0, [r1]
+_0819824A:
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ adds r5, r7, 0
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0xFF
+ bl FillWindowPixelBuffer
+ cmp r6, 0
+ beq _0819829E
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0
+ bl GetStringWidth
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ movs r2, 0xEC
+ mov r1, r8
+ subs r2, r1
+ lsls r0, 3
+ subs r2, r0
+ subs r2, r4
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r0, [r5]
+ add r1, sp, 0x14
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r3, 0x1
+ bl box_print
+_0819829E:
+ ldrb r0, [r7]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ add r2, sp, 0x14
+ str r2, [sp, 0x8]
+ str r1, [sp, 0xC]
+ mov r1, r10
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r2, 0x4
+ movs r3, 0x1
+ bl AddTextPrinterParametrized2
+ mov r2, r9
+ cmp r2, 0
+ beq _081982C8
+ ldrb r0, [r7]
+ movs r1, 0x3
+ bl CopyWindowToVram
+_081982C8:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8198204
+
+ thumb_func_start sub_81982D8
+sub_81982D8: @ 81982D8
+ push {lr}
+ ldr r1, =gUnknown_0203CDA0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081982E8
+ movs r1, 0x3
+ bl CopyWindowToVram
+_081982E8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81982D8
+
+ thumb_func_start sub_81982F0
+sub_81982F0: @ 81982F0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CDA0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _08198308
+ movs r1, 0xFF
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+_08198308:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81982F0
+
+ thumb_func_start sub_8198314
+sub_8198314: @ 8198314
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CDA0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _0819833C
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+_0819833C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8198314
+
+ thumb_func_start sub_8198348
+sub_8198348: @ 8198348
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ mov r8, r4
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ ldr r6, [sp, 0x24]
+ mov r12, r6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r7, r5, 24
+ ldr r5, =gUnknown_0203CD90
+ movs r6, 0
+ strb r2, [r5]
+ strb r3, [r5, 0x1]
+ strb r6, [r5, 0x3]
+ subs r4, 0x1
+ strb r4, [r5, 0x4]
+ strb r0, [r5, 0x5]
+ strb r1, [r5, 0x6]
+ mov r0, r8
+ strb r0, [r5, 0x8]
+ mov r4, r12
+ strb r4, [r5, 0xB]
+ cmp r7, 0
+ blt _08198388
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r7, r0
+ ble _08198390
+_08198388:
+ strb r6, [r5, 0x2]
+ b _08198392
+ .pool
+_08198390:
+ strb r7, [r5, 0x2]
+_08198392:
+ movs r0, 0
+ bl MoveMenuCursor
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8198348
+
+ thumb_func_start sub_81983AC
+sub_81983AC: @ 81983AC
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r4, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ ldr r6, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ bl sub_8198348
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81983AC
+
+ thumb_func_start sub_81983EC
+sub_81983EC: @ 81983EC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x14
+ mov r8, r0
+ adds r6, r1, 0
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x1
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ mov r0, r8
+ adds r1, r6, 0
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ bl sub_81983AC
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81983EC
+
+ thumb_func_start RedrawMenuCursor
+@ void RedrawMenuCursor(s8 oldPos, s8 newPos)
+RedrawMenuCursor: @ 8198448
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r5, =gUnknown_0203CD90
+ ldrb r0, [r5, 0x6]
+ movs r1, 0
+ bl GetMenuCursorDimensionByFont
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5, 0x6]
+ movs r1, 0x1
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r5, 0x5]
+ mov r9, r1
+ ldrb r2, [r5]
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r6
+ ldrb r6, [r5, 0x1]
+ adds r3, r6
+ lsls r3, 16
+ lsrs r3, 16
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ movs r1, 0x11
+ bl FillWindowPixelRect
+ ldrb r0, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ ldr r2, =gUnknown_085EE498
+ ldrb r3, [r5]
+ ldrb r4, [r5, 0x8]
+ mov r6, r8
+ muls r6, r4
+ adds r4, r6, 0
+ ldrb r5, [r5, 0x1]
+ adds r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RedrawMenuCursor
+
+ thumb_func_start MoveMenuCursor
+@ s8 MoveMenuCursor(s8 cursorDelta)
+MoveMenuCursor: @ 81984D8
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_0203CD90
+ ldrb r5, [r1, 0x2]
+ movs r2, 0x2
+ ldrsb r2, [r1, r2]
+ lsls r0, 24
+ asrs r3, r0, 24
+ adds r2, r3
+ movs r0, 0x3
+ ldrsb r0, [r1, r0]
+ adds r4, r1, 0
+ cmp r2, r0
+ bge _081984FC
+ ldrb r0, [r4, 0x4]
+ b _0819850A
+ .pool
+_081984FC:
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r2, r0
+ ble _08198508
+ ldrb r0, [r4, 0x3]
+ b _0819850A
+_08198508:
+ adds r0, r3, r5
+_0819850A:
+ strb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl RedrawMenuCursor
+ ldrb r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end MoveMenuCursor
+
+ thumb_func_start MoveMenuCursorNoWrapAround
+@ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta)
+MoveMenuCursorNoWrapAround: @ 819851C
+ push {r4,r5,lr}
+ ldr r1, =gUnknown_0203CD90
+ ldrb r5, [r1, 0x2]
+ movs r2, 0x2
+ ldrsb r2, [r1, r2]
+ lsls r0, 24
+ asrs r3, r0, 24
+ adds r2, r3
+ movs r0, 0x3
+ ldrsb r0, [r1, r0]
+ adds r4, r1, 0
+ cmp r2, r0
+ bge _08198540
+ ldrb r0, [r4, 0x3]
+ b _0819854E
+ .pool
+_08198540:
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r2, r0
+ ble _0819854C
+ ldrb r0, [r4, 0x4]
+ b _0819854E
+_0819854C:
+ adds r0, r3, r5
+_0819854E:
+ strb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x2]
+ adds r0, r5, 0
+ bl RedrawMenuCursor
+ ldrb r0, [r4, 0x2]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end MoveMenuCursorNoWrapAround
+
+ thumb_func_start GetMenuCursorPos
+GetMenuCursorPos: @ 8198560
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .pool
+ thumb_func_end GetMenuCursorPos
+
+ thumb_func_start ProcessMenuInput
+ProcessMenuInput: @ 819856C
+ push {r4,lr}
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08198598
+ ldr r4, =gUnknown_0203CD90
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _08198588
+ movs r0, 0x5
+ bl PlaySE
+_08198588:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _081985D2
+ .pool
+_08198598:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081985A6
+ movs r0, 0x1
+ negs r0, r0
+ b _081985D2
+_081985A6:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081985BA
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _081985CA
+_081985BA:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081985CE
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_081985CA:
+ bl MoveMenuCursor
+_081985CE:
+ movs r0, 0x2
+ negs r0, r0
+_081985D2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ProcessMenuInput
+
+ thumb_func_start ProcessMenuInputNoWrapAround
+@ int ProcessMenuInputNoWrapAround()
+ProcessMenuInputNoWrapAround: @ 81985D8
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203CD90
+ ldrb r5, [r4, 0x2]
+ adds r6, r5, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08198608
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _081985F8
+ movs r0, 0x5
+ bl PlaySE
+_081985F8:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _08198650
+ .pool
+_08198608:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08198616
+ movs r0, 0x1
+ negs r0, r0
+ b _08198650
+_08198616:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08198630
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrapAround
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _0819864C
+ b _08198646
+_08198630:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819864C
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrapAround
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _0819864C
+_08198646:
+ movs r0, 0x5
+ bl PlaySE
+_0819864C:
+ movs r0, 0x2
+ negs r0, r0
+_08198650:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end ProcessMenuInputNoWrapAround
+
+ thumb_func_start ProcessMenuInput_other
+ProcessMenuInput_other: @ 8198658
+ push {r4,lr}
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08198684
+ ldr r4, =gUnknown_0203CD90
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _08198674
+ movs r0, 0x5
+ bl PlaySE
+_08198674:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _081986BC
+ .pool
+_08198684:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08198692
+ movs r0, 0x1
+ negs r0, r0
+ b _081986BC
+_08198692:
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _081986A8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _081986B4
+_081986A8:
+ cmp r1, 0x80
+ bne _081986B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_081986B4:
+ bl MoveMenuCursor
+_081986B8:
+ movs r0, 0x2
+ negs r0, r0
+_081986BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ProcessMenuInput_other
+
+ thumb_func_start ProcessMenuInputNoWrapAround_other
+ProcessMenuInputNoWrapAround_other: @ 81986C4
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203CD90
+ ldrb r5, [r4, 0x2]
+ adds r6, r5, 0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081986F4
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _081986E4
+ movs r0, 0x5
+ bl PlaySE
+_081986E4:
+ movs r0, 0x2
+ ldrsb r0, [r4, r0]
+ b _0819873A
+ .pool
+_081986F4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08198702
+ movs r0, 0x1
+ negs r0, r0
+ b _0819873A
+_08198702:
+ ldrh r0, [r2, 0x30]
+ movs r1, 0xF0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _0819871E
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrapAround
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ beq _08198736
+ b _08198730
+_0819871E:
+ cmp r1, 0x80
+ bne _08198736
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrapAround
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08198736
+_08198730:
+ movs r0, 0x5
+ bl PlaySE
+_08198736:
+ movs r0, 0x2
+ negs r0, r0
+_0819873A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end ProcessMenuInputNoWrapAround_other
+
+ thumb_func_start PrintTextArray
+PrintTextArray: @ 8198740
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r7, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _081987A4
+_08198774:
+ lsls r0, r4, 3
+ ldr r1, [sp, 0x34]
+ adds r0, r1
+ ldr r2, [r0]
+ adds r0, r7, 0
+ muls r0, r4
+ add r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ mov r3, r9
+ bl PrintTextOnWindow
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08198774
+_081987A4:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintTextArray
+
+ thumb_func_start sub_81987BC
+sub_81987BC: @ 81987BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x4C]
+ ldr r7, [sp, 0x50]
+ mov r8, r7
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x14]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x18]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r9, r6
+ mov r0, r8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0819883C
+_08198804:
+ lsls r0, r4, 3
+ ldr r1, [sp, 0x48]
+ adds r0, r1
+ ldr r2, [r0]
+ mov r0, r10
+ muls r0, r4
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ str r6, [sp, 0x10]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x14]
+ ldr r3, [sp, 0x18]
+ bl sub_8199F74
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08198804
+_0819883C:
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ 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_81987BC
+
+ thumb_func_start sub_8198854
+sub_8198854: @ 8198854
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ mov r8, r0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ adds r5, r3, 0
+ ldr r7, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetFontAttribute
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r7, [sp, 0x8]
+ mov r0, r8
+ adds r1, r6, 0
+ movs r3, 0x1
+ bl PrintTextArray
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8198854
+
+ thumb_func_start AddItemMenuActionTextPrinters
+AddItemMenuActionTextPrinters: @ 81988A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r6, r1, 0
+ mov r8, r2
+ ldr r1, [sp, 0x38]
+ mov r9, r1
+ ldr r1, [sp, 0x3C]
+ ldr r2, [sp, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r4, r8
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ mov r0, sp
+ ldrb r1, [r0, 0x10]
+ strb r1, [r0, 0x4]
+ strb r6, [r0, 0x5]
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x4
+ bl GetFontAttribute
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ mov r0, sp
+ mov r2, r9
+ strb r2, [r0, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetFontAttribute
+ mov r1, sp
+ strb r0, [r1, 0xB]
+ mov r0, sp
+ mov r4, r8
+ strb r4, [r0, 0x6]
+ strb r4, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _0819899E
+ mov r5, sp
+_0819896E:
+ ldr r1, [sp, 0x48]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r2, [sp, 0x44]
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ mov r0, r10
+ muls r0, r4
+ ldr r1, [sp, 0x14]
+ adds r0, r1, r0
+ strb r0, [r5, 0x7]
+ strb r0, [r5, 0x9]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _0819896E
+_0819899E:
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end AddItemMenuActionTextPrinters
+
+ thumb_func_start sub_81989B8
+sub_81989B8: @ 81989B8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r9, r0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r7, [sp, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetFontAttribute
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetFontAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ str r7, [sp, 0xC]
+ ldr r0, [sp, 0x34]
+ str r0, [sp, 0x10]
+ mov r0, r9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl AddItemMenuActionTextPrinters
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81989B8
+
+ thumb_func_start rbox_template_set
+@ void rbox_template_set(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8)
+rbox_template_set: @ 8198A24
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ ldr r6, [sp, 0x20]
+ ldr r7, [sp, 0x24]
+ mov r8, r7
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r3, [r0, 0x2]
+ strb r4, [r0, 0x3]
+ strb r5, [r0, 0x4]
+ strb r6, [r0, 0x5]
+ mov r1, r8
+ strh r1, [r0, 0x6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end rbox_template_set
+
+ thumb_func_start sub_8198A50
+sub_8198A50: @ 8198A50
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ mov r8, r0
+ ldr r0, [sp, 0x2C]
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ ldr r6, [sp, 0x38]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r6, [sp, 0xC]
+ add r0, sp, 0x10
+ bl rbox_template_set
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ mov r2, r8
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ mov r0, r8
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r2}
+ bx r2
+ thumb_func_end sub_8198A50
+
+ thumb_func_start sub_8198AA4
+sub_8198AA4: @ 8198AA4
+ push {r4-r6,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r0, [sp, 0x28]
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ str r3, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ str r2, [sp, 0xC]
+ add r0, sp, 0x10
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl rbox_template_set
+ add r0, sp, 0x10
+ bl AddWindow
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8198AA4
+
+ thumb_func_start sub_8198AF8
+sub_8198AF8: @ 8198AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r6, r1, 0
+ mov r8, r2
+ mov r9, r3
+ ldr r4, [sp, 0x3C]
+ ldr r5, [sp, 0x40]
+ ldr r1, [sp, 0x44]
+ mov r10, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r10
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r7, =gUnknown_0203CD9F
+ bl AddWindow
+ strb r0, [r7]
+ ldrb r0, [r7]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl SetWindowBorderStyle
+ ldr r0, =gUnknown_085EE491
+ str r0, [sp, 0xC]
+ add r1, sp, 0xC
+ ldrb r0, [r7]
+ strb r0, [r1, 0x4]
+ adds r0, r1, 0
+ strb r6, [r0, 0x5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetFontAttribute
+ add r1, sp, 0xC
+ add r0, r8
+ strb r0, [r1, 0x6]
+ adds r0, r1, 0
+ mov r1, r9
+ strb r1, [r0, 0x7]
+ adds r1, r0, 0
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x8]
+ adds r0, r1, 0
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl GetFontAttribute
+ add r3, sp, 0xC
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl GetFontAttribute
+ add r3, sp, 0xC
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl GetFontAttribute
+ add r3, sp, 0xC
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x4
+ bl GetFontAttribute
+ add r1, sp, 0xC
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl GetFontAttribute
+ add r1, sp, 0xC
+ strb r0, [r1, 0xA]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetFontAttribute
+ add r1, sp, 0xC
+ strb r0, [r1, 0xB]
+ adds r0, r1, 0
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetFontAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r7]
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ mov r0, r10
+ str r0, [sp, 0x8]
+ adds r0, r1, 0
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_81983AC
+ 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_8198AF8
+
+ thumb_func_start sub_8198C34
+sub_8198C34: @ 8198C34
+ push {lr}
+ sub sp, 0xC
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 24
+ lsrs r3, 24
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r3, 0x1
+ bl sub_8198AF8
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8198C34
+
+ thumb_func_start sub_8198C58
+sub_8198C58: @ 8198C58
+ push {r4,lr}
+ bl ProcessMenuInputNoWrapAround
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _08198C6E
+ bl sub_8198C78
+_08198C6E:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8198C58
+
+ thumb_func_start sub_8198C78
+sub_8198C78: @ 8198C78
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CD9F
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl RemoveWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8198C78
+
+ thumb_func_start sub_8198C94
+sub_8198C94: @ 8198C94
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ ldr r7, [sp, 0x4C]
+ mov r8, r7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x18]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x1C]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r5, 0
+ cmp r5, r9
+ bcs _08198D3A
+_08198CE0:
+ movs r4, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r4, r6
+ bcs _08198D30
+ ldr r7, [sp, 0x1C]
+ adds r0, r7, 0
+ muls r0, r5
+ ldr r1, [sp, 0x14]
+ adds r0, r1, r0
+ lsls r0, 24
+ lsrs r7, r0, 24
+_08198CF8:
+ adds r0, r5, 0
+ muls r0, r6
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, [sp, 0x50]
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, [sp, 0x18]
+ adds r3, r0, 0
+ muls r3, r4
+ ldr r1, [sp, 0x10]
+ adds r3, r1, r3
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r0, r10
+ ldr r1, [sp, 0xC]
+ bl PrintTextOnWindow
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08198CF8
+_08198D30:
+ mov r7, r8
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, r9
+ bcc _08198CE0
+_08198D3A:
+ mov r0, r10
+ movs r1, 0x2
+ bl CopyWindowToVram
+ 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_8198C94
+
+ thumb_func_start sub_8198D54
+sub_8198D54: @ 8198D54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ mov r9, r0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r5, r3, 0
+ ldr r6, [sp, 0x34]
+ ldr r3, [sp, 0x38]
+ ldr r7, [sp, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0
+ str r3, [sp, 0x14]
+ bl GetFontAttribute
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ ldr r3, [sp, 0x14]
+ str r3, [sp, 0xC]
+ str r7, [sp, 0x10]
+ mov r0, r9
+ mov r1, r8
+ movs r3, 0
+ bl sub_8198C94
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8198D54
+
+ thumb_func_start sub_8198DBC
+sub_8198DBC: @ 8198DBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r6, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x14]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x18]
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x1C]
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ lsls r6, 24
+ lsrs r6, 24
+ mov r10, r6
+ mov r0, sp
+ ldrb r1, [r0, 0x10]
+ strb r1, [r0, 0x4]
+ strb r7, [r0, 0x5]
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r7, 0
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ adds r0, r7, 0
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ adds r0, r7, 0
+ movs r1, 0x4
+ bl GetFontAttribute
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl GetFontAttribute
+ mov r1, sp
+ strb r0, [r1, 0xA]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl GetFontAttribute
+ mov r1, sp
+ strb r0, [r1, 0xB]
+ movs r6, 0
+ cmp r6, r10
+ bcs _08198EDE
+_08198E7A:
+ movs r5, 0
+ adds r2, r6, 0x1
+ mov r9, r2
+ cmp r5, r8
+ bcs _08198ED4
+ mov r4, sp
+_08198E86:
+ mov r0, r8
+ muls r0, r6
+ adds r0, r5
+ ldr r1, [sp, 0x50]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r2, [sp, 0x4C]
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, 0
+ muls r0, r5
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r0
+ strb r0, [r4, 0x6]
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl GetFontAttribute
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, [sp, 0x18]
+ adds r1, r0, r1
+ strb r1, [r4, 0x7]
+ ldrb r0, [r4, 0x6]
+ strb r0, [r4, 0x8]
+ strb r1, [r4, 0x9]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r8
+ bcc _08198E86
+_08198ED4:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, r10
+ bcc _08198E7A
+_08198EDE:
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ 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_8198DBC
+
+ thumb_func_start sub_8198EF8
+sub_8198EF8: @ 8198EF8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ mov r8, r0
+ adds r3, r1, 0
+ adds r4, r2, 0
+ ldr r5, [sp, 0x30]
+ ldr r6, [sp, 0x34]
+ ldr r7, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r3, 0
+ movs r1, 0
+ str r3, [sp, 0x14]
+ bl GetFontAttribute
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r7, [sp, 0xC]
+ ldr r0, [sp, 0x3C]
+ str r0, [sp, 0x10]
+ mov r0, r8
+ ldr r3, [sp, 0x14]
+ adds r1, r3, 0
+ movs r3, 0
+ bl sub_8198DBC
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8198EF8
+
+ thumb_func_start sub_8198F58
+sub_8198F58: @ 8198F58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ mov r12, r4
+ ldr r4, [sp, 0x24]
+ mov r8, r4
+ ldr r4, [sp, 0x28]
+ mov r9, r4
+ ldr r4, [sp, 0x2C]
+ mov r10, r4
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r7, r5, 24
+ ldr r5, =gUnknown_0203CD90
+ movs r6, 0
+ strb r2, [r5]
+ strb r3, [r5, 0x1]
+ strb r6, [r5, 0x3]
+ subs r4, 0x1
+ strb r4, [r5, 0x4]
+ strb r0, [r5, 0x5]
+ strb r1, [r5, 0x6]
+ mov r0, r12
+ strb r0, [r5, 0x7]
+ mov r4, r8
+ strb r4, [r5, 0x8]
+ mov r0, r9
+ strb r0, [r5, 0x9]
+ mov r4, r10
+ strb r4, [r5, 0xA]
+ cmp r7, 0
+ blt _08198FAC
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r7, r0
+ ble _08198FB4
+_08198FAC:
+ strb r6, [r5, 0x2]
+ b _08198FB6
+ .pool
+_08198FB4:
+ strb r7, [r5, 0x2]
+_08198FB6:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8199134
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8198F58
+
+ thumb_func_start sub_8198FD4
+sub_8198FD4: @ 8198FD4
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x20
+ mov r9, r0
+ mov r8, r1
+ mov r10, r2
+ ldr r6, [sp, 0x3C]
+ ldr r4, [sp, 0x40]
+ ldr r5, [sp, 0x44]
+ ldr r2, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ movs r1, 0x1
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ muls r1, r5
+ lsls r1, 24
+ lsrs r1, 24
+ str r6, [sp]
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r1, [sp, 0x10]
+ ldr r2, [sp, 0x18]
+ str r2, [sp, 0x14]
+ mov r0, r9
+ mov r1, r8
+ mov r2, r10
+ ldr r3, [sp, 0x1C]
+ bl sub_8198F58
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8198FD4
+
+ thumb_func_start sub_8199060
+sub_8199060: @ 8199060
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ ldr r5, =gUnknown_0203CD90
+ ldrb r0, [r5, 0x6]
+ movs r1, 0
+ bl GetMenuCursorDimensionByFont
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldrb r0, [r5, 0x6]
+ movs r1, 0x1
+ bl GetMenuCursorDimensionByFont
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldrb r0, [r5, 0x9]
+ mov r10, r0
+ mov r0, r8
+ mov r1, r10
+ bl __umodsi3
+ ldrb r1, [r5, 0x7]
+ adds r4, r1, 0
+ muls r4, r0
+ ldrb r1, [r5]
+ adds r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r8
+ mov r1, r10
+ bl __udivsi3
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r0
+ ldrb r0, [r5, 0x1]
+ adds r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r5, 0x5]
+ mov r1, r9
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ movs r1, 0x11
+ adds r2, r4, 0
+ bl FillWindowPixelRect
+ ldrb r6, [r5, 0x9]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl __umodsi3
+ ldrb r1, [r5, 0x7]
+ adds r4, r1, 0
+ muls r4, r0
+ ldrb r0, [r5]
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl __udivsi3
+ ldrb r1, [r5, 0x8]
+ adds r3, r1, 0
+ muls r3, r0
+ ldrb r1, [r5, 0x1]
+ adds r3, r1
+ lsls r3, 24
+ lsrs r3, 24
+ ldrb r0, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ ldr r2, =gUnknown_085EE498
+ str r3, [sp]
+ movs r3, 0
+ str r3, [sp, 0x4]
+ str r3, [sp, 0x8]
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ 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_8199060
+
+ thumb_func_start sub_8199134
+sub_8199134: @ 8199134
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r1, =gUnknown_0203CD90
+ ldrb r2, [r1, 0x2]
+ mov r8, r2
+ lsls r0, 24
+ asrs r6, r0, 24
+ adds r5, r1, 0
+ cmp r6, 0
+ beq _0819918A
+ movs r7, 0x2
+ ldrsb r7, [r5, r7]
+ ldrb r4, [r5, 0x9]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __modsi3
+ adds r0, r6
+ cmp r0, 0
+ bge _08199174
+ adds r0, r4, 0
+ adds r0, 0xFF
+ add r0, r8
+ b _08199188
+ .pool
+_08199174:
+ cmp r0, r4
+ blt _08199184
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl __divsi3
+ muls r0, r4
+ b _08199188
+_08199184:
+ mov r1, r8
+ adds r0, r6, r1
+_08199188:
+ strb r0, [r5, 0x2]
+_0819918A:
+ mov r2, r9
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ cmp r6, 0
+ beq _081991CE
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r4, [r5, 0x9]
+ adds r1, r4, 0
+ bl __divsi3
+ adds r1, r0, r6
+ cmp r1, 0
+ bge _081991B2
+ ldrb r0, [r5, 0xA]
+ subs r0, 0x1
+ muls r0, r4
+ ldrb r1, [r5, 0x2]
+ adds r0, r1
+ b _081991CC
+_081991B2:
+ ldrb r0, [r5, 0xA]
+ cmp r1, r0
+ blt _081991C4
+ subs r0, 0x1
+ adds r1, r4, 0
+ muls r1, r0
+ ldrb r0, [r5, 0x2]
+ subs r0, r1
+ b _081991CC
+_081991C4:
+ adds r0, r4, 0
+ muls r0, r6
+ ldrb r2, [r5, 0x2]
+ adds r0, r2
+_081991CC:
+ strb r0, [r5, 0x2]
+_081991CE:
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bgt _081991E4
+ ldrb r1, [r5, 0x2]
+ mov r0, r8
+ bl sub_8199060
+ b _081991E8
+_081991E4:
+ mov r0, r8
+ strb r0, [r5, 0x2]
+_081991E8:
+ ldrb r0, [r5, 0x2]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8199134
+
+ thumb_func_start sub_81991F8
+sub_81991F8: @ 81991F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r1, =gUnknown_0203CD90
+ ldrb r7, [r1, 0x2]
+ lsls r0, 24
+ asrs r4, r0, 24
+ adds r5, r1, 0
+ cmp r4, 0
+ beq _0819922C
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r6, [r5, 0x9]
+ adds r1, r6, 0
+ bl __modsi3
+ adds r0, r4
+ cmp r0, 0
+ blt _0819922C
+ cmp r0, r6
+ bge _0819922C
+ adds r0, r4, r7
+ strb r0, [r5, 0x2]
+_0819922C:
+ mov r1, r8
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ beq _08199258
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ ldrb r6, [r5, 0x9]
+ adds r1, r6, 0
+ bl __divsi3
+ adds r0, r4
+ cmp r0, 0
+ blt _08199258
+ ldrb r1, [r5, 0xA]
+ cmp r0, r1
+ bge _08199258
+ adds r0, r6, 0
+ muls r0, r4
+ ldrb r1, [r5, 0x2]
+ adds r0, r1
+ strb r0, [r5, 0x2]
+_08199258:
+ movs r1, 0x2
+ ldrsb r1, [r5, r1]
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ cmp r1, r0
+ bgt _08199274
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ bl sub_8199060
+ b _08199276
+ .pool
+_08199274:
+ strb r7, [r5, 0x2]
+_08199276:
+ ldrb r0, [r5, 0x2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81991F8
+
+ thumb_func_start sub_8199284
+sub_8199284: @ 8199284
+ push {r4,lr}
+ ldr r4, =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081992AC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ b _0819932C
+ .pool
+_081992AC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081992BA
+ movs r0, 0x1
+ negs r0, r0
+ b _0819932C
+_081992BA:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081992D0
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08199324
+_081992D0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081992E4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x1
+ b _08199324
+_081992E4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081992F8
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08199304
+_081992F8:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _08199322
+_08199304:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0819931A
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08199328
+_0819931A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_08199322:
+ movs r1, 0
+_08199324:
+ bl sub_8199134
+_08199328:
+ movs r0, 0x2
+ negs r0, r0
+_0819932C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8199284
+
+ thumb_func_start sub_8199334
+sub_8199334: @ 8199334
+ push {r4-r6,lr}
+ ldr r5, =gUnknown_0203CD90
+ ldrb r4, [r5, 0x2]
+ ldr r6, =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0819935C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ ldrsb r0, [r5, r0]
+ b _081993D2
+ .pool
+_0819935C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819936A
+ movs r0, 0x1
+ negs r0, r0
+ b _081993D2
+_0819936A:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819937A
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _081993BC
+_0819937A:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08199388
+ movs r0, 0
+ movs r1, 0x1
+ b _081993BC
+_08199388:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0819939C
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081993A2
+_0819939C:
+ movs r0, 0x1
+ negs r0, r0
+ b _081993BA
+_081993A2:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081993B8
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081993CE
+_081993B8:
+ movs r0, 0x1
+_081993BA:
+ movs r1, 0
+_081993BC:
+ bl sub_81991F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _081993CE
+ movs r0, 0x5
+ bl PlaySE
+_081993CE:
+ movs r0, 0x2
+ negs r0, r0
+_081993D2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8199334
+
+ thumb_func_start sub_81993D8
+sub_81993D8: @ 81993D8
+ push {r4,r5,lr}
+ ldr r4, =gMain
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08199400
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ b _0819947C
+ .pool
+_08199400:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819940E
+ movs r0, 0x1
+ negs r0, r0
+ b _0819947C
+_0819940E:
+ ldrh r0, [r4, 0x30]
+ movs r5, 0xF0
+ adds r1, r5, 0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _08199428
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08199474
+_08199428:
+ cmp r1, 0x80
+ bne _08199438
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x1
+ b _08199474
+_08199438:
+ cmp r1, 0x20
+ beq _08199448
+ bl sub_812210C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08199454
+_08199448:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _08199472
+_08199454:
+ ldrh r1, [r4, 0x30]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x10
+ beq _0819946A
+ bl sub_812210C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08199478
+_0819946A:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_08199472:
+ movs r1, 0
+_08199474:
+ bl sub_8199134
+_08199478:
+ movs r0, 0x2
+ negs r0, r0
+_0819947C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81993D8
+
+ thumb_func_start sub_8199484
+sub_8199484: @ 8199484
+ push {r4-r6,lr}
+ ldr r6, =gUnknown_0203CD90
+ ldrb r4, [r6, 0x2]
+ ldr r5, =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081994AC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ ldrsb r0, [r6, r0]
+ b _0819951E
+ .pool
+_081994AC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081994BA
+ movs r0, 0x1
+ negs r0, r0
+ b _0819951E
+_081994BA:
+ ldrh r0, [r5, 0x30]
+ movs r6, 0xF0
+ adds r1, r6, 0
+ ands r1, r0
+ cmp r1, 0x40
+ bne _081994CE
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ b _08199508
+_081994CE:
+ cmp r1, 0x80
+ bne _081994D8
+ movs r0, 0
+ movs r1, 0x1
+ b _08199508
+_081994D8:
+ cmp r1, 0x20
+ beq _081994E8
+ bl sub_812210C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081994EE
+_081994E8:
+ movs r0, 0x1
+ negs r0, r0
+ b _08199506
+_081994EE:
+ ldrh r1, [r5, 0x30]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x10
+ beq _08199504
+ bl sub_812210C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0819951A
+_08199504:
+ movs r0, 0x1
+_08199506:
+ movs r1, 0
+_08199508:
+ bl sub_81991F8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0819951A
+ movs r0, 0x5
+ bl PlaySE
+_0819951A:
+ movs r0, 0x2
+ negs r0, r0
+_0819951E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8199484
+
+ thumb_func_start InitMenuInUpperLeftCorner
+@ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed)
+InitMenuInUpperLeftCorner: @ 8199524
+ push {r4-r6,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, =gUnknown_0203CD90
+ movs r6, 0
+ strb r6, [r4]
+ movs r2, 0x1
+ strb r2, [r4, 0x1]
+ strb r6, [r4, 0x3]
+ subs r1, 0x1
+ strb r1, [r4, 0x4]
+ strb r0, [r4, 0x5]
+ strb r2, [r4, 0x6]
+ movs r0, 0x10
+ strb r0, [r4, 0x8]
+ strb r3, [r4, 0xB]
+ cmp r5, 0
+ blt _08199554
+ movs r0, 0x4
+ ldrsb r0, [r4, r0]
+ cmp r5, r0
+ ble _0819955C
+_08199554:
+ strb r6, [r4, 0x2]
+ b _0819955E
+ .pool
+_0819955C:
+ strb r5, [r4, 0x2]
+_0819955E:
+ movs r0, 0
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end InitMenuInUpperLeftCorner
+
+ thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0
+ bl InitMenuInUpperLeftCorner
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+
+ thumb_func_start PrintMenuTable
+PrintMenuTable: @ 819958C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r5, 0
+ cmp r5, r7
+ bcs _081995D0
+ movs r6, 0x80
+ lsls r6, 17
+ adds r4, r2, 0
+_081995AA:
+ ldr r2, [r4]
+ lsrs r0, r6, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r0, r8
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0x80
+ lsls r0, 21
+ adds r6, r0
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, r7
+ bcc _081995AA
+_081995D0:
+ mov r0, r8
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end PrintMenuTable
+
+ thumb_func_start sub_81995E4
+sub_81995E4: @ 81995E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r9, r2
+ mov r8, r3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ mov r0, sp
+ movs r1, 0
+ mov r10, r1
+ strb r6, [r0, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ movs r0, 0x1
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x4
+ bl GetFontAttribute
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ mov r0, sp
+ mov r1, r10
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ movs r1, 0x8
+ strb r1, [r0, 0x6]
+ strb r1, [r0, 0x8]
+ movs r4, 0
+ cmp r4, r7
+ bcs _081996A6
+ mov r5, sp
+_0819967C:
+ mov r1, r8
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r9
+ ldr r0, [r0]
+ str r0, [sp]
+ lsls r0, r4, 4
+ adds r0, 0x1
+ strb r0, [r5, 0x7]
+ strb r0, [r5, 0x9]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _0819967C
+_081996A6:
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81995E4
+
+ thumb_func_start CreateYesNoMenu
+@ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos)
+CreateYesNoMenu: @ 81996C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r1, =gUnknown_0203CD9F
+ mov r8, r1
+ bl AddWindow
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl SetWindowBorderStyle
+ ldr r0, =gUnknown_085EE491
+ str r0, [sp]
+ mov r1, sp
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r2, 0
+ mov r9, r2
+ strb r0, [r1, 0x4]
+ mov r0, sp
+ movs r2, 0x1
+ strb r2, [r0, 0x5]
+ movs r0, 0x8
+ strb r0, [r1, 0x6]
+ mov r0, sp
+ strb r2, [r0, 0x7]
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ movs r0, 0x1
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ movs r0, 0x1
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x4
+ bl GetFontAttribute
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ mov r0, sp
+ mov r1, r9
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CreateYesNoMenu
+
+ thumb_func_start sub_81997AC
+sub_81997AC: @ 81997AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x10]
+ movs r7, 0
+ cmp r7, r3
+ bcs _08199824
+_081997D4:
+ movs r4, 0
+ adds r0, r7, 0x1
+ mov r9, r0
+ cmp r4, r6
+ bcs _0819981C
+ lsls r0, r7, 4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0x80
+ lsls r5, 20
+_081997EC:
+ adds r0, r7, 0
+ muls r0, r6
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, [sp, 0x34]
+ adds r0, r1
+ ldr r2, [r0]
+ lsrs r3, r5, 24
+ mov r0, r8
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r0, r10
+ movs r1, 0x1
+ bl PrintTextOnWindow
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ adds r5, r0
+ adds r4, 0x1
+ cmp r4, r6
+ bcc _081997EC
+_0819981C:
+ mov r7, r9
+ ldr r4, [sp, 0x10]
+ cmp r7, r4
+ bcc _081997D4
+_08199824:
+ mov r0, r10
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81997AC
+
+ thumb_func_start sub_819983C
+sub_819983C: @ 819983C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x14]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ mov r0, sp
+ movs r6, 0
+ ldrb r1, [r0, 0x10]
+ strb r1, [r0, 0x4]
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r5, 0xF
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ movs r0, 0x1
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r3, sp
+ adds r1, r5, 0
+ ands r1, r0
+ ldrb r2, [r3, 0xD]
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xD]
+ adds r1, r5, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ movs r0, 0x1
+ movs r1, 0x4
+ bl GetFontAttribute
+ mov r1, sp
+ ands r5, r0
+ ldrb r0, [r1, 0xC]
+ ands r4, r0
+ orrs r4, r5
+ strb r4, [r1, 0xC]
+ mov r0, sp
+ strb r6, [r0, 0xA]
+ strb r6, [r0, 0xB]
+ movs r7, 0
+ cmp r7, r10
+ bcs _0819992A
+_081998D6:
+ movs r5, 0
+ adds r2, r7, 0x1
+ mov r9, r2
+ cmp r5, r8
+ bcs _08199920
+ mov r4, sp
+ lsls r0, r7, 4
+ adds r6, r0, 0x1
+_081998E6:
+ mov r0, r8
+ muls r0, r7
+ adds r0, r5
+ ldr r1, [sp, 0x3C]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ ldr r2, [sp, 0x38]
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r1, [sp, 0x14]
+ adds r0, r1, 0
+ muls r0, r5
+ adds r0, 0x8
+ strb r0, [r4, 0x6]
+ strb r6, [r4, 0x7]
+ strb r0, [r4, 0x8]
+ strb r6, [r4, 0x9]
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0
+ bl AddTextPrinter
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r8
+ bcc _081998E6
+_08199920:
+ mov r2, r9
+ lsls r0, r2, 24
+ lsrs r7, r0, 24
+ cmp r7, r10
+ bcc _081998D6
+_0819992A:
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819983C
+
+ thumb_func_start sub_8199944
+sub_8199944: @ 8199944
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r7, r4, 24
+ ldr r6, =gUnknown_0203CD90
+ movs r4, 0
+ mov r12, r4
+ mov r4, r12
+ strb r4, [r6]
+ movs r5, 0x1
+ strb r5, [r6, 0x1]
+ strb r4, [r6, 0x3]
+ adds r4, r2, 0
+ muls r4, r3
+ subs r4, 0x1
+ strb r4, [r6, 0x4]
+ strb r0, [r6, 0x5]
+ strb r5, [r6, 0x6]
+ strb r1, [r6, 0x7]
+ movs r0, 0x10
+ strb r0, [r6, 0x8]
+ strb r2, [r6, 0x9]
+ strb r3, [r6, 0xA]
+ cmp r7, 0
+ blt _08199986
+ movs r0, 0x4
+ ldrsb r0, [r6, r0]
+ cmp r7, r0
+ ble _08199990
+_08199986:
+ mov r0, r12
+ strb r0, [r6, 0x2]
+ b _08199992
+ .pool
+_08199990:
+ strb r7, [r6, 0x2]
+_08199992:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8199134
+ ldr r0, =gUnknown_0203CD90
+ ldrb r0, [r0, 0x2]
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8199944
+
+ thumb_func_start clear_scheduled_bg_copies_to_vram
+@ void clear_scheduled_bg_copies_to_vram()
+clear_scheduled_bg_copies_to_vram: @ 81999A8
+ push {lr}
+ ldr r0, =gUnknown_0203CDA4
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end clear_scheduled_bg_copies_to_vram
+
+ thumb_func_start schedule_bg_copy_tilemap_to_vram
+@ void schedule_bg_copy_tilemap_to_vram(u8 bg_id)
+schedule_bg_copy_tilemap_to_vram: @ 81999BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CDA4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end schedule_bg_copy_tilemap_to_vram
+
+ thumb_func_start do_scheduled_bg_tilemap_copies_to_vram
+@ void do_scheduled_bg_tilemap_copies_to_vram()
+do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CDA4
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _081999E4
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ strb r0, [r4]
+_081999E4:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1
+ bne _081999F4
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ strb r0, [r4, 0x1]
+_081999F4:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ bne _08199A04
+ movs r0, 0x2
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ strb r0, [r4, 0x2]
+_08199A04:
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0x1
+ bne _08199A14
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ strb r0, [r4, 0x3]
+_08199A14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end do_scheduled_bg_tilemap_copies_to_vram
+
+ thumb_func_start reset_temp_tile_data_buffers
+@ void reset_temp_tile_data_buffers()
+reset_temp_tile_data_buffers: @ 8199A20
+ push {lr}
+ ldr r3, =gUnknown_0203CDA8
+ ldr r1, =gUnknown_0203CDAC
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0x7C
+_08199A2C:
+ str r2, [r0]
+ subs r0, 0x4
+ cmp r0, r1
+ bge _08199A2C
+ movs r0, 0
+ strh r0, [r3]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end reset_temp_tile_data_buffers
+
+ thumb_func_start free_temp_tile_data_buffers_if_possible
+free_temp_tile_data_buffers_if_possible: @ 8199A44
+ push {r4-r6,lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _08199A88
+ ldr r1, =gUnknown_0203CDA8
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08199A7C
+ movs r4, 0
+ ldrh r1, [r1]
+ cmp r4, r1
+ bge _08199A76
+ ldr r5, =gUnknown_0203CDAC
+ movs r6, 0
+_08199A64:
+ ldr r0, [r5]
+ bl Free
+ stm r5!, {r6}
+ adds r4, 0x1
+ ldr r0, =gUnknown_0203CDA8
+ ldrh r0, [r0]
+ cmp r4, r0
+ blt _08199A64
+_08199A76:
+ ldr r1, =gUnknown_0203CDA8
+ movs r0, 0
+ strh r0, [r1]
+_08199A7C:
+ movs r0, 0
+ b _08199A8A
+ .pool
+_08199A88:
+ movs r0, 0x1
+_08199A8A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end free_temp_tile_data_buffers_if_possible
+
+ thumb_func_start decompress_and_copy_tile_data_to_vram
+@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode)
+decompress_and_copy_tile_data_to_vram: @ 8199A90
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r4, r1, 0
+ adds r5, r2, 0
+ ldr r1, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r6, =gUnknown_0203CDA8
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ bhi _08199AF8
+ adds r0, r4, 0
+ add r1, sp, 0x4
+ bl malloc_and_decompress
+ adds r4, r0, 0
+ cmp r5, 0
+ bne _08199AC8
+ ldr r5, [sp, 0x4]
+_08199AC8:
+ cmp r4, 0
+ beq _08199AEC
+ lsls r2, r5, 16
+ lsrs r2, 16
+ str r7, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ mov r3, r9
+ bl copy_decompressed_tile_data_to_vram
+ ldr r2, =gUnknown_0203CDAC
+ ldrh r0, [r6]
+ adds r1, r0, 0x1
+ strh r1, [r6]
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r2
+ str r4, [r0]
+_08199AEC:
+ adds r0, r4, 0
+ b _08199AFA
+ .pool
+_08199AF8:
+ movs r0, 0
+_08199AFA:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end decompress_and_copy_tile_data_to_vram
+
+ thumb_func_start copy_decompressed_tile_data_to_vram_autofree
+@ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
+copy_decompressed_tile_data_to_vram_autofree: @ 8199B08
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r5, r2, 0
+ ldr r2, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ lsls r2, 24
+ lsrs r7, r2, 24
+ adds r0, r1, 0
+ add r1, sp, 0x4
+ bl malloc_and_decompress
+ adds r6, r0, 0
+ cmp r5, 0
+ bne _08199B36
+ ldr r5, [sp, 0x4]
+_08199B36:
+ cmp r6, 0
+ beq _08199B6E
+ ldr r0, =task_free_buf_after_copying_tile_data_to_vram
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, r5, 16
+ lsrs r2, 16
+ str r7, [sp]
+ mov r0, r8
+ adds r1, r6, 0
+ mov r3, r9
+ bl copy_decompressed_tile_data_to_vram
+ ldr r2, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ bl SetWordTaskArg
+_08199B6E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end copy_decompressed_tile_data_to_vram_autofree
+
+ thumb_func_start task_free_buf_after_copying_tile_data_to_vram
+@ void task_free_buf_after_copying_tile_data_to_vram(int task_id)
+task_free_buf_after_copying_tile_data_to_vram: @ 8199B84
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ bl CheckForSpaceForDma3Request
+ lsls r0, 16
+ cmp r0, 0
+ bne _08199BB4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetWordTaskArg
+ bl Free
+ adds r0, r4, 0
+ bl DestroyTask
+_08199BB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_free_buf_after_copying_tile_data_to_vram
+
+ thumb_func_start malloc_and_decompress
+@ void *malloc_and_decompress(void *src, int *size)
+malloc_and_decompress: @ 8199BC0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x1]
+ strb r0, [r1]
+ ldrb r0, [r5, 0x2]
+ strb r0, [r1, 0x1]
+ ldrb r0, [r5, 0x3]
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ strb r0, [r1, 0x3]
+ ldr r0, [r1]
+ bl Alloc
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08199BE8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+_08199BE8:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end malloc_and_decompress
+
+ thumb_func_start copy_decompressed_tile_data_to_vram
+@ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode)
+copy_decompressed_tile_data_to_vram: @ 8199BF0
+ push {r4,lr}
+ adds r4, r1, 0
+ ldr r1, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0
+ beq _08199C18
+ cmp r1, 0x1
+ beq _08199C20
+ ldr r0, =0x0000ffff
+ b _08199C2A
+ .pool
+_08199C18:
+ adds r1, r4, 0
+ bl LoadBgTiles
+ b _08199C26
+_08199C20:
+ adds r1, r4, 0
+ bl LoadBgTilemap
+_08199C26:
+ lsls r0, 16
+ lsrs r0, 16
+_08199C2A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end copy_decompressed_tile_data_to_vram
+
+ thumb_func_start sub_8199C30
+sub_8199C30: @ 8199C30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r2, 0
+ ldr r4, [sp, 0x28]
+ ldr r2, [sp, 0x2C]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ bl GetBgTilemapBuffer
+ mov r8, r0
+ adds r0, r5, r4
+ cmp r5, r0
+ bge _08199CA8
+ mov r9, r0
+_08199C6E:
+ ldr r3, [sp]
+ ldr r1, [sp, 0x4]
+ adds r0, r3, r1
+ adds r7, r5, 0x1
+ cmp r3, r0
+ bge _08199CA0
+ lsls r6, r5, 5
+ ldr r1, =0x00000fff
+ mov r12, r1
+ mov r1, r10
+ lsls r5, r1, 12
+ adds r4, r0, 0
+_08199C86:
+ adds r1, r6, r3
+ lsls r1, 1
+ add r1, r8
+ ldrh r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r5
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r4
+ blt _08199C86
+_08199CA0:
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, r9
+ blt _08199C6E
+_08199CA8:
+ 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_8199C30
+
+ thumb_func_start sub_8199CBC
+sub_8199CBC: @ 8199CBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r1
+ ldr r1, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ bl GetBgTilemapBuffer
+ adds r7, r0, 0
+ movs r0, 0
+ cmp r0, r8
+ bcs _08199D2A
+_08199CF4:
+ movs r2, 0
+ adds r6, r0, 0x1
+ cmp r2, r5
+ bcs _08199D22
+ adds r4, r0, 0
+ muls r4, r5
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r3, r0, 5
+_08199D06:
+ adds r1, r4, r2
+ lsls r1, 1
+ add r1, r10
+ adds r0, r3, r2
+ add r0, r9
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r5
+ bcc _08199D06
+_08199D22:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, r8
+ bcc _08199CF4
+_08199D2A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8199CBC
+
+ thumb_func_start sub_8199D3C
+sub_8199D3C: @ 8199D3C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ ldr r0, [sp, 0x14]
+ adds r4, r2, 0
+ muls r4, r3
+ cmp r0, 0x1
+ bne _08199D64
+ adds r3, r6, 0
+ movs r2, 0
+ cmp r2, r4
+ bge _08199D8C
+_08199D54:
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ adds r0, r5
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08199D54
+ b _08199D8C
+_08199D64:
+ cmp r4, 0
+ ble _08199D8C
+ movs r0, 0xFC
+ lsls r0, 8
+ mov r12, r0
+ ldr r0, =0x000003ff
+ adds r7, r0, 0
+ adds r3, r6, 0
+ adds r2, r4, 0
+_08199D76:
+ ldrh r0, [r3]
+ mov r1, r12
+ ands r1, r0
+ adds r0, r5
+ ands r0, r7
+ orrs r1, r0
+ strh r1, [r3]
+ adds r3, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08199D76
+_08199D8C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8199D3C
+
+ thumb_func_start sub_8199D98
+sub_8199D98: @ 8199D98
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8199D98
+
+ thumb_func_start sub_8199DF0
+sub_8199DF0: @ 8199DF0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r2
+ mov r9, r3
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl GetBgAttribute
+ lsls r0, 16
+ movs r7, 0x40
+ cmp r0, 0
+ bne _08199E16
+ movs r7, 0x20
+_08199E16:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetBgAttribute
+ adds r4, r0, 0
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl GetBgAttribute
+ lsls r4, 16
+ lsrs r4, 2
+ lsls r0, 16
+ lsrs r0, 16
+ add r0, r8
+ muls r0, r7
+ adds r4, r0
+ lsls r0, r6, 24
+ lsls r1, r6, 16
+ orrs r0, r1
+ lsls r1, r6, 8
+ orrs r0, r1
+ orrs r0, r6
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r4, r1
+ mov r2, r9
+ muls r2, r7
+ lsls r2, 16
+ lsrs r2, 16
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl RequestDma3Fill
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8199DF0
+
+ thumb_func_start box_print
+box_print: @ 8199E64
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r1, 0
+ ldr r6, [sp, 0x20]
+ ldr r5, [sp, 0x24]
+ ldr r1, [sp, 0x28]
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r1, [sp]
+ mov r1, sp
+ strb r0, [r1, 0x4]
+ mov r0, sp
+ strb r4, [r0, 0x5]
+ strb r2, [r0, 0x6]
+ strb r3, [r0, 0x7]
+ ldrb r0, [r0, 0x6]
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x7]
+ strb r0, [r1, 0x9]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl GetFontAttribute
+ mov r1, sp
+ strb r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetFontAttribute
+ mov r1, sp
+ strb r0, [r1, 0xB]
+ mov r3, sp
+ ldrb r2, [r3, 0xC]
+ movs r1, 0x10
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0xC]
+ mov r2, sp
+ ldrb r0, [r6, 0x1]
+ lsls r0, 4
+ movs r4, 0xF
+ strb r0, [r2, 0xC]
+ ldrb r2, [r6]
+ adds r0, r4, 0
+ ands r0, r2
+ ldrb r2, [r3, 0xD]
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xD]
+ mov r2, sp
+ ldrb r0, [r6, 0x2]
+ lsls r0, 4
+ ands r1, r4
+ orrs r1, r0
+ strb r1, [r2, 0xD]
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0
+ bl AddTextPrinter
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end box_print
+
+ thumb_func_start AddTextPrinterParametrized2
+@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str)
+AddTextPrinterParametrized2: @ 8199EEC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ adds r5, r1, 0
+ ldr r1, [sp, 0x28]
+ mov r8, r1
+ ldr r1, [sp, 0x2C]
+ mov r9, r1
+ ldr r6, [sp, 0x30]
+ ldr r1, [sp, 0x34]
+ ldr r4, [sp, 0x38]
+ str r4, [sp]
+ mov r4, sp
+ strb r0, [r4, 0x4]
+ mov r0, sp
+ strb r5, [r0, 0x5]
+ strb r2, [r0, 0x6]
+ strb r3, [r0, 0x7]
+ mov r2, sp
+ ldrb r0, [r0, 0x6]
+ strb r0, [r2, 0x8]
+ mov r0, sp
+ ldrb r0, [r0, 0x7]
+ strb r0, [r2, 0x9]
+ mov r0, sp
+ mov r2, r8
+ strb r2, [r0, 0xA]
+ mov r2, r9
+ strb r2, [r0, 0xB]
+ ldrb r3, [r4, 0xC]
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r4, 0xC]
+ mov r3, sp
+ ldrb r0, [r6, 0x1]
+ lsls r0, 4
+ movs r5, 0xF
+ strb r0, [r3, 0xC]
+ ldrb r3, [r6]
+ adds r0, r5, 0
+ ands r0, r3
+ ldrb r3, [r4, 0xD]
+ ands r2, r3
+ orrs r2, r0
+ strb r2, [r4, 0xD]
+ mov r3, sp
+ ldrb r0, [r6, 0x2]
+ lsls r0, 4
+ ands r2, r5
+ orrs r2, r0
+ strb r2, [r3, 0xD]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ movs r2, 0
+ bl AddTextPrinter
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end AddTextPrinterParametrized2
+
+ thumb_func_start sub_8199F74
+sub_8199F74: @ 8199F74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r6, r1, 0
+ ldr r4, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ mov r8, r1
+ ldr r7, [sp, 0x34]
+ ldr r5, [sp, 0x38]
+ ldr r1, [sp, 0x3C]
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ str r2, [sp]
+ mov r1, sp
+ strb r0, [r1, 0x4]
+ mov r0, sp
+ strb r6, [r0, 0x5]
+ strb r3, [r0, 0x6]
+ strb r4, [r0, 0x7]
+ strb r3, [r0, 0x8]
+ strb r4, [r0, 0x9]
+ strb r5, [r0, 0xA]
+ mov r1, r9
+ strb r1, [r0, 0xB]
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r5, 0x10
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl GetFontAttribute
+ mov r3, sp
+ lsls r0, 4
+ ldrb r2, [r3, 0xC]
+ movs r4, 0xF
+ adds r1, r4, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0xC]
+ adds r0, r6, 0
+ movs r1, 0x6
+ bl GetFontAttribute
+ mov r2, sp
+ adds r1, r4, 0
+ ands r1, r0
+ ldrb r0, [r2, 0xD]
+ ands r5, r0
+ orrs r5, r1
+ strb r5, [r2, 0xD]
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl GetFontAttribute
+ mov r2, sp
+ lsls r0, 4
+ ldrb r1, [r2, 0xD]
+ ands r4, r1
+ orrs r4, r0
+ strb r4, [r2, 0xD]
+ mov r0, sp
+ mov r1, r8
+ adds r2, r7, 0
+ bl AddTextPrinter
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8199F74
+
+ thumb_func_start sub_819A024
+sub_819A024: @ 819A024
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ movs r2, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldrb r0, [r3]
+ ldr r6, =gStringVar4
+ cmp r0, 0xFF
+ beq _0819A04C
+_0819A042:
+ adds r2, 0x1
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0819A042
+_0819A04C:
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ lsls r3, r4, 24
+ lsrs r3, 24
+ lsls r0, r5, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819A024
+
+ thumb_func_start sub_819A080
+sub_819A080: @ 819A080
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, [sp, 0x48]
+ ldr r4, [sp, 0x4C]
+ ldr r1, [sp, 0x50]
+ ldr r5, [sp, 0x54]
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x8]
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, [sp, 0x4]
+ ldrh r0, [r2, 0x4]
+ ldr r2, [sp, 0xC]
+ subs r0, r2
+ ldr r2, [sp, 0x8]
+ adds r2, r1, r2
+ str r2, [sp, 0x10]
+ cmp r0, r1
+ bge _0819A0CC
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ str r0, [sp, 0x10]
+_0819A0CC:
+ ldr r2, [sp, 0x4]
+ ldrh r1, [r2, 0x6]
+ subs r0, r1, r4
+ cmp r0, r5
+ bge _0819A0DE
+ adds r0, r3, r1
+ subs r0, r4
+ str r0, [sp, 0x14]
+ b _0819A0E2
+_0819A0DE:
+ adds r5, r3, r5
+ str r5, [sp, 0x14]
+_0819A0E2:
+ ldr r0, [sp]
+ ldrh r1, [r0, 0x4]
+ movs r2, 0x7
+ adds r0, r1, 0
+ ands r0, r2
+ adds r1, r0
+ asrs r1, 3
+ str r1, [sp, 0x18]
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0, 0x4]
+ adds r0, r1, 0
+ ands r0, r2
+ adds r1, r0
+ asrs r1, 3
+ str r1, [sp, 0x1C]
+ mov r12, r3
+ mov r8, r4
+ ldr r1, [sp, 0x14]
+ cmp r12, r1
+ blt _0819A10C
+ b _0819A24A
+_0819A10C:
+ ldr r5, [sp, 0x8]
+ ldr r6, [sp, 0xC]
+ mov r2, r12
+ adds r2, 0x1
+ str r2, [sp, 0x20]
+ mov r0, r8
+ adds r0, 0x1
+ str r0, [sp, 0x24]
+ ldr r1, [sp, 0x10]
+ cmp r5, r1
+ blt _0819A124
+ b _0819A23A
+_0819A124:
+ movs r7, 0x1
+ movs r2, 0xF0
+ mov r10, r2
+ movs r0, 0xF
+ mov r9, r0
+_0819A12E:
+ asrs r0, r5, 1
+ movs r1, 0x3
+ ands r0, r1
+ ldr r2, [sp]
+ ldr r1, [r2]
+ adds r1, r0
+ asrs r0, r5, 3
+ lsls r0, 5
+ adds r1, r0
+ mov r2, r12
+ asrs r0, r2, 3
+ ldr r2, [sp, 0x18]
+ muls r0, r2
+ lsls r0, 5
+ adds r1, r0
+ mov r2, r12
+ lsls r0, r2, 29
+ lsrs r0, 27
+ adds r3, r1, r0
+ asrs r0, r6, 1
+ movs r1, 0x3
+ ands r0, r1
+ ldr r2, [sp, 0x4]
+ ldr r1, [r2]
+ adds r1, r0
+ asrs r0, r6, 3
+ lsls r0, 5
+ adds r1, r0
+ mov r2, r8
+ asrs r0, r2, 3
+ ldr r2, [sp, 0x1C]
+ muls r0, r2
+ lsls r0, 5
+ adds r1, r0
+ mov r2, r8
+ lsls r0, r2, 29
+ lsrs r0, 27
+ adds r4, r1, r0
+ adds r0, r4, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A1DA
+ subs r4, 0x1
+ adds r0, r6, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A1B2
+ ldrh r0, [r4]
+ ldr r2, =0x00000fff
+ ands r2, r0
+ adds r0, r5, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A1A8
+ ldrb r1, [r3]
+ mov r0, r10
+ ands r0, r1
+ lsls r0, 8
+ b _0819A22A
+ .pool
+_0819A1A8:
+ ldrb r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ lsls r0, 12
+ b _0819A22A
+_0819A1B2:
+ ldrh r0, [r4]
+ ldr r2, =0x0000f0ff
+ ands r2, r0
+ adds r0, r5, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A1D0
+ ldrb r1, [r3]
+ mov r0, r10
+ ands r0, r1
+ lsls r0, 4
+ b _0819A22A
+ .pool
+_0819A1D0:
+ ldrb r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ lsls r0, 8
+ b _0819A22A
+_0819A1DA:
+ adds r0, r6, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A206
+ ldrh r0, [r4]
+ ldr r2, =0x0000ff0f
+ ands r2, r0
+ adds r0, r5, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A1FC
+ ldrb r1, [r3]
+ mov r0, r10
+ b _0819A228
+ .pool
+_0819A1FC:
+ ldrb r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ lsls r0, 4
+ b _0819A22A
+_0819A206:
+ ldrh r0, [r4]
+ ldr r2, =0x0000fff0
+ ands r2, r0
+ adds r0, r5, 0
+ ands r0, r7
+ cmp r0, 0
+ beq _0819A224
+ ldrb r1, [r3]
+ mov r0, r10
+ ands r0, r1
+ lsrs r0, 4
+ b _0819A22A
+ .pool
+_0819A224:
+ ldrb r1, [r3]
+ mov r0, r9
+_0819A228:
+ ands r0, r1
+_0819A22A:
+ orrs r2, r0
+ strh r2, [r4]
+ adds r5, 0x1
+ adds r6, 0x1
+ ldr r0, [sp, 0x10]
+ cmp r5, r0
+ bge _0819A23A
+ b _0819A12E
+_0819A23A:
+ ldr r1, [sp, 0x20]
+ mov r12, r1
+ ldr r2, [sp, 0x24]
+ mov r8, r2
+ ldr r0, [sp, 0x14]
+ cmp r12, r0
+ bge _0819A24A
+ b _0819A10C
+_0819A24A:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A080
+
+ thumb_func_start sub_819A25C
+sub_819A25C: @ 819A25C
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80D30B0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A25C
+
+ thumb_func_start sub_819A27C
+sub_819A27C: @ 819A27C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r4, r3, 0
+ ldr r5, [sp, 0x18]
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ movs r2, 0x1
+ bl sub_80D2EDC
+ adds r1, r0, 0
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl BlitBitmapToWindow
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A27C
+
+ thumb_func_start sub_819A2BC
+sub_819A2BC: @ 819A2BC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _0819A2DC
+ cmp r1, 0x1
+ ble _0819A2D2
+ cmp r1, 0x2
+ beq _0819A2E4
+_0819A2D2:
+ ldr r0, =gUnknown_08DC4318
+ b _0819A2E6
+ .pool
+_0819A2DC:
+ ldr r0, =gUnknown_08DC4338
+ b _0819A2E6
+ .pool
+_0819A2E4:
+ ldr r0, =gUnknown_08DC4358
+_0819A2E6:
+ adds r1, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819A2BC
+
+ thumb_func_start blit_move_info_icon
+@ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y)
+blit_move_info_icon: @ 819A2F8
+ push {r4,r5,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r4, =gUnknown_0860F0D4
+ lsrs r1, 22
+ adds r1, r4
+ ldrh r5, [r1, 0x2]
+ lsls r5, 5
+ ldr r4, =gUnknown_08DC4378
+ adds r5, r4
+ movs r4, 0x80
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ ldrb r2, [r1]
+ str r2, [sp, 0x10]
+ ldrb r1, [r1, 0x1]
+ str r1, [sp, 0x14]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0
+ bl BlitBitmapRectToWindow
+ add sp, 0x18
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end blit_move_info_icon
+
+ thumb_func_start sub_819A344
+sub_819A344: @ 819A344
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r5, r1, 0
+ movs r1, 0xFC
+ strb r1, [r5]
+ adds r5, 0x1
+ movs r0, 0x1
+ strb r0, [r5]
+ adds r5, 0x1
+ strb r2, [r5]
+ adds r5, 0x1
+ strb r1, [r5]
+ adds r5, 0x1
+ movs r0, 0x3
+ strb r0, [r5]
+ adds r5, 0x1
+ adds r2, 0x1
+ strb r2, [r5]
+ adds r5, 0x1
+ cmp r3, 0x4
+ bhi _0819A43C
+ lsls r0, r3, 2
+ ldr r1, =_0819A384
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819A384:
+ .4byte _0819A398
+ .4byte _0819A3A8
+ .4byte _0819A3D6
+ .4byte _0819A404
+ .4byte _0819A414
+_0819A398:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringCopy
+ b _0819A43C
+ .pool
+_0819A3A8:
+ bl IsNationalPokedexEnabled
+ cmp r0, 0
+ beq _0819A3B8
+ movs r0, 0x1
+ bl pokedex_count
+ b _0819A3BE
+_0819A3B8:
+ movs r0, 0x1
+ bl sub_80C0844
+_0819A3BE:
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ movs r0, 0xFF
+ strb r0, [r5]
+ b _0819A43C
+_0819A3D6:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ adds r0, r5, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ movs r0, 0xF0
+ strb r0, [r5]
+ adds r5, 0x1
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x10]
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ b _0819A43C
+ .pool
+_0819A404:
+ ldr r0, =gUnknown_02037318
+ ldrb r1, [r0, 0x14]
+ adds r0, r5, 0
+ bl sub_81245DC
+ b _0819A43C
+ .pool
+_0819A414:
+ ldr r4, =0x00000867
+ movs r6, 0
+ adds r7, r5, 0x1
+_0819A41A:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0819A42A
+ adds r6, 0x1
+_0819A42A:
+ adds r4, 0x1
+ ldr r0, =0x0000086e
+ cmp r4, r0
+ ble _0819A41A
+ adds r0, r6, 0
+ subs r0, 0x5F
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r7]
+_0819A43C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819A344
+
+ thumb_func_start sub_819A44C
+sub_819A44C: @ 819A44C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ movs r0, 0x65
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0819A4BA
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0819A4B0
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0819A484
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ b _0819A4C2
+_0819A484:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0819A4A6
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r0, 0x20
+ strh r0, [r5, 0x2E]
+ b _0819A4C2
+_0819A4A6:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _0819A4C2
+_0819A4B0:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ b _0819A4C2
+_0819A4BA:
+ adds r0, r5, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+_0819A4C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A44C
+
+ thumb_func_start sub_819A4C8
+sub_819A4C8: @ 819A4C8
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTextPrinters
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A4C8
+
+ thumb_func_start sub_819A4E4
+sub_819A4E4: @ 819A4E4
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A4E4
+
+ thumb_func_start sub_819A4F8
+sub_819A4F8: @ 819A4F8
+ push {lr}
+ ldr r0, =gUnknown_0300127C
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =sub_819A514
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819A4F8
+
+ thumb_func_start sub_819A514
+sub_819A514: @ 819A514
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _0819A528
+ b _0819A98E
+_0819A528:
+ lsls r0, 2
+ ldr r1, =_0819A53C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819A53C:
+ .4byte _0819A568
+ .4byte _0819A5C0
+ .4byte _0819A69C
+ .4byte _0819A77C
+ .4byte _0819A7CC
+ .4byte _0819A868
+ .4byte _0819A8A4
+ .4byte _0819A8AC
+ .4byte _0819A8C4
+ .4byte _0819A8DC
+ .4byte _0819A8FC
+_0819A568:
+ ldr r4, =gUnknown_0203CE3C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0819A578
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_0819A578:
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ add r0, sp, 0x8
+ bl CpuSet
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_08610428
+ movs r0, 0
+ movs r2, 0x3
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_08610434
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ b _0819A8E6
+ .pool
+_0819A5C0:
+ ldr r5, =gUnknown_0203CE2C
+ movs r4, 0x88
+ lsls r4, 3
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE30
+ adds r0, r4, 0
+ bl AllocZeroed
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE34
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE38
+ adds r0, r4, 0
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ 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, 0
+ bl SetGpuReg
+ ldr r1, =gMain
+ movs r3, 0x87
+ lsls r3, 3
+ adds r1, r3
+ b _0819A8EE
+ .pool
+_0819A69C:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r0, =gUnknown_08DC0754
+ ldr r5, =gUnknown_0203CE2C
+ ldr r1, [r5]
+ movs r2, 0x88
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, =gUnknown_0861033C
+ ldr r4, =gUnknown_0203CE30
+ ldr r1, [r4]
+ movs r2, 0x30
+ bl CpuSet
+ ldr r1, [r5]
+ movs r2, 0x88
+ lsls r2, 3
+ movs r0, 0x1
+ movs r3, 0
+ bl LoadBgTiles
+ ldr r1, [r4]
+ movs r0, 0x3
+ movs r2, 0x60
+ movs r3, 0
+ bl LoadBgTiles
+ ldr r0, =gUnknown_08DC0B94
+ ldr r4, =gUnknown_0203CE34
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 4
+ movs r0, 0x1
+ movs r3, 0
+ bl LoadBgTilemap
+ ldr r0, =gUnknown_08DC0714
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r4, =gUnknown_0861046C
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0x8
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xE0
+ movs r2, 0xA
+ bl LoadPalette
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x1
+ bne _0819A738
+ ldr r0, =gPlttBufferUnfaded
+ movs r2, 0xA9
+ lsls r2, 2
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r3, 0xE4
+ lsls r3, 1
+ adds r0, r3
+ strh r1, [r0]
+_0819A738:
+ ldr r0, =gUnknown_0861039C
+ movs r1, 0x20
+ movs r2, 0x4
+ bl LoadPalette
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819A8EE
+ .pool
+_0819A77C:
+ ldr r0, =gUnknown_0203CE38
+ ldr r1, [r0]
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ ldr r5, =gUnknown_0861023C
+ movs r4, 0x8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0xB
+ movs r3, 0x4
+ bl CopyToBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x2
+ movs r3, 0x4
+ bl CopyToBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r0, 0x3
+ adds r1, r5, 0
+ movs r2, 0x14
+ movs r3, 0x4
+ bl CopyToBgTilemapBufferRect
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0819A8E6
+ .pool
+_0819A7CC:
+ ldr r0, =gUnknown_086103F4
+ bl LoadSpritePalettes
+ ldr r0, =gUnknown_086103BC
+ bl LoadSpriteSheets
+ ldr r0, =gUnknown_086103E4
+ bl LoadCompressedObjectPic
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ ldr r0, =sub_819A4E4
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x9A
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _0819A854
+ movs r0, 0x58
+ movs r1, 0x98
+ movs r2, 0x20
+ movs r3, 0x60
+ bl sub_819C5D0
+ movs r0, 0x3
+ bl ShowBg
+ ldr r1, =0x00001248
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _0819A85A
+ .pool
+_0819A854:
+ movs r0, 0x3
+ bl HideBg
+_0819A85A:
+ ldr r1, =gMain
+ movs r3, 0x87
+ lsls r3, 3
+ adds r1, r3
+ b _0819A8EE
+ .pool
+_0819A868:
+ ldr r4, =gUnknown_0300127C
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x1
+ bne _0819A878
+ ldr r0, =gUnknown_0203CF20
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+_0819A878:
+ bl sub_819A9AC
+ bl sub_819AA18
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ bne _0819A88C
+ bl sub_819BE34
+_0819A88C:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819A8EE
+ .pool
+_0819A8A4:
+ bl sub_819BA64
+ movs r0, 0x2
+ b _0819A8E2
+_0819A8AC:
+ bl sub_819BCF8
+ movs r0, 0x5
+ bl PutWindowTilemap
+ ldr r1, =gMain
+ movs r3, 0x87
+ lsls r3, 3
+ adds r1, r3
+ b _0819A8EE
+ .pool
+_0819A8C4:
+ bl sub_819B9E8
+ movs r0, 0x1
+ bl PutWindowTilemap
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819A8EE
+ .pool
+_0819A8DC:
+ bl sub_819B9B4
+ movs r0, 0
+_0819A8E2:
+ bl PutWindowTilemap
+_0819A8E6:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+_0819A8EE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0819A98E
+ .pool
+_0819A8FC:
+ ldr r0, =sub_819C69C
+ movs r1, 0
+ bl CreateTask
+ ldr r2, =gUnknown_0300127C
+ ldr r1, [r2]
+ ldr r3, =0x000002a1
+ adds r1, r3
+ strb r0, [r1]
+ ldr r3, [r2]
+ ldrb r5, [r3, 0x6]
+ cmp r5, 0
+ bne _0819A954
+ ldr r4, =gTasks
+ ldr r1, =0x000002a1
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strh r5, [r0, 0x8]
+ ldr r0, =sub_819B378
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strh r5, [r0, 0x8]
+ b _0819A988
+ .pool
+_0819A954:
+ ldr r4, =gTasks
+ ldr r2, =0x000002a1
+ adds r0, r3, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r2, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ ldr r1, =0x000002a2
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r0, =sub_819B124
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+_0819A988:
+ ldr r0, =sub_819A4C8
+ bl SetMainCallback2
+_0819A98E:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819A514
+
+ thumb_func_start sub_819A9AC
+sub_819A9AC: @ 819A9AC
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0300127C
+ ldr r4, [r5]
+ cmp r4, 0
+ bne _0819AA12
+ movs r0, 0xAB
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r5]
+ strb r4, [r0, 0x3]
+ ldr r1, [r5]
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r0, [r5]
+ strb r4, [r0, 0x6]
+ movs r2, 0
+ movs r4, 0x6C
+ movs r3, 0
+_0819A9D2:
+ ldr r0, [r5]
+ adds r1, r2, 0
+ muls r1, r4
+ adds r0, r1
+ strb r3, [r0, 0x10]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819A9D2
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _0819AA0C
+ movs r0, 0
+ bl sub_819B484
+ b _0819AA12
+ .pool
+_0819AA0C:
+ movs r0, 0
+ bl sub_819B63C
+_0819AA12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819A9AC
+
+ thumb_func_start sub_819AA18
+sub_819AA18: @ 819AA18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ mov r8, r4
+ ldr r7, =gSprites
+_0819AA24:
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ subs r1, r4
+ adds r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, =gUnknown_086105D8
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r6, =gUnknown_0300127C
+ ldr r2, [r6]
+ movs r5, 0x6C
+ adds r1, r4, 0
+ muls r1, r5
+ adds r2, r1
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r2, 0xE]
+ ldrh r1, [r2, 0xE]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ adds r0, r4, 0
+ bl sub_819ADAC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0819AA24
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x3]
+ ldr r4, =gSprites
+ muls r1, r5
+ adds r0, r1
+ ldrh r0, [r0, 0xE]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, =gUnknown_086105F0
+ movs r2, 0x20
+ ldrsh r1, [r1, r2]
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ movs r5, 0
+ strb r0, [r1, 0x4]
+ ldr r0, =gUnknown_08610608
+ movs r1, 0xB0
+ movs r2, 0x70
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ strb r0, [r1, 0x1]
+ ldr r0, =gUnknown_08610620
+ movs r1, 0xB0
+ movs r2, 0x90
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ strb r0, [r1, 0x2]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x28
+ strb r5, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x29
+ strb r5, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x28
+ strb r5, [r0]
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x29
+ strb r5, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819AA18
+
+ thumb_func_start sub_819AB40
+sub_819AB40: @ 819AB40
+ push {r4-r6,lr}
+ movs r4, 0
+_0819AB44:
+ ldr r6, =gUnknown_0300127C
+ ldr r1, [r6]
+ movs r0, 0x6C
+ muls r0, r4
+ adds r1, r0
+ ldrh r1, [r1, 0xE]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, =gSprites
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0819AB44
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819AB40
+
+ thumb_func_start sub_819ABA8
+sub_819ABA8: @ 819ABA8
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ ble _0819ABC8
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x3]
+ adds r2, r0, 0
+ cmp r3, 0x5
+ beq _0819ABC4
+ adds r0, r3, 0x1
+ b _0819ABDE
+ .pool
+_0819ABC4:
+ movs r0, 0
+ b _0819ABDE
+_0819ABC8:
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x3]
+ adds r2, r0, 0
+ cmp r3, 0
+ beq _0819ABDC
+ subs r0, r3, 0x1
+ b _0819ABDE
+ .pool
+_0819ABDC:
+ movs r0, 0x5
+_0819ABDE:
+ strb r0, [r1, 0x3]
+ ldr r2, [r2]
+ ldrb r3, [r2, 0x3]
+ ldr r4, =gSprites
+ ldrb r0, [r2, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x6C
+ muls r0, r3
+ adds r2, r0
+ ldrh r2, [r2, 0xE]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r1, 0x20]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ABA8
+
+ thumb_func_start sub_819AC10
+sub_819AC10: @ 819AC10
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ ble _0819AC30
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1]
+ adds r2, r0, 0
+ cmp r3, 0x2
+ beq _0819AC2C
+ adds r0, r3, 0x1
+ b _0819AC46
+ .pool
+_0819AC2C:
+ movs r0, 0
+ b _0819AC46
+_0819AC30:
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1]
+ adds r2, r0, 0
+ cmp r3, 0
+ beq _0819AC44
+ subs r0, r3, 0x1
+ b _0819AC46
+ .pool
+_0819AC44:
+ movs r0, 0x2
+_0819AC46:
+ strb r0, [r1]
+ ldr r3, =gSprites
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819AC10
+
+ thumb_func_start sub_819AC78
+sub_819AC78: @ 819AC78
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ ble _0819AC98
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x7]
+ adds r2, r0, 0
+ cmp r3, 0x1
+ beq _0819AC94
+ adds r0, r3, 0x1
+ b _0819ACAE
+ .pool
+_0819AC94:
+ movs r0, 0
+ b _0819ACAE
+_0819AC98:
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x7]
+ adds r2, r0, 0
+ cmp r3, 0
+ beq _0819ACAC
+ subs r0, r3, 0x1
+ b _0819ACAE
+ .pool
+_0819ACAC:
+ movs r0, 0x1
+_0819ACAE:
+ strb r0, [r1, 0x7]
+ ldr r3, =gSprites
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2, 0x7]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2, 0x7]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819AC78
+
+ thumb_func_start sub_819ACE0
+sub_819ACE0: @ 819ACE0
+ push {r4-r6,lr}
+ ldr r5, =gUnknown_0300127C
+ ldr r0, [r5]
+ ldrb r6, [r0, 0x3]
+ movs r1, 0x6C
+ adds r4, r6, 0
+ muls r4, r1
+ adds r0, r4
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _0819AD60
+ movs r0, 0x64
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x5]
+ cmp r0, 0x3
+ bne _0819AD44
+ adds r0, r1, r4
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _0819AD44
+ movs r2, 0
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x2
+ beq _0819AD32
+ movs r4, 0x6C
+_0819AD1A:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bhi _0819AD32
+ ldr r0, [r5]
+ adds r1, r2, 0
+ muls r1, r4
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x2
+ bne _0819AD1A
+_0819AD32:
+ cmp r2, 0x6
+ beq _0819AD9C
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ movs r0, 0x6C
+ muls r0, r2
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+_0819AD44:
+ ldr r2, =gUnknown_0300127C
+ ldr r1, [r2]
+ movs r0, 0x6C
+ muls r0, r6
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ b _0819AD78
+ .pool
+_0819AD60:
+ movs r0, 0x65
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, [r5]
+ adds r1, r0, r4
+ ldrb r0, [r0, 0x5]
+ strb r0, [r1, 0x10]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+_0819AD78:
+ strb r0, [r1, 0x5]
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ movs r1, 0x6C
+ muls r1, r6
+ adds r0, r1
+ ldrh r0, [r0, 0xE]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+_0819AD9C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ACE0
+
+ thumb_func_start sub_819ADAC
+sub_819ADAC: @ 819ADAC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ movs r1, 0x6C
+ muls r1, r4
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ beq _0819ADCC
+ movs r0, 0x65
+ b _0819ADCE
+ .pool
+_0819ADCC:
+ movs r0, 0x64
+_0819ADCE:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ movs r1, 0x6C
+ muls r1, r4
+ adds r0, r1
+ ldrh r0, [r0, 0xE]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ADAC
+
+ thumb_func_start sub_819AE08
+sub_819AE08: @ 819AE08
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7
+ beq _0819AE64
+ cmp r0, 0x7
+ bgt _0819AE30
+ cmp r0, 0x6
+ beq _0819AE36
+ b _0819AF50
+ .pool
+_0819AE30:
+ cmp r0, 0x8
+ beq _0819AEE8
+ b _0819AF50
+_0819AE36:
+ ldr r1, =gPlttBufferUnfaded
+ ldr r0, =gPlttBufferFaded
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r1, r2
+ movs r2, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x7
+ strh r0, [r6, 0x8]
+ b _0819AF50
+ .pool
+_0819AE64:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0819AF50
+ ldr r4, =gUnknown_0300127C
+ ldr r0, [r4]
+ ldr r2, =0x000002a1
+ adds r0, r2
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r1, [r4]
+ movs r3, 0xA6
+ lsls r3, 2
+ adds r0, r1, r3
+ ldr r0, [r0]
+ movs r2, 0xA8
+ lsls r2, 2
+ adds r1, r2
+ bl sub_819F444
+ bl sub_819AB40
+ ldr r4, =gUnknown_0203CE2C
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE30
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE34
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE38
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ bl FreeAllWindowBuffers
+ movs r0, 0x8
+ strh r0, [r6, 0x8]
+ b _0819AF50
+ .pool
+_0819AEE8:
+ ldr r4, =gUnknown_0300127C
+ ldr r1, [r4]
+ ldr r0, =gPlttBufferUnfaded
+ movs r3, 0xE4
+ lsls r3, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r3, 0xDC
+ adds r1, r3
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ ldr r0, [r4]
+ ldrb r6, [r0, 0x3]
+ ldr r4, =gUnknown_0203CE3C
+ movs r0, 0x96
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ movs r4, 0
+_0819AF1A:
+ ldr r5, =gUnknown_0203CE3C
+ ldr r1, [r5]
+ movs r0, 0x64
+ muls r0, r4
+ adds r0, r1
+ ldr r1, =gUnknown_0300127C
+ ldr r1, [r1]
+ movs r2, 0x6C
+ muls r2, r4
+ adds r1, r2
+ adds r1, 0x14
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0819AF1A
+ ldr r1, [r5]
+ ldr r0, =sub_819A514
+ str r0, [sp]
+ movs r0, 0x1
+ adds r2, r6, 0
+ movs r3, 0x5
+ bl sub_81BF8EC
+_0819AF50:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819AE08
+
+ thumb_func_start bc_exit_to_overworld
+bc_exit_to_overworld: @ 819AF68
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, =gUnknown_0300127C
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819B00E
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _0819AFA0
+ cmp r1, 0x1
+ beq _0819AFB8
+ b _0819B00E
+ .pool
+_0819AFA0:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819B00E
+_0819AFB8:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0819B00E
+ bl sub_819B764
+ ldr r0, [r7]
+ ldr r1, =0x000002a1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl DestroyTask
+ bl sub_819AB40
+ ldr r4, =gUnknown_0203CE2C
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE34
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE38
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r0, [r7]
+ bl Free
+ str r5, [r7]
+ bl FreeAllWindowBuffers
+ ldr r0, =sub_80861B0
+ bl SetMainCallback2
+ adds r0, r6, 0
+ bl DestroyTask
+_0819B00E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bc_exit_to_overworld
+
+ thumb_func_start sub_819B02C
+sub_819B02C: @ 819B02C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r7, =gUnknown_0300127C
+ ldr r0, [r7]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819B11A
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ beq _0819B084
+ cmp r0, 0x5
+ bgt _0819B06C
+ cmp r0, 0x4
+ beq _0819B07A
+ b _0819B11A
+ .pool
+_0819B06C:
+ cmp r0, 0xA
+ bne _0819B11A
+ bl sub_819C4B4
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+ b _0819B11A
+_0819B07A:
+ bl sub_819B8D4
+ movs r0, 0x5
+ strh r0, [r5, 0x8]
+ b _0819B11A
+_0819B084:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ mov r8, r0
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B0B8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r7]
+ ldrb r4, [r0, 0x7]
+ cmp r4, 0
+ bne _0819B0C6
+ bl sub_819C568
+ strh r4, [r5, 0x8]
+ ldr r0, =bc_exit_to_overworld
+ str r0, [r5]
+ b _0819B11A
+ .pool
+_0819B0B8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B0EC
+ movs r0, 0x5
+ bl PlaySE
+_0819B0C6:
+ movs r0, 0x4
+ bl sub_819B958
+ bl sub_819BC9C
+ ldr r0, [r7]
+ ldr r1, =0x000002a2
+ adds r0, r1
+ mov r1, r8
+ strb r1, [r0]
+ strh r6, [r5, 0x8]
+ ldr r0, =sub_819B378
+ str r0, [r5]
+ b _0819B11A
+ .pool
+_0819B0EC:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B106
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819AC78
+ b _0819B11A
+_0819B106:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B11A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_819AC78
+_0819B11A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819B02C
+
+ thumb_func_start sub_819B124
+sub_819B124: @ 819B124
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ subs r0, 0x2
+ lsls r0, 16
+ asrs r0, 16
+ adds r6, r1, 0
+ cmp r0, 0xB
+ bls _0819B144
+ b _0819B36E
+_0819B144:
+ lsls r0, 2
+ ldr r1, =_0819B158
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819B158:
+ .4byte _0819B188
+ .4byte _0819B1EC
+ .4byte _0819B36E
+ .4byte _0819B36E
+ .4byte _0819B36E
+ .4byte _0819B36E
+ .4byte _0819B36E
+ .4byte _0819B1BC
+ .4byte _0819B36E
+ .4byte _0819B36E
+ .4byte _0819B300
+ .4byte _0819B35C
+_0819B188:
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _0819B1A2
+ ldr r2, =0x00000299
+ adds r0, r1, r2
+ movs r7, 0xA8
+ lsls r7, 2
+ adds r1, r7
+ movs r2, 0
+ bl sub_819F2B4
+_0819B1A2:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x9
+ b _0819B36C
+ .pool
+_0819B1BC:
+ ldr r4, =gUnknown_0300127C
+ ldr r0, [r4]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0819B1CE
+ b _0819B36E
+_0819B1CE:
+ bl sub_819B844
+ ldr r1, [r4]
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ b _0819B344
+ .pool
+_0819B1EC:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r7, 0x1
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B27C
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_819BC04
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ bne _0819B228
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldr r2, =0x000002a2
+ adds r0, r2
+ b _0819B2AC
+ .pool
+_0819B228:
+ cmp r0, 0x2
+ bne _0819B248
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_819B02C
+ str r1, [r0]
+ b _0819B36E
+ .pool
+_0819B248:
+ cmp r1, 0x3
+ bne _0819B260
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x8]
+ b _0819B2BA
+ .pool
+_0819B260:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x6
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_819AE08
+ str r1, [r0]
+ b _0819B36E
+ .pool
+_0819B27C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B2D0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0300127C
+ ldr r1, [r4]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ movs r2, 0
+ bl sub_819F3F8
+ movs r0, 0x3
+ bl sub_819B958
+ ldr r0, [r4]
+ ldr r1, =0x000002a2
+ adds r0, r1
+_0819B2AC:
+ strb r7, [r0]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x8]
+_0819B2BA:
+ ldr r1, =sub_819B378
+ str r1, [r0]
+ b _0819B36E
+ .pool
+_0819B2D0:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B2EA
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819AC10
+ b _0819B36E
+_0819B2EA:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B36E
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_819AC10
+ b _0819B36E
+_0819B300:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _0819B36E
+ ldr r4, =gUnknown_0300127C
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0x1
+ bne _0819B338
+ ldr r1, =gPlttBufferFaded
+ movs r7, 0xA9
+ lsls r7, 2
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ ldr r0, =gPlttBufferUnfaded
+ subs r7, 0xBC
+ adds r1, r0, r7
+ ldrh r1, [r1]
+ adds r0, r2
+ strh r1, [r0]
+_0819B338:
+ ldr r0, [r4]
+ strb r3, [r0, 0x6]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+_0819B344:
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+ b _0819B36E
+ .pool
+_0819B35C:
+ bl sub_819B844
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xC
+_0819B36C:
+ strh r0, [r1, 0x8]
+_0819B36E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B124
+
+ thumb_func_start sub_819B378
+sub_819B378: @ 819B378
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r5, =gUnknown_0300127C
+ ldr r3, [r5]
+ movs r7, 0xA8
+ lsls r7, 2
+ adds r0, r3, r7
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819B476
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0819B3DC
+ cmp r1, 0x1
+ bgt _0819B3B4
+ cmp r1, 0
+ beq _0819B3BA
+ b _0819B476
+ .pool
+_0819B3B4:
+ cmp r1, 0xB
+ beq _0819B440
+ b _0819B476
+_0819B3BA:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0819B476
+ movs r0, 0x1
+ movs r1, 0x1
+ strh r1, [r4, 0x8]
+ ldr r2, =0x000002a2
+ adds r1, r3, r2
+ strb r0, [r1]
+ b _0819B476
+ .pool
+_0819B3DC:
+ ldr r2, =gMain
+ ldrh r0, [r2, 0x2E]
+ ands r1, r0
+ cmp r1, 0
+ beq _0819B40C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r5]
+ ldr r1, =0x000002a2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ ldr r0, =sub_819B124
+ str r0, [r4]
+ b _0819B476
+ .pool
+_0819B40C:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B422
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _0819B432
+_0819B422:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B476
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_0819B432:
+ bl sub_819ABA8
+ bl sub_819BCF8
+ bl sub_819B9E8
+ b _0819B476
+_0819B440:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0819B476
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r5]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r1, r7
+ movs r2, 0
+ bl sub_819F3F8
+ bl sub_819BA64
+ ldr r0, [r5]
+ ldr r1, =0x000002a2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ strh r6, [r4, 0x8]
+_0819B476:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B378
+
+ thumb_func_start sub_819B484
+sub_819B484: @ 819B484
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ movs r6, 0
+ add r0, sp, 0xC
+ strb r6, [r0]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r7, =gSaveBlock2Ptr
+ ldr r2, [r7]
+ ldr r0, =0x00000ca9
+ adds r4, r2, r0
+ ldrb r0, [r4]
+ lsls r0, 30
+ lsrs r0, 30
+ adds r5, r0, 0
+ lsls r0, r5, 1
+ lsls r1, r6, 2
+ adds r0, r1
+ ldr r1, =0x00000de2
+ adds r2, r1
+ adds r2, r0
+ ldrh r0, [r2]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x3
+ ands r0, r1
+ movs r2, 0x32
+ str r2, [sp, 0x14]
+ cmp r0, 0
+ beq _0819B4EA
+ movs r3, 0x64
+ str r3, [sp, 0x14]
+_0819B4EA:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_81A6F70
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ ldr r1, [r7]
+ ldrb r0, [r1, 0xA]
+ mov r9, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ mov r2, r9
+ orrs r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ orrs r2, r0
+ mov r9, r2
+ movs r3, 0
+ mov r8, r3
+_0819B518:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ lsls r0, 2
+ adds r1, r0
+ movs r3, 0xE7
+ lsls r3, 4
+ adds r1, r3
+ ldrh r5, [r1]
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ ldr r2, [sp, 0x10]
+ add r2, r8
+ movs r3, 0x6C
+ adds r0, r2, 0
+ muls r0, r3
+ adds r1, r0
+ strh r5, [r1, 0xC]
+ mov r10, r2
+ ldr r0, [sp, 0x1C]
+ cmp r8, r0
+ bcs _0819B570
+ ldr r0, [sp, 0x18]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ b _0819B572
+ .pool
+_0819B570:
+ ldr r0, [sp, 0x18]
+_0819B572:
+ movs r1, 0
+ bl sub_81A6CA8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x6C
+ mov r4, r10
+ muls r4, r1
+ adds r4, 0xC
+ ldr r2, =gUnknown_0300127C
+ ldr r0, [r2]
+ adds r0, r4
+ adds r0, 0x8
+ ldr r1, =gUnknown_0203BC8C
+ ldr r2, [r1]
+ lsls r5, 4
+ adds r2, r5, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ str r6, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ mov r2, r9
+ str r2, [sp, 0x8]
+ ldr r2, [sp, 0x14]
+ bl sub_8068634
+ movs r1, 0
+ add r0, sp, 0xC
+ strb r1, [r0]
+ movs r6, 0
+ adds r7, r5, 0
+ movs r3, 0x1
+ add r8, r3
+ ldr r3, =gUnknown_0300127C
+_0819B5B8:
+ ldr r0, [r3]
+ adds r0, r4
+ adds r0, 0x8
+ ldr r5, =gUnknown_0203BC8C
+ ldr r1, [r5]
+ adds r1, r7, r1
+ lsls r2, r6, 1
+ adds r1, 0x2
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r2, r6, 0
+ str r3, [sp, 0x20]
+ bl sub_81A7024
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x20]
+ cmp r6, 0x3
+ bls _0819B5B8
+ movs r0, 0x6C
+ mov r4, r10
+ muls r4, r0
+ adds r4, 0xC
+ ldr r1, =gUnknown_0300127C
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0x8
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ ldr r2, =gUnknown_0300127C
+ ldr r0, [r2]
+ adds r0, r4
+ adds r0, 0x8
+ ldr r1, [r5]
+ adds r1, r7, r1
+ ldrb r2, [r1, 0xA]
+ lsls r2, 1
+ ldr r1, =gBattleFrontierHeldItems
+ adds r2, r1
+ movs r1, 0xC
+ bl SetMonData
+ mov r3, r8
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x5
+ bhi _0819B620
+ b _0819B518
+_0819B620:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B484
+
+ thumb_func_start sub_819B63C
+sub_819B63C: @ 819B63C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ add r0, sp, 0xC
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+ str r0, [r2]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldrb r3, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ orrs r3, r0
+ mov r10, r3
+ movs r7, 0
+ mov r9, r7
+_0819B678:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r2, r9
+ lsls r0, r2, 1
+ add r0, r9
+ lsls r0, 2
+ adds r1, r0
+ movs r3, 0xE7
+ lsls r3, 4
+ adds r1, r3
+ ldrh r1, [r1]
+ mov r8, r1
+ ldr r7, =gUnknown_0300127C
+ ldr r0, [r7]
+ ldr r6, [sp, 0x10]
+ add r6, r9
+ movs r1, 0x6C
+ adds r4, r6, 0
+ muls r4, r1
+ adds r1, r0, r4
+ mov r2, r8
+ strh r2, [r1, 0xC]
+ adds r4, 0xC
+ adds r0, r4
+ adds r0, 0x8
+ ldr r3, =gUnknown_0203BC8C
+ ldr r2, [r3]
+ mov r7, r8
+ lsls r5, r7, 4
+ adds r2, r5, r2
+ ldrh r1, [r2]
+ ldrb r3, [r2, 0xC]
+ movs r7, 0
+ str r7, [sp]
+ ldrb r2, [r2, 0xB]
+ str r2, [sp, 0x4]
+ mov r2, r10
+ str r2, [sp, 0x8]
+ movs r2, 0x1E
+ bl sub_8068634
+ add r0, sp, 0xC
+ movs r3, 0
+ strb r3, [r0]
+ movs r0, 0x1
+ add r9, r0
+_0819B6D4:
+ ldr r1, =gUnknown_0300127C
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0x8
+ ldr r3, =gUnknown_0203BC8C
+ ldr r2, [r3]
+ mov r3, r8
+ lsls r1, r3, 4
+ adds r1, r2
+ lsls r2, r7, 1
+ adds r1, 0x2
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r2, r7, 0
+ bl sub_81A7024
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _0819B6D4
+ movs r7, 0x6C
+ adds r4, r6, 0
+ muls r4, r7
+ adds r4, 0xC
+ ldr r1, =gUnknown_0300127C
+ ldr r0, [r1]
+ adds r0, r4
+ adds r0, 0x8
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ ldr r2, =gUnknown_0300127C
+ ldr r0, [r2]
+ adds r0, r4
+ adds r0, 0x8
+ ldr r3, =gUnknown_0203BC8C
+ ldr r1, [r3]
+ adds r1, r5, r1
+ ldrb r2, [r1, 0xA]
+ lsls r2, 1
+ ldr r1, =gBattleFrontierHeldItems
+ adds r2, r1
+ movs r1, 0xC
+ bl SetMonData
+ mov r7, r9
+ lsls r0, r7, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0x5
+ bls _0819B678
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B63C
+
+ thumb_func_start sub_819B764
+sub_819B764: @ 819B764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, =gUnknown_0300127C
+ mov r10, r0
+ ldr r1, =gSaveBlock2Ptr
+ mov r8, r1
+_0819B778:
+ movs r2, 0
+ adds r0, r7, 0x1
+ mov r9, r0
+_0819B77E:
+ mov r1, r10
+ ldr r0, [r1]
+ movs r1, 0x6C
+ adds r6, r2, 0
+ muls r6, r1
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x10]
+ cmp r0, r9
+ bne _0819B81C
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r2, =gPlayerParty
+ adds r5, r2
+ adds r1, 0x14
+ adds r0, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r4, r7, 1
+ adds r4, r7
+ lsls r4, 2
+ adds r1, r4
+ mov r2, r10
+ ldr r0, [r2]
+ adds r0, r6
+ ldrh r0, [r0, 0xC]
+ movs r2, 0xE7
+ lsls r2, 4
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r2, =0x00000e74
+ adds r1, r2
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ movs r2, 0
+ bl GetBoxMonData
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldr r2, =0x00000e79
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x28
+ movs r2, 0
+ bl GetBoxMonData
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldr r2, =0x00000e78
+ adds r1, r2
+ strb r0, [r1]
+ b _0819B826
+ .pool
+_0819B81C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819B77E
+_0819B826:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _0819B778
+ bl CalculatePlayerPartyCount
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819B764
+
+ thumb_func_start sub_819B844
+sub_819B844: @ 819B844
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0300127C
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _0819B852
+ strb r0, [r1]
+_0819B852:
+ ldr r4, =gSprites
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xB0
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xD0
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ bl sub_819BAFC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B844
+
+ thumb_func_start sub_819B8D4
+sub_819B8D4: @ 819B8D4
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0300127C
+ ldr r1, [r5]
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ ldr r4, =gSprites
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xB0
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0x70
+ strh r3, [r0, 0x22]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xD0
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x22]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ bl sub_819BBA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B8D4
+
+ thumb_func_start sub_819B958
+sub_819B958: @ 819B958
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gSprites
+ ldr r3, =gUnknown_0300127C
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ bl ClearWindowTilemap
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B958
+
+ thumb_func_start sub_819B9B4
+sub_819B9B4: @ 819B9B4
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_085EEBB2
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B9B4
+
+ thumb_func_start sub_819B9E8
+sub_819B9E8: @ 819B9E8
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_0300127C
+ ldr r0, [r5]
+ ldrb r4, [r0, 0x3]
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x6C
+ muls r0, r4
+ ldr r1, [r5]
+ adds r0, r1
+ adds r0, 0x14
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, =gStringVar4
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x56
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08610479
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819B9E8
+
+ thumb_func_start sub_819BA64
+sub_819BA64: @ 819BA64
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x1
+ bne _0819BA88
+ ldr r2, =gUnknown_085EEBC1
+ b _0819BA9C
+ .pool
+_0819BA88:
+ cmp r0, 0x2
+ bne _0819BA94
+ ldr r2, =gUnknown_085EEBDB
+ b _0819BA9C
+ .pool
+_0819BA94:
+ ldr r2, =gUnknown_085EEC2D
+ cmp r0, 0x3
+ bne _0819BA9C
+ ldr r2, =gUnknown_085EEBF6
+_0819BA9C:
+ movs r0, 0x5
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BA64
+
+ thumb_func_start sub_819BAC8
+sub_819BAC8: @ 819BAC8
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_085EEC50
+ movs r0, 0x5
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BAC8
+
+ thumb_func_start sub_819BAFC
+sub_819BAFC: @ 819BAFC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x3]
+ movs r1, 0x6C
+ muls r1, r2
+ adds r0, r1
+ ldrb r5, [r0, 0x10]
+ movs r0, 0x3
+ bl PutWindowTilemap
+ movs r0, 0x3
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r4, =gUnknown_08610476
+ str r4, [sp]
+ movs r6, 0
+ str r6, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC15
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl box_print
+ cmp r5, 0
+ beq _0819BB60
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC24
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x11
+ bl box_print
+ b _0819BB74
+ .pool
+_0819BB60:
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC10
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x11
+ bl box_print
+_0819BB74:
+ ldr r0, =gUnknown_08610476
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC1D
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x21
+ bl box_print
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BAFC
+
+ thumb_func_start sub_819BBA8
+sub_819BBA8: @ 819BBA8
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0x4
+ bl PutWindowTilemap
+ movs r0, 0x4
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_08610476
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC49
+ str r0, [sp, 0x8]
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl box_print
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EEC4D
+ str r0, [sp, 0x8]
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x11
+ bl box_print
+ movs r0, 0x4
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BBA8
+
+ thumb_func_start sub_819BC04
+sub_819BC04: @ 819BC04
+ push {lr}
+ ldr r2, =gUnknown_030062E8
+ ldr r1, =gUnknown_0861041C
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_819BC04
+
+ thumb_func_start sub_819BC30
+sub_819BC30: @ 819BC30
+ push {r4,lr}
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r2, [r0, 0x3]
+ movs r1, 0x6C
+ muls r1, r2
+ adds r0, r1
+ ldrb r1, [r0, 0x10]
+ ldrh r0, [r0, 0xC]
+ cmp r1, 0
+ bne _0819BC60
+ bl sub_819C634
+ cmp r0, 0
+ bne _0819BC60
+ bl sub_819BAC8
+ movs r0, 0x3
+ bl sub_819B958
+ movs r0, 0x3
+ b _0819BC96
+ .pool
+_0819BC60:
+ ldr r4, =gUnknown_0300127C
+ ldr r1, [r4]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ movs r2, 0
+ bl sub_819F3F8
+ bl sub_819ACE0
+ bl sub_819BA64
+ movs r0, 0x3
+ bl sub_819B958
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x3
+ bhi _0819BC94
+ movs r0, 0x1
+ b _0819BC96
+ .pool
+_0819BC94:
+ movs r0, 0x2
+_0819BC96:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819BC30
+
+ thumb_func_start sub_819BC9C
+sub_819BC9C: @ 819BC9C
+ push {lr}
+ bl sub_819C568
+ bl sub_819ACE0
+ bl sub_819BA64
+ movs r0, 0x3
+ bl sub_819B958
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x3
+ bhi _0819BCC4
+ movs r0, 0x1
+ b _0819BCC6
+ .pool
+_0819BCC4:
+ movs r0, 0x2
+_0819BCC6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819BC9C
+
+ thumb_func_start sub_819BCCC
+sub_819BCCC: @ 819BCCC
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_819BCCC
+
+ thumb_func_start sub_819BCD0
+sub_819BCD0: @ 819BCD0
+ push {lr}
+ ldr r0, =gUnknown_0300127C
+ ldr r1, [r0]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ adds r2, 0x8
+ adds r1, r2
+ movs r2, 0
+ bl sub_819F3F8
+ movs r0, 0x3
+ bl sub_819B958
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_819BCD0
+
+ thumb_func_start sub_819BCF8
+sub_819BCF8: @ 819BCF8
+ push {r4,r5,lr}
+ sub sp, 0x2C
+ ldr r5, =gUnknown_0300127C
+ ldr r0, [r5]
+ ldrb r4, [r0, 0x3]
+ cmp r4, 0x5
+ bhi _0819BD64
+ movs r0, 0x5
+ bl PutWindowTilemap
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x6C
+ muls r0, r4
+ ldr r1, [r5]
+ adds r0, r1
+ adds r0, 0x14
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ add r1, sp, 0xC
+ bl sub_81DB468
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x76
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x5
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ movs r0, 0x5
+ movs r1, 0x2
+ bl CopyWindowToVram
+_0819BD64:
+ add sp, 0x2C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BCF8
+
+ thumb_func_start sub_819BD70
+sub_819BD70: @ 819BD70
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ ldr r6, =gUnknown_0300127C
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x6C
+ adds r4, r1, 0
+ muls r4, r0
+ adds r4, r2
+ adds r4, 0x14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x58
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ffff
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ mov r2, r8
+ movs r3, 0x1
+ bl sub_818D7D8
+ ldr r1, [r6]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r1, r2
+ movs r3, 0
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldr r0, [r6]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x28
+ strb r3, [r0]
+ ldr r0, [r6]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x29
+ strb r3, [r0]
+ ldr r0, [r6]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ strb r3, [r0]
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BD70
+
+ thumb_func_start sub_819BE20
+sub_819BE20: @ 819BE20
+ ldr r1, =gUnknown_0300127C
+ ldr r1, [r1]
+ movs r2, 0xA8
+ lsls r2, 2
+ adds r1, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_819BE20
+
+ thumb_func_start sub_819BE34
+sub_819BE34: @ 819BE34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, =gUnknown_08610638
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r6, =gUnknown_0300127C
+ ldr r1, [r6]
+ ldr r2, =0x00000299
+ mov r10, r2
+ add r1, r10
+ movs r7, 0
+ strb r0, [r1]
+ ldr r0, [r6]
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ mov r8, r1
+ add r0, r8
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x6C
+ adds r4, r1, 0
+ muls r4, r0
+ adds r4, r2
+ adds r4, 0x14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x58
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ffff
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ mov r2, r9
+ movs r3, 0x1
+ bl sub_818D7D8
+ ldr r1, [r6]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r6]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r6]
+ add r0, r10
+ 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]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BE34
+
+ thumb_func_start sub_819BF2C
+sub_819BF2C: @ 819BF2C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r7, 0
+ ldr r0, =gUnknown_0300127C
+ mov r9, r0
+_0819BF3E:
+ movs r2, 0
+ adds r1, r7, 0x1
+ mov r10, r1
+ lsls r0, r7, 2
+ mov r8, r0
+_0819BF48:
+ mov r0, r9
+ ldr r1, [r0]
+ movs r0, 0x6C
+ adds r4, r2, 0
+ muls r4, r0
+ adds r0, r1, r4
+ ldrb r0, [r0, 0x10]
+ cmp r0, r10
+ bne _0819C008
+ adds r4, r1
+ adds r4, 0x14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 19
+ movs r2, 0x80
+ lsls r2, 13
+ adds r0, r2
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ adds r0, 0xD
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ffff
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ movs r3, 0x1
+ bl sub_818D7D8
+ mov r2, r9
+ ldr r1, [r2]
+ add r1, r8
+ movs r2, 0xA5
+ lsls r2, 2
+ adds r1, r2
+ strb r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ add r0, r8
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, =gSprites
+ adds r0, r2
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ mov r2, r9
+ ldr r0, [r2]
+ add r0, r8
+ movs r1, 0xA5
+ lsls r1, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r2, =gSprites
+ adds r0, r2
+ adds r0, 0x29
+ movs r1, 0
+ strb r1, [r0]
+ b _0819C012
+ .pool
+_0819C008:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819BF48
+_0819C012:
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _0819BF3E
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819BF2C
+
+ thumb_func_start sub_819C040
+sub_819C040: @ 819C040
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819C0DC
+ ldr r3, =gSprites
+ ldr r6, =gUnknown_0300127C
+ ldr r2, [r6]
+ ldr r0, =0x00000295
+ adds r5, r2, r0
+ ldrb r0, [r5]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ adds r1, 0x3F
+ ldrb r0, [r1]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0819C0DC
+ ldr r1, =0x0000029d
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0819C0DC
+ adds r1, r4, 0
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldr r1, =0x0000029d
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, =sub_819C1D0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0819C0DC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C040
+
+ thumb_func_start sub_819C100
+sub_819C100: @ 819C100
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819C1BA
+ ldr r6, =gSprites
+ ldr r4, =gUnknown_0300127C
+ ldr r2, [r4]
+ ldr r7, =0x00000295
+ adds r0, r2, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0819C1BA
+ ldr r1, =0x0000029d
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0819C1BA
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ ldr r1, =0x0000029d
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, [r4]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, r7
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r0, [r4]
+ ldr r1, =0x0000029d
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroySprite
+_0819C1BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C100
+
+ thumb_func_start sub_819C1D0
+sub_819C1D0: @ 819C1D0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0819C24E
+ cmp r0, 0x1
+ bgt _0819C1F8
+ cmp r0, 0
+ beq _0819C1FE
+ b _0819C2BA
+ .pool
+_0819C1F8:
+ cmp r0, 0x2
+ beq _0819C270
+ b _0819C2BA
+_0819C1FE:
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ movs r0, 0xE0
+ strh r0, [r4, 0x38]
+ movs r0, 0x40
+ strh r0, [r4, 0x12]
+ movs r0, 0x41
+ strh r0, [r4, 0x18]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0x38]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x37
+ bl SetGpuReg
+ b _0819C2C6
+_0819C24E:
+ movs r0, 0x3
+ bl ShowBg
+ ldr r1, =0x00001248
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _0819C2C6
+ .pool
+_0819C270:
+ ldrh r0, [r4, 0x12]
+ subs r0, 0x4
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x18]
+ adds r1, 0x4
+ strh r1, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _0819C28C
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x5F
+ ble _0819C29E
+_0819C28C:
+ movs r0, 0x20
+ strh r0, [r4, 0x12]
+ movs r0, 0x60
+ strh r0, [r4, 0x18]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+_0819C29E:
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0819C2CC
+ b _0819C2C6
+_0819C2BA:
+ adds r0, r2, 0
+ bl DestroyTask
+ bl sub_819BF2C
+ b _0819C2CC
+_0819C2C6:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0819C2CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C1D0
+
+ thumb_func_start sub_819C2D4
+sub_819C2D4: @ 819C2D4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0819C2F6
+ b _0819C410
+_0819C2F6:
+ cmp r0, 0x1
+ bne _0819C2FC
+ b _0819C460
+_0819C2FC:
+ movs r0, 0x3
+ bl HideBg
+ ldr r4, =gSprites
+ ldr r0, =gUnknown_0300127C
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r1, =0x00000299
+ mov r12, r1
+ add r0, r12
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ mov r0, r8
+ ldr r2, [r0]
+ mov r1, r12
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r4, 0
+ adds r6, 0x1C
+ adds r0, r6
+ ldr r1, =sub_819C100
+ str r1, [r0]
+ ldr r0, =0x00000295
+ mov r9, r0
+ add r2, r9
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ mov r1, r8
+ ldr r2, [r1]
+ mov r1, r9
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, =SpriteCallbackDummy
+ mov r10, r1
+ str r1, [r0]
+ ldr r5, =0x0000029d
+ adds r2, r5
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ mov r0, r8
+ ldr r2, [r0]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r10
+ str r1, [r0]
+ add r2, r12
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ mov r1, r8
+ ldr r0, [r1]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+ adds r0, r7, 0
+ bl DestroyTask
+ b _0819C4A4
+ .pool
+_0819C410:
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ movs r0, 0xE0
+ strh r0, [r4, 0x38]
+ movs r0, 0x20
+ strh r0, [r4, 0x12]
+ movs r0, 0x60
+ strh r0, [r4, 0x18]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0x38]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x37
+ bl SetGpuReg
+ b _0819C49E
+_0819C460:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x4
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x18]
+ subs r1, 0x4
+ strh r1, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ bgt _0819C47C
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x41
+ bgt _0819C484
+_0819C47C:
+ movs r0, 0x40
+ strh r0, [r4, 0x12]
+ movs r0, 0x41
+ strh r0, [r4, 0x18]
+_0819C484:
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ bne _0819C4A4
+_0819C49E:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0819C4A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C2D4
+
+ thumb_func_start sub_819C4B4
+sub_819C4B4: @ 819C4B4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, =gUnknown_08610638
+ adds r0, r4, 0
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r6, =gUnknown_0300127C
+ ldr r1, [r6]
+ ldr r2, =0x00000299
+ mov r8, r2
+ add r1, r8
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ ldr r5, =0x00000295
+ adds r1, r5
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC4
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r6]
+ ldr r4, =0x0000029d
+ adds r1, r4
+ strb r0, [r1]
+ ldr r3, =gSprites
+ ldr r2, [r6]
+ add r8, r2
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, 0x1C
+ adds r0, r3
+ ldr r1, =sub_819C040
+ str r1, [r0]
+ adds r5, r2, r5
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r5, =SpriteCallbackDummy
+ str r5, [r0]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ str r5, [r0]
+ movs r0, 0xA8
+ lsls r0, 2
+ adds r2, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C4B4
+
+ thumb_func_start sub_819C568
+sub_819C568: @ 819C568
+ push {r4,lr}
+ ldr r4, =gUnknown_0300127C
+ ldr r0, [r4]
+ movs r1, 0xA5
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_818D820
+ ldr r0, [r4]
+ movs r1, 0xA6
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_818D820
+ ldr r0, [r4]
+ movs r1, 0xA7
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_818D820
+ ldr r0, =sub_819C2D4
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r0, [r4]
+ movs r1, 0xA8
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C568
+
+ thumb_func_start sub_819C5D0
+sub_819C5D0: @ 819C5D0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ lsls r4, 24
+ lsrs r4, 16
+ orrs r4, r6
+ movs r0, 0x40
+ adds r1, r4, 0
+ bl SetGpuReg
+ lsls r5, 24
+ lsrs r5, 16
+ mov r0, r8
+ orrs r5, r0
+ movs r0, 0x44
+ adds r1, r5, 0
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x37
+ bl SetGpuReg
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C5D0
+
+ thumb_func_start sub_819C634
+sub_819C634: @ 819C634
+ push {r4-r7,lr}
+ lsls r0, 16
+ ldr r2, =gUnknown_0203BC8C
+ ldr r1, [r2]
+ lsrs r0, 12
+ adds r0, r1
+ ldrh r6, [r0]
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldrb r5, [r0, 0x5]
+ movs r3, 0x1
+ cmp r3, r5
+ bcs _0819C694
+ adds r4, r0, 0
+ movs r0, 0x6C
+ mov r12, r0
+ adds r7, r2, 0
+_0819C656:
+ movs r2, 0
+_0819C658:
+ mov r0, r12
+ muls r0, r2
+ adds r1, r4, r0
+ ldrb r0, [r1, 0x10]
+ cmp r0, r3
+ bne _0819C680
+ ldrh r0, [r1, 0xC]
+ ldr r1, [r7]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _0819C68A
+ movs r0, 0
+ b _0819C696
+ .pool
+_0819C680:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819C658
+_0819C68A:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r5
+ bcc _0819C656
+_0819C694:
+ movs r0, 0x1
+_0819C696:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819C634
+
+ thumb_func_start sub_819C69C
+sub_819C69C: @ 819C69C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r5, r0]
+ cmp r2, 0x1
+ beq _0819C6F8
+ cmp r2, 0x1
+ bgt _0819C6C4
+ cmp r2, 0
+ beq _0819C6CA
+ b _0819C7D8
+ .pool
+_0819C6C4:
+ cmp r2, 0x2
+ beq _0819C7B4
+ b _0819C7D8
+_0819C6CA:
+ ldr r1, =gUnknown_0300127C
+ ldr r0, [r1]
+ ldr r3, =0x000002a7
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r1]
+ adds r3, 0x1
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r1]
+ ldr r1, =0x000002a6
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ strh r1, [r5, 0x8]
+ b _0819C7D8
+ .pool
+_0819C6F8:
+ ldr r0, =gUnknown_0300127C
+ ldr r3, [r0]
+ ldr r2, =0x000002a2
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _0819C7D8
+ ldr r1, =0x000002a9
+ adds r0, r3, r1
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _0819C724
+ movs r0, 0x2
+ strh r0, [r5, 0x8]
+ b _0819C7D8
+ .pool
+_0819C724:
+ ldr r2, =0x000002a7
+ adds r1, r3, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bls _0819C764
+ strb r4, [r1]
+ ldr r1, [r7]
+ subs r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0819C758
+ movs r3, 0xAA
+ lsls r3, 2
+ adds r1, r3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _0819C762
+ .pool
+_0819C758:
+ movs r0, 0xAA
+ lsls r0, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+_0819C762:
+ strb r0, [r1]
+_0819C764:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, [r7]
+ movs r4, 0xAA
+ lsls r4, 2
+ adds r1, r4
+ ldrb r1, [r1]
+ movs r2, 0
+ bl BlendPalettes
+ ldr r2, [r7]
+ adds r4, r2, r4
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bls _0819C790
+ ldr r3, =0x000002a6
+ adds r1, r2, r3
+ movs r0, 0
+ b _0819C7D6
+ .pool
+_0819C790:
+ cmp r0, 0
+ bne _0819C7D8
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ ldr r0, =0x000002a6
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _0819C7D6
+ .pool
+_0819C7B4:
+ ldr r0, =gUnknown_0300127C
+ ldr r0, [r0]
+ ldr r2, =0x000002a9
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bls _0819C7D4
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0819C7D8
+ .pool
+_0819C7D4:
+ adds r0, 0x1
+_0819C7D6:
+ strb r0, [r1]
+_0819C7D8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C69C
+
+ thumb_func_start sub_819C7E0
+sub_819C7E0: @ 819C7E0
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTextPrinters
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C7E0
+
+ thumb_func_start sub_819C7FC
+sub_819C7FC: @ 819C7FC
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819C7FC
+
+ thumb_func_start sub_819C810
+sub_819C810: @ 819C810
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ ldr r4, =gPlayerParty
+ ldr r5, =gUnknown_03001284
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x12]
+ movs r6, 0x64
+ muls r0, r6
+ adds r0, r4
+ ldr r2, =gEnemyParty
+ mov r9, r2
+ ldrb r1, [r1, 0x13]
+ muls r1, r6
+ add r1, r9
+ movs r2, 0x64
+ bl memcpy
+ movs r1, 0
+ mov r0, sp
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x12]
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0x20
+ mov r2, sp
+ bl SetMonData
+ ldr r3, =gSaveBlock2Ptr
+ mov r8, r3
+ ldr r3, [r3]
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x12]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3, r2
+ ldrb r1, [r4, 0x13]
+ adds r1, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3, r0
+ movs r1, 0xE7
+ lsls r1, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, r1
+ strh r0, [r2]
+ ldrb r0, [r4, 0x12]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3, r2
+ ldrb r1, [r4, 0x13]
+ adds r1, 0x3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0
+ ldr r0, =0x00000e78
+ adds r3, r0
+ ldrb r1, [r3]
+ adds r2, r0
+ strb r1, [r2]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x13]
+ muls r0, r6
+ add r0, r9
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r4, [r5]
+ ldrb r3, [r4, 0x12]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ ldr r3, =0x00000e74
+ adds r2, r3
+ adds r2, r1
+ str r0, [r2]
+ ldrb r0, [r4, 0x13]
+ muls r0, r6
+ add r0, r9
+ movs r1, 0x2E
+ movs r2, 0
+ bl GetBoxMonData
+ mov r1, r8
+ ldr r2, [r1]
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x12]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r2, r1
+ ldr r3, =0x00000e79
+ adds r2, r3
+ strb r0, [r2]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C810
+
+ thumb_func_start sub_819C90C
+sub_819C90C: @ 819C90C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x7
+ beq _0819C950
+ cmp r0, 0x7
+ bgt _0819C934
+ cmp r0, 0x6
+ beq _0819C93A
+ b _0819C9F0
+ .pool
+_0819C934:
+ cmp r0, 0x8
+ beq _0819C9C4
+ b _0819C9F0
+_0819C93A:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x7
+ strh r0, [r6, 0x8]
+ b _0819C9F0
+_0819C950:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0819C9F0
+ ldr r4, =gUnknown_03001284
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r1, [r4]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ bl sub_819F444
+ bl sub_819E538
+ ldr r4, =gUnknown_0203CE40
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE44
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE48
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE4C
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ bl FreeAllWindowBuffers
+ movs r0, 0x8
+ strh r0, [r6, 0x8]
+ b _0819C9F0
+ .pool
+_0819C9C4:
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r2, =gUnknown_03001284
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+ ldr r2, [r2]
+ ldr r0, =gPlttBufferUnfaded
+ movs r1, 0xF4
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x24]
+ ldr r1, =gPlayerParty
+ ldrb r2, [r2, 0x3]
+ ldr r0, =sub_819DC1C
+ str r0, [sp]
+ movs r0, 0
+ movs r3, 0x2
+ bl sub_81BF8EC
+_0819C9F0:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819C90C
+
+ thumb_func_start sub_819CA08
+sub_819CA08: @ 819CA08
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, =gUnknown_03001284
+ ldr r2, [r7]
+ adds r0, r2, 0
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819CAFE
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0819CA78
+ cmp r1, 0x1
+ bgt _0819CA44
+ cmp r1, 0
+ beq _0819CA4E
+ b _0819CAFE
+ .pool
+_0819CA44:
+ cmp r1, 0x2
+ beq _0819CA8C
+ cmp r1, 0x3
+ beq _0819CAA4
+ b _0819CAFE
+_0819CA4E:
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0819CA68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+ b _0819CAFE
+ .pool
+_0819CA68:
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ b _0819CAFE
+ .pool
+_0819CA78:
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0819CA9C
+ ldrb r0, [r2, 0x3]
+ strb r0, [r2, 0x13]
+ bl sub_819C810
+ b _0819CA9C
+_0819CA8C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0819CA9C:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819CAFE
+_0819CAA4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0819CAFE
+ ldr r0, [r7]
+ adds r0, 0x21
+ ldrb r0, [r0]
+ bl DestroyTask
+ bl sub_819E538
+ ldr r4, =gUnknown_0203CE40
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE44
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE48
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203CE4C
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r0, [r7]
+ bl Free
+ str r5, [r7]
+ bl FreeAllWindowBuffers
+ ldr r0, =sub_80861B0
+ bl SetMainCallback2
+ adds r0, r6, 0
+ bl DestroyTask
+_0819CAFE:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819CA08
+
+ thumb_func_start sub_819CB1C
+sub_819CB1C: @ 819CB1C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r7, =gUnknown_03001284
+ ldr r0, [r7]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819CBD6
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ beq _0819CB50
+ cmp r0, 0x5
+ beq _0819CB5A
+ b _0819CBD6
+ .pool
+_0819CB50:
+ bl sub_819E9E0
+ movs r0, 0x5
+ strh r0, [r4, 0x8]
+ b _0819CBD6
+_0819CB5A:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r6, 0x1
+ adds r5, r6, 0
+ ands r5, r1
+ cmp r5, 0
+ beq _0819CB86
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0819CB80
+ strh r6, [r4, 0xA]
+ b _0819CB9C
+ .pool
+_0819CB80:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0819CB96
+_0819CB86:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CBA8
+ movs r0, 0x5
+ bl PlaySE
+ strh r5, [r4, 0xA]
+_0819CB96:
+ movs r0, 0x4
+ bl sub_819EA64
+_0819CB9C:
+ ldrh r0, [r4, 0x14]
+ ldrh r1, [r4, 0x16]
+ lsls r0, 16
+ orrs r0, r1
+ str r0, [r4]
+ b _0819CBD6
+_0819CBA8:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CBC2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819E758
+ b _0819CBD6
+_0819CBC2:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CBD6
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_819E758
+_0819CBD6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819CB1C
+
+ thumb_func_start sub_819CBDC
+sub_819CBDC: @ 819CBDC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0819CC04
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r0, =sub_819CA08
+ b _0819CC16
+ .pool
+_0819CC04:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r1, =sub_819CE40
+ lsrs r0, r1, 16
+ strh r0, [r2, 0x14]
+ strh r1, [r2, 0x16]
+ movs r0, 0x1
+ strh r0, [r2, 0x12]
+ ldr r0, =sub_819D770
+_0819CC16:
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819CBDC
+
+ thumb_func_start sub_819CC24
+sub_819CC24: @ 819CC24
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ bne _0819CC5A
+ ldr r0, =gUnknown_085EECBB
+ bl sub_819EBEC
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x20
+ strb r5, [r0]
+ movs r0, 0x4
+ strh r0, [r4, 0x8]
+ ldr r1, =sub_819CBDC
+ lsrs r0, r1, 16
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x16]
+ ldr r0, =sub_819CB1C
+ str r0, [r4]
+_0819CC5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819CC24
+
+ thumb_func_start sub_819CC74
+sub_819CC74: @ 819CC74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F3F8
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0819CCB0
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r0, =sub_819CA08
+ b _0819CCC2
+ .pool
+_0819CCB0:
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ ldr r1, =sub_819CE40
+ lsrs r0, r1, 16
+ strh r0, [r2, 0x14]
+ strh r1, [r2, 0x16]
+ movs r0, 0x1
+ strh r0, [r2, 0x12]
+ ldr r0, =sub_819D770
+_0819CCC2:
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819CC74
+
+ thumb_func_start sub_819CCD4
+sub_819CCD4: @ 819CCD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0819CD1A
+ ldr r4, =gUnknown_03001284
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x2D
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F2B4
+ ldr r0, =gUnknown_085EECF0
+ bl sub_819EBEC
+ ldr r0, [r4]
+ adds r0, 0x20
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x4
+ strh r0, [r5, 0x8]
+ ldr r1, =sub_819CC74
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ ldr r0, =sub_819CB1C
+ str r0, [r5]
+_0819CD1A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819CCD4
+
+ thumb_func_start sub_819CD34
+sub_819CD34: @ 819CD34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ beq _0819CDA4
+ cmp r0, 0x3
+ bgt _0819CD60
+ cmp r0, 0x2
+ beq _0819CD66
+ b _0819CE36
+ .pool
+_0819CD60:
+ cmp r0, 0x9
+ beq _0819CD88
+ b _0819CE36
+_0819CD66:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x15]
+ cmp r0, 0
+ bne _0819CD7C
+ adds r0, r1, 0
+ adds r0, 0x2D
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F2B4
+_0819CD7C:
+ movs r0, 0x9
+ strh r0, [r5, 0x8]
+ b _0819CE36
+ .pool
+_0819CD88:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819CE36
+ bl sub_819E944
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ b _0819CE36
+ .pool
+_0819CDA4:
+ ldr r7, =gUnknown_03001284
+ ldr r0, [r7]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819CE36
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ mov r8, r0
+ mov r4, r8
+ ands r4, r1
+ cmp r4, 0
+ beq _0819CDD8
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ bl sub_819F0A0
+ b _0819CE36
+ .pool
+_0819CDD8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CE14
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r7]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F3F8
+ movs r0, 0x3
+ bl sub_819EA64
+ strh r4, [r5, 0x8]
+ ldr r1, =sub_819CE40
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x14]
+ strh r1, [r5, 0x16]
+ mov r1, r8
+ strh r1, [r5, 0x12]
+ ldr r0, =sub_819D770
+ str r0, [r5]
+ b _0819CE36
+ .pool
+_0819CE14:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CE28
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819E7C0
+ b _0819CE36
+_0819CE28:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CE36
+ movs r0, 0x1
+ bl sub_819E7C0
+_0819CE36:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819CD34
+
+ thumb_func_start sub_819CE40
+sub_819CE40: @ 819CE40
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0819CE64
+ cmp r0, 0x1
+ beq _0819CE88
+ b _0819CF4C
+ .pool
+_0819CE64:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0819CF4C
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x22
+ movs r1, 0x1
+ strb r1, [r0]
+ strh r1, [r4, 0x8]
+ b _0819CF4C
+ .pool
+_0819CE88:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ adds r5, r1, 0
+ ands r5, r0
+ cmp r5, 0
+ beq _0819CEBC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x22
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_819EE08
+ bl sub_819EAC0
+ adds r0, r6, 0
+ bl sub_819F184
+ b _0819CF4C
+ .pool
+_0819CEBC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CEF8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x22
+ strb r5, [r0]
+ bl sub_819EE08
+ bl sub_819EAC0
+ ldr r1, =sub_819CC24
+ lsrs r0, r1, 16
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x16]
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0x12]
+ ldr r0, =sub_819D588
+ str r0, [r4]
+ b _0819CF4C
+ .pool
+_0819CEF8:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CF0C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819E694
+ b _0819CF2A
+_0819CF0C:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CF1C
+ movs r0, 0x1
+ bl sub_819E694
+ b _0819CF2A
+_0819CF1C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CF34
+ movs r0, 0x1
+ bl sub_819E6E8
+_0819CF2A:
+ bl sub_819EFA8
+ bl sub_819EB4C
+ b _0819CF4C
+_0819CF34:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0819CF4C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_819E6E8
+ bl sub_819EFA8
+ bl sub_819EB4C
+_0819CF4C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819CE40
+
+ thumb_func_start sub_819CF54
+sub_819CF54: @ 819CF54
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r2, [r4, r0]
+ cmp r2, 0x1
+ beq _0819CFA0
+ cmp r2, 0x1
+ bgt _0819CF7C
+ cmp r2, 0
+ beq _0819CF82
+ b _0819D05C
+ .pool
+_0819CF7C:
+ cmp r2, 0x2
+ beq _0819D03C
+ b _0819D05C
+_0819CF82:
+ ldr r1, =gUnknown_03001284
+ ldr r0, [r1]
+ adds r0, 0x27
+ strb r2, [r0]
+ ldr r0, [r1]
+ adds r0, 0x28
+ strb r2, [r0]
+ ldr r0, [r1]
+ adds r0, 0x26
+ movs r1, 0x1
+ strb r1, [r0]
+ strh r1, [r4, 0x8]
+ b _0819D05C
+ .pool
+_0819CFA0:
+ ldr r1, =gUnknown_03001284
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0819D05C
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _0819CFC4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ b _0819D05C
+ .pool
+_0819CFC4:
+ adds r1, r2, 0
+ adds r1, 0x27
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r1, r0, 0
+ adds r1, 0x27
+ ldrb r0, [r1]
+ cmp r0, 0x6
+ bls _0819CFF8
+ strb r3, [r1]
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0819CFF0
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _0819CFF6
+_0819CFF0:
+ adds r1, 0x28
+ ldrb r0, [r1]
+ adds r0, 0x1
+_0819CFF6:
+ strb r0, [r1]
+_0819CFF8:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, [r6]
+ adds r1, 0x28
+ ldrb r1, [r1]
+ movs r2, 0
+ bl BlendPalettes
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _0819D01C
+ adds r1, r2, 0
+ adds r1, 0x26
+ movs r0, 0
+ b _0819D05A
+_0819D01C:
+ cmp r0, 0
+ bne _0819D05C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+ adds r1, r2, 0
+ adds r1, 0x26
+ movs r0, 0x1
+ b _0819D05A
+ .pool
+_0819D03C:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x29
+ ldrb r0, [r1]
+ cmp r0, 0xE
+ bls _0819D058
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819D05C
+ .pool
+_0819D058:
+ adds r0, 0x1
+_0819D05A:
+ strb r0, [r1]
+_0819D05C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819CF54
+
+ thumb_func_start sub_819D064
+sub_819D064: @ 819D064
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0819D0A4
+ cmp r1, 0x1
+ bgt _0819D08C
+ cmp r1, 0
+ beq _0819D092
+ b _0819D118
+ .pool
+_0819D08C:
+ cmp r1, 0x2
+ beq _0819D0BC
+ b _0819D118
+_0819D092:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x27
+ strb r1, [r0]
+ strh r1, [r4, 0x10]
+ b _0819D0AE
+ .pool
+_0819D0A4:
+ ldr r0, =gPlttBufferUnfaded+ 0x1E0
+ movs r1, 0xE0
+ movs r2, 0xA
+ bl LoadPalette
+_0819D0AE:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819D118
+ .pool
+_0819D0BC:
+ ldr r2, =gUnknown_03001284
+ ldr r0, [r2]
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bls _0819D0D2
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0819D0D2:
+ ldr r1, [r2]
+ adds r1, 0x27
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r2]
+ adds r1, r0, 0
+ adds r1, 0x27
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bls _0819D108
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, =gPlttBufferUnfaded
+ ldr r0, =gPlttBufferFaded
+ movs r3, 0xE4
+ lsls r3, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ adds r3, 0x20
+ adds r1, r3
+ strh r0, [r1]
+ ldr r1, [r2]
+ adds r1, 0x28
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0819D108:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, [r2]
+ adds r1, 0x28
+ ldrb r1, [r1]
+ movs r2, 0
+ bl BlendPalettes
+_0819D118:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819D064
+
+ thumb_func_start sub_819D12C
+sub_819D12C: @ 819D12C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, =gTasks
+ lsls r0, 2
+ ldr r2, [sp]
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r2, 0x8
+ ldrsh r3, [r4, r2]
+ cmp r3, 0
+ beq _0819D15C
+ cmp r3, 0x1
+ beq _0819D168
+ b _0819D310
+ .pool
+_0819D15C:
+ strh r3, [r4, 0xA]
+ strh r3, [r4, 0xC]
+ strh r3, [r4, 0xE]
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819D310
+_0819D168:
+ movs r3, 0
+ str r3, [sp, 0x4]
+ movs r1, 0x2
+ str r0, [sp, 0x8]
+ ldr r0, =gTasks
+ str r0, [sp, 0xC]
+_0819D174:
+ lsls r0, r1, 24
+ asrs r4, r0, 24
+ mov r9, r0
+ cmp r4, 0x2
+ beq _0819D1F2
+ ldr r2, =gSprites
+ ldr r3, =gUnknown_03001284
+ ldr r0, [r3]
+ adds r0, 0x5
+ mov r8, r0
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r2
+ ldrh r1, [r6, 0x20]
+ mov r12, r1
+ mov r7, r12
+ ldr r1, [sp, 0x4]
+ subs r0, r1, r7
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r10, r2
+ cmp r5, 0x10
+ beq _0819D1BE
+ adds r0, r4, 0x2
+ lsls r0, 1
+ ldr r2, [sp, 0x8]
+ adds r0, r2
+ ldr r1, =gTasks
+ adds r1, 0x8
+ adds r0, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _0819D1D8
+_0819D1BE:
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r12
+ adds r0, 0xA
+ strh r0, [r6, 0x20]
+ b _0819D210
+ .pool
+_0819D1D8:
+ cmp r5, 0x10
+ bls _0819D210
+ adds r0, r4, 0x1
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrh r0, [r0, 0x20]
+ subs r0, 0x30
+ strh r0, [r6, 0x20]
+ b _0819D210
+_0819D1F2:
+ ldr r3, =gSprites
+ ldr r4, =gUnknown_03001284
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r2, [r0, 0x20]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ adds r2, 0xA
+ strh r2, [r0, 0x20]
+ mov r10, r3
+_0819D210:
+ mov r0, r9
+ asrs r2, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 1
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ ldr r1, =gTasks
+ adds r1, 0x8
+ adds r0, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _0819D26A
+ ldr r1, =gUnknown_03001284
+ ldr r0, [r1]
+ adds r0, 0x5
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r3, r10
+ adds r1, r0, r3
+ movs r0, 0x20
+ ldrsh r3, [r1, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 4
+ adds r0, 0x48
+ cmp r3, r0
+ ble _0819D260
+ strh r0, [r1, 0x20]
+ movs r7, 0x1
+ b _0819D26C
+ .pool
+_0819D260:
+ movs r7, 0
+ cmp r3, r0
+ bne _0819D26C
+ movs r7, 0x1
+ b _0819D26C
+_0819D26A:
+ movs r7, 0
+_0819D26C:
+ mov r6, r10
+ ldr r5, =gUnknown_03001284
+ ldr r2, [r5]
+ mov r1, r9
+ asrs r4, r1, 24
+ adds r0, r2, 0x5
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r6
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ subs r0, 0x10
+ cmp r0, 0xF0
+ ble _0819D2F8
+ ldrh r0, [r1, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ ldr r0, =0x0000fff0
+ strh r0, [r1, 0x20]
+ ldrb r0, [r2, 0x14]
+ cmp r0, 0x1
+ bne _0819D2C0
+ movs r0, 0x65
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r5]
+ adds r1, 0x5
+ adds r1, r4
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r6
+ b _0819D2D8
+ .pool
+_0819D2C0:
+ movs r0, 0x64
+ bl IndexOfSpritePaletteTag
+ ldr r2, =gUnknown_03001284
+ ldr r1, [r2]
+ adds r1, 0x5
+ adds r1, r4
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r10
+_0819D2D8:
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r3, r9
+ asrs r0, r3, 23
+ adds r0, 0x2
+ ldr r1, [sp, 0x8]
+ adds r0, r1
+ ldr r2, [sp, 0xC]
+ adds r2, 0x8
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0]
+_0819D2F8:
+ movs r0, 0xFF
+ lsls r0, 24
+ add r0, r9
+ lsrs r1, r0, 24
+ cmp r0, 0
+ blt _0819D306
+ b _0819D174
+_0819D306:
+ cmp r7, 0x1
+ bne _0819D310
+ ldr r0, [sp]
+ bl DestroyTask
+_0819D310:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819D12C
+
+ thumb_func_start sub_819D324
+sub_819D324: @ 819D324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r4, [r2, 0xE]
+ movs r0, 0xC
+ ldrsh r5, [r2, r0]
+ mov r10, r1
+ cmp r5, 0x1
+ bne _0819D352
+ lsls r0, r4, 24
+ negs r0, r0
+ lsrs r4, r0, 24
+_0819D352:
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0819D368
+ cmp r0, 0x1
+ bne _0819D360
+ b _0819D480
+_0819D360:
+ b _0819D570
+ .pool
+_0819D368:
+ ldr r3, =gSprites
+ ldr r2, =gUnknown_03001284
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ cmp r5, 0
+ bne _0819D39C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r4, 24
+ asrs r1, r2, 24
+ adds r0, r1
+ movs r1, 0x1
+ cmp r0, 0xEF
+ ble _0819D3B2
+ movs r1, 0
+ movs r0, 0xF0
+ b _0819D3B0
+ .pool
+_0819D39C:
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r4, 24
+ asrs r1, r2, 24
+ adds r0, r1
+ movs r1, 0x1
+ cmp r0, 0xA0
+ bgt _0819D3B2
+ movs r1, 0
+ movs r0, 0xA0
+_0819D3B0:
+ mov r8, r0
+_0819D3B2:
+ cmp r1, 0x1
+ bne _0819D3FC
+ movs r3, 0
+ ldr r7, =gSprites
+ ldr r6, =gUnknown_03001284
+ asrs r5, r2, 24
+_0819D3BE:
+ movs r4, 0
+ adds r2, r3, 0x1
+_0819D3C2:
+ ldr r1, [r6]
+ lsls r0, r4, 1
+ adds r0, r4
+ adds r0, r3, r0
+ adds r1, 0x8
+ adds r1, r0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r1, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0819D3C2
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _0819D3BE
+ b _0819D570
+ .pool
+_0819D3FC:
+ movs r4, 0
+ lsls r1, r7, 2
+ mov r12, r1
+ mov r6, r8
+ adds r6, 0x10
+ movs r0, 0x30
+ add r0, r8
+ mov r9, r0
+ ldr r5, =gSprites
+_0819D40E:
+ ldr r1, =gUnknown_03001284
+ ldr r2, [r1]
+ lsls r3, r4, 1
+ adds r3, r4
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x9
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x20]
+ adds r2, 0xA
+ adds r2, r3
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0819D40E
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r10
+ ldrb r1, [r0, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r10
+ movs r1, 0x1
+ strh r1, [r0, 0xE]
+ adds r0, r7, 0
+ bl DestroyTask
+ b _0819D570
+ .pool
+_0819D480:
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r1, [r0, 0xE]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ cmp r5, 0
+ bne _0819D4B4
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r4, 24
+ asrs r1, r2, 24
+ adds r0, r1
+ movs r1, 0x1
+ cmp r0, 0xEF
+ ble _0819D4CA
+ movs r1, 0
+ movs r0, 0xF0
+ b _0819D4C8
+ .pool
+_0819D4B4:
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r4, 24
+ asrs r1, r2, 24
+ adds r0, r1
+ movs r1, 0x1
+ cmp r0, 0xC0
+ bgt _0819D4CA
+ movs r1, 0
+ movs r0, 0xC0
+_0819D4C8:
+ mov r8, r0
+_0819D4CA:
+ cmp r1, 0x1
+ bne _0819D510
+ movs r3, 0
+ ldr r7, =gSprites
+ ldr r6, =gUnknown_03001284
+ asrs r5, r2, 24
+_0819D4D6:
+ movs r4, 0
+ adds r2, r3, 0x1
+_0819D4DA:
+ ldr r0, [r6]
+ lsls r1, r4, 1
+ adds r1, r3, r1
+ adds r0, 0xE
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrh r1, [r0, 0x20]
+ adds r1, r5
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0819D4DA
+ lsls r0, r2, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bls _0819D4D6
+ b _0819D570
+ .pool
+_0819D510:
+ movs r4, 0
+ lsls r1, r7, 2
+ mov r12, r1
+ mov r6, r8
+ adds r6, 0x10
+ ldr r5, =gSprites
+ ldr r0, =gUnknown_03001284
+ mov r9, r0
+_0819D520:
+ mov r1, r9
+ ldr r2, [r1]
+ lsls r3, r4, 1
+ adds r0, r2, 0
+ adds r0, 0xE
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x20]
+ adds r2, 0xF
+ adds r2, r3
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x20]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0819D520
+ mov r1, r12
+ adds r0, r1, r7
+ lsls r0, 3
+ add r0, r10
+ ldrb r1, [r0, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ add r0, r10
+ movs r1, 0x1
+ strh r1, [r0, 0x10]
+ adds r0, r7, 0
+ bl DestroyTask
+_0819D570:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819D324
+
+ thumb_func_start sub_819D588
+sub_819D588: @ 819D588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ 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, 0x8
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0x5
+ bls _0819D5AA
+ b _0819D762
+_0819D5AA:
+ lsls r0, 2
+ ldr r1, =_0819D5BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819D5BC:
+ .4byte _0819D5D4
+ .4byte _0819D5F0
+ .4byte _0819D60C
+ .4byte _0819D63C
+ .4byte _0819D6F0
+ .4byte _0819D73A
+_0819D5D4:
+ ldr r0, =gUnknown_08610918
+ movs r1, 0xE0
+ movs r2, 0xA
+ bl LoadPalette
+ bl sub_819ED34
+ movs r0, 0x5
+ bl PutWindowTilemap
+ b _0819D622
+ .pool
+_0819D5F0:
+ movs r0, 0x3
+ bl sub_819EA64
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0819D762
+ .pool
+_0819D60C:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, =gUnknown_0860F13C
+ adds r1, 0x4A
+ ldrh r1, [r1]
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0819D622:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0819D762
+ .pool
+_0819D63C:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0819D64E
+ b _0819D762
+_0819D64E:
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x5
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0x1
+ bne _0819D6B0
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gTasks
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r1
+ strh r6, [r2, 0xE]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ strh r6, [r0, 0x8]
+ strh r6, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ movs r0, 0x5
+ strh r0, [r2, 0xC]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0819D762
+ .pool
+_0819D6B0:
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, =gTasks
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r3
+ movs r1, 0x1
+ strh r1, [r2, 0xE]
+ strh r6, [r2, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ strh r5, [r0, 0xA]
+ strh r1, [r0, 0x8]
+ strh r6, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x2
+ strh r0, [r2, 0x8]
+ b _0819D762
+ .pool
+_0819D6F0:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r6, r0, r1
+ ldrh r0, [r6, 0xC]
+ movs r2, 0xC
+ ldrsh r7, [r6, r2]
+ cmp r7, 0
+ bne _0819D734
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ strh r7, [r6, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ strh r5, [r0, 0xA]
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r7, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0819D762
+ .pool
+_0819D734:
+ subs r0, 0x1
+ strh r0, [r6, 0xC]
+ b _0819D762
+_0819D73A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r2, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0819D762
+ movs r1, 0x10
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0819D762
+ ldrh r0, [r2, 0x12]
+ strh r0, [r2, 0x8]
+ ldrh r0, [r2, 0x14]
+ ldrh r1, [r2, 0x16]
+ lsls r0, 16
+ orrs r0, r1
+ str r0, [r2]
+_0819D762:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819D588
+
+ thumb_func_start sub_819D770
+sub_819D770: @ 819D770
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gUnknown_03001284
+ ldr r0, [r1]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x1
+ bne _0819D78C
+ b _0819D9D8
+_0819D78C:
+ ldr r0, =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r4, 0x8
+ ldrsh r1, [r1, r4]
+ mov r8, r0
+ adds r5, r2, 0
+ cmp r1, 0x8
+ bls _0819D7A4
+ b _0819D9D8
+_0819D7A4:
+ lsls r0, r1, 2
+ ldr r1, =_0819D7BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819D7BC:
+ .4byte _0819D7E0
+ .4byte _0819D868
+ .4byte _0819D8AE
+ .4byte _0819D8F4
+ .4byte _0819D910
+ .4byte _0819D928
+ .4byte _0819D936
+ .4byte _0819D948
+ .4byte _0819D9B0
+_0819D7E0:
+ ldr r0, [r3]
+ ldrb r7, [r0, 0x14]
+ cmp r7, 0x1
+ bne _0819D828
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, =gTasks
+ adds r2, r5, r6
+ lsls r2, 3
+ adds r2, r3
+ movs r1, 0
+ strh r1, [r2, 0xE]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ strh r6, [r0, 0xA]
+ strh r1, [r0, 0x8]
+ strh r7, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ movs r0, 0xA
+ strh r0, [r2, 0xC]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0819D9D8
+ .pool
+_0819D828:
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, =gTasks
+ adds r2, r5, r6
+ lsls r2, 3
+ adds r2, r3
+ movs r0, 0
+ movs r1, 0x1
+ strh r1, [r2, 0xE]
+ strh r0, [r2, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ strh r6, [r0, 0xA]
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x2
+ strh r0, [r2, 0x8]
+ b _0819D9D8
+ .pool
+_0819D868:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xC]
+ movs r2, 0xC
+ ldrsh r7, [r5, r2]
+ cmp r7, 0
+ bne _0819D8A8
+ ldr r0, =sub_819D324
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ strh r7, [r5, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ add r0, r8
+ strh r6, [r0, 0xA]
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ strh r1, [r0, 0xC]
+ movs r1, 0x6
+ strh r1, [r0, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _0819D9D8
+ .pool
+_0819D8A8:
+ subs r0, 0x1
+ strh r0, [r5, 0xC]
+ b _0819D9D8
+_0819D8AE:
+ adds r0, r5, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _0819D8C0
+ b _0819D9D8
+_0819D8C0:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0819D8CA
+ b _0819D9D8
+_0819D8CA:
+ ldr r1, =gPlttBufferFaded
+ ldr r0, =gUnknown_0860F13C
+ adds r0, 0x4A
+ ldrh r0, [r0]
+ movs r2, 0xE2
+ lsls r2, 1
+ adds r1, r2
+ strh r0, [r1]
+ bl sub_819ED34
+ movs r0, 0x5
+ bl PutWindowTilemap
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0819D9D8
+ .pool
+_0819D8F4:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, =gUnknown_0860F13C
+ adds r1, 0x4A
+ ldrh r1, [r1]
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0819D990
+ .pool
+_0819D910:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0819D9D8
+ movs r0, 0
+ bl sub_819EDBC
+ b _0819D990
+ .pool
+_0819D928:
+ movs r0, 0x1
+ bl sub_819EDBC
+ movs r0, 0x3
+ bl PutWindowTilemap
+ b _0819D990
+_0819D936:
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x5
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0819D990
+_0819D948:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _0819D964
+ ldr r0, =gUnknown_085EEC73
+ bl sub_819EBEC
+ b _0819D96A
+ .pool
+_0819D964:
+ ldr r0, =gUnknown_085EEC8B
+ bl sub_819EBEC
+_0819D96A:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x2
+ bhi _0819D98C
+ ldr r2, =gSprites
+ ldrb r1, [r1, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0819D98C:
+ bl sub_819EFA8
+_0819D990:
+ ldr r0, =gTasks
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0819D9D8
+ .pool
+_0819D9B0:
+ bl sub_819EEF0
+ bl sub_819EADC
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x22
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, =gTasks
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x12]
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x14]
+ ldrh r2, [r0, 0x16]
+ lsls r1, 16
+ orrs r1, r2
+ str r1, [r0]
+_0819D9D8:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819D770
+
+ thumb_func_start sub_819D9EC
+sub_819D9EC: @ 819D9EC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0819DA00
+ b _0819DBCA
+_0819DA00:
+ ldr r0, =gTasks
+ lsls r2, r6, 2
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r3, 0x8
+ ldrsh r1, [r1, r3]
+ adds r3, r0, 0
+ adds r7, r2, 0
+ cmp r1, 0x4
+ bls _0819DA18
+ b _0819DBCA
+_0819DA18:
+ lsls r0, r1, 2
+ ldr r1, =_0819DA30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819DA30:
+ .4byte _0819DA44
+ .4byte _0819DA58
+ .4byte _0819DA8C
+ .4byte _0819DABC
+ .4byte _0819DBB0
+_0819DA44:
+ bl sub_819EEF0
+ ldr r0, =gTasks
+ adds r1, r7, r6
+ lsls r1, 3
+ adds r1, r0
+ b _0819DB96
+ .pool
+_0819DA58:
+ bl sub_819EADC
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x4]
+ 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]
+ ldr r0, =gTasks
+ adds r1, r7, r6
+ lsls r1, 3
+ adds r1, r0
+ b _0819DB96
+ .pool
+_0819DA8C:
+ ldr r0, =sub_819D12C
+ movs r1, 0
+ bl CreateTask
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =sub_819D064
+ str r1, [r0]
+ b _0819DB90
+ .pool
+_0819DABC:
+ ldr r0, =sub_819D12C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _0819DACA
+ b _0819DBCA
+_0819DACA:
+ ldr r2, =gTasks
+ ldr r4, =gUnknown_03001284
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x10
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0819DBCA
+ bl sub_819EAC0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _0819DB04
+ movs r0, 0x1
+ bl sub_819F048
+ b _0819DB32
+ .pool
+_0819DB04:
+ movs r0, 0
+ bl sub_819F048
+ movs r2, 0
+ ldr r5, =gSprites
+ movs r3, 0x4
+_0819DB10:
+ ldr r0, [r4]
+ adds r0, 0xB
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _0819DB10
+_0819DB32:
+ ldr r5, =gSprites
+ ldr r4, =gUnknown_03001284
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r0, r3, 0x5
+ ldrb r2, [r3, 0x3]
+ adds r0, r2
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x20]
+ movs r5, 0
+ strh r0, [r1, 0x20]
+ ldr r2, =gTasks
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, =sub_819CF54
+ str r1, [r0]
+ adds r3, 0x27
+ strb r5, [r3]
+ ldr r0, [r4]
+ adds r0, 0x28
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x26
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+_0819DB90:
+ adds r1, r7, r6
+ lsls r1, 3
+ adds r1, r2
+_0819DB96:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0819DBCA
+ .pool
+_0819DBB0:
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r2, =sub_819CE40
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x14]
+ strh r2, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x12]
+ ldr r1, =sub_819D770
+ str r1, [r0]
+_0819DBCA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819D9EC
+
+ thumb_func_start sub_819DBD8
+sub_819DBD8: @ 819DBD8
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_03001284
+ ldr r4, [r5]
+ cmp r4, 0
+ bne _0819DBF6
+ movs r0, 0x34
+ bl AllocZeroed
+ str r0, [r5]
+ strb r4, [r0, 0x3]
+ ldr r0, [r5]
+ adds r0, 0x30
+ strb r4, [r0]
+ ldr r0, [r5]
+ strb r4, [r0, 0x15]
+_0819DBF6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819DBD8
+
+ thumb_func_start sub_819DC00
+sub_819DC00: @ 819DC00
+ push {lr}
+ ldr r0, =gUnknown_03001284
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =sub_819DC1C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819DC00
+
+ thumb_func_start sub_819DC1C
+sub_819DC1C: @ 819DC1C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xF
+ bls _0819DC32
+ b _0819E0AA
+_0819DC32:
+ lsls r0, 2
+ ldr r1, =_0819DC44
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819DC44:
+ .4byte _0819DC84
+ .4byte _0819DCD4
+ .4byte _0819DDA8
+ .4byte _0819DE68
+ .4byte _0819DE94
+ .4byte _0819DECC
+ .4byte _0819DEEC
+ .4byte _0819DF10
+ .4byte _0819DF30
+ .4byte _0819DF3C
+ .4byte _0819DF64
+ .4byte _0819DF70
+ .4byte _0819DF78
+ .4byte _0819DF8C
+ .4byte _0819DFA4
+ .4byte _0819E01C
+_0819DC84:
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ add r0, sp, 0x8
+ bl CpuSet
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_086108B8
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_086108C8
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DCD4:
+ ldr r5, =gUnknown_0203CE40
+ movs r4, 0x88
+ lsls r4, 3
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE44
+ adds r0, r4, 0
+ bl AllocZeroed
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE48
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203CE4C
+ adds r0, r4, 0
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ 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, 0
+ bl SetGpuReg
+ b _0819E006
+ .pool
+_0819DDA8:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl dp13_810BB8C
+ ldr r0, =gUnknown_08DC0754
+ ldr r5, =gUnknown_0203CE40
+ ldr r1, [r5]
+ movs r2, 0x88
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, =gUnknown_0861033C
+ ldr r4, =gUnknown_0203CE44
+ ldr r1, [r4]
+ movs r2, 0x30
+ bl CpuSet
+ ldr r1, [r5]
+ movs r2, 0x88
+ lsls r2, 3
+ movs r0, 0x1
+ movs r3, 0
+ bl LoadBgTiles
+ ldr r1, [r4]
+ movs r0, 0x3
+ movs r2, 0x60
+ movs r3, 0
+ bl LoadBgTiles
+ ldr r0, =gUnknown_08DC0B94
+ ldr r4, =gUnknown_0203CE48
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 3
+ bl CpuSet
+ ldr r1, [r4]
+ movs r2, 0x80
+ lsls r2, 4
+ movs r0, 0x1
+ movs r3, 0
+ bl LoadBgTilemap
+ ldr r0, =gUnknown_08DC0714
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r4, =gUnknown_08610918
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xE0
+ movs r2, 0xA
+ bl LoadPalette
+ ldr r0, =gUnknown_0861039C
+ movs r1, 0x20
+ movs r2, 0x4
+ bl LoadPalette
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DE68:
+ ldr r0, =gUnknown_0203CE4C
+ ldr r1, [r0]
+ movs r0, 0x3
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_0861023C
+ movs r0, 0x8
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ movs r2, 0xB
+ movs r3, 0x4
+ bl CopyToBgTilemapBufferRect
+ movs r0, 0x3
+ bl CopyBgTilemapBufferToVram
+ b _0819E006
+ .pool
+_0819DE94:
+ ldr r0, =gUnknown_086106B0
+ bl LoadSpritePalettes
+ ldr r0, =gUnknown_08610650
+ bl LoadSpriteSheets
+ ldr r0, =gUnknown_086106A0
+ bl LoadCompressedObjectPic
+ ldr r0, =sub_819C7FC
+ bl SetVBlankCallback
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DECC:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x15]
+ cmp r0, 0x1
+ bne _0819DEDC
+ ldr r0, =gUnknown_0203CF20
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+_0819DEDC:
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+ b _0819E00E
+ .pool
+_0819DEEC:
+ bl sub_819DBD8
+ bl sub_819E0C0
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0819DF02
+ bl sub_819F304
+_0819DF02:
+ movs r0, 0
+ bl sub_819F048
+ b _0819E006
+ .pool
+_0819DF10:
+ ldr r0, =gUnknown_085EEC73
+ bl sub_819EBEC
+ movs r0, 0x2
+ bl PutWindowTilemap
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DF30:
+ bl sub_819EFA8
+ movs r0, 0x8
+ bl PutWindowTilemap
+ b _0819E006
+_0819DF3C:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0
+ bne _0819DF4A
+ bl sub_819EB4C
+_0819DF4A:
+ movs r0, 0x1
+ bl PutWindowTilemap
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DF64:
+ bl sub_819EB18
+ movs r0, 0
+ bl PutWindowTilemap
+ b _0819E006
+_0819DF70:
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+ b _0819E00E
+_0819DF78:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0
+ beq _0819E006
+ bl sub_819EE08
+ b _0819E006
+ .pool
+_0819DF8C:
+ bl sub_819ED78
+ movs r0, 0x3
+ bl PutWindowTilemap
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0819E00E
+ .pool
+_0819DFA4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0819E000
+ movs r0, 0x3
+ bl ShowBg
+ ldr r1, =0x00001248
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _0819E006
+ .pool
+_0819E000:
+ movs r0, 0x3
+ bl HideBg
+_0819E006:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+_0819E00E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0819E0AA
+ .pool
+_0819E01C:
+ ldr r0, =sub_819CF54
+ movs r1, 0
+ bl CreateTask
+ ldr r6, =gUnknown_03001284
+ ldr r1, [r6]
+ adds r1, 0x21
+ strb r0, [r1]
+ ldr r0, [r6]
+ ldrb r5, [r0, 0x15]
+ cmp r5, 0
+ bne _0819E06C
+ ldr r4, =gTasks
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strh r5, [r0, 0x8]
+ ldr r0, =sub_819CE40
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ strh r5, [r0, 0x8]
+ b _0819E0A4
+ .pool
+_0819E06C:
+ bl sub_819EAF8
+ ldr r4, =gTasks
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ adds r2, 0x22
+ strb r3, [r2]
+ ldr r0, =sub_819CD34
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+_0819E0A4:
+ ldr r0, =sub_819C7E0
+ bl SetMainCallback2
+_0819E0AA:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819DC1C
+
+ thumb_func_start sub_819E0C0
+sub_819E0C0: @ 819E0C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r1, sp
+ ldr r0, =gUnknown_08610834
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ mov r1, sp
+ movs r0, 0x65
+ strh r0, [r1, 0x2]
+ movs r6, 0
+ ldr r4, =gUnknown_03001284
+ movs r7, 0
+ ldr r5, =gSprites
+_0819E0E6:
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 20
+ movs r3, 0x90
+ lsls r3, 15
+ adds r1, r3
+ asrs r1, 16
+ mov r0, sp
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r1, 0x5
+ adds r1, r6
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x5
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r7, [r0, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _0819E0E6
+ ldr r7, =gUnknown_03001284
+ ldr r1, [r7]
+ adds r0, r1, 0x5
+ ldrb r1, [r1, 0x3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ movs r5, 0x20
+ ldrsh r1, [r0, r5]
+ ldr r0, =gUnknown_0861084C
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ movs r4, 0
+ strb r0, [r1, 0x4]
+ ldr r0, =gUnknown_08610864
+ movs r1, 0xB0
+ movs r2, 0x70
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x1]
+ ldr r0, =gUnknown_0861087C
+ movs r1, 0xB0
+ movs r2, 0x90
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x2]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, =gSprites
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x28
+ strb r4, [r0]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x29
+ strb r4, [r0]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x28
+ strb r4, [r0]
+ ldr r0, [r7]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x29
+ strb r4, [r0]
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x15]
+ movs r1, 0xC0
+ str r1, [sp, 0x18]
+ cmp r0, 0x1
+ bne _0819E1E8
+ movs r2, 0xF0
+ str r2, [sp, 0x18]
+_0819E1E8:
+ mov r1, sp
+ ldr r0, =gUnknown_0861084C
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ movs r4, 0x68
+ mov r10, r4
+ mov r5, r10
+ strh r5, [r0]
+ movs r1, 0xF0
+ movs r2, 0x78
+ movs r3, 0xA
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x8]
+ mov r1, sp
+ ldr r0, =gUnknown_08610864
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ mov r0, sp
+ movs r1, 0x69
+ mov r9, r1
+ mov r2, r9
+ strh r2, [r0]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r1, r4, 0
+ movs r2, 0x78
+ movs r3, 0xA
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x9]
+ movs r5, 0x90
+ lsls r5, 1
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0x78
+ movs r3, 0xA
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xA]
+ mov r1, sp
+ ldr r0, =gUnknown_0861084C
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ movs r3, 0x6A
+ mov r8, r3
+ mov r6, r8
+ strh r6, [r0]
+ movs r1, 0xF0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xB]
+ mov r1, sp
+ ldr r0, =gUnknown_08610864
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r1, sp
+ movs r0, 0x6B
+ strh r0, [r1]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xC]
+ mov r0, sp
+ movs r6, 0x6C
+ strh r6, [r0]
+ adds r1, r5, 0
+ movs r2, 0x78
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xD]
+ mov r1, sp
+ ldr r0, =gUnknown_0861084C
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ mov r4, r10
+ strh r4, [r0]
+ ldr r1, [sp, 0x18]
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xE]
+ mov r1, sp
+ ldr r0, =gUnknown_08610864
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r4,r5}
+ stm r1!, {r2,r4,r5}
+ mov r0, sp
+ mov r3, r9
+ strh r3, [r0]
+ ldr r4, [sp, 0x18]
+ adds r4, 0x10
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0xA
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0xF]
+ mov r1, sp
+ ldr r0, =gUnknown_0861084C
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ mov r5, r8
+ strh r5, [r0]
+ ldr r1, [sp, 0x18]
+ movs r2, 0x90
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x10]
+ mov r1, sp
+ ldr r0, =gUnknown_08610864
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, sp
+ strh r6, [r0]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, [r7]
+ strb r0, [r1, 0x11]
+ movs r6, 0
+ ldr r5, =gSprites
+ adds r4, r7, 0
+ movs r7, 0
+ movs r0, 0x4
+ mov r10, r0
+_0819E330:
+ ldr r0, [r4]
+ lsls r3, r6, 1
+ adds r2, r3, r6
+ adds r0, 0x8
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0x8
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xA
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xA
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xE
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xE
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xF
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x28
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0xF
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x29
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, 0x8
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0x9
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ orrs r1, r0
+ mov r0, r8
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xA
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ mov r2, r10
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xE
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r0, 0xF
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, =gUnknown_03001284
+ mov r8, r3
+ ldr r0, =gSprites
+ mov r9, r0
+ cmp r6, 0x1
+ bhi _0819E496
+ b _0819E330
+_0819E496:
+ ldr r0, [r3]
+ ldrb r0, [r0, 0xE]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ b _0819E4C8
+ .pool
+_0819E4C8:
+ ands r0, r2
+ strb r0, [r1]
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x8]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ mov r4, r8
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x9]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0xA]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819E0C0
+
+ thumb_func_start sub_819E538
+sub_819E538: @ 819E538
+ push {r4-r7,lr}
+ movs r5, 0
+_0819E53C:
+ ldr r6, =gUnknown_03001284
+ ldr r0, [r6]
+ adds r0, 0x5
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0819E53C
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ movs r5, 0
+_0819E590:
+ movs r4, 0
+ lsls r6, r5, 1
+_0819E594:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r1, r6, r5
+ adds r1, r4, r1
+ adds r0, 0x8
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0819E594
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0819E590
+ movs r5, 0
+_0819E5C6:
+ movs r4, 0
+ adds r7, r5, 0x1
+ lsls r6, r5, 1
+_0819E5CC:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r1, r4, r6
+ adds r0, 0xE
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0819E5CC
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _0819E5C6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E538
+
+ thumb_func_start sub_819E608
+sub_819E608: @ 819E608
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bhi _0819E65C
+ ldr r4, =gSprites
+ ldr r5, =gUnknown_03001284
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bl sub_819E8EC
+ ldr r0, [r5]
+ ldrb r2, [r0, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r0, 0x5
+ adds r0, r6
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r1, 0x20]
+ b _0819E684
+ .pool
+_0819E65C:
+ ldr r2, =gSprites
+ ldr r3, =gUnknown_03001284
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x4]
+ 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]
+ ldr r0, [r3]
+ ldr r1, [r0, 0x18]
+ lsls r0, r6, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_819E838
+_0819E684:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E608
+
+ thumb_func_start sub_819E694
+sub_819E694: @ 819E694
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ lsls r4, 24
+ cmp r4, 0
+ ble _0819E6C0
+ ldr r1, =gUnknown_03001284
+ ldr r2, [r1]
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x1
+ ldrb r3, [r2, 0x17]
+ cmp r0, r3
+ bne _0819E6D8
+ movs r0, 0
+ b _0819E6D8
+ .pool
+_0819E6C0:
+ ldr r0, =gUnknown_03001284
+ ldr r2, [r0]
+ ldrb r3, [r2, 0x3]
+ adds r1, r0, 0
+ cmp r3, 0
+ beq _0819E6D4
+ subs r0, r3, 0x1
+ b _0819E6D8
+ .pool
+_0819E6D4:
+ ldrb r0, [r2, 0x17]
+ subs r0, 0x1
+_0819E6D8:
+ strb r0, [r2, 0x3]
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x3]
+ bl sub_819E608
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819E694
+
+ thumb_func_start sub_819E6E8
+sub_819E6E8: @ 819E6E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ lsls r4, 24
+ cmp r4, 0
+ ble _0819E728
+ ldr r0, =gUnknown_03001284
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x3]
+ adds r4, r0, 0
+ cmp r1, 0x2
+ bhi _0819E714
+ movs r0, 0x3
+ strb r0, [r2, 0x3]
+ b _0819E74A
+ .pool
+_0819E714:
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x1
+ ldrb r1, [r2, 0x17]
+ cmp r0, r1
+ beq _0819E722
+ strb r0, [r2, 0x3]
+ b _0819E74A
+_0819E722:
+ movs r0, 0
+ strb r0, [r2, 0x3]
+ b _0819E74A
+_0819E728:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x3]
+ adds r2, r3, 0
+ adds r4, r0, 0
+ cmp r2, 0x2
+ bls _0819E744
+ cmp r2, 0
+ beq _0819E744
+ subs r0, r3, 0x1
+ b _0819E748
+ .pool
+_0819E744:
+ ldrb r0, [r1, 0x17]
+ subs r0, 0x1
+_0819E748:
+ strb r0, [r1, 0x3]
+_0819E74A:
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ bl sub_819E608
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819E6E8
+
+ thumb_func_start sub_819E758
+sub_819E758: @ 819E758
+ push {lr}
+ lsls r0, 24
+ cmp r0, 0
+ ble _0819E778
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x16]
+ adds r2, r0, 0
+ cmp r3, 0x1
+ beq _0819E774
+ adds r0, r3, 0x1
+ b _0819E78E
+ .pool
+_0819E774:
+ movs r0, 0
+ b _0819E78E
+_0819E778:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x16]
+ adds r2, r0, 0
+ cmp r3, 0
+ beq _0819E78C
+ subs r0, r3, 0x1
+ b _0819E78E
+ .pool
+_0819E78C:
+ movs r0, 0x1
+_0819E78E:
+ strb r0, [r1, 0x16]
+ ldr r3, =gSprites
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2, 0x16]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2, 0x16]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E758
+
+ thumb_func_start sub_819E7C0
+sub_819E7C0: @ 819E7C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ lsls r4, 24
+ cmp r4, 0
+ ble _0819E7EC
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r3, [r1]
+ adds r2, r0, 0
+ cmp r3, 0x2
+ beq _0819E7E8
+ adds r0, r3, 0x1
+ b _0819E802
+ .pool
+_0819E7E8:
+ movs r0, 0
+ b _0819E802
+_0819E7EC:
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r3, [r1]
+ adds r2, r0, 0
+ cmp r3, 0
+ beq _0819E800
+ subs r0, r3, 0x1
+ b _0819E802
+ .pool
+_0819E800:
+ movs r0, 0x2
+_0819E802:
+ strb r0, [r1]
+ ldr r3, =gSprites
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E7C0
+
+ thumb_func_start sub_819E838
+sub_819E838: @ 819E838
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ movs r0, 0x5
+ negs r0, r0
+ mov r9, r0
+ movs r2, 0x4
+ mov r8, r2
+ ldr r0, =gSprites
+ mov r12, r0
+ ldr r7, =gUnknown_03001284
+_0819E856:
+ cmp r6, 0x2
+ bne _0819E898
+ ldr r5, =gSprites
+ ldr r3, =gUnknown_03001284
+ ldr r0, [r3]
+ adds r0, 0xB
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1]
+ cmp r4, 0x1
+ bhi _0819E8D4
+ ldr r0, [r3]
+ adds r0, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ b _0819E8CA
+ .pool
+_0819E898:
+ cmp r6, 0x3
+ bne _0819E8D4
+ cmp r4, 0x1
+ bhi _0819E8BA
+ ldr r0, [r7]
+ adds r0, 0x10
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r12
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1]
+_0819E8BA:
+ ldr r0, [r7]
+ adds r0, 0xB
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+_0819E8CA:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r0]
+_0819E8D4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0819E856
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819E838
+
+ thumb_func_start sub_819E8EC
+sub_819E8EC: @ 819E8EC
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r5, =gSprites
+ ldr r4, =gUnknown_03001284
+ adds r6, r5, 0
+ movs r3, 0x4
+_0819E8F8:
+ ldr r0, [r4]
+ adds r0, 0xB
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ cmp r2, 0x1
+ bhi _0819E92C
+ ldr r0, [r4]
+ adds r0, 0x10
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+_0819E92C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _0819E8F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E8EC
+
+ thumb_func_start sub_819E944
+sub_819E944: @ 819E944
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_03001284
+ ldr r3, [r0]
+ ldrb r1, [r3, 0x15]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0819E95C
+ movs r0, 0
+ strb r0, [r3, 0x15]
+ b _0819E960
+ .pool
+_0819E95C:
+ movs r0, 0
+ strb r0, [r3]
+_0819E960:
+ ldr r4, =gSprites
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xB0
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xD0
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2]
+ lsls r0, 4
+ adds r0, 0x70
+ strh r0, [r1, 0x22]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ bl sub_819EC20
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E944
+
+ thumb_func_start sub_819E9E0
+sub_819E9E0: @ 819E9E0
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_03001284
+ ldr r1, [r5]
+ movs r0, 0
+ strb r0, [r1, 0x16]
+ ldr r4, =gSprites
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xB0
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0x70
+ strh r3, [r0, 0x22]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xD0
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x22]
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ bl sub_819EC94
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819E9E0
+
+ thumb_func_start sub_819EA64
+sub_819EA64: @ 819EA64
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gSprites
+ ldr r3, =gUnknown_03001284
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ bl ClearWindowTilemap
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EA64
+
+ thumb_func_start sub_819EAC0
+sub_819EAC0: @ 819EAC0
+ push {lr}
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819EAC0
+
+ thumb_func_start sub_819EADC
+sub_819EADC: @ 819EADC
+ push {lr}
+ movs r0, 0x7
+ bl PutWindowTilemap
+ movs r0, 0x7
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x7
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819EADC
+
+ thumb_func_start sub_819EAF8
+sub_819EAF8: @ 819EAF8
+ push {lr}
+ bl sub_819EAC0
+ movs r0, 0x5
+ bl PutWindowTilemap
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x5
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819EAF8
+
+ thumb_func_start sub_819EB18
+sub_819EB18: @ 819EB18
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r2, =gUnknown_085EEC66
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EB18
+
+ thumb_func_start sub_819EB4C
+sub_819EB4C: @ 819EB4C
+ push {r4,lr}
+ sub sp, 0xC
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x2
+ bls _0819EB70
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0819EBD4
+ .pool
+_0819EB70:
+ ldrb r2, [r1, 0x3]
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0819EB84
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gPlayerParty
+ b _0819EB8A
+ .pool
+_0819EB84:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gEnemyParty
+_0819EB8A:
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r4, =gStringVar4
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x56
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08610925
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819EBD4:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EB4C
+
+ thumb_func_start sub_819EBEC
+sub_819EBEC: @ 819EBEC
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x5
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x2
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819EBEC
+
+ thumb_func_start sub_819EC20
+sub_819EC20: @ 819EC20
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0x3
+ bl PutWindowTilemap
+ movs r0, 0x3
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_08610922
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EECAA
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x1
+ bl box_print
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EECA5
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x11
+ bl box_print
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EECB2
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x21
+ bl box_print
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EC20
+
+ thumb_func_start sub_819EC94
+sub_819EC94: @ 819EC94
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0x4
+ bl PutWindowTilemap
+ movs r0, 0x4
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_08610922
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EECCA
+ str r0, [sp, 0x8]
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl box_print
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, =gUnknown_085EECCE
+ str r0, [sp, 0x8]
+ movs r0, 0x4
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x11
+ bl box_print
+ movs r0, 0x4
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EC94
+
+ thumb_func_start sub_819ECF0
+sub_819ECF0: @ 819ECF0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0x46
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_08610922
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r6, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0
+ adds r3, r5, 0
+ bl box_print
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ECF0
+
+ thumb_func_start sub_819ED34
+sub_819ED34: @ 819ED34
+ push {lr}
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ beq _0819ED56
+ cmp r0, 0x1
+ bne _0819ED60
+ ldr r0, =gUnknown_085EECD1
+ movs r1, 0
+ movs r2, 0x5
+ bl sub_819ECF0
+_0819ED56:
+ ldr r0, =gUnknown_085EECDD
+ movs r1, 0x18
+ movs r2, 0x5
+ bl sub_819ECF0
+_0819ED60:
+ movs r0, 0x5
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ED34
+
+ thumb_func_start sub_819ED78
+sub_819ED78: @ 819ED78
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ beq _0819ED9A
+ cmp r0, 0x1
+ bne _0819EDA4
+ ldr r0, =gUnknown_085EECD1
+ movs r1, 0x8
+ movs r2, 0x3
+ bl sub_819ECF0
+_0819ED9A:
+ ldr r0, =gUnknown_085EECDD
+ movs r1, 0x20
+ movs r2, 0x3
+ bl sub_819ECF0
+_0819EDA4:
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819ED78
+
+ thumb_func_start sub_819EDBC
+sub_819EDBC: @ 819EDBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0819EDCC
+ cmp r0, 0x1
+ beq _0819EDEC
+ b _0819EDF6
+_0819EDCC:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0x1
+ bne _0819EDF6
+ ldr r0, =gUnknown_085EECD1
+ movs r1, 0x8
+ movs r2, 0x3
+ bl sub_819ECF0
+ b _0819EDF6
+ .pool
+_0819EDEC:
+ ldr r0, =gUnknown_085EECDD
+ movs r1, 0x20
+ movs r2, 0x3
+ bl sub_819ECF0
+_0819EDF6:
+ movs r0, 0x3
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EDBC
+
+ thumb_func_start sub_819EE08
+sub_819EE08: @ 819EE08
+ push {r4,lr}
+ sub sp, 0x18
+ ldr r0, =gUnknown_08610918
+ add r1, sp, 0xC
+ movs r2, 0x4
+ bl CpuSet
+ ldr r0, =gUnknown_03001284
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x15]
+ cmp r0, 0
+ bne _0819EE3C
+ add r0, sp, 0xC
+ ldr r1, =gPlttBufferFaded
+ movs r2, 0xE4
+ lsls r2, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ strh r1, [r0, 0x8]
+ b _0819EE42
+ .pool
+_0819EE3C:
+ add r1, sp, 0xC
+ ldrh r0, [r2, 0x24]
+ strh r0, [r1, 0x8]
+_0819EE42:
+ add r0, sp, 0xC
+ movs r1, 0xF0
+ movs r2, 0xA
+ bl LoadPalette
+ movs r0, 0x7
+ bl PutWindowTilemap
+ movs r0, 0x7
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x2
+ bls _0819EE74
+ movs r0, 0x7
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _0819EED8
+ .pool
+_0819EE74:
+ ldrb r2, [r1, 0x3]
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0819EE88
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gPlayerParty
+ b _0819EE8E
+ .pool
+_0819EE88:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gEnemyParty
+_0819EE8E:
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r4, =gStringVar4
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x56
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08610925
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x7
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ movs r0, 0x7
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819EED8:
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EE08
+
+ thumb_func_start sub_819EEF0
+sub_819EEF0: @ 819EEF0
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r0, =gUnknown_08610918
+ movs r1, 0xE0
+ movs r2, 0xA
+ bl LoadPalette
+ ldr r0, =gPlttBufferUnfaded+ 0x1E0
+ ldr r1, =gPlttBufferFaded + 0x1C0
+ movs r2, 0x5
+ bl CpuSet
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x2
+ bls _0819EF2C
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0819EF90
+ .pool
+_0819EF2C:
+ ldrb r2, [r1, 0x3]
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0819EF40
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gPlayerParty
+ b _0819EF46
+ .pool
+_0819EF40:
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gEnemyParty
+_0819EF46:
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r4, =gStringVar4
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x56
+ bl GetStringRightAlignXOffset
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08610925
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0x1
+ bl box_print
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0819EF90:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EEF0
+
+ thumb_func_start sub_819EFA8
+sub_819EFA8: @ 819EFA8
+ push {r4-r6,lr}
+ sub sp, 0x2C
+ ldr r6, =gUnknown_03001284
+ ldr r0, [r6]
+ ldrb r4, [r0, 0x3]
+ adds r5, r4, 0
+ movs r0, 0x8
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ cmp r4, 0x2
+ bls _0819EFD0
+ movs r0, 0x8
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0819F03A
+ .pool
+_0819EFD0:
+ movs r0, 0x8
+ bl PutWindowTilemap
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x14]
+ cmp r0, 0
+ bne _0819EFEC
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ b _0819EFF2
+ .pool
+_0819EFEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+_0819EFF2:
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ add r1, sp, 0xC
+ bl sub_81DB468
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x76
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x8
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ movs r0, 0x8
+ movs r1, 0x2
+ bl CopyWindowToVram
+_0819F03A:
+ add sp, 0x2C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819EFA8
+
+ thumb_func_start sub_819F048
+sub_819F048: @ 819F048
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r4, =gUnknown_03001284
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x15]
+ cmp r0, 0x1
+ beq _0819F094
+ cmp r2, 0
+ beq _0819F068
+ cmp r2, 0x1
+ beq _0819F080
+ b _0819F094
+ .pool
+_0819F068:
+ strb r2, [r3, 0x14]
+ ldr r0, [r4]
+ strb r2, [r0, 0x3]
+ ldr r1, [r4]
+ movs r0, 0x4
+ strb r0, [r1, 0x17]
+ ldr r1, [r4]
+ ldr r0, =gUnknown_08610928
+ b _0819F092
+ .pool
+_0819F080:
+ movs r1, 0
+ strb r2, [r3, 0x14]
+ ldr r0, [r4]
+ strb r1, [r0, 0x3]
+ ldr r1, [r4]
+ movs r0, 0x5
+ strb r0, [r1, 0x17]
+ ldr r1, [r4]
+ ldr r0, =gUnknown_08610948
+_0819F092:
+ str r0, [r1, 0x18]
+_0819F094:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F048
+
+ thumb_func_start sub_819F0A0
+sub_819F0A0: @ 819F0A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gUnknown_03001280
+ ldr r2, =gUnknown_086108AC
+ ldr r1, =gUnknown_03001284
+ ldr r1, [r1]
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r3]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F0A0
+
+ thumb_func_start sub_819F0CC
+sub_819F0CC: @ 819F0CC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_03001284
+ ldr r1, [r5]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F3F8
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x3]
+ movs r5, 0
+ strb r1, [r0, 0x12]
+ movs r0, 0x3
+ bl sub_819EA64
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, =sub_819D9EC
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F0CC
+
+ thumb_func_start sub_819F114
+sub_819F114: @ 819F114
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ ldr r0, =sub_819C90C
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_819F114
+
+ thumb_func_start sub_819F134
+sub_819F134: @ 819F134
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F3F8
+ movs r0, 0x3
+ bl sub_819EA64
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r2, =sub_819CE40
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x14]
+ strh r2, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x12]
+ ldr r1, =sub_819D770
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F134
+
+ thumb_func_start sub_819F184
+sub_819F184: @ 819F184
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, =gUnknown_03001280
+ ldr r1, =gUnknown_03001284
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ ldr r2, [r2, 0x18]
+ lsls r1, 3
+ adds r1, r2
+ ldr r1, [r1, 0x4]
+ str r1, [r3]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F184
+
+ thumb_func_start sub_819F1AC
+sub_819F1AC: @ 819F1AC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, =sub_819CC24
+ lsrs r0, r2, 16
+ movs r3, 0
+ strh r0, [r1, 0x14]
+ strh r2, [r1, 0x16]
+ strh r3, [r1, 0x8]
+ strh r3, [r1, 0x12]
+ ldr r0, =sub_819D588
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_819F1AC
+
+ thumb_func_start sub_819F1DC
+sub_819F1DC: @ 819F1DC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, =sub_819D9EC
+ lsrs r0, r2, 16
+ movs r3, 0
+ strh r0, [r1, 0x14]
+ strh r2, [r1, 0x16]
+ strh r3, [r1, 0x12]
+ strh r3, [r1, 0x8]
+ ldr r0, =sub_819D588
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_819F1DC
+
+ thumb_func_start sub_819F20C
+sub_819F20C: @ 819F20C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, =gUnknown_03001284
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0819F240
+ ldr r3, =gTasks
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ ldr r2, =sub_819CD34
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x14]
+ strh r2, [r0, 0x16]
+ movs r1, 0x2
+ strh r1, [r0, 0x12]
+ b _0819F292
+ .pool
+_0819F240:
+ ldrb r0, [r1, 0x3]
+ bl sub_819F59C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _0819F278
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x2D
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F2B4
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ strh r4, [r0, 0x12]
+ ldr r1, =sub_819F488
+ b _0819F29E
+ .pool
+_0819F278:
+ ldr r4, =gTasks
+ lsls r5, r6, 2
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r0, r4
+ ldr r2, =sub_819CCD4
+ lsrs r1, r2, 16
+ movs r3, 0
+ strh r1, [r0, 0x14]
+ strh r2, [r0, 0x16]
+ strh r3, [r0, 0x12]
+ adds r3, r4, 0
+ adds r4, r5, 0
+_0819F292:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_819D588
+_0819F29E:
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F20C
+
+ thumb_func_start sub_819F2B4
+sub_819F2B4: @ 819F2B4
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r5, r2, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_08610894
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ strb r0, [r4]
+ ldr r2, =gSprites
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_819F600
+ str r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x3C]
+ movs r0, 0x1
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F2B4
+
+ thumb_func_start sub_819F304
+sub_819F304: @ 819F304
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x10
+ ldr r0, =gUnknown_08610894
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r6, =gUnknown_03001284
+ ldr r1, [r6]
+ adds r1, 0x2D
+ movs r2, 0
+ mov r10, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x2D
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ mov r8, r1
+ add r0, r8
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r2, r0, 0
+ movs r0, 0x58
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ffff
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ mov r1, r9
+ movs r3, 0x1
+ bl sub_818D7D8
+ ldr r1, [r6]
+ adds r1, 0x2C
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x28
+ mov r2, r10
+ strb r2, [r0]
+ ldr r0, [r6]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x29
+ strb r2, [r0]
+ ldr r0, [r6]
+ adds r0, 0x2D
+ 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]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F304
+
+ thumb_func_start sub_819F3F8
+sub_819F3F8: @ 819F3F8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r5, r2, 24
+ lsrs r5, 24
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_818D820
+ ldr r0, =sub_819F7B4
+ movs r1, 0x1
+ 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 r5, [r1, 0x16]
+ lsrs r4, 8
+ lsls r4, 24
+ lsrs r4, 24
+ strh r4, [r1, 0x14]
+ ldr r1, [r1]
+ bl _call_via_r1
+ movs r0, 0x1
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F3F8
+
+ thumb_func_start sub_819F444
+sub_819F444: @ 819F444
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_818D820
+ ldr r5, =gSprites
+ lsls r4, 16
+ lsrs r1, r4, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ lsrs r4, 24
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0
+ strb r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F444
+
+ thumb_func_start sub_819F488
+sub_819F488: @ 819F488
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, =gUnknown_03001284
+ ldr r0, [r1]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x1
+ beq _0819F58A
+ ldr r2, =gTasks
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r5, r1, 0
+ cmp r0, 0x4
+ bhi _0819F58A
+ lsls r0, 2
+ ldr r1, =_0819F4C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0819F4C8:
+ .4byte _0819F4DC
+ .4byte _0819F4F8
+ .4byte _0819F52C
+ .4byte _0819F548
+ .4byte _0819F568
+_0819F4DC:
+ ldr r0, =gUnknown_085EED0A
+ bl sub_819EBEC
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x20
+ movs r1, 0
+ strb r1, [r0]
+ b _0819F54E
+ .pool
+_0819F4F8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0819F50C
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0819F58A
+_0819F50C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldr r0, [r1, 0x2C]
+ adds r1, 0x30
+ movs r2, 0x1
+ bl sub_819F3F8
+ b _0819F54E
+ .pool
+_0819F52C:
+ ldr r0, [r3]
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0819F58A
+ movs r0, 0x5
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x5
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _0819F54E
+_0819F548:
+ ldr r0, =gUnknown_085EEC8B
+ bl sub_819EBEC
+_0819F54E:
+ ldr r0, =gTasks
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0819F58A
+ .pool
+_0819F568:
+ bl sub_819EEF0
+ bl sub_819EADC
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x22
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, =gTasks
+ adds r0, r5, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x12]
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_819CE40
+ str r1, [r0]
+_0819F58A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F488
+
+ thumb_func_start sub_819F59C
+sub_819F59C: @ 819F59C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0
+_0819F5B8:
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x12]
+ cmp r4, r0
+ beq _0819F5EC
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bne _0819F5EC
+ movs r0, 0x1
+ b _0819F5F8
+ .pool
+_0819F5EC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0819F5B8
+ movs r0, 0
+_0819F5F8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819F59C
+
+ thumb_func_start sub_819F600
+sub_819F600: @ 819F600
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819F640
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, =sub_819F69C
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r4, 0x3C]
+ strh r2, [r1, 0x16]
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_0819F640:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F600
+
+ thumb_func_start sub_819F654
+sub_819F654: @ 819F654
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0819F694
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _0819F688
+ ldr r0, =gUnknown_03001284
+ ldr r0, [r0]
+ adds r0, 0x30
+ movs r1, 0
+ strb r1, [r0]
+ b _0819F68E
+ .pool
+_0819F688:
+ movs r0, 0
+ bl sub_819BE20
+_0819F68E:
+ adds r0, r4, 0
+ bl DestroySprite
+_0819F694:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819F654
+
+ thumb_func_start sub_819F69C
+sub_819F69C: @ 819F69C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0819F71A
+ cmp r0, 0x1
+ bgt _0819F6C4
+ cmp r0, 0
+ beq _0819F6CA
+ b _0819F77C
+ .pool
+_0819F6C4:
+ cmp r0, 0x2
+ beq _0819F73C
+ b _0819F77C
+_0819F6CA:
+ movs r0, 0x58
+ strh r0, [r4, 0xE]
+ movs r0, 0x98
+ strh r0, [r4, 0x38]
+ movs r0, 0x40
+ strh r0, [r4, 0x12]
+ movs r0, 0x41
+ strh r0, [r4, 0x18]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0x38]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x37
+ bl SetGpuReg
+ b _0819F7A6
+_0819F71A:
+ movs r0, 0x3
+ bl ShowBg
+ ldr r1, =0x00001248
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _0819F7A6
+ .pool
+_0819F73C:
+ ldrh r0, [r4, 0x12]
+ subs r0, 0x4
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x18]
+ adds r1, 0x4
+ strh r1, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ ble _0819F758
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x5F
+ ble _0819F760
+_0819F758:
+ movs r0, 0x20
+ strh r0, [r4, 0x12]
+ movs r0, 0x60
+ strh r0, [r4, 0x18]
+_0819F760:
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x20
+ bne _0819F7AC
+ b _0819F7A6
+_0819F77C:
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x16
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _0819F7A0
+ bl sub_819F8E0
+ b _0819F7AC
+ .pool
+_0819F7A0:
+ bl sub_819BD70
+ b _0819F7AC
+_0819F7A6:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0819F7AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819F69C
+
+ thumb_func_start sub_819F7B4
+sub_819F7B4: @ 819F7B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0819F844
+ cmp r0, 0x1
+ beq _0819F894
+ movs r0, 0x3
+ bl HideBg
+ ldr r3, =gSprites
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r4, 0x16]
+ strh r1, [r0, 0x3C]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_819F654
+ str r1, [r0]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl ClearGpuRegBits
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0819F8D8
+ .pool
+_0819F844:
+ movs r0, 0x58
+ strh r0, [r4, 0xE]
+ movs r0, 0x98
+ strh r0, [r4, 0x38]
+ movs r0, 0x20
+ strh r0, [r4, 0x12]
+ movs r0, 0x60
+ strh r0, [r4, 0x18]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl SetGpuRegBits
+ ldrh r1, [r4, 0xE]
+ lsls r1, 8
+ ldrh r0, [r4, 0x38]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x40
+ bl SetGpuReg
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl SetGpuReg
+ movs r0, 0x4A
+ movs r1, 0x37
+ bl SetGpuReg
+ b _0819F8D2
+_0819F894:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x4
+ strh r0, [r4, 0x12]
+ ldrh r1, [r4, 0x18]
+ subs r1, 0x4
+ strh r1, [r4, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ bgt _0819F8B0
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x41
+ bgt _0819F8B8
+_0819F8B0:
+ movs r0, 0x40
+ strh r0, [r4, 0x12]
+ movs r0, 0x41
+ strh r0, [r4, 0x18]
+_0819F8B8:
+ ldrh r1, [r4, 0x12]
+ lsls r1, 8
+ ldrh r0, [r4, 0x18]
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x44
+ bl SetGpuReg
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ bne _0819F8D8
+_0819F8D2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0819F8D8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819F7B4
+
+ thumb_func_start sub_819F8E0
+sub_819F8E0: @ 819F8E0
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r0, =gUnknown_03001284
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0
+ bne _0819F900
+ ldrb r1, [r1, 0x3]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ b _0819F908
+ .pool
+_0819F900:
+ ldrb r1, [r1, 0x3]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gEnemyParty
+_0819F908:
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x58
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ffff
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_818D7D8
+ ldr r2, =gUnknown_03001284
+ ldr r1, [r2]
+ adds r1, 0x2C
+ movs r3, 0
+ strb r0, [r1]
+ ldr r4, =gSprites
+ ldr r0, [r2]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x28
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x29
+ strb r3, [r0]
+ ldr r0, [r2]
+ adds r0, 0x30
+ strb r3, [r0]
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F8E0
+
+ thumb_func_start sub_819F99C
+sub_819F99C: @ 819F99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDE
+ ldrb r1, [r1]
+ movs r6, 0
+ adds r7, r2, 0
+ ldr r0, =gStringVar1
+ mov r8, r0
+ cmp r1, 0
+ beq _0819F9DC
+_0819F9C2:
+ adds r0, r1, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r1, 0
+ beq _0819F9DC
+ cmp r6, 0x3
+ bls _0819F9C2
+_0819F9DC:
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r1, [r7]
+ adds r1, r4, r1
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r1, r0
+ mov r0, r8
+ bl StringCopy7
+ ldr r0, [r7]
+ adds r0, r4
+ ldr r1, =0x0000011b
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r0, r8
+ bl ConvertInternationalString
+ ldr r0, =gStringVar2
+ ldr r1, [r7]
+ adds r1, r4
+ adds r1, 0xDE
+ ldrb r1, [r1]
+ movs r2, 0x1
+ adds r3, r6, 0
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_08611330
+ ldr r0, [r7]
+ adds r0, r4
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 25
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, =gStringVar4
+ bl StringExpandPlaceholders
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819F99C
+
+ thumb_func_start sub_819FA50
+sub_819FA50: @ 819FA50
+ push {lr}
+ bl script_env_2_enable_and_set_ctx_running
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819FA50
+
+ thumb_func_start sub_819FA5C
+sub_819FA5C: @ 819FA5C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ adds r4, r3, 0
+ adds r4, 0x28
+ ldr r0, =0x0000ffff
+ adds r5, r0, 0
+_0819FA6A:
+ lsls r0, r2, 1
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819FA6A
+ adds r1, r3, 0
+ adds r1, 0x38
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r3]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819FA5C
+
+ thumb_func_start sub_819FAA0
+sub_819FAA0: @ 819FAA0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ adds r1, 0xB2
+ ldrb r2, [r1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r0, 0
+ mov r12, r0
+ adds r5, r3, 0
+ mov r8, r0
+ ldr r1, =0x0000ffff
+ mov r10, r1
+_0819FAC6:
+ movs r2, 0
+ mov r3, r12
+ lsls r7, r3, 4
+ movs r4, 0x1
+ add r4, r12
+ mov r9, r4
+ adds r0, r7, r3
+ lsls r3, r0, 2
+_0819FAD6:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r0, r3
+ movs r4, 0x82
+ lsls r4, 1
+ adds r1, r4
+ adds r1, r0
+ ldrh r0, [r1]
+ mov r4, r10
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0819FAD6
+ ldr r2, [r5]
+ mov r0, r12
+ adds r3, r7, r0
+ lsls r3, 2
+ adds r2, r3
+ adds r2, 0xDC
+ ldrb r1, [r2]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r5]
+ adds r0, r3
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xDC
+ ldrb r2, [r1]
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, 0xDE
+ mov r4, r8
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, 0xDD
+ strb r4, [r0]
+ movs r2, 0
+ ldr r6, =gSaveBlock2Ptr
+ movs r4, 0x88
+ lsls r4, 1
+_0819FB48:
+ ldr r0, [r6]
+ adds r1, r2, r3
+ adds r0, r4
+ adds r0, r1
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _0819FB48
+ ldr r0, [r5]
+ mov r3, r12
+ adds r2, r7, r3
+ lsls r2, 2
+ adds r0, r2
+ ldr r4, =gGameLanguage
+ ldrb r1, [r4]
+ ldr r3, =0x0000011b
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ movs r4, 0x8E
+ lsls r4, 1
+ adds r0, r4
+ adds r0, r2
+ mov r1, r8
+ str r1, [r0]
+ mov r3, r9
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x3
+ bls _0819FAC6
+ bl sub_81A087C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819FAA0
+
+ thumb_func_start sub_819FBB0
+sub_819FBB0: @ 819FBB0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .pool
+ thumb_func_end sub_819FBB0
+
+ thumb_func_start sub_819FBC8
+sub_819FBC8: @ 819FBC8
+ push {r4,r5,lr}
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ adds r0, 0xDE
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0819FC10
+ adds r4, r2, 0
+ ldr r5, =gUnknown_08611548
+_0819FBDA:
+ bl Random
+ ldr r2, [r4]
+ lsls r0, 16
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 16
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r2, 0xB0
+ strb r0, [r2]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xB0
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ lsls r0, 27
+ ldrb r1, [r1]
+ lsrs r0, 27
+ cmp r1, r0
+ beq _0819FBDA
+ b _0819FC38
+ .pool
+_0819FC10:
+ adds r4, r2, 0
+_0819FC12:
+ bl Random
+ ldr r2, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r2, 0xB0
+ strb r0, [r2]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xB0
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ lsls r0, 27
+ ldrb r1, [r1]
+ lsrs r0, 27
+ cmp r1, r0
+ beq _0819FC12
+_0819FC38:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_819FBC8
+
+ thumb_func_start sub_819FC40
+sub_819FC40: @ 819FC40
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ adds r2, 0xB1
+ movs r1, 0x3
+ ands r0, r1
+ ldrb r3, [r2]
+ subs r1, 0x7
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_819FC40
+
+ thumb_func_start sub_819FC60
+sub_819FC60: @ 819FC60
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r5, 0
+_0819FC66:
+ mov r1, sp
+ adds r0, r1, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0819FC66
+ movs r5, 0
+_0819FC78:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r7, sp
+ adds r2, r7, r4
+ ldrb r3, [r2]
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x31
+ bls _0819FC78
+ movs r5, 0
+ ldr r6, =gSaveBlock2Ptr
+ movs r4, 0xF
+_0819FCBC:
+ ldr r3, [r6]
+ adds r3, 0xB4
+ adds r3, r5
+ lsls r2, r5, 1
+ mov r1, sp
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 4
+ adds r2, 0x1
+ mov r7, sp
+ adds r0, r7, r2
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r1, r0
+ strb r1, [r3]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0819FCBC
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819FC60
+
+ thumb_func_start sub_819FCF8
+sub_819FCF8: @ 819FCF8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ cmp r0, 0x2
+ bne _0819FD4C
+ ldr r6, =gUnknown_030062EC
+_0819FD06:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ movs r2, 0
+ ldr r1, [r6]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r4, r0, 1
+ adds r1, 0x2
+_0819FD26:
+ lsls r0, r2, 1
+ adds r0, r4
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0819FD38
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0819FD38:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x4
+ bls _0819FD26
+ cmp r3, 0x3
+ bhi _0819FD06
+ b _0819FD5A
+ .pool
+_0819FD4C:
+ cmp r0, 0x1
+ bne _0819FD5A
+ ldrb r0, [r2]
+ adds r1, r0
+ ldrb r5, [r1]
+ adds r0, 0x1
+ strb r0, [r2]
+_0819FD5A:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_819FCF8
+
+ thumb_func_start sub_819FD64
+sub_819FD64: @ 819FD64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ movs r5, 0
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0x14]
+ mov r1, sp
+ adds r1, 0x10
+ str r1, [sp, 0x18]
+ adds r1, r0, 0
+_0819FD80:
+ adds r0, r1, r5
+ strb r5, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0819FD80
+ movs r5, 0
+ ldr r6, [sp, 0x14]
+_0819FD92:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r6, r4
+ ldrb r3, [r2]
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0819FD92
+ movs r5, 0
+ ldr r2, =gUnknown_086114D3
+_0819FDD0:
+ mov r4, sp
+ adds r1, r4, r5
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _0819FDD0
+ movs r5, 0
+_0819FDE6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r6, sp
+ adds r2, r6, r4
+ ldrb r3, [r2]
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x31
+ bls _0819FDE6
+ ldr r4, =gUnknown_030062EC
+ movs r0, 0x30
+ bl AllocZeroed
+ str r0, [r4]
+ movs r1, 0
+ strb r1, [r0]
+ movs r5, 0
+ movs r2, 0x4
+_0819FE34:
+ movs r3, 0
+_0819FE36:
+ ldr r0, [r4]
+ lsls r1, r3, 2
+ adds r1, r3
+ adds r1, r5, r1
+ adds r0, 0x20
+ adds r0, r1
+ strb r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _0819FE36
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0819FE34
+ movs r0, 0
+ ldr r7, [sp, 0x18]
+ strb r0, [r7]
+ movs r5, 0
+_0819FE60:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ lsls r4, r5, 2
+ adds r3, r4
+ mov r1, sp
+ adds r6, r1, r5
+ ldrb r0, [r6]
+ adds r3, 0xB8
+ movs r2, 0x3
+ ands r2, r0
+ ldrb r0, [r3]
+ movs r7, 0x4
+ negs r7, r7
+ adds r1, r7, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r0, [r6]
+ adds r5, 0x1
+ str r5, [sp, 0x1C]
+ mov r8, r4
+ cmp r0, 0x3
+ beq _0819FF62
+ ldrb r0, [r6]
+ ldr r1, [sp, 0x14]
+ ldr r2, [sp, 0x18]
+ bl sub_819FCF8
+ ldr r1, =gSaveBlock2Ptr
+ ldr r3, [r1]
+ add r3, r8
+ adds r3, 0xB8
+ movs r2, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r3]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ add r0, r8
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r7, r0, 30
+ ldrb r0, [r6]
+ cmp r0, 0x2
+ bne _0819FF62
+ lsls r0, r7, 2
+ adds r0, r7
+ mov r10, r0
+ ldr r0, =gUnknown_030062EC
+ mov r9, r0
+_0819FED2:
+ bl Random
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r1, 0x3
+ ands r4, r1
+ movs r3, 0
+ mov r6, r9
+ ldr r2, [r6]
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ lsls r5, r7, 2
+ cmp r3, r1
+ bge _0819FF12
+ adds r2, 0x20
+ mov r6, r10
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0819FF12
+ adds r6, r1, 0
+ adds r1, r5, r7
+_0819FEFE:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r6
+ bge _0819FF12
+ adds r0, r3, r1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _0819FEFE
+_0819FF12:
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r0, 0x1
+ ldr r1, =gUnknown_030062EC
+ cmp r3, r0
+ bne _0819FED2
+ ldr r0, [r1]
+ orrs r5, r7
+ ldrb r2, [r0]
+ adds r1, r5, r2
+ adds r0, 0x20
+ adds r0, r1
+ strb r4, [r0]
+ ldr r6, =gSaveBlock2Ptr
+ ldr r2, [r6]
+ add r2, r8
+ adds r2, 0xB8
+ movs r7, 0x3
+ ands r4, r7
+ lsls r3, r4, 4
+ ldrb r0, [r2]
+ movs r4, 0x31
+ negs r4, r4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ ldr r0, [r6]
+ add r0, r8
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r0, 30
+ bl sub_819FF98
+ ldr r1, [r6]
+ add r1, r8
+ adds r1, 0xBA
+ strh r0, [r1]
+_0819FF62:
+ ldr r6, [sp, 0x1C]
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x8
+ bhi _0819FF6E
+ b _0819FE60
+_0819FF6E:
+ ldr r4, =gUnknown_030062EC
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_819FD64
+
+ thumb_func_start sub_819FF98
+sub_819FF98: @ 819FF98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r7, 0
+ ldr r1, [sp]
+ cmp r1, 0x2
+ bhi _0819FFE0
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0xB4
+ ldr r3, [sp]
+ adds r0, r3
+ ldrb r4, [r0]
+ adds r1, 0xB2
+ ldrb r0, [r1]
+ lsls r0, 29
+ lsrs r0, 29
+ asrs r0, r3
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ asrs r4, r0
+ movs r0, 0xF
+ ands r4, r0
+ b _0819FFE4
+ .pool
+_0819FFE0:
+ movs r4, 0
+ ldr r2, =gSaveBlock2Ptr
+_0819FFE4:
+ ldr r3, =gUnknown_08610970
+ lsls r1, r4, 1
+ ldr r4, [r2]
+ adds r0, r4, 0
+ adds r0, 0xB0
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0
+ adds r3, 0x34
+ adds r1, r3
+ ldrh r1, [r1]
+ str r1, [sp, 0x8]
+ ldr r1, =gLevelUpLearnsets
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r6, [r0]
+ movs r3, 0
+ adds r4, 0xB1
+ ldrb r1, [r4]
+ movs r0, 0x3
+ ands r0, r1
+ movs r5, 0x3C
+ cmp r0, 0x1
+ bne _081A001A
+ movs r5, 0x32
+_081A001A:
+ ldrh r1, [r6]
+ ldr r4, =0x0000ffff
+ cmp r1, r4
+ beq _081A004C
+ movs r2, 0xFE
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r1, r5, 9
+ cmp r0, r1
+ bgt _081A004C
+ adds r5, r2, 0
+ adds r2, r1, 0
+_081A0034:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ cmp r1, r4
+ beq _081A004C
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, r2
+ ble _081A0034
+_081A004C:
+ adds r5, r3, 0
+ movs r3, 0
+ str r3, [sp, 0x4]
+_081A0052:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081A0068
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x1
+ bne _081A00E0
+_081A0068:
+ ldr r1, =0x000001ff
+ mov r8, r1
+_081A006C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3A
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, [sp, 0x8]
+ adds r1, r4, 0
+ bl CanSpeciesLearnTMHM
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _081A006C
+ ldr r2, =0x00000121
+ adds r0, r4, r2
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r2, 0x1
+ cmp r5, 0x4
+ bhi _081A00BC
+ movs r3, 0
+ b _081A00C6
+ .pool
+_081A00BC:
+ subs r0, r5, 0x4
+ b _081A00C2
+_081A00C0:
+ adds r0, r3, 0x1
+_081A00C2:
+ lsls r0, 24
+ lsrs r3, r0, 24
+_081A00C6:
+ cmp r3, r5
+ bcs _081A00DA
+ lsls r0, r3, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, r7
+ bne _081A00C0
+ movs r2, 0
+_081A00DA:
+ cmp r2, 0x1
+ bne _081A006C
+ b _081A0146
+_081A00E0:
+ cmp r5, 0x4
+ bhi _081A00EA
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _081A0168
+_081A00EA:
+ subs r4, r5, 0x4
+ ldr r3, =0x000001ff
+ mov r10, r3
+ mov r8, r3
+ lsls r0, r4, 24
+ mov r9, r0
+_081A00F6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r7, r8
+ ands r7, r0
+ movs r2, 0x1
+ mov r1, r9
+ lsrs r3, r1, 24
+ cmp r3, r5
+ bcs _081A0142
+ lsls r0, r3, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ mov r0, r8
+ b _081A013A
+ .pool
+_081A0128:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r5
+ bcs _081A0142
+ lsls r0, r3, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r1, r10
+_081A013A:
+ ands r0, r1
+ cmp r0, r7
+ bne _081A0128
+ movs r2, 0
+_081A0142:
+ cmp r2, 0x1
+ bne _081A00F6
+_081A0146:
+ ldr r0, [sp]
+ adds r1, r7, 0
+ bl sub_81A0194
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A0168
+ ldr r0, =gUnknown_08611370
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081A0170
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+_081A0168:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0x4
+ bhi _081A0170
+ b _081A0052
+_081A0170:
+ ldr r0, =gUnknown_030062EC
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r7, 0
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_819FF98
+
+ thumb_func_start sub_81A0194
+sub_81A0194: @ 81A0194
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r3, 0
+ ldr r0, =gUnknown_030062EC
+ mov r12, r0
+ ldr r2, [r0]
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r6, r0, 1
+ adds r2, 0x2
+ adds r7, r1, 0
+_081A01B0:
+ lsls r0, r3, 1
+ adds r0, r6
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _081A01C4
+ movs r0, 0
+ b _081A01E2
+ .pool
+_081A01C4:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x4
+ bls _081A01B0
+ mov r2, r12
+ ldr r1, [r2]
+ adds r0, r7, r4
+ ldrb r2, [r1]
+ adds r0, r2
+ lsls r0, 1
+ adds r1, 0x2
+ adds r1, r0
+ strh r5, [r1]
+ movs r0, 0x1
+_081A01E2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A0194
+
+ thumb_func_start sub_81A01E8
+sub_81A01E8: @ 81A01E8
+ push {r4-r7,lr}
+ mov r12, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ movs r4, 0x3C
+ cmp r0, 0x1
+ bne _081A0204
+ movs r4, 0x32
+_081A0204:
+ ldr r1, =gLevelUpLearnsets
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r6, [r0]
+ movs r5, 0
+ ldrh r1, [r6]
+ ldr r3, =0x0000ffff
+ cmp r1, r3
+ beq _081A0240
+ movs r2, 0xFE
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r1
+ lsls r1, r4, 9
+ cmp r0, r1
+ bgt _081A0240
+ adds r4, r2, 0
+ adds r2, r1, 0
+_081A0228:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ cmp r1, r3
+ beq _081A0240
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, r2
+ ble _081A0228
+_081A0240:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ bls _081A0248
+ movs r4, 0x4
+_081A0248:
+ movs r2, 0
+ cmp r2, r4
+ bcs _081A026C
+ ldr r7, =0x000001ff
+_081A0250:
+ lsls r3, r2, 1
+ add r3, r12
+ adds r2, 0x1
+ subs r0, r5, r2
+ lsls r0, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ strh r0, [r3]
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, r4
+ bcc _081A0250
+_081A026C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A01E8
+
+ thumb_func_start sub_81A0284
+sub_81A0284: @ 81A0284
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ adds r7, r1, 0
+ cmp r0, 0x2
+ bhi _081A02B8
+ movs r0, 0
+ b _081A037C
+ .pool
+_081A02B8:
+ movs r4, 0
+ movs r3, 0
+ adds r0, r2, 0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ ldr r1, =gUnknown_08610970
+ mov r12, r1
+ lsls r6, 1
+ lsls r5, 1
+ mov r9, r5
+ cmp r0, 0
+ beq _081A02F4
+ adds r2, r7, 0
+_081A02D4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bhi _081A02F4
+ ldr r0, [r2]
+ lsls r1, r3, 2
+ adds r0, r1
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bne _081A02D4
+_081A02F4:
+ ldr r0, [r7]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r6, r0
+ mov r1, r12
+ adds r1, 0x34
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r1, sp
+ bl sub_81A01E8
+ movs r3, 0
+ cmp r3, r4
+ bcs _081A0376
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ cmp r3, r0
+ bge _081A0376
+ adds r6, r7, 0
+ adds r5, r1, 0
+_081A032A:
+ lsls r0, r3, 2
+ adds r2, r5, r0
+ adds r0, r2, 0
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ bne _081A035C
+ lsls r0, r1, 28
+ lsrs r0, 30
+ cmp r0, r8
+ bne _081A035C
+ lsrs r0, r1, 6
+ cmp r0, 0
+ beq _081A035C
+ lsls r0, r1, 26
+ lsrs r0, 30
+ lsls r0, 1
+ mov r7, sp
+ adds r1, r7, r0
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrh r0, [r0]
+ strh r0, [r1]
+_081A035C:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r4
+ bcs _081A0376
+ ldr r0, [r6]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ cmp r3, r0
+ blt _081A032A
+_081A0376:
+ mov r0, sp
+ add r0, r9
+ ldrh r0, [r0]
+_081A037C:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A0284
+
+ thumb_func_start sub_81A0390
+sub_81A0390: @ 81A0390
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r7, =gSaveBlock2Ptr
+ adds r6, r7, 0
+ movs r4, 0
+_081A03A6:
+ ldr r0, [r6]
+ lsls r2, r5, 1
+ adds r2, r5
+ lsls r2, 2
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0xE0
+ strh r4, [r1]
+ adds r0, 0xEA
+ strh r4, [r0]
+ movs r3, 0
+_081A03BC:
+ ldr r0, [r6]
+ lsls r1, r3, 1
+ adds r1, r2
+ adds r0, 0xE2
+ adds r0, r1
+ strh r4, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _081A03BC
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081A03A6
+ ldr r0, [r7]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsrs r3, r0, 6
+ movs r5, 0
+_081A03E6:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r0, 0xE0
+ ldr r1, [r7]
+ adds r1, r0
+ str r1, [r2]
+ adds r0, r3, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081A03E6
+ movs r5, 0
+ ldr r7, =gSaveBlock2Ptr
+ ldr r6, =gUnknown_086109A4
+_081A0416:
+ ldr r0, [r7]
+ mov r12, r0
+ adds r0, 0xB4
+ adds r0, r5
+ ldrb r2, [r0]
+ mov r0, r12
+ adds r0, 0xB2
+ ldrb r0, [r0]
+ lsls r0, 29
+ lsrs r0, 29
+ asrs r0, r5
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ asrs r2, r0
+ movs r0, 0xF
+ ands r2, r0
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r3, r1, r0
+ ldr r4, [r3]
+ lsls r2, 1
+ mov r0, r12
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, r0
+ adds r2, r6
+ ldrh r0, [r2]
+ strh r0, [r4]
+ ldr r1, [r3]
+ ldrh r0, [r1]
+ adds r1, 0x2
+ bl sub_81A01E8
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081A0416
+ movs r5, 0
+ cmp r5, r8
+ bcs _081A04D6
+ ldr r7, =gSaveBlock2Ptr
+_081A0470:
+ ldr r1, [r7]
+ lsls r0, r5, 2
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r0, 0xB8
+ ldrb r2, [r0]
+ lsls r0, r2, 30
+ lsrs r1, r0, 30
+ lsls r0, r2, 28
+ lsrs r3, r0, 30
+ adds r6, r3, 0
+ cmp r1, 0x1
+ bne _081A04A8
+ lsrs r0, r2, 6
+ cmp r0, 0
+ beq _081A04CC
+ lsls r0, r3, 2
+ add r0, sp
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0xBA
+ ldrh r0, [r0]
+ strh r0, [r1, 0xA]
+ b _081A04CC
+ .pool
+_081A04A8:
+ cmp r1, 0x2
+ bne _081A04CC
+ lsls r0, r2, 24
+ lsrs r0, 30
+ cmp r0, 0
+ beq _081A04CC
+ lsls r2, 26
+ lsrs r2, 30
+ lsls r0, r6, 2
+ add r0, sp
+ ldr r1, [r0]
+ lsls r2, 1
+ adds r1, 0x2
+ adds r1, r2
+ adds r0, r4, 0
+ adds r0, 0xBA
+ ldrh r0, [r0]
+ strh r0, [r1]
+_081A04CC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r8
+ bcc _081A0470
+_081A04D6:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0390
+
+ thumb_func_start sub_81A04E4
+sub_81A04E4: @ 81A04E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ movs r7, 0x2
+ cmp r0, 0x6
+ bls _081A04FC
+ b _081A064C
+_081A04FC:
+ lsls r0, 2
+ ldr r1, =_081A050C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A050C:
+ .4byte _081A0528
+ .4byte _081A0540
+ .4byte _081A05B4
+ .4byte _081A05F4
+ .4byte _081A061C
+ .4byte _081A064C
+ .4byte _081A0634
+_081A0528:
+ movs r0, 0x12
+ mov r10, r0
+ movs r6, 0x8
+ ldr r0, =gUnknown_085EAEB1
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_085EAEB8
+ str r0, [sp, 0x10]
+ b _081A0652
+ .pool
+_081A0540:
+ movs r7, 0x3
+ movs r1, 0x12
+ mov r10, r1
+ movs r6, 0x6
+ movs r4, 0
+ ldr r0, =gSpeciesNames
+ mov r9, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ movs r1, 0xB2
+ adds r1, r3
+ mov r12, r1
+ adds r5, r3, 0
+ adds r5, 0xB0
+ ldr r0, =gUnknown_086109A4
+ mov r8, r0
+_081A0560:
+ adds r0, r3, 0
+ adds r0, 0xB4
+ adds r0, r4
+ ldrb r2, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ lsls r0, 29
+ lsrs r0, 29
+ asrs r0, r4
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ asrs r2, r0
+ movs r0, 0xF
+ ands r2, r0
+ lsls r2, 1
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, r0
+ add r2, r8
+ ldrh r1, [r2]
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0xC
+ movs r0, 0xB
+ muls r0, r1
+ add r0, r9
+ str r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A0560
+ b _081A0652
+ .pool
+_081A05B4:
+ movs r0, 0x12
+ mov r10, r0
+ movs r6, 0x8
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ cmp r0, 0x2
+ bls _081A05CC
+ b _081A06FA
+_081A05CC:
+ ldr r0, =gUnknown_030062F0
+ ldr r3, [r0]
+ ldrh r0, [r3, 0x2]
+ movs r2, 0xB
+ muls r0, r2
+ ldr r1, =gSpeciesNames
+ adds r0, r1
+ str r0, [sp, 0x10]
+ ldrh r0, [r3]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp, 0xC]
+ b _081A0652
+ .pool
+_081A05F4:
+ movs r1, 0x11
+ mov r10, r1
+ movs r6, 0x8
+ ldr r0, =gUnknown_030062F0
+ ldr r3, [r0]
+ ldrh r0, [r3, 0x4]
+ movs r2, 0xD
+ muls r0, r2
+ ldr r1, =gMoveNames
+ adds r0, r1
+ str r0, [sp, 0xC]
+ ldrh r0, [r3, 0x6]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp, 0x10]
+ b _081A0652
+ .pool
+_081A061C:
+ movs r0, 0x12
+ mov r10, r0
+ movs r6, 0x8
+ ldr r0, =gUnknown_085ED193
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_085ED198
+ str r0, [sp, 0x10]
+ b _081A0652
+ .pool
+_081A0634:
+ movs r1, 0x14
+ mov r10, r1
+ movs r6, 0x8
+ ldr r0, =gUnknown_085EAE62
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_085EAE66
+ str r0, [sp, 0x10]
+ b _081A0652
+ .pool
+_081A064C:
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+_081A0652:
+ movs r5, 0
+ movs r4, 0
+ lsls r1, r7, 25
+ mov r8, r1
+ cmp r4, r7
+ bcs _081A067E
+_081A065E:
+ lsls r0, r4, 2
+ add r0, sp
+ adds r0, 0xC
+ ldr r1, [r0]
+ movs r0, 0x1
+ movs r2, 0
+ bl GetStringWidth
+ cmp r0, r5
+ ble _081A0674
+ adds r5, r0, 0
+_081A0674:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _081A065E
+_081A067E:
+ adds r0, r5, 0
+ bl convert_pixel_width_to_tile_width
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_80E2D5C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ mov r0, r8
+ lsrs r3, r0, 24
+ mov r0, r10
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_81A0784
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ movs r4, 0
+ cmp r4, r7
+ bcs _081A06E6
+_081A06B8:
+ lsls r0, r4, 2
+ add r0, sp
+ adds r0, 0xC
+ ldr r2, [r0]
+ lsls r0, r4, 4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _081A06B8
+_081A06E6:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0x1
+ adds r1, r7, 0
+ adds r2, r5, 0
+ bl sub_81A0804
+_081A06FA:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A04E4
+
+ thumb_func_start sub_81A070C
+sub_81A070C: @ 81A070C
+ 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
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081A0730
+ bl ProcessMenuInputNoWrapAround
+ b _081A0734
+ .pool
+_081A0730:
+ bl ProcessMenuInput
+_081A0734:
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _081A0778
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081A0764
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081A0778
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gScriptResult
+ movs r0, 0x7F
+ strh r0, [r1]
+ b _081A0768
+ .pool
+_081A0764:
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+_081A0768:
+ ldrb r0, [r4, 0xC]
+ bl sub_81A07E8
+ adds r0, r5, 0
+ bl DestroyTask
+ bl script_env_2_enable_and_set_ctx_running
+_081A0778:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A070C
+
+ thumb_func_start sub_81A0784
+sub_81A0784: @ 81A0784
+ push {r4,r5,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsls r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x80
+ lsls r0, 17
+ adds r4, r0
+ lsrs r4, 24
+ adds r5, r0
+ lsrs r5, 24
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0x64
+ str r0, [sp, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_8198A50
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ add r0, sp, 0x18
+ bl AddWindow
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A0784
+
+ thumb_func_start sub_81A07E8
+sub_81A07E8: @ 81A07E8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8198070
+ adds r0, r4, 0
+ bl RemoveWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A07E8
+
+ thumb_func_start sub_81A0804
+sub_81A0804: @ 81A0804
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, =sub_81A070C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ strh r4, [r1, 0x10]
+ cmp r5, 0x3
+ bls _081A0840
+ movs r0, 0x1
+ b _081A0842
+ .pool
+_081A0840:
+ movs r0, 0
+_081A0842:
+ strh r0, [r1, 0x12]
+ ldr r1, =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r6, [r0, 0x14]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0804
+
+ thumb_func_start sub_81A085C
+sub_81A085C: @ 81A085C
+ push {lr}
+ ldr r1, =gUnknown_086114E0
+ 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_81A085C
+
+ thumb_func_start sub_81A087C
+sub_81A087C: @ 81A087C
+ push {r4-r7,lr}
+ bl sub_819FBC8
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ adds r1, 0xB1
+ ldrb r2, [r1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, 0xB1
+ ldrb r2, [r1]
+ movs r0, 0x3D
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, 0xB1
+ ldrb r2, [r1]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r3]
+ adds r1, 0xB2
+ ldrb r2, [r1]
+ movs r0, 0x8
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ movs r4, 0
+ movs r1, 0
+_081A08BE:
+ ldr r0, [r3]
+ adds r0, 0xB4
+ adds r0, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A08BE
+ movs r4, 0
+ ldr r5, =gSaveBlock2Ptr
+ movs r0, 0x4
+ negs r0, r0
+ mov r12, r0
+ movs r7, 0xD
+ negs r7, r7
+ movs r6, 0x31
+ negs r6, r6
+_081A08E2:
+ ldr r1, [r5]
+ lsls r3, r4, 2
+ adds r1, r3
+ adds r1, 0xB8
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xB8
+ ldrb r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xB8
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r1, r3
+ adds r1, 0xB8
+ ldrb r2, [r1]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, r3
+ adds r0, 0xBA
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _081A08E2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A087C
+
+ thumb_func_start sub_81A093C
+sub_81A093C: @ 81A093C
+ push {lr}
+ bl sub_819FBB0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081A0954
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+ b _081A095A
+ .pool
+_081A0954:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_081A095A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A093C
+
+ thumb_func_start sub_81A0964
+sub_81A0964: @ 81A0964
+ push {lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ bl sub_819FC40
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0964
+
+ thumb_func_start sub_81A0978
+sub_81A0978: @ 81A0978
+ push {lr}
+ bl sub_819FBC8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0978
+
+ thumb_func_start sub_81A0984
+sub_81A0984: @ 81A0984
+ push {lr}
+ bl sub_819FD64
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0984
+
+ thumb_func_start sub_81A0990
+sub_81A0990: @ 81A0990
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ adds r2, 0xB1
+ ldrb r3, [r2]
+ lsls r1, r3, 26
+ lsrs r1, 28
+ adds r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x3D
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_81A0990
+
+ thumb_func_start sub_81A09B4
+sub_81A09B4: @ 81A09B4
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A09B4
+
+ thumb_func_start sub_81A09D0
+sub_81A09D0: @ 81A09D0
+ push {lr}
+ ldr r3, =gSaveBlock2Ptr
+ ldr r0, [r3]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r1, r0, 0x3
+ cmp r1, 0
+ bge _081A09F4
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ b _081A0A1C
+ .pool
+_081A09F4:
+ ldr r2, =gScriptResult
+ cmp r1, 0x8
+ ble _081A09FE
+ movs r0, 0x1
+ strh r0, [r2]
+_081A09FE:
+ ldr r0, [r3]
+ lsls r1, 2
+ adds r0, r1
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bne _081A0A18
+ movs r0, 0x1
+ b _081A0A1A
+ .pool
+_081A0A18:
+ movs r0, 0
+_081A0A1A:
+ strh r0, [r2]
+_081A0A1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A09D0
+
+ thumb_func_start sub_81A0A20
+sub_81A0A20: @ 81A0A20
+ push {lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r0, [r0]
+ bl sub_81A04E4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0A20
+
+ thumb_func_start sub_81A0A34
+sub_81A0A34: @ 81A0A34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8197224
+ lsls r0, 16
+ cmp r0, 0
+ bne _081A0A68
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A0A64
+ ldr r0, =script_env_2_enable_and_set_ctx_running
+ bl sub_81A172C
+ b _081A0A68
+ .pool
+_081A0A64:
+ bl script_env_2_enable_and_set_ctx_running
+_081A0A68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0A34
+
+ thumb_func_start sub_81A0A70
+sub_81A0A70: @ 81A0A70
+ push {lr}
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r0, [r1]
+ cmp r0, 0x6
+ bne _081A0A94
+ ldr r1, =gUnknown_08610FF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ b _081A0C66
+ .pool
+_081A0A94:
+ cmp r0, 0x7
+ bne _081A0AB0
+ ldr r1, =gUnknown_08610FF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ b _081A0C66
+ .pool
+_081A0AB0:
+ cmp r0, 0x8
+ bne _081A0ACC
+ ldr r1, =gUnknown_086111B0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ b _081A0C66
+ .pool
+_081A0ACC:
+ cmp r0, 0x9
+ bne _081A0AE8
+ ldr r1, =gUnknown_086111B0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ b _081A0C66
+ .pool
+_081A0AE8:
+ cmp r0, 0x4
+ bne _081A0B04
+ ldr r1, =gUnknown_08611230
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ b _081A0C66
+ .pool
+_081A0B04:
+ cmp r0, 0x5
+ bne _081A0B20
+ ldr r1, =gUnknown_08611230
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ b _081A0C66
+ .pool
+_081A0B20:
+ cmp r0, 0xA
+ bne _081A0B40
+ ldr r2, =gUnknown_08611070
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ b _081A0BD6
+ .pool
+_081A0B40:
+ cmp r0, 0xB
+ bne _081A0B5C
+ ldr r1, =gUnknown_086112B0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ b _081A0C66
+ .pool
+_081A0B5C:
+ cmp r0, 0xC
+ bne _081A0B7C
+ ldr r2, =gUnknown_08611070
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0xC
+ b _081A0BD6
+ .pool
+_081A0B7C:
+ cmp r0, 0xD
+ bne _081A0B9C
+ ldr r2, =gUnknown_08611070
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ b _081A0BD6
+ .pool
+_081A0B9C:
+ ldrh r0, [r1]
+ cmp r0, 0x10
+ bne _081A0BC0
+ ldr r2, =gUnknown_08611070
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ b _081A0BD6
+ .pool
+_081A0BC0:
+ cmp r0, 0xE
+ bne _081A0BE4
+ ldr r2, =gUnknown_08611070
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+_081A0BD6:
+ adds r0, r2
+ ldr r1, [r0]
+ b _081A0C7A
+ .pool
+_081A0BE4:
+ cmp r0, 0xF
+ bne _081A0C00
+ ldr r1, =gUnknown_086112B0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ b _081A0C66
+ .pool
+_081A0C00:
+ cmp r0, 0
+ bne _081A0C1C
+ ldr r1, =gUnknown_08610EF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 4
+ b _081A0C66
+ .pool
+_081A0C1C:
+ cmp r0, 0x1
+ bne _081A0C38
+ ldr r1, =gUnknown_08610EF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r1, 0x4
+ b _081A0C66
+ .pool
+_081A0C38:
+ cmp r0, 0x2
+ bne _081A0C54
+ ldr r1, =gUnknown_08610EF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r1, 0x8
+ b _081A0C66
+ .pool
+_081A0C54:
+ cmp r0, 0x3
+ bne _081A0C74
+ ldr r1, =gUnknown_08610EF0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r1, 0xC
+_081A0C66:
+ adds r0, r1
+ ldr r1, [r0]
+ b _081A0C7A
+ .pool
+_081A0C74:
+ bl script_env_2_enable_and_set_ctx_running
+ b _081A0C8E
+_081A0C7A:
+ ldr r0, =gStringVar4
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ bl AddTextPrinterForMessage
+ ldr r0, =sub_81A0A34
+ movs r1, 0x1
+ bl CreateTask
+_081A0C8E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0A70
+
+ thumb_func_start sub_81A0C9C
+sub_81A0C9C: @ 81A0C9C
+ push {lr}
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808B864
+ bl sub_808BCF4
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_81973C4
+ bl sub_81A0A70
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0C9C
+
+ thumb_func_start sub_81A0CC0
+sub_81A0CC0: @ 81A0CC0
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r1, r0, 26
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bhi _081A0CE4
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+ b _081A0D34
+ .pool
+_081A0CE4:
+ lsrs r0, r1, 28
+ cmp r0, 0xB
+ bhi _081A0D30
+ lsrs r0, r1, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r2, r0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ beq _081A0D18
+ cmp r0, 0x2
+ bgt _081A0D08
+ cmp r0, 0x1
+ beq _081A0D0E
+ b _081A0D30
+_081A0D08:
+ cmp r0, 0x3
+ beq _081A0D24
+ b _081A0D30
+_081A0D0E:
+ ldr r1, =gScriptResult
+ movs r0, 0x4
+ b _081A0D34
+ .pool
+_081A0D18:
+ ldr r1, =gScriptResult
+ movs r0, 0x3
+ b _081A0D34
+ .pool
+_081A0D24:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _081A0D34
+ .pool
+_081A0D30:
+ ldr r1, =gScriptResult
+ movs r0, 0x5
+_081A0D34:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0CC0
+
+ thumb_func_start sub_81A0D40
+sub_81A0D40: @ 81A0D40
+ push {r4,lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A0D6E
+ ldr r4, =gSpecialVar_0x8006
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ adds r2, 0xB2
+ ldrb r3, [r2]
+ lsls r0, r3, 29
+ lsrs r0, 29
+ movs r1, 0x1
+ ldrb r4, [r4]
+ lsls r1, r4
+ orrs r1, r0
+ movs r0, 0x7
+ ands r1, r0
+ movs r0, 0x8
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_081A0D6E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0D40
+
+ thumb_func_start sub_81A0D80
+sub_81A0D80: @ 81A0D80
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r1, r0, 26
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bls _081A0DCE
+ subs r0, 0x3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A0DC0
+ lsls r2, 2
+ adds r2, r3, r2
+ adds r2, 0xB8
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ b _081A0DCE
+ .pool
+_081A0DC0:
+ lsls r0, r2, 2
+ adds r0, r3, r0
+ adds r0, 0xB8
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ strb r1, [r0]
+_081A0DCE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A0D80
+
+ thumb_func_start sub_81A0DD4
+sub_81A0DD4: @ 81A0DD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r2, 0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ ldr r3, =gUnknown_030062F0
+ mov r9, r3
+ cmp r0, 0
+ beq _081A0E14
+ adds r3, r1, 0
+_081A0DF4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x8
+ bhi _081A0E14
+ ldr r0, [r3]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bne _081A0DF4
+_081A0E14:
+ mov r4, r9
+ movs r0, 0x8
+ bl AllocZeroed
+ adds r7, r0, 0
+ str r7, [r4]
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bne _081A0E88
+ ldr r0, =gSaveBlock2Ptr
+ ldr r5, [r0]
+ adds r6, r5, 0
+ adds r6, 0xB1
+ ldrb r0, [r6]
+ lsls r1, r0, 26
+ lsrs r0, r1, 28
+ cmp r0, 0x2
+ bls _081A0E3C
+ b _081A0FCE
+_081A0E3C:
+ adds r2, r5, 0
+ adds r2, 0xB4
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsrs r4, r0, 4
+ ldr r3, =gUnknown_08610970
+ lsls r1, r4, 1
+ adds r5, 0xB0
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ adds r1, r0
+ adds r3, 0x34
+ adds r1, r3
+ ldrh r0, [r1]
+ strh r0, [r7, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 26
+ lsrs r0, 28
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r5]
+ muls r1, r4
+ adds r0, r1
+ adds r0, r3
+ b _081A0FCA
+ .pool
+_081A0E88:
+ cmp r0, 0x3
+ bne _081A0F54
+ ldr r0, =gSaveBlock2Ptr
+ mov r8, r0
+ ldr r5, [r0]
+ movs r1, 0xB1
+ adds r1, r5
+ mov r12, r1
+ ldrb r0, [r1]
+ lsls r2, r0, 26
+ lsrs r0, r2, 28
+ cmp r0, 0x2
+ bhi _081A0EA4
+ b _081A0FCE
+_081A0EA4:
+ adds r1, r0, 0
+ adds r0, r6, 0x3
+ cmp r1, r0
+ blt _081A0EAE
+ b _081A0FCE
+_081A0EAE:
+ adds r0, r1, 0
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r5, r0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x2
+ beq _081A0EC4
+ b _081A0FCE
+_081A0EC4:
+ adds r0, r1, 0
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r5, r0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r6, r0, 30
+ adds r0, r5, 0
+ adds r0, 0xB2
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 29
+ asrs r1, r6
+ movs r0, 0x1
+ ands r1, r0
+ adds r0, r5, 0
+ adds r0, 0xB4
+ adds r0, r6
+ ldrb r4, [r0]
+ lsls r1, 2
+ asrs r4, r1
+ movs r0, 0xF
+ ands r4, r0
+ ldr r2, =gUnknown_08610970
+ lsls r1, r4, 1
+ adds r0, r5, 0
+ adds r0, 0xB0
+ ldrb r3, [r0]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0
+ adds r2, 0x34
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r7]
+ mov r3, r12
+ ldrb r0, [r3]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r5, r0
+ adds r0, 0xB8
+ ldrb r2, [r0]
+ lsls r2, 26
+ lsrs r2, 30
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_81A0284
+ mov r1, r9
+ ldr r2, [r1]
+ strh r0, [r2, 0x4]
+ mov r3, r8
+ ldr r1, [r3]
+ adds r0, r1, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xBA
+ ldrh r0, [r1]
+ strh r0, [r2, 0x6]
+ b _081A0FCE
+ .pool
+_081A0F54:
+ cmp r0, 0x4
+ bne _081A0FCE
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r2, r0, 26
+ lsrs r0, r2, 28
+ cmp r0, 0x2
+ bls _081A0FCE
+ adds r1, r0, 0
+ adds r0, r6, 0x3
+ cmp r1, r0
+ bge _081A0FCE
+ adds r0, r1, 0
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _081A0FCE
+ adds r0, r1, 0
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 28
+ lsrs r6, r0, 30
+ adds r0, r3, 0
+ adds r0, 0xB2
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 29
+ asrs r1, r6
+ movs r0, 0x1
+ ands r1, r0
+ adds r0, r3, 0
+ adds r0, 0xB4
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, 2
+ asrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ ldr r2, =gUnknown_08610970
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0xB0
+ ldrb r3, [r1]
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r2, 0x34
+ adds r0, r2
+_081A0FCA:
+ ldrh r0, [r0]
+ strh r0, [r7]
+_081A0FCE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0DD4
+
+ thumb_func_start sub_81A0FE4
+sub_81A0FE4: @ 81A0FE4
+ push {r4,lr}
+ ldr r4, =gUnknown_030062F0
+ ldr r0, [r4]
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0FE4
+
+ thumb_func_start sub_81A0FFC
+sub_81A0FFC: @ 81A0FFC
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081A1028
+ cmp r0, 0x1
+ bgt _081A1018
+ cmp r0, 0
+ beq _081A101E
+ b _081A11E6
+ .pool
+_081A1018:
+ cmp r0, 0x2
+ beq _081A1030
+ b _081A11E6
+_081A101E:
+ ldr r5, =gStringVar1
+ b _081A1032
+ .pool
+_081A1028:
+ ldr r5, =gStringVar2
+ b _081A1032
+ .pool
+_081A1030:
+ ldr r5, =gStringVar3
+_081A1032:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0x9
+ bls _081A103C
+ b _081A11E6
+_081A103C:
+ lsls r0, 2
+ ldr r1, =_081A1054
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A1054:
+ .4byte _081A107C
+ .4byte _081A1094
+ .4byte _081A10AC
+ .4byte _081A10C4
+ .4byte _081A10DC
+ .4byte _081A10F4
+ .4byte _081A1118
+ .4byte _081A1164
+ .4byte _081A1140
+ .4byte _081A1184
+_081A107C:
+ ldr r0, =gUnknown_030062F0
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ b _081A1174
+ .pool
+_081A1094:
+ ldr r0, =gUnknown_030062F0
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ b _081A1174
+ .pool
+_081A10AC:
+ ldr r0, =gUnknown_030062F0
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ b _081A1174
+ .pool
+_081A10C4:
+ ldr r0, =gUnknown_030062F0
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ b _081A1174
+ .pool
+_081A10DC:
+ ldr r0, =gUnknown_030062F0
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x6]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ b _081A1174
+ .pool
+_081A10F4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xBA
+ ldrh r0, [r1]
+ bl ItemId_GetItem
+ adds r1, r0, 0
+ b _081A1174
+ .pool
+_081A1118:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_81A1650
+ adds r1, r0, 0
+ mov r0, sp
+ movs r2, 0x2
+ bl sub_81DB5E8
+ adds r0, r5, 0
+ mov r1, sp
+ bl StringCopy
+ b _081A11E6
+ .pool
+_081A1140:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081A115C
+ ldr r1, =gUnknown_085EAEB1
+ b _081A1174
+ .pool
+_081A115C:
+ ldr r1, =gUnknown_085EAEB8
+ b _081A1174
+ .pool
+_081A1164:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0x82
+ lsls r1, 1
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ ldr r1, =gStringVar4
+_081A1174:
+ adds r0, r5, 0
+ bl StringCopy
+ b _081A11E6
+ .pool
+_081A1184:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ adds r1, r3, 0
+ adds r1, 0xB1
+ ldrb r1, [r1]
+ lsls r4, r1, 24
+ lsrs r1, r4, 30
+ adds r6, r0, 0
+ cmp r1, 0x2
+ bhi _081A11C0
+ adds r0, r3, 0
+ adds r0, 0xB4
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r3, 0
+ adds r0, 0xB2
+ ldrb r0, [r0]
+ lsls r0, 29
+ lsrs r0, 29
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 2
+ asrs r2, r0
+ movs r0, 0xF
+ ands r2, r0
+ b _081A11C2
+ .pool
+_081A11C0:
+ movs r2, 0
+_081A11C2:
+ ldr r3, =gUnknown_08610970
+ lsls r1, r2, 1
+ ldr r0, [r6]
+ adds r0, 0xB0
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0
+ adds r3, 0x34
+ adds r1, r3
+ ldrh r1, [r1]
+ movs r0, 0xB
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringCopy
+_081A11E6:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A0FFC
+
+ thumb_func_start sub_81A11F8
+sub_81A11F8: @ 81A11F8
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r1, [r0]
+ adds r2, 0xB1
+ lsls r1, 6
+ ldrb r3, [r2]
+ movs r0, 0x3F
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_81A11F8
+
+ thumb_func_start sub_81A1218
+sub_81A1218: @ 81A1218
+ push {lr}
+ bl sub_81AAC28
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A1218
+
+ thumb_func_start sub_81A1224
+sub_81A1224: @ 81A1224
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r3, [r1]
+ adds r0, r3, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ adds r7, r1, 0
+ cmp r0, 0x2
+ bhi _081A1242
+ b _081A1362
+_081A1242:
+ movs r5, 0
+ movs r2, 0
+ adds r0, r3, 0
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ ldr r1, =gSpecialVar_0x8005
+ mov r12, r1
+ ldr r1, =gScriptResult
+ mov r8, r1
+ cmp r0, 0
+ beq _081A127C
+ adds r3, r7, 0
+_081A125C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x8
+ bhi _081A127C
+ ldr r0, [r3]
+ lsls r1, r2, 2
+ adds r0, r1
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bne _081A125C
+_081A127C:
+ movs r4, 0
+ cmp r4, r5
+ bcs _081A1322
+ ldr r0, [r7]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ cmp r4, r0
+ bge _081A1322
+ adds r6, r7, 0
+ mov r9, r4
+_081A1296:
+ ldr r3, [r6]
+ lsls r0, r4, 2
+ adds r2, r3, r0
+ adds r0, r2, 0
+ adds r0, 0xB8
+ ldrb r1, [r0]
+ lsls r0, r1, 30
+ lsrs r0, 30
+ cmp r0, 0x1
+ bne _081A1308
+ lsrs r0, r1, 6
+ cmp r0, 0
+ beq _081A1308
+ adds r0, r2, 0
+ adds r0, 0xBA
+ ldrh r0, [r0]
+ mov r2, r12
+ ldrh r2, [r2]
+ cmp r0, r2
+ bne _081A1308
+ adds r0, r3, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, 0xB8
+ ldrb r2, [r0]
+ movs r1, 0x3F
+ ands r1, r2
+ strb r1, [r0]
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r1, r0
+ mov r2, r12
+ ldrh r0, [r2]
+ adds r1, 0xBA
+ strh r0, [r1]
+ mov r1, r9
+ mov r0, r8
+ strh r1, [r0]
+ b _081A1362
+ .pool
+_081A1308:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcs _081A1322
+ ldr r0, [r6]
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ cmp r4, r0
+ blt _081A1296
+_081A1322:
+ ldr r2, [r7]
+ adds r0, r2, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r2, r0
+ adds r2, 0xB8
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xB1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 28
+ subs r0, 0x3
+ lsls r0, 2
+ adds r1, r0
+ mov r2, r12
+ ldrh r0, [r2]
+ adds r1, 0xBA
+ strh r0, [r1]
+ movs r0, 0x1
+ mov r1, r8
+ strh r0, [r1]
+_081A1362:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A1224
+
+ thumb_func_start sub_81A1370
+sub_81A1370: @ 81A1370
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0xFF
+ beq _081A1422
+ movs r5, 0
+_081A138E:
+ ldr r1, [r4]
+ adds r2, r5, 0x1
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r1, r0
+ movs r5, 0x8A
+ lsls r5, 1
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081A13B8
+ adds r0, r3, 0
+ adds r0, 0xDC
+ adds r1, 0xDC
+ movs r2, 0x44
+ bl memcpy
+ b _081A1422
+ .pool
+_081A13B8:
+ adds r5, r2, 0
+ cmp r5, 0x2
+ ble _081A138E
+ ldr r0, =0x0000ffff
+ mov r10, r0
+ movs r2, 0x1
+ negs r2, r2
+ mov r9, r2
+ movs r5, 0x1
+ ldr r7, =gSaveBlock2Ptr
+ movs r0, 0x90
+ lsls r0, 1
+ mov r8, r0
+ movs r6, 0x44
+_081A13D4:
+ ldr r0, [r7]
+ add r0, r8
+ adds r0, 0x34
+ bl ReadUnalignedWord
+ adds r4, r0, 0
+ ldr r0, [r7]
+ adds r0, 0xA
+ bl ReadUnalignedWord
+ cmp r4, r0
+ bne _081A13FC
+ ldr r0, [r7]
+ adds r0, r6
+ adds r0, 0xDE
+ ldrb r0, [r0]
+ cmp r0, r10
+ bge _081A13FC
+ mov r10, r0
+ mov r9, r5
+_081A13FC:
+ movs r2, 0x44
+ add r8, r2
+ adds r6, 0x44
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081A13D4
+ mov r5, r9
+ cmp r5, 0
+ ble _081A1422
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ lsls r0, r5, 4
+ add r0, r9
+ lsls r0, 2
+ adds r0, r1, r0
+ adds r0, 0xDC
+ adds r1, 0xDC
+ bl memcpy
+_081A1422:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1370
+
+ thumb_func_start sub_81A1438
+sub_81A1438: @ 81A1438
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ adds r2, 0xDC
+ movs r1, 0x1F
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0xB1
+ ldrb r1, [r0]
+ lsls r1, 30
+ adds r2, 0xDC
+ lsrs r1, 25
+ ldrb r3, [r2]
+ movs r0, 0x61
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ movs r2, 0
+ ldr r0, [r4]
+ b _081A148C
+ .pool
+_081A147C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x8
+ bhi _081A1496
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r0, r1
+_081A148C:
+ adds r0, 0xB8
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bne _081A147C
+_081A1496:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ adds r0, 0xDD
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0xDE
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _081A14AE
+ adds r0, 0x1
+ strb r0, [r1]
+_081A14AE:
+ ldr r0, [r4]
+ adds r0, 0xDD
+ ldrb r0, [r0]
+ bl sub_81A0390
+ movs r2, 0
+ adds r3, r4, 0
+ movs r4, 0x88
+ lsls r4, 1
+ adds r5, r3, 0
+_081A14C2:
+ ldr r0, [r3]
+ adds r1, r0, r4
+ adds r1, r2
+ adds r0, 0xA
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _081A14C2
+ ldr r1, [r5]
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r0, r1, r2
+ bl StringCopy
+ ldr r1, [r5]
+ ldr r0, =gGameLanguage
+ ldrb r0, [r0]
+ ldr r2, =0x0000011b
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ adds r0, 0xDC
+ bl sub_8165AE8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1438
+
+ thumb_func_start sub_81A150C
+sub_81A150C: @ 81A150C
+ push {lr}
+ ldr r2, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xDC
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x32
+ ldrb r2, [r0]
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEDC
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081A1542
+_081A1530:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bhi _081A1542
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081A1530
+_081A1542:
+ cmp r1, 0x1E
+ beq _081A1568
+ ldr r0, =gUnknown_085DCF0E
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ ldr r0, =0x00004010
+ bl VarSet
+ b _081A1594
+ .pool
+_081A1568:
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081A1584
+_081A1572:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bhi _081A1584
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081A1572
+_081A1584:
+ cmp r1, 0x14
+ beq _081A1594
+ ldr r0, =gUnknown_085DCF2C
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ ldr r0, =0x00004010
+ bl VarSet
+_081A1594:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A150C
+
+ thumb_func_start sub_81A15A4
+sub_81A15A4: @ 81A15A4
+ push {lr}
+ ldr r2, =gUnknown_08610970
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r0, 0xB0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x32
+ ldrb r2, [r0]
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEDC
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081A15D6
+_081A15C4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1D
+ bhi _081A15D6
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081A15C4
+_081A15D6:
+ cmp r1, 0x1E
+ beq _081A15FC
+ ldr r0, =gUnknown_085DCF0E
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ ldr r0, =0x00004010
+ bl VarSet
+ b _081A1628
+ .pool
+_081A15FC:
+ movs r1, 0
+ ldr r3, =gUnknown_085DCEFA
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081A1618
+_081A1606:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bhi _081A1618
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081A1606
+_081A1618:
+ cmp r1, 0x14
+ beq _081A1628
+ ldr r0, =gUnknown_085DCF2C
+ adds r0, r1, r0
+ ldrb r1, [r0]
+ ldr r0, =0x00004010
+ bl VarSet
+_081A1628:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A15A4
+
+ thumb_func_start sub_81A1638
+sub_81A1638: @ 81A1638
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A1638
+
+ thumb_func_start sub_81A1644
+sub_81A1644: @ 81A1644
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A1644
+
+ thumb_func_start sub_81A1650
+sub_81A1650: @ 81A1650
+ push {lr}
+ movs r2, 0x58
+ muls r2, r0
+ ldr r0, =gUnknown_08610970
+ adds r2, r0
+ subs r0, r1, 0x1
+ cmp r0, 0x6
+ bhi _081A16AC
+ lsls r0, 2
+ ldr r1, =_081A1674
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A1674:
+ .4byte _081A1690
+ .4byte _081A1694
+ .4byte _081A169A
+ .4byte _081A16A0
+ .4byte _081A16A6
+ .4byte _081A16AC
+ .4byte _081A16AC
+_081A1690:
+ adds r0, r2, 0
+ b _081A16B0
+_081A1694:
+ adds r0, r2, 0
+ adds r0, 0x8
+ b _081A16B0
+_081A169A:
+ adds r0, r2, 0
+ adds r0, 0x10
+ b _081A16B0
+_081A16A0:
+ adds r0, r2, 0
+ adds r0, 0x18
+ b _081A16B0
+_081A16A6:
+ adds r0, r2, 0
+ adds r0, 0x20
+ b _081A16B0
+_081A16AC:
+ adds r0, r2, 0
+ adds r0, 0x28
+_081A16B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A1650
+
+ thumb_func_start sub_81A16B4
+sub_81A16B4: @ 81A16B4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081A16CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081A16D4
+_081A16CE:
+ adds r0, r2, 0
+ bl SwitchTaskToFollowupFunc
+_081A16D4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A16B4
+
+ thumb_func_start sub_81A16DC
+sub_81A16DC: @ 81A16DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081A16F6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081A1718
+_081A16F6:
+ ldr r2, =gUnknown_030062F4
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ movs r3, 0xA
+ ldrsh r0, [r0, r3]
+ lsls r0, 16
+ orrs r1, r0
+ str r1, [r2]
+ bl _call_via_r1
+ adds r0, r4, 0
+ bl DestroyTask
+_081A1718:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A16DC
+
+ thumb_func_start sub_81A172C
+sub_81A172C: @ 81A172C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =sub_81A16DC
+ movs r1, 0x1
+ 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]
+ lsrs r4, 16
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A172C
+
+ thumb_func_start sub_81A175C
+sub_81A175C: @ 81A175C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, =sub_81A16B4
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A175C
+
+ thumb_func_start sub_81A1780
+sub_81A1780: @ 81A1780
+ push {lr}
+ ldr r1, =gUnknown_08611C18
+ 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_81A1780
+
+ thumb_func_start sub_81A17A0
+sub_81A17A0: @ 81A17A0
+ push {lr}
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0xFF
+ bl VarSet
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _081A1822
+ lsls r0, 2
+ ldr r1, =_081A17D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A17D0:
+ .4byte _081A1822
+ .4byte _081A17E4
+ .4byte _081A1810
+ .4byte _081A17EC
+ .4byte _081A17E8
+_081A17E4:
+ movs r0, 0
+ b _081A17EE
+_081A17E8:
+ movs r0, 0
+ b _081A17EE
+_081A17EC:
+ movs r0, 0x1
+_081A17EE:
+ bl sub_813A878
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r1, r2
+ ldrb r1, [r1]
+ bl VarSet
+ b _081A1822
+ .pool
+_081A1810:
+ movs r0, 0x80
+ lsls r0, 7
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r1, r2
+ ldrb r1, [r1]
+ bl VarSet
+_081A1822:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A17A0
+
+ thumb_func_start sub_81A1830
+sub_81A1830: @ 81A1830
+ push {r4-r6,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bne _081A184C
+ movs r5, 0x1
+_081A184C:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bls _081A1856
+ b _081A1956
+_081A1856:
+ lsls r0, 2
+ ldr r1, =_081A186C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A186C:
+ .4byte _081A188C
+ .4byte _081A18A8
+ .4byte _081A18C8
+ .4byte _081A18E4
+ .4byte _081A1956
+ .4byte _081A1900
+ .4byte _081A1918
+ .4byte _081A1938
+_081A188C:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ b _081A1956
+ .pool
+_081A18A8:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ strh r0, [r1]
+ b _081A1956
+ .pool
+_081A18C8:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000cb2
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _081A1956
+ .pool
+_081A18E4:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ b _081A1926
+ .pool
+_081A1900:
+ ldr r2, =gScriptResult
+ ldr r1, =gBattleOutcome
+ ldrb r0, [r1]
+ strh r0, [r2]
+ movs r0, 0
+ strb r0, [r1]
+ b _081A1956
+ .pool
+_081A1918:
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 28
+_081A1926:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _081A1956
+ .pool
+_081A1938:
+ ldr r4, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ movs r0, 0xD0
+ lsls r0, 4
+ adds r2, r0
+ ldr r3, =gUnknown_08611BFC
+ lsls r0, r5, 1
+ lsls r1, r6, 2
+ adds r0, r1
+ adds r0, r3
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ ands r0, r1
+ strh r0, [r4]
+_081A1956:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1830
+
+ thumb_func_start sub_81A1968
+sub_81A1968: @ 81A1968
+ push {r4,r5,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bne _081A1984
+ movs r4, 0x1
+_081A1984:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bls _081A198E
+ b _081A1AC4
+_081A198E:
+ lsls r0, 2
+ ldr r1, =_081A19A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A19A4:
+ .4byte _081A19C4
+ .4byte _081A19E0
+ .4byte _081A1A0C
+ .4byte _081A1A28
+ .4byte _081A1A50
+ .4byte _081A1AC4
+ .4byte _081A1A7C
+ .4byte _081A1AA8
+_081A19C4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ strb r1, [r0]
+ b _081A1AC4
+ .pool
+_081A19E0:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r2, r1
+ movs r1, 0x3
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ b _081A1AC4
+ .pool
+_081A1A0C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000cb2
+ adds r0, r2
+ strh r1, [r0]
+ b _081A1AC4
+ .pool
+_081A1A28:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r3, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ b _081A1A94
+ .pool
+_081A1A50:
+ movs r2, 0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r4, =0x00000caa
+ ldr r3, =gUnknown_0203CEF8
+_081A1A58:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _081A1A58
+ b _081A1AC4
+ .pool
+_081A1A7C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r0, =gSpecialVar_0x8006
+ ldrb r0, [r0]
+ ldr r2, =0x00000ca9
+ adds r3, r2
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r3]
+ movs r0, 0x9
+ negs r0, r0
+_081A1A94:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _081A1AC4
+ .pool
+_081A1AA8:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ movs r0, 0xD0
+ lsls r0, 4
+ adds r2, r0
+ ldr r3, =gUnknown_08611BFC
+ lsls r1, r4, 1
+ lsls r0, r5, 2
+ adds r1, r0
+ adds r1, r3
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ orrs r0, r1
+ strh r0, [r2]
+_081A1AC4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1968
+
+ thumb_func_start sub_81A1AD4
+sub_81A1AD4: @ 81A1AD4
+ push {r4-r7,lr}
+ bl sub_81B8558
+ movs r3, 0
+ ldr r4, =gSpecialVar_0x8005
+ ldrh r0, [r4]
+ cmp r3, r0
+ bge _081A1B00
+ ldr r7, =gUnknown_0203CEF8
+ ldr r6, =gSaveBlock2Ptr
+ ldr r5, =0x00000caa
+_081A1AEA:
+ adds r2, r3, r7
+ ldr r0, [r6]
+ lsls r1, r3, 1
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrh r0, [r4]
+ cmp r3, r0
+ blt _081A1AEA
+_081A1B00:
+ bl sub_80F94E8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1AD4
+
+ thumb_func_start sub_81A1B1C
+sub_81A1B1C: @ 81A1B1C
+ push {lr}
+ bl DoSoftReset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A1B1C
+
+ thumb_func_start sub_81A1B28
+sub_81A1B28: @ 81A1B28
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A1B28
+
+ thumb_func_start sub_81A1B38
+sub_81A1B38: @ 81A1B38
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0x64
+_081A1B3E:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _081A1B76
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r1]
+ subs r1, 0x1
+ muls r1, r5
+ adds r0, r1
+ movs r1, 0x8E
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, =gPlayerParty
+ adds r1, r4, 0
+ muls r1, r5
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_081A1B76:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081A1B3E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1B38
+
+ thumb_func_start sub_81A1B98
+sub_81A1B98: @ 81A1B98
+ push {lr}
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0x3
+ bls _081A1BA8
+ movs r0, 0
+ strh r0, [r2]
+_081A1BA8:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x7
+ bhi _081A1C1E
+ lsls r0, 2
+ ldr r1, =_081A1BC8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A1BC8:
+ .4byte _081A1BE8
+ .4byte _081A1BF0
+ .4byte _081A1BF8
+ .4byte _081A1C0E
+ .4byte _081A1C06
+ .4byte _081A1C00
+ .4byte _081A1C14
+ .4byte _081A1C1A
+_081A1BE8:
+ ldrb r0, [r2]
+ bl sub_81A1EA8
+ b _081A1C1E
+_081A1BF0:
+ ldrb r0, [r2]
+ bl sub_81A2134
+ b _081A1C1E
+_081A1BF8:
+ ldrb r0, [r2]
+ bl sub_81A2460
+ b _081A1C1E
+_081A1C00:
+ bl sub_81A2698
+ b _081A1C1E
+_081A1C06:
+ ldrb r0, [r2]
+ bl sub_81A2C94
+ b _081A1C1E
+_081A1C0E:
+ bl sub_81A2968
+ b _081A1C1E
+_081A1C14:
+ bl sub_81A2F38
+ b _081A1C1E
+_081A1C1A:
+ bl sub_81A2FF8
+_081A1C1E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A1B98
+
+ thumb_func_start sub_81A1C24
+sub_81A1C24: @ 81A1C24
+ push {lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ ldr r2, =0x00000cdc
+ adds r1, r2
+ ldr r1, [r1]
+ ands r1, r0
+ cmp r1, 0
+ bne _081A1C44
+ movs r0, 0
+ b _081A1C46
+ .pool
+_081A1C44:
+ movs r0, 0x1
+_081A1C46:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A1C24
+
+ thumb_func_start sub_81A1C4C
+sub_81A1C4C: @ 81A1C4C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xE0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r0, r5, 3
+ adds r5, r0, 0x1
+ ldr r0, =gUnknown_0203AB74
+ ldrb r0, [r0]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r1, r5, 24
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1C4C
+
+ thumb_func_start sub_81A1C90
+sub_81A1C90: @ 81A1C90
+ push {r4,lr}
+ sub sp, 0x34
+ adds r2, r0, 0
+ ldr r3, =gUnknown_0203AB74
+ movs r1, 0xAE
+ mov r0, sp
+ adds r0, 0x2F
+_081A1C9E:
+ strb r1, [r0]
+ subs r0, 0x1
+ add r4, sp, 0xC
+ cmp r0, r4
+ bge _081A1C9E
+ add r1, sp, 0x30
+ movs r0, 0xFF
+ strb r0, [r1]
+ lsls r0, r2, 3
+ adds r2, r0, 0x1
+ ldrb r0, [r3]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x4
+ bl PrintTextOnWindow
+ add sp, 0x34
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1C90
+
+ thumb_func_start sub_81A1CD8
+sub_81A1CD8: @ 81A1CD8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x30]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r7, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ ldr r0, =0x0000270f
+ cmp r6, r0
+ bls _081A1D24
+ adds r6, r0, 0
+_081A1D24:
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE302
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r7, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl PrintTextOnWindow
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1CD8
+
+ thumb_func_start sub_81A1D78
+sub_81A1D78: @ 81A1D78
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, =gSaveBlock2Ptr
+ ldr r4, [r4]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ movs r0, 0xCF
+ lsls r0, 4
+ adds r4, r0
+ adds r4, r1
+ ldrh r1, [r4]
+ ldr r0, =gUnknown_085EE319
+ str r5, [sp]
+ bl sub_81A1CD8
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1D78
+
+ thumb_func_start sub_81A1DBC
+sub_81A1DBC: @ 81A1DBC
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ movs r0, 0xCE
+ lsls r0, 4
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A1DDE
+ adds r0, r1, 0
+_081A1DDE:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A1DBC
+
+ thumb_func_start sub_81A1DEC
+sub_81A1DEC: @ 81A1DEC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r4, 24
+ lsrs r7, r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_81A1DBC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x1
+ beq _081A1E38
+ cmp r5, 0x1
+ ble _081A1E2C
+ cmp r5, 0x2
+ beq _081A1E48
+ cmp r5, 0x3
+ beq _081A1E58
+_081A1E2C:
+ cmp r6, 0
+ beq _081A1E34
+ movs r0, 0x2
+ b _081A1E66
+_081A1E34:
+ movs r0, 0x1
+ b _081A1E66
+_081A1E38:
+ cmp r6, 0
+ beq _081A1E42
+ movs r0, 0x80
+ lsls r0, 8
+ b _081A1E66
+_081A1E42:
+ movs r0, 0x80
+ lsls r0, 7
+ b _081A1E66
+_081A1E48:
+ cmp r6, 0
+ beq _081A1E52
+ movs r0, 0x80
+ lsls r0, 10
+ b _081A1E66
+_081A1E52:
+ movs r0, 0x80
+ lsls r0, 9
+ b _081A1E66
+_081A1E58:
+ cmp r6, 0
+ beq _081A1E62
+ movs r0, 0x80
+ lsls r0, 12
+ b _081A1E66
+_081A1E62:
+ movs r0, 0x80
+ lsls r0, 11
+_081A1E66:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A1E88
+ ldr r0, =gUnknown_085EE311
+ str r7, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A1CD8
+ b _081A1E96
+ .pool
+_081A1E88:
+ ldr r0, =gUnknown_085EE320
+ str r7, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A1CD8
+_081A1E96:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1DEC
+
+ thumb_func_start sub_81A1EA8
+sub_81A1EA8: @ 81A1EA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ cmp r7, 0
+ bne _081A1EF0
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE158
+ bl StringExpandPlaceholders
+ b _081A1F28
+ .pool
+_081A1EF0:
+ cmp r7, 0x1
+ bne _081A1F08
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE178
+ bl StringExpandPlaceholders
+ b _081A1F28
+ .pool
+_081A1F08:
+ cmp r7, 0x2
+ bne _081A1F20
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE198
+ bl StringExpandPlaceholders
+ b _081A1F28
+ .pool
+_081A1F20:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE1B7
+ bl StringExpandPlaceholders
+_081A1F28:
+ ldr r0, =gStringVar4
+ movs r1, 0x2
+ bl sub_81A1C4C
+ ldr r6, =gUnknown_0203AB74
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F2
+ movs r1, 0x31
+ mov r8, r1
+ str r1, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ mov r9, r1
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x48
+ movs r3, 0x84
+ bl sub_81A1DEC
+ movs r0, 0x41
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x48
+ movs r3, 0x84
+ bl sub_81A1D78
+ mov r1, r9
+ str r1, [sp]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x48
+ movs r3, 0x84
+ bl sub_81A1DEC
+ movs r0, 0x71
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x48
+ movs r3, 0x84
+ bl sub_81A1D78
+ ldrb r0, [r6]
+ bl PutWindowTilemap
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A1EA8
+
+ thumb_func_start sub_81A1FD8
+sub_81A1FD8: @ 81A1FD8
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, =0x00000d0c
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A1FF8
+ adds r0, r1, 0
+_081A1FF8:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A1FD8
+
+ thumb_func_start sub_81A2008
+sub_81A2008: @ 81A2008
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r12, r0
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r6, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r5, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ mov r2, r12
+ bl PrintTextOnWindow
+ ldr r0, =gStringVar1
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r6, 0
+ bl PrintTextOnWindow
+ 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_81A2008
+
+ thumb_func_start sub_81A2094
+sub_81A2094: @ 81A2094
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x24]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_81A1FD8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r5, 0
+ beq _081A20CC
+ cmp r5, 0x1
+ beq _081A20D8
+_081A20CC:
+ cmp r6, 0
+ beq _081A20D4
+ movs r0, 0x8
+ b _081A20E6
+_081A20D4:
+ movs r0, 0x4
+ b _081A20E6
+_081A20D8:
+ cmp r6, 0
+ beq _081A20E2
+ movs r0, 0x80
+ lsls r0, 14
+ b _081A20E6
+_081A20E2:
+ movs r0, 0x80
+ lsls r0, 13
+_081A20E6:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A210C
+ ldr r0, =gUnknown_085EE311
+ ldr r1, =gUnknown_085EE338
+ str r7, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A2008
+ b _081A211C
+ .pool
+_081A210C:
+ ldr r0, =gUnknown_085EE320
+ ldr r1, =gUnknown_085EE338
+ str r7, [sp]
+ str r4, [sp, 0x4]
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A2008
+_081A211C:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2094
+
+ thumb_func_start sub_81A2134
+sub_81A2134: @ 81A2134
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ cmp r7, 0
+ bne _081A217C
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE1DB
+ bl StringExpandPlaceholders
+ b _081A2184
+ .pool
+_081A217C:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE1FE
+ bl StringExpandPlaceholders
+_081A2184:
+ ldr r0, =gStringVar4
+ movs r1, 0
+ bl sub_81A1C4C
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_085EE2F2
+ movs r6, 0x21
+ str r6, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ str r6, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x40
+ movs r3, 0x79
+ bl sub_81A2094
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ lsls r5, r7, 2
+ ldr r1, =0x00000d14
+ adds r0, r1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r0, 0x79
+ mov r9, r0
+ str r0, [sp]
+ movs r0, 0x31
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_085EE319
+ ldr r1, =gUnknown_085EE338
+ movs r3, 0x40
+ bl sub_81A2008
+ ldr r1, =gUnknown_085EE332
+ mov r10, r1
+ ldr r0, =gUnknown_085EE349
+ mov r8, r0
+ ldr r0, [r4]
+ ldr r1, =0x00000d1c
+ adds r0, r1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r6, 0x70
+ str r6, [sp]
+ movs r0, 0x41
+ str r0, [sp, 0x4]
+ mov r0, r10
+ mov r1, r8
+ movs r3, 0x40
+ bl sub_81A2008
+ movs r0, 0x61
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x40
+ movs r3, 0x79
+ bl sub_81A2094
+ ldr r0, [r4]
+ ldr r1, =0x00000d16
+ adds r0, r1
+ adds r0, r5
+ ldrh r2, [r0]
+ mov r0, r9
+ str r0, [sp]
+ movs r0, 0x71
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_085EE319
+ ldr r1, =gUnknown_085EE338
+ movs r3, 0x40
+ bl sub_81A2008
+ ldr r0, [r4]
+ ldr r1, =0x00000d1e
+ adds r0, r1
+ adds r0, r5
+ ldrh r2, [r0]
+ str r6, [sp]
+ movs r0, 0x81
+ str r0, [sp, 0x4]
+ mov r0, r10
+ mov r1, r8
+ movs r3, 0x40
+ bl sub_81A2008
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ bl PutWindowTilemap
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ 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_81A2134
+
+ thumb_func_start sub_81A22B8
+sub_81A22B8: @ 81A22B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x30]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r7, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ ldr r0, =0x0000270f
+ cmp r6, r0
+ bls _081A2304
+ adds r6, r0, 0
+_081A2304:
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE302
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r7, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl PrintTextOnWindow
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A22B8
+
+ thumb_func_start sub_81A2358
+sub_81A2358: @ 81A2358
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, [sp, 0x10]
+ lsls r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, =gSaveBlock2Ptr
+ ldr r4, [r4]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ movs r0, 0xDD
+ lsls r0, 4
+ adds r4, r0
+ adds r4, r1
+ ldrh r1, [r4]
+ ldr r0, =gUnknown_085EE319
+ str r5, [sp]
+ bl sub_81A22B8
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2358
+
+ thumb_func_start sub_81A239C
+sub_81A239C: @ 81A239C
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, =0x00000dc8
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A23BC
+ adds r0, r1, 0
+_081A23BC:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A239C
+
+ thumb_func_start sub_81A23CC
+sub_81A23CC: @ 81A23CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r4, 24
+ lsrs r7, r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_81A239C
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0
+ beq _081A2404
+ cmp r5, 0x1
+ beq _081A2410
+_081A2404:
+ cmp r6, 0
+ beq _081A240C
+ movs r0, 0x20
+ b _081A241E
+_081A240C:
+ movs r0, 0x10
+ b _081A241E
+_081A2410:
+ cmp r6, 0
+ beq _081A241A
+ movs r0, 0x80
+ lsls r0, 16
+ b _081A241E
+_081A241A:
+ movs r0, 0x80
+ lsls r0, 15
+_081A241E:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A2440
+ ldr r0, =gUnknown_085EE311
+ str r7, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A22B8
+ b _081A244E
+ .pool
+_081A2440:
+ ldr r0, =gUnknown_085EE320
+ str r7, [sp]
+ adds r1, r4, 0
+ mov r2, r8
+ mov r3, r9
+ bl sub_81A22B8
+_081A244E:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A23CC
+
+ thumb_func_start sub_81A2460
+sub_81A2460: @ 81A2460
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ cmp r7, 0
+ bne _081A24A8
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE221
+ bl StringExpandPlaceholders
+ b _081A24B0
+ .pool
+_081A24A8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE241
+ bl StringExpandPlaceholders
+_081A24B0:
+ ldr r0, =gStringVar4
+ movs r1, 0x2
+ bl sub_81A1C4C
+ ldr r6, =gUnknown_0203AB74
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F2
+ movs r1, 0x31
+ mov r8, r1
+ str r1, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ mov r9, r1
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x48
+ movs r3, 0x83
+ bl sub_81A23CC
+ movs r0, 0x41
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x48
+ movs r3, 0x83
+ bl sub_81A2358
+ mov r1, r9
+ str r1, [sp]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x48
+ movs r3, 0x83
+ bl sub_81A23CC
+ movs r0, 0x71
+ str r0, [sp]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x48
+ movs r3, 0x83
+ bl sub_81A2358
+ ldrb r0, [r6]
+ bl PutWindowTilemap
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2460
+
+ thumb_func_start sub_81A2560
+sub_81A2560: @ 81A2560
+ push {lr}
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ ldr r2, =0x00000e04
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A257A
+ adds r0, r1, 0
+_081A257A:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A2560
+
+ thumb_func_start sub_81A258C
+sub_81A258C: @ 81A258C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ mov r12, r0
+ adds r7, r1, 0
+ adds r4, r2, 0
+ ldr r6, [sp, 0x2C]
+ ldr r5, [sp, 0x30]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r5, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ mov r2, r12
+ bl PrintTextOnWindow
+ ldr r0, =gStringVar1
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r5, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ adds r3, r6, 0
+ bl PrintTextOnWindow
+ 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_81A258C
+
+ thumb_func_start sub_81A2618
+sub_81A2618: @ 81A2618
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r0, r4, 0
+ bl sub_81A2560
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r4, 0
+ beq _081A2648
+ movs r0, 0x80
+ lsls r0, 4
+ b _081A264C
+_081A2648:
+ movs r0, 0x80
+ lsls r0, 3
+_081A264C:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A2674
+ ldr r0, =gUnknown_085EE311
+ ldr r1, =gUnknown_085EE35B
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A2008
+ b _081A2684
+ .pool
+_081A2674:
+ ldr r0, =gUnknown_085EE320
+ ldr r1, =gUnknown_085EE35B
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A2008
+_081A2684:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2618
+
+ thumb_func_start sub_81A2698
+sub_81A2698: @ 81A2698
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r6, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r6]
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r6]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE261
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81A1C4C
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F2
+ movs r1, 0x21
+ str r1, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldrb r0, [r6]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ movs r0, 0
+ movs r1, 0x40
+ movs r2, 0x72
+ movs r3, 0x21
+ bl sub_81A2618
+ ldr r0, =gUnknown_085EE319
+ mov r10, r0
+ ldr r7, =gUnknown_085EE35B
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000e08
+ adds r0, r1
+ ldrh r2, [r0]
+ movs r4, 0x72
+ str r4, [sp]
+ movs r0, 0x31
+ str r0, [sp, 0x4]
+ mov r0, r10
+ adds r1, r7, 0
+ movs r3, 0x40
+ bl sub_81A258C
+ ldr r0, =gUnknown_085EE332
+ mov r8, r0
+ ldr r1, =gUnknown_085EE36D
+ mov r9, r1
+ ldr r0, [r5]
+ ldr r1, =0x00000e0c
+ adds r0, r1
+ ldrh r2, [r0]
+ str r4, [sp]
+ movs r0, 0x41
+ str r0, [sp, 0x4]
+ mov r0, r8
+ mov r1, r9
+ movs r3, 0x40
+ bl sub_81A258C
+ movs r0, 0x1
+ movs r1, 0x40
+ movs r2, 0x72
+ movs r3, 0x61
+ bl sub_81A2618
+ ldr r0, [r5]
+ ldr r1, =0x00000e0a
+ adds r0, r1
+ ldrh r2, [r0]
+ str r4, [sp]
+ movs r0, 0x71
+ str r0, [sp, 0x4]
+ mov r0, r10
+ adds r1, r7, 0
+ movs r3, 0x40
+ bl sub_81A258C
+ ldr r0, [r5]
+ ldr r1, =0x00000e0e
+ adds r0, r1
+ ldrh r2, [r0]
+ str r4, [sp]
+ movs r0, 0x81
+ str r0, [sp, 0x4]
+ mov r0, r8
+ mov r1, r9
+ movs r3, 0x40
+ bl sub_81A258C
+ ldrb r0, [r6]
+ bl PutWindowTilemap
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ 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_81A2698
+
+ thumb_func_start sub_81A27E8
+sub_81A27E8: @ 81A27E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x30]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r7, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ ldr r0, =0x0000270f
+ cmp r6, r0
+ bls _081A2834
+ adds r6, r0, 0
+_081A2834:
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE381
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r7, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl PrintTextOnWindow
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A27E8
+
+ thumb_func_start sub_81A2888
+sub_81A2888: @ 81A2888
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ ldr r2, =0x00000dde
+ adds r1, r2
+ adds r1, r0
+ ldrh r1, [r1]
+ ldr r0, =gUnknown_085EE319
+ str r3, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_81A27E8
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2888
+
+ thumb_func_start sub_81A28CC
+sub_81A28CC: @ 81A28CC
+ push {lr}
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ ldr r2, =0x00000dda
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A28E6
+ adds r0, r1, 0
+_081A28E6:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A28CC
+
+ thumb_func_start sub_81A28F8
+sub_81A28F8: @ 81A28F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r0, r4, 0
+ bl sub_81A28CC
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0
+ beq _081A2926
+ movs r0, 0x80
+ b _081A2928
+_081A2926:
+ movs r0, 0x40
+_081A2928:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A2948
+ ldr r0, =gUnknown_085EE311
+ str r6, [sp]
+ adds r1, r5, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A27E8
+ b _081A2956
+ .pool
+_081A2948:
+ ldr r0, =gUnknown_085EE320
+ str r6, [sp]
+ adds r1, r5, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A27E8
+_081A2956:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A28F8
+
+ thumb_func_start sub_81A2968
+sub_81A2968: @ 81A2968
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r5]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r5]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0xA
+ bl sub_81A1C90
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE27C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_81A1C4C
+ ldrb r0, [r5]
+ ldr r2, =gUnknown_085EE2F2
+ movs r1, 0x31
+ str r1, [sp]
+ movs r6, 0xFF
+ str r6, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ ldrb r0, [r5]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x10
+ bl PrintTextOnWindow
+ movs r0, 0
+ movs r1, 0x48
+ movs r2, 0x7E
+ movs r3, 0x31
+ bl sub_81A28F8
+ movs r0, 0
+ movs r1, 0x48
+ movs r2, 0x7E
+ movs r3, 0x41
+ bl sub_81A2888
+ movs r0, 0x1
+ movs r1, 0x48
+ movs r2, 0x7E
+ movs r3, 0x61
+ bl sub_81A28F8
+ movs r0, 0x1
+ movs r1, 0x48
+ movs r2, 0x7E
+ movs r3, 0x71
+ bl sub_81A2888
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2968
+
+ thumb_func_start sub_81A2A28
+sub_81A2A28: @ 81A2A28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r12, r0
+ ldr r4, [sp, 0x38]
+ ldr r5, [sp, 0x3C]
+ ldr r0, [sp, 0x40]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ str r4, [sp, 0x10]
+ lsls r5, 24
+ lsrs r5, 24
+ str r5, [sp, 0x14]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r6, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ mov r2, r12
+ bl PrintTextOnWindow
+ ldr r0, =0x0000270f
+ cmp r7, r0
+ bls _081A2A80
+ adds r7, r0, 0
+_081A2A80:
+ ldr r5, =gStringVar1
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE302
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r6, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0x10]
+ bl PrintTextOnWindow
+ adds r0, r5, 0
+ ldr r1, [sp, 0xC]
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_085EE392
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r6, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0x14]
+ bl PrintTextOnWindow
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2A28
+
+ thumb_func_start sub_81A2B04
+sub_81A2B04: @ 81A2B04
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r6, r2, 0
+ ldr r4, [sp, 0x24]
+ ldr r5, [sp, 0x28]
+ lsls r0, 24
+ lsls r1, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r7, =0x00000dea
+ adds r0, r2, r7
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r0
+ ldr r0, =0x00000dfa
+ adds r2, r0
+ adds r2, r1
+ ldrh r2, [r2]
+ ldr r0, =gUnknown_085EE319
+ str r3, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ mov r1, r8
+ adds r3, r6, 0
+ bl sub_81A2A28
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2B04
+
+ thumb_func_start sub_81A2B70
+sub_81A2B70: @ 81A2B70
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, =0x00000de2
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A2B90
+ adds r0, r1, 0
+_081A2B90:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A2B70
+
+ thumb_func_start sub_81A2BA0
+sub_81A2BA0: @ 81A2BA0
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, =0x00000df2
+ adds r2, r0
+ adds r2, r1
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A2BC0
+ adds r0, r1, 0
+_081A2BC0:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A2BA0
+
+ thumb_func_start sub_81A2BD0
+sub_81A2BD0: @ 81A2BD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0xC]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ lsls r5, 24
+ lsrs r5, 24
+ mov r10, r5
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_81A2B70
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_81A2BA0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r6, 0
+ beq _081A2C20
+ cmp r6, 0x1
+ beq _081A2C30
+_081A2C20:
+ cmp r7, 0
+ beq _081A2C2A
+ movs r0, 0x80
+ lsls r0, 2
+ b _081A2C3E
+_081A2C2A:
+ movs r0, 0x80
+ lsls r0, 1
+ b _081A2C3E
+_081A2C30:
+ cmp r7, 0
+ beq _081A2C3A
+ movs r0, 0x80
+ lsls r0, 18
+ b _081A2C3E
+_081A2C3A:
+ movs r0, 0x80
+ lsls r0, 17
+_081A2C3E:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A2C68
+ ldr r0, =gUnknown_085EE311
+ mov r1, r8
+ str r1, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl sub_81A2A28
+ b _081A2C80
+ .pool
+_081A2C68:
+ ldr r0, =gUnknown_085EE320
+ mov r1, r8
+ str r1, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ adds r1, r5, 0
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl sub_81A2A28
+_081A2C80:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2BD0
+
+ thumb_func_start sub_81A2C94
+sub_81A2C94: @ 81A2C94
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ cmp r7, 0
+ bne _081A2CD8
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE298
+ bl StringExpandPlaceholders
+ b _081A2CE0
+ .pool
+_081A2CD8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EE2B8
+ bl StringExpandPlaceholders
+_081A2CE0:
+ ldr r0, =gStringVar4
+ movs r1, 0
+ bl sub_81A1C4C
+ ldr r0, =gUnknown_0203AB74
+ mov r8, r0
+ ldrb r0, [r0]
+ ldr r2, =gUnknown_085EE2F2
+ movs r6, 0x21
+ str r6, [sp]
+ movs r5, 0xFF
+ str r5, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_085EE326
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x98
+ bl PrintTextOnWindow
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ str r1, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ movs r4, 0x9E
+ str r4, [sp]
+ movs r0, 0x31
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0x40
+ bl sub_81A2BD0
+ str r4, [sp]
+ movs r0, 0x41
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0x40
+ bl sub_81A2B04
+ str r4, [sp]
+ movs r0, 0x71
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x40
+ bl sub_81A2BD0
+ str r4, [sp]
+ movs r0, 0x81
+ str r0, [sp, 0x4]
+ adds r0, r7, 0
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x40
+ bl sub_81A2B04
+ mov r1, r8
+ ldrb r0, [r1]
+ bl PutWindowTilemap
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2C94
+
+ thumb_func_start sub_81A2DB4
+sub_81A2DB4: @ 81A2DB4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r4, r2, 0
+ ldr r0, [sp, 0x30]
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0xC]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r0, =gUnknown_0203AB74
+ mov r10, r0
+ ldrb r0, [r0]
+ str r7, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r1, 0
+ mov r8, r1
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl PrintTextOnWindow
+ ldr r0, =0x0000270f
+ cmp r6, r0
+ bls _081A2E00
+ adds r6, r0, 0
+_081A2E00:
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE39C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ mov r1, r10
+ ldrb r0, [r1]
+ str r7, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ ldr r3, [sp, 0xC]
+ bl PrintTextOnWindow
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2DB4
+
+ thumb_func_start sub_81A2E54
+sub_81A2E54: @ 81A2E54
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ ldr r2, =0x00000e1e
+ adds r1, r2
+ adds r1, r0
+ ldrh r1, [r1]
+ ldr r0, =gUnknown_085EE319
+ str r3, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_81A2DB4
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2E54
+
+ thumb_func_start sub_81A2E98
+sub_81A2E98: @ 81A2E98
+ push {lr}
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A2EB2
+ adds r0, r1, 0
+_081A2EB2:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A2E98
+
+ thumb_func_start sub_81A2EC4
+sub_81A2EC4: @ 81A2EC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r0, r4, 0
+ bl sub_81A2E98
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, 0
+ beq _081A2EF4
+ movs r0, 0x80
+ lsls r0, 6
+ b _081A2EF8
+_081A2EF4:
+ movs r0, 0x80
+ lsls r0, 5
+_081A2EF8:
+ bl sub_81A1C24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081A2F18
+ ldr r0, =gUnknown_085EE311
+ str r6, [sp]
+ adds r1, r5, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A2DB4
+ b _081A2F26
+ .pool
+_081A2F18:
+ ldr r0, =gUnknown_085EE320
+ str r6, [sp]
+ adds r1, r5, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_81A2DB4
+_081A2F26:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2EC4
+
+ thumb_func_start sub_81A2F38
+sub_81A2F38: @ 81A2F38
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C74
+ bl AddWindow
+ strb r0, [r5]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r5]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EE2D8
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_81A1C4C
+ ldrb r0, [r5]
+ ldr r2, =gUnknown_085EE2F2
+ movs r1, 0x31
+ str r1, [sp]
+ movs r6, 0xFF
+ str r6, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ ldrb r0, [r5]
+ ldr r2, =gUnknown_085EE2F9
+ movs r1, 0x61
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ movs r0, 0xA
+ bl sub_81A1C90
+ movs r0, 0
+ movs r1, 0x40
+ movs r2, 0x6F
+ movs r3, 0x31
+ bl sub_81A2EC4
+ movs r0, 0
+ movs r1, 0x40
+ movs r2, 0x6F
+ movs r3, 0x41
+ bl sub_81A2E54
+ movs r0, 0x1
+ movs r1, 0x40
+ movs r2, 0x6F
+ movs r3, 0x61
+ bl sub_81A2EC4
+ movs r0, 0x1
+ movs r1, 0x40
+ movs r2, 0x6F
+ movs r3, 0x71
+ bl sub_81A2E54
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2F38
+
+ thumb_func_start sub_81A2FF8
+sub_81A2FF8: @ 81A2FF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C7C
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, =gStringVar4
+ mov r9, r0
+ ldr r1, =gUnknown_085EDF86
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ mov r1, r9
+ movs r2, 0xD0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ ldrb r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r6, 0xFF
+ str r6, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ mov r2, r9
+ bl PrintTextOnWindow
+ ldr r7, =gUnknown_085EDFA0
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x26
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ adds r3, 0x32
+ ldrb r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x19
+ mov r8, r1
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ bl PrintTextOnWindow
+ ldr r7, =gUnknown_085EDFA4
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x26
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ adds r3, 0x58
+ ldrb r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, r8
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ bl PrintTextOnWindow
+ ldr r7, =gUnknown_085EDFA8
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x26
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ adds r3, 0x7E
+ ldrb r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r8
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ bl PrintTextOnWindow
+ ldr r7, =gUnknown_085EDFAC
+ movs r0, 0x1
+ adds r1, r7, 0
+ movs r2, 0x26
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ adds r3, 0xA4
+ ldrb r0, [r4]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, r8
+ str r2, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r7, 0
+ bl PrintTextOnWindow
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085EB0E8
+ movs r1, 0x29
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085EB0ED
+ movs r1, 0x39
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085EB0F4
+ movs r1, 0x49
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085EB0F9
+ movs r1, 0x59
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085EB0FF
+ movs r1, 0x69
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0x6
+ bl PrintTextOnWindow
+ movs r1, 0
+_081A314A:
+ movs r5, 0
+ adds r0, r1, 0x1
+ mov r8, r0
+ lsls r0, r1, 28
+ movs r2, 0xA4
+ lsls r2, 22
+ adds r0, r2
+ lsrs r7, r0, 24
+ lsls r4, r1, 3
+_081A315C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000624
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ mov r0, r9
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r6, =gUnknown_0203AB74
+ ldrb r0, [r6]
+ movs r1, 0x26
+ adds r3, r5, 0
+ muls r3, r1
+ adds r3, 0x40
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ mov r2, r9
+ bl PrintTextOnWindow
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081A315C
+ mov r1, r8
+ cmp r1, 0x4
+ ble _081A314A
+ ldrb r0, [r6]
+ bl PutWindowTilemap
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A2FF8
+
+ thumb_func_start sub_81A31FC
+sub_81A31FC: @ 81A31FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r7, r0, 30
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0x6
+ bls _081A3232
+ b _081A35CE
+_081A3232:
+ lsls r0, r4, 2
+ ldr r1, =_081A3250
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A3250:
+ .4byte _081A326C
+ .4byte _081A33A8
+ .4byte _081A3414
+ .4byte _081A347C
+ .4byte _081A34CC
+ .4byte _081A354C
+ .4byte _081A3594
+_081A326C:
+ ldr r2, =gSaveBlock2Ptr
+ mov r9, r2
+ ldr r0, [r2]
+ lsls r3, r7, 1
+ mov r10, r3
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r10
+ str r1, [sp, 0x20]
+ movs r3, 0xCE
+ lsls r3, 4
+ adds r1, r0, r3
+ ldr r2, [sp, 0x20]
+ adds r1, r2
+ adds r3, 0x10
+ adds r0, r3
+ adds r0, r2
+ ldrh r1, [r1]
+ ldrh r2, [r0]
+ cmp r1, r2
+ bhi _081A3298
+ b _081A35CE
+_081A3298:
+ strh r1, [r0]
+ mov r3, r8
+ cmp r3, 0x3
+ bne _081A32F2
+ ldr r6, =gBattleScripting
+ adds r6, 0x25
+ ldrb r0, [r6]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r5, =gLinkPlayers + 8
+ adds r1, r5
+ mov r0, sp
+ bl StringCopy
+ mov r0, sp
+ bl StripExtCtrlCodes
+ lsls r1, r7, 3
+ ldr r0, =0x00000ee1
+ adds r1, r0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r1
+ mov r1, sp
+ bl StringCopy
+ ldrb r0, [r6]
+ eors r4, r0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ subs r5, 0x4
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r2, r7, 2
+ ldr r1, =0x00000ef1
+ adds r2, r1
+ mov r3, r9
+ ldr r1, [r3]
+ adds r1, r2
+ bl WriteUnalignedWord
+_081A32F2:
+ mov r7, r9
+ ldr r0, [r7]
+ movs r1, 0xCE
+ lsls r1, 4
+ adds r0, r1
+ ldr r2, [sp, 0x20]
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _081A3308
+ b _081A35CE
+_081A3308:
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A3314
+ b _081A35CE
+_081A3314:
+ mov r3, r8
+ cmp r3, 0x1
+ beq _081A335A
+ cmp r3, 0x1
+ bgt _081A3338
+ cmp r3, 0
+ beq _081A3344
+ b _081A35CE
+ .pool
+_081A3338:
+ mov r7, r8
+ cmp r7, 0x2
+ beq _081A3374
+ cmp r7, 0x3
+ beq _081A338E
+ b _081A35CE
+_081A3344:
+ mov r1, r9
+ ldr r0, [r1]
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r0, r2
+ add r0, r10
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_80EE8C8
+ b _081A35CE
+_081A335A:
+ mov r3, r9
+ ldr r0, [r3]
+ mov r1, r10
+ adds r1, 0x4
+ movs r7, 0xCE
+ lsls r7, 4
+ adds r0, r7
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x2
+ bl sub_80EE8C8
+ b _081A35CE
+_081A3374:
+ mov r1, r9
+ ldr r0, [r1]
+ mov r1, r10
+ adds r1, 0x8
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x3
+ bl sub_80EE8C8
+ b _081A35CE
+_081A338E:
+ mov r3, r9
+ ldr r0, [r3]
+ mov r1, r10
+ adds r1, 0xC
+ movs r7, 0xCE
+ lsls r7, 4
+ adds r0, r7
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x4
+ bl sub_80EE8C8
+ b _081A35CE
+_081A33A8:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ lsls r7, 1
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r4, r7, r1
+ ldr r5, =0x00000d0c
+ adds r1, r0, r5
+ adds r1, r4
+ ldr r3, =0x00000d14
+ adds r0, r3
+ adds r0, r4
+ ldrh r2, [r1]
+ ldrh r3, [r0]
+ cmp r2, r3
+ bhi _081A33CA
+ b _081A35CE
+_081A33CA:
+ strh r2, [r0]
+ ldrh r0, [r1]
+ cmp r0, 0x1
+ bhi _081A33D4
+ b _081A35CE
+_081A33D4:
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A33E0
+ b _081A35CE
+_081A33E0:
+ mov r0, r8
+ cmp r0, 0
+ bne _081A3404
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x5
+ bl sub_80EE8C8
+ b _081A35CE
+ .pool
+_081A3404:
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0x6
+ bl sub_80EE8C8
+ b _081A35CE
+_081A3414:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ lsls r7, 1
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r4, r7, r1
+ ldr r5, =0x00000dc8
+ adds r1, r0, r5
+ adds r1, r4
+ movs r3, 0xDD
+ lsls r3, 4
+ adds r0, r3
+ adds r0, r4
+ ldrh r2, [r1]
+ ldrh r3, [r0]
+ cmp r2, r3
+ bhi _081A3438
+ b _081A35CE
+_081A3438:
+ strh r2, [r0]
+ ldrh r0, [r1]
+ cmp r0, 0x1
+ bhi _081A3442
+ b _081A35CE
+_081A3442:
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A344E
+ b _081A35CE
+_081A344E:
+ mov r0, r8
+ cmp r0, 0
+ bne _081A346C
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0xB
+ bl sub_80EE8C8
+ b _081A35CE
+ .pool
+_081A346C:
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0xC
+ bl sub_80EE8C8
+ b _081A35CE
+_081A347C:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r1, [r6]
+ lsls r4, r7, 1
+ ldr r5, =0x00000dda
+ adds r0, r1, r5
+ adds r0, r4
+ ldr r2, =0x00000dde
+ adds r1, r2
+ adds r1, r4
+ ldrh r2, [r0]
+ ldrh r3, [r1]
+ cmp r2, r3
+ bhi _081A3498
+ b _081A35CE
+_081A3498:
+ strh r2, [r1]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _081A34A2
+ b _081A35CE
+_081A34A2:
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A34AE
+ b _081A35CE
+_081A34AE:
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0xA
+ bl sub_80EE8C8
+ b _081A35CE
+ .pool
+_081A34CC:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r2, [r6]
+ lsls r7, 1
+ mov r9, r7
+ mov r7, r8
+ lsls r0, r7, 2
+ mov r1, r9
+ adds r4, r1, r0
+ ldr r5, =0x00000de2
+ adds r0, r2, r5
+ adds r3, r0, r4
+ ldr r7, =0x00000dea
+ adds r0, r2, r7
+ adds r0, r4
+ ldrh r1, [r3]
+ ldrh r7, [r0]
+ cmp r1, r7
+ bls _081A35CE
+ strh r1, [r0]
+ ldr r0, =0x00000dfa
+ adds r1, r2, r0
+ adds r1, r4
+ ldr r7, =0x00000df2
+ adds r0, r2, r7
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r3]
+ cmp r0, 0x1
+ bls _081A35CE
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A35CE
+ mov r0, r8
+ cmp r0, 0
+ bne _081A353C
+ ldr r0, [r6]
+ adds r0, r5
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x7
+ bl sub_80EE8C8
+ b _081A35CE
+ .pool
+_081A353C:
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0x8
+ bl sub_80EE8C8
+ b _081A35CE
+_081A354C:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r1, [r6]
+ lsls r4, r7, 1
+ ldr r5, =0x00000e04
+ adds r0, r1, r5
+ adds r0, r4
+ ldr r2, =0x00000e08
+ adds r1, r2
+ adds r1, r4
+ ldrh r2, [r0]
+ ldrh r3, [r1]
+ cmp r2, r3
+ bls _081A35CE
+ strh r2, [r1]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _081A35CE
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A35CE
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0x9
+ bl sub_80EE8C8
+ b _081A35CE
+ .pool
+_081A3594:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r1, [r6]
+ lsls r4, r7, 1
+ ldr r5, =0x00000e1a
+ adds r0, r1, r5
+ adds r0, r4
+ ldr r7, =0x00000e1e
+ adds r1, r7
+ adds r1, r4
+ ldrh r2, [r0]
+ ldrh r3, [r1]
+ cmp r2, r3
+ bls _081A35CE
+ strh r2, [r1]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _081A35CE
+ bl sub_80EE818
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A35CE
+ ldr r0, [r6]
+ adds r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0xD
+ bl sub_80EE8C8
+_081A35CE:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A31FC
+
+ thumb_func_start sub_81A35EC
+sub_81A35EC: @ 81A35EC
+ push {r4,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ ldr r4, =gScriptResult
+ bl sub_81A3610
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A35EC
+
+ thumb_func_start sub_81A3610
+sub_81A3610: @ 81A3610
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =0x000040ce
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_81A39C4
+ lsls r0, 16
+ ldr r1, =gUnknown_08611550
+ mov r9, r1
+ lsls r7, r6, 2
+ adds r1, 0x3
+ adds r1, r7, r1
+ lsrs r0, 16
+ ldrb r1, [r1]
+ adds r5, r0, r1
+ cmp r4, 0
+ beq _081A365C
+ movs r0, 0
+ b _081A36C2
+ .pool
+_081A365C:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ blt _081A3680
+ cmp r1, 0x1
+ bgt _081A3680
+ adds r0, r1, r7
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _081A36BC
+ adds r1, 0x1
+ mov r8, r1
+ b _081A36BC
+_081A3680:
+ ldr r1, =gUnknown_08611550
+ lsls r2, r6, 2
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _081A3694
+ movs r0, 0x3
+ b _081A36BA
+ .pool
+_081A3694:
+ adds r0, r1, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _081A36A4
+ movs r1, 0x4
+ mov r8, r1
+ b _081A36BC
+_081A36A4:
+ cmp r5, r0
+ ble _081A36BC
+ subs r0, r5, r0
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ cmp r0, 0
+ bne _081A36BC
+ movs r0, 0x4
+_081A36BA:
+ mov r8, r0
+_081A36BC:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+_081A36C2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A3610
+
+ thumb_func_start sub_81A36D0
+sub_81A36D0: @ 81A36D0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r0, 0x1
+ beq _081A3766
+ cmp r0, 0x1
+ bgt _081A36EA
+ cmp r0, 0
+ beq _081A36F2
+ b _081A38F8
+_081A36EA:
+ cmp r2, 0x2
+ bne _081A36F0
+ b _081A3818
+_081A36F0:
+ b _081A38F8
+_081A36F2:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r3, r0
+ bne _081A370C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000bfc
+ b _081A38C4
+ .pool
+_081A370C:
+ ldr r0, =0x000003fe
+ cmp r3, r0
+ beq _081A3786
+ ldr r0, =0x0000012b
+ cmp r3, r0
+ bhi _081A3738
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A38F8
+ .pool
+_081A3738:
+ ldr r0, =0x0000018f
+ cmp r3, r0
+ bhi _081A3758
+ ldr r1, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ muls r0, r3
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, =0xfffef2b8
+ b _081A38C4
+ .pool
+_081A3758:
+ adds r0, r3, 0
+ adds r0, 0x70
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_819F99C
+ b _081A38F8
+_081A3766:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r3, r0
+ bne _081A3780
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000c08
+ b _081A38C4
+ .pool
+_081A3780:
+ ldr r0, =0x000003fe
+ cmp r3, r0
+ bne _081A3794
+_081A3786:
+ movs r0, 0
+ bl sub_81A51A8
+ b _081A38F8
+ .pool
+_081A3794:
+ ldr r0, =0x0000012b
+ cmp r3, r0
+ bhi _081A37B8
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0x18
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A38F8
+ .pool
+_081A37B8:
+ ldr r0, =0x0000018f
+ cmp r3, r0
+ bhi _081A37EC
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _081A387C
+ ldr r1, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ muls r0, r3
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, =0xfffef2c4
+ b _081A38C4
+ .pool
+_081A37EC:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _081A387C
+ ldr r1, =gSaveBlock2Ptr
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, =0xffff96c4
+ b _081A38C4
+ .pool
+_081A3818:
+ movs r0, 0xFA
+ lsls r0, 1
+ cmp r3, r0
+ bne _081A3830
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000c14
+ b _081A38C4
+ .pool
+_081A3830:
+ ldr r0, =0x000003fe
+ cmp r3, r0
+ bne _081A3844
+ movs r0, 0x1
+ bl sub_81A51A8
+ b _081A38F8
+ .pool
+_081A3844:
+ ldr r0, =0x0000012b
+ cmp r3, r0
+ bhi _081A3868
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0x24
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A38F8
+ .pool
+_081A3868:
+ ldr r0, =0x0000018f
+ cmp r3, r0
+ bhi _081A38A8
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A3890
+_081A387C:
+ bl sub_81864E0
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A38F8
+ .pool
+_081A3890:
+ ldr r1, =gSaveBlock2Ptr
+ movs r0, 0xEC
+ muls r0, r3
+ ldr r1, [r1]
+ adds r0, r1
+ ldr r1, =0xfffef2d0
+ b _081A38C4
+ .pool
+_081A38A8:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A38D4
+ bl sub_81864A8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r0, 0x58
+ muls r0, r3
+ ldr r1, =gUnknown_086109BA
+_081A38C4:
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A38F8
+ .pool
+_081A38D4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0xfffffe70
+ adds r2, r3, r0
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, 0xDC
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r3, r0, 27
+ movs r0, 0x58
+ muls r0, r3
+ ldr r1, =gUnknown_086109BA
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+_081A38F8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A36D0
+
+ thumb_func_start sub_81A3908
+sub_81A3908: @ 81A3908
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000cdc
+ adds r1, r2
+ movs r2, 0
+ str r2, [r1]
+ movs r4, 0
+ mov r9, r0
+ mov r8, r9
+ movs r6, 0
+_081A3926:
+ movs r5, 0
+ lsls r7, r4, 2
+ mov r10, r7
+ adds r0, r4, 0x1
+ mov r12, r0
+_081A3930:
+ mov r1, r8
+ ldr r2, [r1]
+ lsls r3, r5, 1
+ mov r7, r10
+ adds r1, r3, r7
+ movs r7, 0xCE
+ lsls r7, 4
+ adds r0, r2, r7
+ adds r0, r1
+ strh r6, [r0]
+ cmp r4, 0x1
+ bgt _081A3960
+ adds r7, 0x2C
+ adds r0, r2, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r7, 0xBC
+ adds r0, r2, r7
+ adds r0, r1
+ strh r6, [r0]
+ adds r7, 0x1A
+ adds r0, r2, r7
+ adds r0, r1
+ strh r6, [r0]
+_081A3960:
+ cmp r4, 0
+ bne _081A3980
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r2, =0x00000dda
+ adds r1, r0, r2
+ adds r1, r3
+ strh r4, [r1]
+ ldr r7, =0x00000e04
+ adds r1, r0, r7
+ adds r1, r3
+ strh r4, [r1]
+ ldr r1, =0x00000e1a
+ adds r0, r1
+ adds r0, r3
+ strh r4, [r0]
+_081A3980:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _081A3930
+ mov r4, r12
+ cmp r4, 0x3
+ ble _081A3926
+ mov r2, r9
+ ldr r0, [r2]
+ ldr r7, =0x00000ca8
+ adds r1, r0, r7
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081A399E
+ movs r0, 0x1
+ strb r0, [r1]
+_081A399E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3908
+
+ thumb_func_start sub_81A39C4
+sub_81A39C4: @ 81A39C4
+ 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, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bhi _081A3AC4
+ lsls r0, 2
+ ldr r1, =_081A3A0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A3A0C:
+ .4byte _081A3A28
+ .4byte _081A3A3C
+ .4byte _081A3A54
+ .4byte _081A3A6C
+ .4byte _081A3A80
+ .4byte _081A3A98
+ .4byte _081A3AAC
+_081A3A28:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ movs r2, 0xCE
+ lsls r2, 4
+ b _081A3AB4
+ .pool
+_081A3A3C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r2, =0x00000d0c
+ b _081A3AB4
+ .pool
+_081A3A54:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r2, =0x00000dc8
+ b _081A3AB4
+ .pool
+_081A3A6C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000dda
+ b _081A3AB4
+ .pool
+_081A3A80:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r2, =0x00000de2
+ b _081A3AB4
+ .pool
+_081A3A98:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000e04
+ b _081A3AB4
+ .pool
+_081A3AAC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000e1a
+_081A3AB4:
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ b _081A3AC6
+ .pool
+_081A3AC4:
+ movs r0, 0
+_081A3AC6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A39C4
+
+ thumb_func_start sub_81A3ACC
+sub_81A3ACC: @ 81A3ACC
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r4, =0x00000cb4
+ ldr r0, =0x0000ffff
+ adds r3, r0, 0
+_081A3AD8:
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ ldrh r1, [r0]
+ orrs r1, r3
+ strh r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x13
+ ble _081A3AD8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3ACC
+
+ thumb_func_start sub_81A3B00
+sub_81A3B00: @ 81A3B00
+ push {lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r1, [r0]
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ bne _081A3B20
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _081A3B24
+ .pool
+_081A3B20:
+ ldr r1, =gScriptResult
+ movs r0, 0
+_081A3B24:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3B00
+
+ thumb_func_start sub_81A3B30
+sub_81A3B30: @ 81A3B30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 23
+ ldr r1, =0x000008c4
+ adds r0, r4, r1
+ bl FlagGet
+ adds r5, r0, 0
+ ldr r0, =0x000008c5
+ adds r4, r0
+ adds r0, r4, 0
+ bl FlagGet
+ adds r5, r0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A3B30
+
+ thumb_func_start sub_81A3B64
+sub_81A3B64: @ 81A3B64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r5, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r4, r0, 30
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r7, 0x6
+ bhi _081A3C78
+ lsls r0, r7, 2
+ ldr r1, =_081A3BB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A3BB4:
+ .4byte _081A3BD0
+ .4byte _081A3BE4
+ .4byte _081A3C00
+ .4byte _081A3C18
+ .4byte _081A3C2C
+ .4byte _081A3C44
+ .4byte _081A3C60
+_081A3BD0:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ movs r2, 0xCE
+ lsls r2, 4
+ b _081A3C68
+ .pool
+_081A3BE4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ ldr r2, =0x00000d0c
+ adds r0, r2
+ adds r0, r1
+ ldrh r5, [r0]
+ b _081A3C78
+ .pool
+_081A3C00:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ ldr r2, =0x00000dc8
+ b _081A3C68
+ .pool
+_081A3C18:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000dda
+ b _081A3C68
+ .pool
+_081A3C2C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ lsls r2, r6, 2
+ adds r1, r2
+ ldr r2, =0x00000de2
+ b _081A3C68
+ .pool
+_081A3C44:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000e04
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0xE
+ b _081A3C70
+ .pool
+_081A3C60:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000e1a
+_081A3C68:
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x7
+_081A3C70:
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+_081A3C78:
+ cmp r5, 0
+ beq _081A3C7E
+ subs r5, 0x1
+_081A3C7E:
+ cmp r5, 0x1D
+ bls _081A3C84
+ movs r5, 0x1D
+_081A3C84:
+ ldr r2, =gUnknown_086118B4
+ lsls r1, r7, 2
+ adds r1, r6, r1
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r1, r0
+ adds r7, r1, r2
+ ldrb r5, [r7]
+ ldr r0, =gTrainerBattleOpponent_A
+ mov r9, r0
+ ldrh r0, [r0]
+ ldr r1, =0x000003fe
+ mov r8, r1
+ cmp r0, r8
+ bne _081A3CA6
+ adds r5, 0xA
+_081A3CA6:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r1, [r6]
+ ldr r4, =0x00000eb8
+ adds r1, r4
+ ldrh r0, [r1]
+ adds r0, r5
+ strh r0, [r1]
+ ldr r0, =gStringVar1
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, [r6]
+ adds r2, r0, r4
+ ldrh r0, [r2]
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _081A3CCE
+ strh r1, [r2]
+_081A3CCE:
+ ldr r0, [r6]
+ ldr r4, =0x00000eba
+ adds r0, r4
+ ldrh r5, [r0]
+ ldrb r0, [r7]
+ adds r5, r0
+ bl sub_80EED60
+ mov r2, r9
+ ldrh r0, [r2]
+ cmp r0, r8
+ bne _081A3CEE
+ adds r5, 0xA
+ movs r0, 0xA
+ bl sub_80EED60
+_081A3CEE:
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ ble _081A3CF6
+ adds r5, r0, 0
+_081A3CF6:
+ ldr r0, [r6]
+ adds r0, r4
+ strh r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3B64
+
+ thumb_func_start sub_81A3D30
+sub_81A3D30: @ 81A3D30
+ push {r4,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ ldr r4, =gScriptResult
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3D30
+
+ thumb_func_start sub_81A3D58
+sub_81A3D58: @ 81A3D58
+ push {r4,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl sub_81A3B30
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A3D88
+ lsls r0, r4, 17
+ ldr r1, =0x8C4 << 16
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagSet
+ b _081A3D94
+ .pool
+_081A3D88:
+ lsls r0, r4, 17
+ ldr r1, =0x8C5 << 16
+ adds r0, r1
+ lsrs r0, 16
+ bl FlagSet
+_081A3D94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3D58
+
+ thumb_func_start sub_81A3DA0
+sub_81A3DA0: @ 81A3DA0
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r2, [r0]
+ ands r2, r1
+ cmp r2, 0
+ beq _081A3DC4
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ b _081A3DC8
+ .pool
+_081A3DC4:
+ ldr r0, =gScriptResult
+ strh r2, [r0]
+_081A3DC8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3DA0
+
+ thumb_func_start sub_81A3DD0
+sub_81A3DD0: @ 81A3DD0
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r6, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl pokedex_flag_operation
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A3ED6
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ subs r0, r4, 0x1
+ cmp r0, 0xA
+ bhi _081A3EA0
+ lsls r0, 2
+ ldr r1, =_081A3E0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A3E0C:
+ .4byte _081A3E38
+ .4byte _081A3E68
+ .4byte _081A3E38
+ .4byte _081A3EA0
+ .4byte _081A3E38
+ .4byte _081A3EA0
+ .4byte _081A3E38
+ .4byte _081A3EA0
+ .4byte _081A3E38
+ .4byte _081A3EA0
+ .4byte _081A3E38
+_081A3E38:
+ cmp r5, r4
+ bne _081A3E50
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB79
+ bl StringAppend
+ b _081A3EC8
+ .pool
+_081A3E50:
+ cmp r5, r4
+ ble _081A3EC8
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB7F
+ bl StringAppend
+ b _081A3EC8
+ .pool
+_081A3E68:
+ cmp r4, r5
+ bne _081A3E80
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB79
+ bl StringAppend
+ b _081A3E88
+ .pool
+_081A3E80:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB7F
+ bl StringAppend
+_081A3E88:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB86
+ bl StringAppend
+ b _081A3EC8
+ .pool
+_081A3EA0:
+ cmp r4, r5
+ bne _081A3EB8
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB79
+ bl StringAppend
+ b _081A3EC0
+ .pool
+_081A3EB8:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB7F
+ bl StringAppend
+_081A3EC0:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB84
+ bl StringAppend
+_081A3EC8:
+ ldr r0, =gStringVar1
+ movs r1, 0xB
+ muls r1, r6
+ ldr r2, =gSpeciesNames
+ adds r1, r2
+ bl StringAppend
+_081A3ED6:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A3DD0
+
+ thumb_func_start sub_81A3EF0
+sub_81A3EF0: @ 81A3EF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ mov r10, r4
+ ldr r7, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r2, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081A3FBE
+ cmp r4, 0
+ beq _081A3FBE
+ ldr r0, =gUnknown_08611C9A
+ ldrh r1, [r0]
+ ldr r5, =0x0000ffff
+ adds r3, r0, 0
+ cmp r1, r5
+ beq _081A3F54
+ cmp r1, r4
+ beq _081A3F48
+ adds r1, r3, 0
+_081A3F3A:
+ adds r1, 0x2
+ adds r2, 0x1
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _081A3F54
+ cmp r0, r4
+ bne _081A3F3A
+_081A3F48:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081A3FBE
+_081A3F54:
+ mov r0, r12
+ cmp r0, 0
+ bne _081A3F60
+ mov r1, r8
+ cmp r1, 0x32
+ bhi _081A3FBE
+_081A3F60:
+ movs r2, 0
+ ldrb r3, [r7]
+ cmp r2, r3
+ bge _081A3F80
+ mov r1, r9
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _081A3F80
+ adds r5, r3, 0
+_081A3F72:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081A3F80
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081A3F72
+_081A3F80:
+ cmp r2, r3
+ bne _081A3FBE
+ cmp r6, 0
+ beq _081A3FAA
+ movs r2, 0
+ cmp r2, r3
+ bge _081A3FA6
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, r6
+ beq _081A3FA6
+ adds r5, r3, 0
+_081A3F98:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081A3FA6
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _081A3F98
+_081A3FA6:
+ cmp r2, r3
+ bne _081A3FBE
+_081A3FAA:
+ lsls r0, r3, 1
+ add r0, r9
+ strh r4, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ add r0, r10
+ strh r6, [r0]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_081A3FBE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3EF0
+
+ thumb_func_start sub_81A3FD4
+sub_81A3FD4: @ 81A3FD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ movs r0, 0
+ str r0, [sp, 0x2C]
+ add r4, sp, 0x28
+ strb r0, [r4]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r4
+ cmp r0, 0x1
+ beq _081A4016
+ cmp r0, 0x1
+ bgt _081A4008
+ cmp r0, 0
+ beq _081A4010
+ b _081A402A
+ .pool
+_081A4008:
+ cmp r0, 0x3
+ bgt _081A402A
+ movs r0, 0x2
+ b _081A4028
+_081A4010:
+ movs r1, 0x3
+ str r1, [sp, 0x2C]
+ b _081A402A
+_081A4016:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ movs r1, 0x3
+ str r1, [sp, 0x2C]
+ cmp r0, 0
+ bne _081A402A
+ movs r0, 0x4
+_081A4028:
+ str r0, [sp, 0x2C]
+_081A402A:
+ movs r1, 0
+ mov r9, r1
+ b _081A4040
+ .pool
+_081A4034:
+ mov r1, r10
+ ldrb r0, [r1]
+ ldr r1, [sp, 0x2C]
+ cmp r0, r1
+ blt _081A4040
+ b _081A41E0
+_081A4040:
+ mov r5, r9
+ movs r0, 0
+ mov r1, r10
+ strb r0, [r1]
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x30]
+_081A404E:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bne _081A40C8
+ cmp r7, 0
+ bne _081A40E4
+ ldr r0, =gScriptResult
+ ldrb r3, [r0]
+ str r6, [sp]
+ add r1, sp, 0x10
+ str r1, [sp, 0x4]
+ add r0, sp, 0x1C
+ str r0, [sp, 0x8]
+ mov r0, r10
+ str r0, [sp, 0xC]
+ mov r0, r8
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_81A3EF0
+ b _081A40E4
+ .pool
+_081A40C8:
+ ldr r0, =gScriptResult
+ ldrb r3, [r0]
+ str r6, [sp]
+ add r1, sp, 0x10
+ str r1, [sp, 0x4]
+ add r0, sp, 0x1C
+ str r0, [sp, 0x8]
+ mov r0, r10
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r7, 0
+ adds r2, r4, 0
+ bl sub_81A3EF0
+_081A40E4:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081A40EC
+ movs r5, 0
+_081A40EC:
+ cmp r5, r9
+ bne _081A404E
+ ldr r1, [sp, 0x30]
+ mov r9, r1
+ cmp r1, 0x5
+ ble _081A4034
+ mov r1, r10
+ ldrb r0, [r1]
+ ldr r1, [sp, 0x2C]
+ cmp r0, r1
+ bge _081A41E0
+ movs r6, 0
+ ldr r0, =gUnknown_08611C9A
+ ldrh r2, [r0]
+ ldr r1, =0x0000ffff
+ mov r8, r0
+ cmp r2, r1
+ beq _081A4134
+ mov r4, r8
+_081A4112:
+ adds r0, r2, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl pokedex_flag_operation
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A412A
+ adds r6, 0x1
+_081A412A:
+ adds r4, 0x2
+ ldrh r2, [r4]
+ ldr r0, =0x0000ffff
+ cmp r2, r0
+ bne _081A4112
+_081A4134:
+ ldr r1, =gStringVar1
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r1, r10
+ strb r0, [r1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _081A416A
+ mov r5, r10
+ adds r7, r1, 0
+ mov r4, r8
+_081A4156:
+ ldrh r0, [r4]
+ ldrb r1, [r5]
+ adds r2, r6, 0
+ bl sub_81A3DD0
+ strb r0, [r5]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _081A4156
+_081A416A:
+ mov r0, r10
+ ldrb r4, [r0]
+ cmp r4, 0
+ bne _081A41A4
+ ldr r4, =gStringVar1
+ ldr r1, =gUnknown_085CCB82
+ adds r0, r4, 0
+ bl StringAppend
+ ldr r1, =gUnknown_085CCB88
+ adds r0, r4, 0
+ bl StringAppend
+ b _081A4202
+ .pool
+_081A41A4:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _081A41C0
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB84
+ bl StringAppend
+ b _081A41C8
+ .pool
+_081A41C0:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB82
+ bl StringAppend
+_081A41C8:
+ ldr r0, =gStringVar1
+ ldr r1, =gUnknown_085CCB8C
+ bl StringAppend
+ b _081A4202
+ .pool
+_081A41E0:
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gScriptResult
+ ldrb r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r2, r1
+ movs r1, 0x3
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_081A4202:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A3FD4
+
+ thumb_func_start sub_81A4224
+sub_81A4224: @ 81A4224
+ push {lr}
+ bl sub_81652B4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A4224
+
+ thumb_func_start sub_81A4230
+sub_81A4230: @ 81A4230
+ push {r4-r7,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, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bls _081A425A
+ b _081A4394
+_081A425A:
+ lsls r0, 2
+ ldr r1, =_081A4278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A4278:
+ .4byte _081A4294
+ .4byte _081A42DC
+ .4byte _081A431C
+ .4byte _081A4338
+ .4byte _081A434C
+ .4byte _081A4368
+ .4byte _081A437C
+_081A4294:
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ lsls r4, 1
+ lsls r1, r5, 2
+ adds r1, r4, r1
+ movs r6, 0xCE
+ lsls r6, 4
+ adds r3, r0, r6
+ adds r2, r3, r1
+ ldrh r1, [r2]
+ ldr r0, =0x0000270e
+ cmp r1, r0
+ bhi _081A4394
+ adds r0, r1, 0x1
+ strh r0, [r2]
+ cmp r5, 0
+ bne _081A4394
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl sav12_xor_set
+ ldr r1, [r7]
+ adds r0, r1, r6
+ adds r0, r4
+ ldrh r0, [r0]
+ ldr r2, =0x00000d02
+ adds r1, r2
+ b _081A4392
+ .pool
+_081A42DC:
+ ldr r6, =gSaveBlock2Ptr
+ ldr r0, [r6]
+ lsls r2, r4, 1
+ lsls r1, r5, 2
+ adds r1, r2, r1
+ ldr r3, =0x00000d0c
+ adds r0, r3
+ adds r3, r0, r1
+ ldrh r0, [r3]
+ ldr r2, =0x0000270e
+ cmp r0, r2
+ bhi _081A42F8
+ adds r0, 0x1
+ strh r0, [r3]
+_081A42F8:
+ ldr r0, [r6]
+ ldr r3, =0x00000d1c
+ adds r0, r3
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, r2
+ bhi _081A4394
+ adds r0, 0x1
+ b _081A4392
+ .pool
+_081A431C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ lsls r1, r5, 2
+ adds r0, r1
+ ldr r1, =0x00000dc8
+ adds r2, r1
+ adds r1, r2, r0
+ b _081A4388
+ .pool
+_081A4338:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000dda
+ adds r0, r2
+ b _081A4386
+ .pool
+_081A434C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ lsls r0, r4, 1
+ lsls r1, r5, 2
+ adds r0, r1
+ ldr r3, =0x00000de2
+ adds r2, r3
+ adds r1, r2, r0
+ b _081A4388
+ .pool
+_081A4368:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000e04
+ adds r0, r2
+ b _081A4386
+ .pool
+_081A437C:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r3, =0x00000e1a
+ adds r0, r3
+_081A4386:
+ adds r1, r0, r1
+_081A4388:
+ ldrh r3, [r1]
+ ldr r0, =0x0000270e
+ cmp r3, r0
+ bhi _081A4394
+ adds r0, r3, 0x1
+_081A4392:
+ strh r0, [r1]
+_081A4394:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4230
+
+ thumb_func_start sub_81A43A8
+sub_81A43A8: @ 81A43A8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r6, =gSaveBlock1Ptr
+ movs r5, 0x64
+_081A43B2:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081A43EE
+ adds r1, r0, 0
+ muls r1, r5
+ movs r0, 0xEA
+ lsls r0, 1
+ adds r1, r0
+ ldr r0, [r6]
+ adds r0, r1
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_081A43EE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081A43B2
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A43A8
+
+ thumb_func_start sub_81A4410
+sub_81A4410: @ 81A4410
+ push {r4,lr}
+ ldr r4, =gScriptResult
+ bl sub_8185338
+ strh r0, [r4]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4410
+
+ thumb_func_start sub_81A443C
+sub_81A443C: @ 81A443C
+ push {lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A4450
+ cmp r0, 0x1
+ beq _081A4464
+ b _081A446E
+ .pool
+_081A4450:
+ ldr r0, =gStringVar1
+ ldr r1, =gTrainerBattleOpponent_A
+ ldrh r1, [r1]
+ bl sub_8162E20
+ b _081A446E
+ .pool
+_081A4464:
+ ldr r0, =gStringVar2
+ ldr r1, =gTrainerBattleOpponent_A
+ ldrh r1, [r1]
+ bl sub_8162E20
+_081A446E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A443C
+
+ thumb_func_start sub_81A447C
+sub_81A447C: @ 81A447C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+_081A448C:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, [sp]
+ lsls r1, r2, 1
+ ldr r4, =0x00000caa
+ adds r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r1
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ cmp r0, 0x5
+ bhi _081A454E
+ movs r6, 0
+ ldr r0, [sp]
+ movs r2, 0x64
+ adds r1, r0, 0
+ muls r1, r2
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+_081A44BA:
+ movs r5, 0
+ movs r4, 0xD
+ adds r4, r6
+ mov r8, r4
+ adds r0, r6, 0x1
+ mov r10, r0
+_081A44C6:
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000caa
+ adds r0, r2
+ add r0, r9
+ ldrh r0, [r0]
+ movs r4, 0x64
+ adds r1, r0, 0
+ muls r1, r4
+ movs r0, 0xEA
+ lsls r0, 1
+ adds r1, r0
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ adds r0, r1
+ adds r1, r5, 0
+ adds r1, 0xD
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r0, r7, 0
+ mov r1, r8
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ beq _081A4508
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081A44C6
+_081A4508:
+ cmp r5, 0x4
+ bne _081A4516
+ adds r0, r7, 0
+ movs r1, 0xA6
+ adds r2, r6, 0
+ bl SetMonMoveSlot
+_081A4516:
+ mov r4, r10
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _081A44BA
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =gSaveBlock2Ptr
+ ldr r1, [r2]
+ ldr r4, =0x00000caa
+ adds r1, r4
+ add r1, r9
+ ldrh r1, [r1]
+ subs r1, 0x1
+ movs r3, 0x64
+ muls r1, r3
+ adds r0, r1
+ movs r1, 0x8E
+ lsls r1, 2
+ adds r0, r1
+ ldr r2, =gPlayerParty
+ ldr r4, [sp]
+ adds r1, r4, 0
+ muls r1, r3
+ adds r1, r2
+ movs r2, 0x64
+ bl memcpy
+_081A454E:
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ str r0, [sp]
+ cmp r0, 0x3
+ bls _081A448C
+ 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_81A447C
+
+ thumb_func_start sub_81A457C
+sub_81A457C: @ 81A457C
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81A5030
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A457C
+
+ thumb_func_start sub_81A4594
+sub_81A4594: @ 81A4594
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ mov r8, r1
+ adds r6, r3, 0
+ ldr r1, =gUnknown_0203AB74
+ ldrb r5, [r1]
+ lsls r4, r0, 1
+ adds r4, r0
+ ldr r1, =gUnknown_085EE424
+ adds r4, r1
+ mov r1, r8
+ lsls r3, r1, 27
+ lsrs r3, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ adds r2, r1
+ lsls r2, 3
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ str r7, [sp]
+ movs r0, 0xFF
+ mov r10, r0
+ str r0, [sp, 0x4]
+ movs r1, 0
+ mov r9, r1
+ str r1, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl PrintTextOnWindow
+ movs r0, 0xFF
+ strb r0, [r6, 0xD]
+ ldrh r0, [r6, 0x4]
+ cmp r0, 0
+ beq _081A465C
+ adds r1, r6, 0x6
+ ldrb r2, [r6, 0xE]
+ add r0, sp, 0xC
+ bl sub_81DB5E8
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ mov r3, r8
+ adds r3, 0x2
+ lsls r3, 27
+ lsrs r3, 24
+ str r7, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ ldrh r1, [r6, 0x4]
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ bls _081A4618
+ adds r1, r0, 0
+_081A4618:
+ ldr r0, =gStringVar2
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r5, =gStringVar4
+ ldr r1, =gUnknown_08611D08
+ ldr r0, [sp, 0x4C]
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xC8
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ str r7, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+_081A465C:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4594
+
+ thumb_func_start sub_81A4684
+sub_81A4684: @ 81A4684
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ adds r6, r0, 0
+ adds r7, r1, 0
+ mov r10, r2
+ adds r5, r3, 0
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ lsls r2, r6, 1
+ adds r2, r6
+ ldr r1, =gUnknown_085EE424
+ adds r2, r1
+ lsls r3, r7, 27
+ lsrs r3, 24
+ mov r12, r3
+ lsls r1, r6, 2
+ adds r1, r6
+ mov r3, r10
+ adds r4, r3, r1
+ lsls r1, r4, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ mov r9, r1
+ str r1, [sp, 0x4]
+ movs r3, 0
+ mov r8, r3
+ str r3, [sp, 0x8]
+ movs r1, 0x1
+ mov r3, r12
+ bl PrintTextOnWindow
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _081A47BC
+ movs r0, 0xFF
+ strb r0, [r5, 0x11]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r5, 0x19]
+ adds r1, r5, 0
+ adds r1, 0xA
+ ldrb r2, [r5, 0x1A]
+ add r0, sp, 0xC
+ bl sub_81DB5E8
+ ldr r1, =gUnknown_0203AB74
+ ldrb r0, [r1]
+ adds r3, r7, 0x2
+ lsls r3, 27
+ lsrs r3, 24
+ subs r1, r4, 0x1
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r2, r9
+ str r2, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ adds r4, r5, 0
+ adds r4, 0x12
+ adds r0, r4, 0
+ bl sub_8009228
+ cmp r0, 0
+ beq _081A4734
+ add r0, sp, 0xC
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_81DB5E8
+ b _081A473C
+ .pool
+_081A4734:
+ add r0, sp, 0xC
+ adds r1, r4, 0
+ bl StringCopy
+_081A473C:
+ ldr r2, =gUnknown_0203AB74
+ mov r9, r2
+ ldrb r0, [r2]
+ adds r3, r7, 0x4
+ lsls r3, 27
+ lsrs r3, 24
+ lsls r1, r6, 2
+ adds r1, r6
+ mov r2, r10
+ adds r6, r2, r1
+ adds r1, r6, 0x1
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ mov r8, r1
+ str r1, [sp, 0x4]
+ movs r7, 0
+ str r7, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ ldrh r1, [r5, 0x8]
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ bls _081A4778
+ adds r1, r0, 0
+_081A4778:
+ ldr r0, =gStringVar2
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r5, =gStringVar4
+ ldr r0, =gUnknown_08611D08
+ ldr r4, [r0, 0x24]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xC8
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r1, r6, 3
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl PrintTextOnWindow
+_081A47BC:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4684
+
+ thumb_func_start sub_81A47E0
+sub_81A47E0: @ 81A47E0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ mov r9, r0
+ mov r10, r1
+ str r2, [sp, 0x40]
+ movs r0, 0xAC
+ lsls r0, 1
+ bl AllocZeroed
+ mov r8, r0
+ bl sub_80E8260
+ add r0, sp, 0x30
+ mov r12, r0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r3, [sp, 0x40]
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 4
+ mov r4, r10
+ lsls r0, r4, 1
+ add r0, r10
+ lsls r0, 5
+ adds r1, r0
+ adds r4, r1, r2
+ mov r3, sp
+ movs r2, 0x2
+_081A4820:
+ adds r0, r3, 0
+ movs r5, 0x87
+ lsls r5, 2
+ adds r1, r4, r5
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r4, 0x10
+ adds r3, 0x10
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081A4820
+ ldr r6, [sp, 0x40]
+ lsls r0, r6, 4
+ mov r7, r10
+ lsls r1, r7, 5
+ adds r0, r1
+ mov r1, r12
+ add r0, r8
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r2, 0
+_081A4852:
+ movs r1, 0
+ movs r4, 0
+ movs r3, 0
+ lsls r5, r2, 4
+ adds r6, r2, 0x1
+ mov r2, sp
+_081A485E:
+ ldrh r0, [r2, 0x4]
+ cmp r0, r1
+ ble _081A4868
+ adds r4, r3, 0
+ adds r1, r0, 0
+_081A4868:
+ adds r2, 0x10
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _081A485E
+ mov r0, sp
+ ldrh r0, [r0, 0x34]
+ cmp r0, r1
+ blt _081A487A
+ movs r4, 0x3
+_081A487A:
+ lsls r0, r4, 4
+ mov r7, sp
+ adds r2, r7, r0
+ mov r0, r9
+ adds r1, r5, r0
+ adds r0, r2, 0
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r2, 0x4]
+ adds r2, r6, 0
+ cmp r2, 0x2
+ ble _081A4852
+ mov r0, r8
+ bl Free
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A47E0
+
+ thumb_func_start sub_81A48B4
+sub_81A48B4: @ 81A48B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x74
+ mov r9, r0
+ mov r10, r1
+ movs r0, 0xAC
+ lsls r0, 1
+ bl AllocZeroed
+ mov r8, r0
+ bl sub_80E8260
+ mov r0, sp
+ adds r0, 0x54
+ str r0, [sp, 0x70]
+ add r1, sp, 0x5C
+ mov r12, r1
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ movs r0, 0x54
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r3, r0, r1
+ mov r2, sp
+ movs r4, 0x2
+_081A48EE:
+ adds r0, r2, 0
+ ldr r5, =0x0000057c
+ adds r1, r3, r5
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldm r1!, {r5-r7}
+ stm r0!, {r5-r7}
+ ldr r1, [r1]
+ str r1, [r0]
+ adds r3, 0x1C
+ adds r2, 0x1C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081A48EE
+ mov r6, r10
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ add r0, r8
+ ldr r1, [sp, 0x70]
+ movs r7, 0x90
+ lsls r7, 1
+ adds r0, r7
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r4, 0
+_081A492A:
+ movs r1, 0
+ movs r5, 0
+ movs r3, 0
+ lsls r6, r4, 3
+ adds r7, r4, 0x1
+ mov r2, sp
+_081A4936:
+ ldrh r0, [r2, 0x8]
+ cmp r0, r1
+ ble _081A4940
+ adds r5, r3, 0
+ adds r1, r0, 0
+_081A4940:
+ adds r2, 0x1C
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _081A4936
+ mov r2, r12
+ ldrh r0, [r2]
+ cmp r0, r1
+ blt _081A4952
+ movs r5, 0x3
+_081A4952:
+ subs r1, r6, r4
+ lsls r1, 2
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ mov r3, sp
+ adds r2, r3, r0
+ add r1, r9
+ adds r0, r2, 0
+ ldm r0!, {r4-r6}
+ stm r1!, {r4-r6}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ adds r4, r7, 0
+ cmp r4, 0x2
+ ble _081A492A
+ mov r0, r8
+ bl Free
+ add sp, 0x74
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A48B4
+
+ thumb_func_start sub_81A4998
+sub_81A4998: @ 81A4998
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x94
+ adds r7, r0, 0
+ str r1, [sp, 0x90]
+ ldr r0, =gStringVar1
+ ldr r4, =gUnknown_08611CB0
+ lsls r5, r7, 3
+ adds r1, r5, r4
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r6, =gStringVar4
+ adds r4, 0x4
+ adds r5, r4
+ ldr r1, [r5]
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ ldr r0, =gUnknown_0203AB74
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ mov r10, r1
+ str r1, [sp]
+ movs r2, 0xFF
+ mov r9, r2
+ str r2, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ adds r2, r6, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r1, =gUnknown_08611D00
+ ldr r2, [sp, 0x90]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r4, [r0]
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xD0
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r2, r10
+ str r2, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl PrintTextOnWindow
+ cmp r7, 0x9
+ bne _081A4A6C
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldr r1, =0x00000ee8
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r2]
+ movs r2, 0xEF
+ lsls r2, 4
+ adds r0, r2
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ add r4, sp, 0x3C
+ adds r0, r4, 0
+ ldr r1, [sp, 0x90]
+ bl sub_81A48B4
+_081A4A3A:
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x4
+ adds r3, r4, 0
+ bl sub_81A4684
+ adds r4, 0x1C
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _081A4A3A
+ b _081A4A90
+ .pool
+_081A4A6C:
+ add r0, sp, 0xC
+ adds r1, r7, 0
+ ldr r2, [sp, 0x90]
+ bl sub_81A47E0
+ movs r5, 0
+ add r4, sp, 0xC
+_081A4A7A:
+ str r7, [sp]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x4
+ adds r3, r4, 0
+ bl sub_81A4594
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _081A4A7A
+_081A4A90:
+ add sp, 0x94
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A4998
+
+ thumb_func_start sub_81A4AA0
+sub_81A4AA0: @ 81A4AA0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB74
+ ldr r0, =gUnknown_08611C84
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_81973FC
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_81A4998
+ ldrb r0, [r4]
+ bl PutWindowTilemap
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4AA0
+
+ thumb_func_start sub_81A4AE8
+sub_81A4AE8: @ 81A4AE8
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB74
+ ldrb r0, [r4]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl sub_81A4998
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4AE8
+
+ thumb_func_start sub_81A4B14
+sub_81A4B14: @ 81A4B14
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r1, 0
+ ldr r3, =gSaveBlock2Ptr
+_081A4B24:
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r2, r1, 0x1
+ mov r10, r2
+ adds r0, r1
+ lsls r0, 5
+ mov r8, r0
+ movs r7, 0
+ movs r0, 0x87
+ lsls r0, 2
+ add r0, r8
+ mov r9, r0
+_081A4B3C:
+ movs r5, 0
+ adds r2, r7, 0
+ mov r1, r8
+ adds r4, r7, r1
+_081A4B44:
+ ldr r0, [r3]
+ add r0, r9
+ adds r0, r2
+ lsls r1, r5, 4
+ adds r0, r1
+ movs r1, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl CopyUnalignedWord
+ ldr r3, [sp, 0x4]
+ ldr r0, [r3]
+ adds r0, r4
+ ldr r1, =0x00000222
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, r4
+ movs r1, 0x88
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ adds r4, 0x10
+ adds r5, 0x1
+ ldr r2, [sp]
+ cmp r5, 0x2
+ ble _081A4B44
+ adds r7, 0x30
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _081A4B3C
+ mov r1, r10
+ cmp r1, 0x8
+ ble _081A4B24
+ movs r6, 0
+ ldr r7, =gSaveBlock2Ptr
+ movs r2, 0x54
+ mov r10, r2
+ movs r3, 0xFF
+ mov r9, r3
+_081A4B98:
+ adds r0, r6, 0x1
+ mov r8, r0
+ mov r1, r10
+ muls r1, r6
+ movs r0, 0x54
+ adds r4, r6, 0
+ muls r4, r0
+ movs r2, 0
+ ldr r3, =0x0000057c
+ adds r6, r1, r3
+ movs r5, 0x2
+_081A4BAE:
+ ldr r0, [r7]
+ adds r0, r6
+ adds r0, r2
+ movs r1, 0
+ str r2, [sp]
+ bl CopyUnalignedWord
+ ldr r0, [r7]
+ adds r0, r6
+ ldr r2, [sp]
+ adds r0, r2
+ adds r0, 0x4
+ movs r1, 0
+ bl CopyUnalignedWord
+ ldr r1, [r7]
+ adds r1, r4
+ ldr r0, =0x00000586
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r3, r9
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r1, [r7]
+ adds r1, r4
+ ldr r0, =0x0000058e
+ adds r1, r0
+ ldrb r0, [r1]
+ orrs r0, r3
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, r4
+ ldr r1, =0x00000584
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ adds r4, 0x1C
+ ldr r2, [sp]
+ adds r2, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081A4BAE
+ mov r6, r8
+ cmp r6, 0x1
+ ble _081A4B98
+ 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_81A4B14
+
+ thumb_func_start sub_81A4C30
+sub_81A4C30: @ 81A4C30
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r0, 0x96
+ lsls r0, 2
+ bl AllocZeroed
+ adds r7, r0, 0
+ adds r4, r7, 0
+ movs r5, 0
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r6, r7, r0
+ ldr r0, =gPlayerParty
+ mov r8, r0
+_081A4C4E:
+ mov r0, r8
+ adds r1, r5, r0
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r4, 0x64
+ adds r5, 0x64
+ cmp r4, r6
+ ble _081A4C4E
+ ldr r4, =gPlayerPartyCount
+ ldrb r5, [r4]
+ bl copy_player_party_from_sav1
+ bl sub_8076D5C
+ movs r0, 0x1
+ bl TrySavingData
+ bl sav2_gender2_inplace_and_xFE
+ strb r5, [r4]
+ adds r4, r7, 0
+ ldr r5, =gPlayerParty
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r6, r7, r0
+_081A4C84:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r4, 0x64
+ adds r5, 0x64
+ cmp r4, r6
+ ble _081A4C84
+ adds r0, r7, 0
+ bl Free
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4C30
+
+ thumb_func_start sub_81A4CB0
+sub_81A4CB0: @ 81A4CB0
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A4CD0
+ bl sub_8185EA0
+ lsls r0, 24
+ lsrs r0, 24
+ b _081A4CDA
+ .pool
+_081A4CD0:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+_081A4CDA:
+ ldr r2, =gTrainers
+ ldr r1, =gUnknown_08611D30
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A4CB0
+
+ thumb_func_start sub_81A4D00
+sub_81A4D00: @ 81A4D00
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A4D20
+ bl sub_8185EA0
+ lsls r0, 24
+ lsrs r0, 24
+ b _081A4D2A
+ .pool
+_081A4D20:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+_081A4D2A:
+ ldr r2, =gTrainers
+ ldr r1, =gUnknown_08611D30
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A4D00
+
+ thumb_func_start sub_81A4D50
+sub_81A4D50: @ 81A4D50
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A4D70
+ bl sub_8185EA0
+ lsls r0, 24
+ lsrs r0, 24
+ b _081A4D7A
+ .pool
+_081A4D70:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+_081A4D7A:
+ movs r3, 0
+ lsls r0, 1
+ ldr r2, =gTrainers
+ ldr r1, =gUnknown_08611D30
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x4
+ adds r2, r0, r2
+_081A4D90:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _081A4D90
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4D50
+
+ thumb_func_start sub_81A4DB8
+sub_81A4DB8: @ 81A4DB8
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ ldr r1, =gUnknown_08611C8C
+ lsrs r0, 15
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A4DB8
+
+ thumb_func_start sub_81A4DD8
+sub_81A4DD8: @ 81A4DD8
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ ldr r2, =0x00004010
+ ldr r1, =gUnknown_08611C8C
+ lsrs r0, 15
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4DD8
+
+ thumb_func_start sub_81A4E04
+sub_81A4E04: @ 81A4E04
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x20]
+ bl sub_81A513C
+ str r0, [sp, 0x24]
+ ldr r0, [sp, 0x20]
+ cmp r0, 0x1
+ bne _081A4E44
+ ldr r0, =0x000003fe
+ bl sub_81953A0
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_818FC78
+ adds r4, r0, 0
+ b _081A4E46
+ .pool
+_081A4E44:
+ movs r4, 0x7
+_081A4E46:
+ bl ZeroEnemyPartyMons
+ movs r1, 0
+ str r1, [sp, 0x18]
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ movs r2, 0
+ str r2, [sp, 0x14]
+_081A4E5C:
+ movs r0, 0x1
+ ands r0, r4
+ asrs r4, 1
+ str r4, [sp, 0x30]
+ ldr r3, [sp, 0x14]
+ adds r3, 0x1
+ str r3, [sp, 0x28]
+ cmp r0, 0
+ bne _081A4E70
+ b _081A4FC4
+_081A4E70:
+ ldr r4, [sp, 0x14]
+ lsls r4, 2
+ mov r9, r4
+ ldr r0, [sp, 0x24]
+ lsls r0, 4
+ str r0, [sp, 0x38]
+ ldr r1, [sp, 0x20]
+ lsls r1, 4
+ str r1, [sp, 0x34]
+ ldr r2, [sp, 0x1C]
+ lsls r2, 24
+ str r2, [sp, 0x3C]
+ ldr r3, [sp, 0x18]
+ adds r3, 0x1
+ str r3, [sp, 0x2C]
+ ldr r0, [sp, 0x14]
+ add r0, r9
+ lsls r0, 2
+ mov r8, r0
+_081A4E96:
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsrs r7, r4, 16
+ lsls r0, 16
+ orrs r7, r0
+ ldr r0, =0x0000ef2a
+ adds r1, r7, 0
+ bl IsShinyOtIdPersonality
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A4E96
+ ldr r4, [sp, 0x38]
+ ldr r1, [sp, 0x24]
+ subs r0, r4, r1
+ lsls r5, r0, 2
+ mov r2, r8
+ adds r4, r2, r5
+ ldr r3, [sp, 0x34]
+ ldr r1, [sp, 0x20]
+ subs r0, r3, r1
+ lsls r6, r0, 3
+ adds r4, r6
+ ldr r2, =gUnknown_0861156C
+ adds r4, r2
+ adds r0, r7, 0
+ bl GetNatureFromPersonality
+ ldrb r1, [r4, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081A4E96
+ ldr r4, [sp, 0x18]
+ movs r0, 0x64
+ adds r3, r4, 0
+ muls r3, r0
+ mov r8, r3
+ ldr r1, =gEnemyParty
+ add r1, r8
+ mov r10, r1
+ ldr r4, [sp, 0x14]
+ add r4, r9
+ lsls r4, 2
+ adds r0, r4, r5
+ adds r0, r6
+ ldr r2, =gUnknown_0861156C
+ adds r0, r2
+ ldrh r1, [r0]
+ ldr r3, [sp, 0x3C]
+ lsrs r2, r3, 24
+ ldrb r3, [r0, 0x4]
+ movs r0, 0x1
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ str r0, [sp, 0x8]
+ ldr r0, =0x0000ef2a
+ str r0, [sp, 0xC]
+ mov r0, r10
+ bl CreateMon
+ ldr r0, =gUnknown_0861156C
+ adds r5, r0
+ adds r5, r6, r5
+ adds r4, r5, r4
+ adds r4, 0x2
+ mov r0, r10
+ movs r1, 0xC
+ adds r2, r4, 0
+ bl SetMonData
+ movs r7, 0
+ mov r6, r8
+ ldr r3, =gEnemyParty
+_081A4F32:
+ adds r1, r7, 0
+ adds r1, 0x1A
+ ldr r0, [sp, 0x14]
+ add r0, r9
+ lsls r4, r0, 2
+ adds r2, r5, r4
+ adds r0, r7, 0x6
+ adds r2, r0
+ adds r0, r6, r3
+ str r3, [sp, 0x40]
+ bl SetMonData
+ adds r7, 0x1
+ ldr r3, [sp, 0x40]
+ cmp r7, 0x5
+ ble _081A4F32
+ movs r1, 0xFF
+ add r0, sp, 0x10
+ strb r1, [r0]
+ movs r7, 0
+ ldr r1, [sp, 0x18]
+ movs r2, 0x64
+ adds r6, r1, 0
+ muls r6, r2
+ ldr r3, =gUnknown_08611578
+ mov r8, r3
+ ldr r3, =gEnemyParty
+ adds r5, r4, 0
+_081A4F6A:
+ ldr r4, [sp, 0x38]
+ ldr r0, [sp, 0x24]
+ subs r1, r4, r0
+ lsls r1, 2
+ adds r1, r5, r1
+ ldr r2, [sp, 0x34]
+ ldr r4, [sp, 0x20]
+ subs r0, r2, r4
+ lsls r0, 3
+ adds r1, r0
+ add r1, r8
+ ldrh r4, [r1]
+ lsls r2, r7, 24
+ lsrs r2, 24
+ adds r0, r6, r3
+ adds r1, r4, 0
+ str r3, [sp, 0x40]
+ bl SetMonMoveSlot
+ ldr r3, [sp, 0x40]
+ cmp r4, 0xDA
+ bne _081A4F9C
+ movs r1, 0
+ add r0, sp, 0x10
+ strb r1, [r0]
+_081A4F9C:
+ adds r5, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _081A4F6A
+ ldr r0, [sp, 0x18]
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r4, 0
+ bl CalculateMonStats
+ ldr r2, [sp, 0x2C]
+ str r2, [sp, 0x18]
+_081A4FC4:
+ ldr r4, [sp, 0x30]
+ ldr r3, [sp, 0x28]
+ str r3, [sp, 0x14]
+ cmp r3, 0x2
+ bgt _081A4FD0
+ b _081A4E5C
+_081A4FD0:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A4E04
+
+ thumb_func_start sub_81A4FF0
+sub_81A4FF0: @ 81A4FF0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x000040cf
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_81A513C
+ ldr r3, =gUnknown_0861156C
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r1, r0, 4
+ subs r1, r0
+ adds r1, r2
+ lsls r1, 2
+ lsls r0, r5, 4
+ subs r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrh r0, [r1]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A4FF0
+
+ thumb_func_start sub_81A5030
+sub_81A5030: @ 81A5030
+ push {lr}
+ lsls r0, 24
+ ldr r2, =gTrainerBattleOpponent_A
+ ldr r3, =0x000003fe
+ adds r1, r3, 0
+ strh r1, [r2]
+ ldr r2, =0x00004010
+ ldr r1, =gUnknown_08611C8C
+ lsrs r0, 23
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5030
+
+ thumb_func_start sub_81A5060
+sub_81A5060: @ 81A5060
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x000040cf
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_81A513C
+ ldr r2, =gUnknown_0861156C
+ lsls r4, 1
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 2
+ adds r4, r1
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 2
+ adds r4, r1
+ lsls r0, r5, 4
+ subs r0, r5
+ lsls r0, 3
+ adds r4, r0
+ adds r2, 0xC
+ adds r4, r2
+ ldrh r0, [r4]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A5060
+
+ thumb_func_start sub_81A50B0
+sub_81A50B0: @ 81A50B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x000040cf
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_81A513C
+ ldr r3, =gUnknown_0861156C
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r1, r0, 4
+ subs r1, r0
+ adds r1, r2
+ lsls r1, 2
+ lsls r0, r5, 4
+ subs r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1, 0x5]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A50B0
+
+ thumb_func_start sub_81A50F0
+sub_81A50F0: @ 81A50F0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x000040cf
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ bl sub_81A513C
+ ldr r2, =gUnknown_0861156C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 2
+ adds r4, r1
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 2
+ adds r4, r1
+ lsls r0, r5, 4
+ subs r0, r5
+ lsls r0, 3
+ adds r4, r0
+ adds r2, 0x6
+ adds r4, r2
+ ldrb r0, [r4]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A50F0
+
+ thumb_func_start sub_81A513C
+sub_81A513C: @ 81A513C
+ push {r4,r5,lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bne _081A51A0
+ bl sub_81A39C4
+ lsls r0, 16
+ ldr r3, =gUnknown_08611550
+ lsls r2, r5, 2
+ adds r1, r3, 0x3
+ adds r1, r2, r1
+ lsrs r0, 16
+ ldrb r1, [r1]
+ adds r1, r0, r1
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081A5180
+ movs r4, 0
+ b _081A51A0
+ .pool
+_081A5180:
+ adds r0, r3, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _081A519E
+ cmp r1, r0
+ ble _081A51A0
+ subs r0, r1, r0
+ adds r1, r3, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ cmp r0, 0
+ bne _081A51A0
+_081A519E:
+ movs r4, 0x1
+_081A51A0:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A513C
+
+ thumb_func_start sub_81A51A8
+sub_81A51A8: @ 81A51A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _081A51D4
+ bl sub_8185EA0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8185EAC
+ lsls r0, 24
+ lsrs r1, r0, 24
+ b _081A51E4
+ .pool
+_081A51D4:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_81A513C
+ adds r1, r0, 0
+_081A51E4:
+ cmp r5, 0
+ beq _081A51F4
+ cmp r5, 0x1
+ beq _081A5214
+ b _081A5228
+ .pool
+_081A51F4:
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_08611DB0
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ lsls r1, r4, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ b _081A5228
+ .pool
+_081A5214:
+ ldr r0, =gStringVar4
+ ldr r2, =gUnknown_08611DB8
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, [r1]
+ lsls r1, r4, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+_081A5228:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A51A8
+
+ thumb_func_start sub_81A5238
+sub_81A5238: @ 81A5238
+ push {lr}
+ ldr r1, =gUnknown_08611F84
+ 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_81A5238
+
+ thumb_func_start sub_81A5258
+sub_81A5258: @ 81A5258
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ cmp r0, 0xA
+ bls _081A5268
+ b _081A5544
+_081A5268:
+ lsls r0, 2
+ ldr r1, =_081A5278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A5278:
+ .4byte _081A52A4
+ .4byte _081A52F4
+ .4byte _081A531C
+ .4byte _081A53B4
+ .4byte _081A540C
+ .4byte _081A542C
+ .4byte _081A544C
+ .4byte _081A5490
+ .4byte _081A553E
+ .4byte _081A54D4
+ .4byte _081A5520
+_081A52A4:
+ ldr r0, =0x7fffff1c
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x8
+ bl BeginNormalPaletteFade
+ ldr r1, =0x00003f3e
+ movs r0, 0x48
+ bl SetGpuReg
+ ldr r0, =gUnknown_08611F74
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08D855E8
+ movs r1, 0xF8
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, =gUnknown_02022E24
+ movs r0, 0xFF
+ strh r0, [r1]
+ ldr r1, =gUnknown_02022E26
+ movs r0, 0x70
+ strh r0, [r1]
+ b _081A553E
+ .pool
+_081A52F4:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081A5306
+ b _081A5544
+_081A5306:
+ str r0, [sp]
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0xD
+ bl sub_8056A3C
+ b _081A553E
+ .pool
+_081A531C:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A5328
+ b _081A5544
+_081A5328:
+ ldr r1, =gBattleTextBuff1
+ movs r2, 0xA1
+ strb r2, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ ldr r1, =gBattleTextBuff2
+ strb r2, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x1]
+ ldr r0, =gUnknown_085CCDB2
+ bl get_battle_strings_
+ ldr r4, =gUnknown_02022E2C
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDB5
+ movs r1, 0x10
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDB8
+ bl get_battle_strings_
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDBB
+ movs r1, 0x12
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDC0
+ movs r1, 0x13
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDC6
+ movs r1, 0x14
+ bl battle_show_message_maybe
+ ldr r0, =gUnknown_085CCDCB
+ bl get_battle_strings_
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl battle_show_message_maybe
+ b _081A553E
+ .pool
+_081A53B4:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A53C0
+ b _081A5544
+_081A53C0:
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ movs r6, 0x80
+ lsls r6, 15
+ movs r4, 0x7
+_081A53CE:
+ asrs r1, r6, 16
+ ldr r0, =gUnknown_08611F5C
+ movs r2, 0x54
+ movs r3, 0
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x3
+ bl StartSpriteAnim
+ movs r0, 0x80
+ lsls r0, 13
+ adds r6, r0
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081A53CE
+ b _081A553C
+ .pool
+_081A540C:
+ ldr r0, =0x00000109
+ bl PlaySE
+ movs r0, 0x50
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0
+ bl sub_81A5558
+ movs r0, 0xA0
+ movs r1, 0x28
+ movs r2, 0
+ b _081A5464
+ .pool
+_081A542C:
+ ldr r0, =0x00000109
+ bl PlaySE
+ movs r0, 0x50
+ movs r1, 0x38
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_81A5558
+ movs r0, 0xA0
+ movs r1, 0x38
+ movs r2, 0x1
+ b _081A5464
+ .pool
+_081A544C:
+ ldr r0, =0x00000109
+ bl PlaySE
+ movs r0, 0x50
+ movs r1, 0x48
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_81A5558
+ movs r0, 0xA0
+ movs r1, 0x48
+ movs r2, 0x2
+_081A5464:
+ movs r3, 0x1
+ bl sub_81A5558
+ ldr r0, =gUnknown_085CCDCB
+ bl get_battle_strings_
+ ldr r0, =gUnknown_02022E2C
+ movs r1, 0x15
+ bl battle_show_message_maybe
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ movs r6, 0x1
+ b _081A5544
+ .pool
+_081A5490:
+ movs r0, 0x85
+ lsls r0, 1
+ bl PlaySE
+ ldr r0, =gBattleTextBuff1
+ ldr r1, =gBattleTextBuff2
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bls _081A54BC
+ movs r6, 0x2
+ ldr r1, =gBattleScripting
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ b _081A553E
+ .pool
+_081A54BC:
+ cmp r2, r0
+ bcs _081A54D0
+ movs r6, 0x3
+ ldr r1, =gBattleScripting
+ movs r0, 0x1
+ strb r0, [r1, 0x17]
+ b _081A553E
+ .pool
+_081A54D0:
+ movs r6, 0x4
+ b _081A553E
+_081A54D4:
+ ldr r1, =0x00003f3e
+ movs r0, 0x48
+ bl SetGpuReg
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0x18
+ movs r3, 0xD
+ bl sub_8056A3C
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =gMPlay_BGM
+ ldr r1, =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, =0x7fffff1c
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x8
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _081A553E
+ .pool
+_081A5520:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081A5544
+ ldr r1, =0x00003f3f
+ movs r0, 0x48
+ bl SetGpuReg
+ movs r0, 0xFA
+ lsls r0, 2
+ bl FreeSpriteTilesByTag
+_081A553C:
+ movs r6, 0x1
+_081A553E:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_081A5544:
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A5258
+
+ thumb_func_start sub_81A5558
+sub_81A5558: @ 81A5558
+ 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
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ movs r6, 0
+ movs r1, 0
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ movs r3, 0xA6
+ lsls r3, 2
+ adds r4, r0, r3
+ ldr r5, =0x0000029a
+ adds r3, r0, r5
+ adds r5, 0x2
+ adds r5, r0
+ mov r8, r5
+ cmp r2, 0x1
+ beq _081A55C4
+ cmp r2, 0x1
+ bgt _081A55A8
+ cmp r2, 0
+ beq _081A55B0
+ b _081A5612
+ .pool
+_081A55A8:
+ mov r0, r9
+ cmp r0, 0x2
+ beq _081A55D8
+ b _081A5612
+_081A55B0:
+ adds r0, r4, r7
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ movs r1, 0x1
+ adds r0, r7, 0
+ eors r0, r1
+ adds r0, r4, r0
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ b _081A5612
+_081A55C4:
+ adds r0, r3, r7
+ movs r6, 0
+ ldrsb r6, [r0, r6]
+ movs r1, 0x1
+ adds r0, r7, 0
+ eors r0, r1
+ adds r0, r3, r0
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ b _081A5612
+_081A55D8:
+ ldr r3, =gBattleMons
+ mov r9, r3
+ movs r5, 0x58
+ adds r0, r7, 0
+ muls r0, r5
+ add r0, r9
+ ldrh r0, [r0, 0x28]
+ movs r4, 0x64
+ muls r0, r4
+ lsls r1, r7, 1
+ add r1, r8
+ ldrh r1, [r1]
+ bl __divsi3
+ adds r6, r0, 0
+ movs r0, 0x1
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, 0
+ muls r0, r5
+ add r0, r9
+ ldrh r0, [r0, 0x28]
+ muls r0, r4
+ lsls r1, 1
+ add r1, r8
+ ldrh r1, [r1]
+ bl __divsi3
+ adds r1, r0, 0
+_081A5612:
+ cmp r6, r1
+ ble _081A5638
+ movs r4, 0x2
+ cmp r7, 0
+ beq _081A5628
+ ldr r1, =gBattleTextBuff2
+ b _081A562A
+ .pool
+_081A5628:
+ ldr r1, =gBattleTextBuff1
+_081A562A:
+ ldrb r0, [r1]
+ adds r0, 0x2
+ strb r0, [r1]
+ b _081A565E
+ .pool
+_081A5638:
+ cmp r6, r1
+ bne _081A565C
+ movs r4, 0x1
+ cmp r7, 0
+ beq _081A564C
+ ldr r1, =gBattleTextBuff2
+ b _081A564E
+ .pool
+_081A564C:
+ ldr r1, =gBattleTextBuff1
+_081A564E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081A565E
+ .pool
+_081A565C:
+ movs r4, 0
+_081A565E:
+ ldr r0, =gUnknown_08611F5C
+ ldr r1, [sp]
+ mov r2, r10
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ adds r1, r4, 0
+ bl StartSpriteAnim
+ 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_81A5558
+
+ thumb_func_start sub_81A5698
+sub_81A5698: @ 81A5698
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, =gBattleCommunication
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _081A56AA
+ adds r0, r1, 0
+ bl DestroySprite
+_081A56AA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5698
+
+ thumb_func_start sub_81A56B4
+sub_81A56B4: @ 81A56B4
+ ldr r0, =gBattleStruct
+ ldr r2, [r0]
+ movs r0, 0xA6
+ lsls r0, 2
+ adds r1, r2, r0
+ adds r0, 0x2
+ adds r3, r2, r0
+ adds r0, 0x2
+ adds r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ strb r0, [r3]
+ strb r0, [r3, 0x1]
+ ldr r0, =gBattleMons
+ ldrh r1, [r0, 0x28]
+ strh r1, [r2]
+ adds r0, 0x80
+ ldrh r0, [r0]
+ strh r0, [r2, 0x2]
+ bx lr
+ .pool
+ thumb_func_end sub_81A56B4
+
+ thumb_func_start sub_81A56E8
+sub_81A56E8: @ 81A56E8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ movs r2, 0xA6
+ lsls r2, 2
+ adds r1, r2
+ adds r1, r0
+ ldr r2, =gBattleArenaMoveMindRatings
+ ldr r0, =gCurrentMove
+ ldrh r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A56E8
+
+ thumb_func_start sub_81A5718
+sub_81A5718: @ 81A5718
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ ldr r0, =gBattleStruct
+ ldr r2, [r0]
+ ldr r0, =0x0000029a
+ adds r5, r2, r0
+ ldr r0, =gHitMarker
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _081A57DA
+ ldr r0, =0x000002a2
+ adds r4, r2, r0
+ ldrb r2, [r4]
+ ldr r0, =gBitTable
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081A576C
+ bics r2, r1
+ strb r2, [r4]
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ subs r0, 0x2
+ b _081A57D8
+ .pool
+_081A576C:
+ ldr r0, =gBattleMoveFlags
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _081A5798
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081A5788
+ ldr r0, =gBattleCommunication
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _081A57DA
+_081A5788:
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ subs r0, 0x2
+ b _081A57D8
+ .pool
+_081A5798:
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x6
+ bne _081A57A4
+ adds r1, r5, r3
+ b _081A57D4
+_081A57A4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081A57B4
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ adds r0, 0x2
+ b _081A57D8
+_081A57B4:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081A57C4
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ b _081A57D8
+_081A57C4:
+ ldr r0, =gProtectStructs
+ lsls r1, r6, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ bne _081A57DA
+ adds r1, r5, r6
+_081A57D4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+_081A57D8:
+ strb r0, [r1]
+_081A57DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5718
+
+ thumb_func_start sub_81A57E4
+sub_81A57E4: @ 81A57E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ adds r2, r1, 0
+ ldr r0, =gBattleStruct
+ ldr r0, [r0]
+ ldr r5, =0x0000029a
+ adds r3, r0, r5
+ movs r0, 0x99
+ lsls r0, 1
+ cmp r1, r0
+ bgt _081A582A
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081A585C
+ cmp r1, 0xC5
+ bgt _081A581C
+ cmp r1, 0xC3
+ bge _081A585C
+ cmp r1, 0x77
+ beq _081A585C
+ b _081A5864
+ .pool
+_081A581C:
+ cmp r1, 0xC7
+ blt _081A5864
+ cmp r1, 0xCC
+ ble _081A585C
+ cmp r1, 0xCE
+ beq _081A585C
+ b _081A5864
+_081A582A:
+ ldr r0, =0x00000147
+ cmp r1, r0
+ beq _081A585C
+ cmp r1, r0
+ bgt _081A5848
+ subs r0, 0x12
+ cmp r1, r0
+ beq _081A585C
+ adds r0, 0x2
+ cmp r1, r0
+ beq _081A585C
+ b _081A5864
+ .pool
+_081A5848:
+ movs r0, 0xAD
+ lsls r0, 1
+ cmp r2, r0
+ blt _081A5864
+ adds r0, 0x1
+ cmp r2, r0
+ ble _081A585C
+ adds r0, 0x3
+ cmp r2, r0
+ bne _081A5864
+_081A585C:
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ subs r0, 0x3
+ strb r0, [r1]
+_081A5864:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A57E4
+
+ thumb_func_start sub_81A586C
+sub_81A586C: @ 81A586C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gBattleStruct
+ ldr r3, [r1]
+ movs r1, 0xA7
+ lsls r1, 2
+ adds r3, r1
+ lsls r2, r0, 1
+ adds r2, r3
+ ldr r5, =gBattleMons
+ movs r4, 0x58
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r5
+ ldrh r1, [r1, 0x28]
+ strh r1, [r2]
+ movs r1, 0x1
+ eors r0, r1
+ lsls r1, r0, 1
+ adds r1, r3
+ muls r0, r4
+ adds r0, r5
+ ldrh r2, [r0, 0x28]
+ ldrh r0, [r1]
+ cmp r0, r2
+ bls _081A58A4
+ strh r2, [r1]
+_081A58A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A586C
+
+ thumb_func_start sub_81A58B4
+sub_81A58B4: @ 81A58B4
+ push {r4-r6,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r3, =0x00000ca9
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x00000ca8
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r4]
+ ldr r6, =0x00000cb2
+ adds r0, r1, r6
+ strh r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r1, r3
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ cmp r5, 0
+ beq _081A5914
+ ldr r0, [r4]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0x80
+ b _081A591E
+ .pool
+_081A5914:
+ ldr r0, [r4]
+ ldr r3, =0x00000cdc
+ adds r0, r3
+ ldr r2, [r0]
+ movs r0, 0x40
+_081A591E:
+ ands r2, r0
+ cmp r2, 0
+ bne _081A5930
+ ldr r0, [r4]
+ lsls r1, r5, 1
+ ldr r6, =0x00000dda
+ adds r0, r6
+ adds r0, r1
+ strh r2, [r0]
+_081A5930:
+ 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 r1, =gTrainerBattleOpponent_A
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A58B4
+
+ thumb_func_start sub_81A5964
+sub_81A5964: @ 81A5964
+ push {r4,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r3, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r1, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081A59B0
+ cmp r0, 0x1
+ bgt _081A5994
+ cmp r0, 0
+ beq _081A599A
+ b _081A59EE
+ .pool
+_081A5994:
+ cmp r0, 0x2
+ beq _081A59C8
+ b _081A59EE
+_081A599A:
+ ldr r0, =gScriptResult
+ ldr r2, =0x00000dd8
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _081A59EE
+ .pool
+_081A59B0:
+ ldr r2, =gScriptResult
+ lsls r1, 1
+ ldr r4, =0x00000dda
+ adds r0, r3, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ b _081A59EC
+ .pool
+_081A59C8:
+ cmp r1, 0
+ beq _081A59E0
+ ldr r2, =gScriptResult
+ ldr r1, =0x00000cdc
+ adds r0, r3, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ b _081A59EA
+ .pool
+_081A59E0:
+ ldr r2, =gScriptResult
+ ldr r4, =0x00000cdc
+ adds r0, r3, r4
+ ldr r0, [r0]
+ movs r1, 0x40
+_081A59EA:
+ ands r0, r1
+_081A59EC:
+ strh r0, [r2]
+_081A59EE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5964
+
+ thumb_func_start sub_81A59FC
+sub_81A59FC: @ 81A59FC
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r1, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081A5A48
+ cmp r0, 0x1
+ bgt _081A5A2C
+ cmp r0, 0
+ beq _081A5A32
+ b _081A5ABA
+ .pool
+_081A5A2C:
+ cmp r0, 0x2
+ beq _081A5A60
+ b _081A5ABA
+_081A5A32:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r1, [r0]
+ ldr r3, =0x00000dd8
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _081A5ABA
+ .pool
+_081A5A48:
+ lsls r1, 1
+ ldr r3, =0x00000dda
+ adds r0, r2, r3
+ adds r0, r1
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _081A5ABA
+ .pool
+_081A5A60:
+ cmp r1, 0
+ beq _081A5A90
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A5A80
+ ldr r1, =0x00000cdc
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ b _081A5AB8
+ .pool
+_081A5A80:
+ ldr r3, =0x00000cdc
+ adds r0, r2, r3
+ ldr r1, [r0]
+ movs r2, 0x81
+ negs r2, r2
+ b _081A5AB6
+ .pool
+_081A5A90:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A5AAC
+ ldr r1, =0x00000cdc
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ b _081A5AB8
+ .pool
+_081A5AAC:
+ ldr r3, =0x00000cdc
+ adds r0, r2, r3
+ ldr r1, [r0]
+ movs r2, 0x41
+ negs r2, r2
+_081A5AB6:
+ ands r1, r2
+_081A5AB8:
+ str r1, [r0]
+_081A5ABA:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A59FC
+
+ thumb_func_start sub_81A5AC4
+sub_81A5AC4: @ 81A5AC4
+ 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_81A5AC4
+
+ thumb_func_start sub_81A5B08
+sub_81A5B08: @ 81A5B08
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r2, =0x00000dda
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0x29
+ bls _081A5B58
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_08611FAC
+ 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, =0x00000dd8
+ adds r4, r1
+ b _081A5B76
+ .pool
+_081A5B58:
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_08611FA0
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r2, =0x00000dd8
+ adds r4, r2
+_081A5B76:
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5B08
+
+ thumb_func_start sub_81A5B88
+sub_81A5B88: @ 81A5B88
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000dd8
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _081A5BD0
+ ldr r0, [r4]
+ ldr r1, =0x00000dd8
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000dd8
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081A5BD6
+ .pool
+_081A5BD0:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_081A5BD6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5B88
+
+ thumb_func_start sub_81A5BE0
+sub_81A5BE0: @ 81A5BE0
+ push {lr}
+ ldr r0, =gStringVar1
+ ldr r1, =gTrainerBattleOpponent_A
+ ldrh r1, [r1]
+ bl sub_8162E20
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5BE0
+
+ thumb_func_start sub_81A5BF8
+sub_81A5BF8: @ 81A5BF8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ movs r0, 0x1B
+ mov r8, r0
+ movs r5, 0x7
+ movs r4, 0x1
+ str r4, [sp]
+ movs r6, 0x6
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xFE
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x20
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x31
+ movs r2, 0
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x33
+ movs r2, 0x1
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ mov r0, r8
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x34
+ movs r2, 0x2
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1C
+ mov r8, r0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x35
+ movs r2, 0x1C
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x36
+ movs r2, 0x1D
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ movs r6, 0x5
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x37
+ movs r2, 0
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ mov r0, r8
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x39
+ movs r2, 0x1
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x3A
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000831
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000833
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0x1
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000834
+ movs r0, 0x1A
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0x2
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000835
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0x1C
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ ldr r1, =0x00000836
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5BF8
+
+ thumb_func_start sub_81A5D44
+sub_81A5D44: @ 81A5D44
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ movs r5, 0
+ movs r4, 0x1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ movs r6, 0x4
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0x1
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1B
+ mov r8, r0
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x5
+ movs r2, 0x2
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x6
+ movs r2, 0x1C
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x7
+ movs r2, 0x1D
+ movs r3, 0xE
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0x1
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ mov r0, r8
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xB
+ movs r2, 0x1C
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xD
+ movs r2, 0
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ mov r0, r8
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0xF
+ movs r2, 0x2
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1C
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl FillBgTilemapBufferRect
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A5D44
+
+ thumb_func_start sub_81A5E74
+sub_81A5E74: @ 81A5E74
+ push {lr}
+ ldr r1, =gUnknown_08612120
+ 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_81A5E74
+
+ thumb_func_start sub_81A5E94
+sub_81A5E94: @ 81A5E94
+ push {r4-r7,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r4, =0x00000ca9
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r7, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, [r5]
+ ldr r1, =0x00000ca8
+ adds r0, r1
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r5]
+ ldr r3, =0x00000cb2
+ adds r0, r1, r3
+ strh r2, [r0]
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, [r5]
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r4, [r5]
+ ldr r0, =0x00000cdc
+ adds r3, r4, r0
+ ldr r2, =gUnknown_08612164
+ lsls r0, r7, 2
+ lsls r1, r6, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r3, [r3]
+ ldr r0, [r0]
+ ands r3, r0
+ cmp r3, 0
+ bne _081A5F0A
+ lsls r1, r7, 1
+ lsls r0, r6, 2
+ adds r1, r0
+ ldr r2, =0x00000de2
+ adds r0, r4, r2
+ adds r0, r1
+ strh r3, [r0]
+ adds r2, 0x10
+ adds r0, r4, r2
+ adds r0, r1
+ strh r3, [r0]
+_081A5F0A:
+ ldr r1, =gUnknown_03001288
+ movs r0, 0
+ strb r0, [r1]
+ movs r2, 0
+ ldr r6, =gSaveBlock1Ptr
+ movs r4, 0xE7
+ lsls r4, 4
+ ldr r0, =0x0000ffff
+ adds r3, r0, 0
+_081A5F1C:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r4
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _081A5F1C
+ movs r2, 0
+ ldr r4, =gUnknown_03006298
+ ldr r1, =0x0000ffff
+ adds r3, r1, 0
+_081A5F40:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ orrs r1, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _081A5F40
+ ldr r0, [r6]
+ 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 r1, =gTrainerBattleOpponent_A
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5E94
+
+ thumb_func_start sub_81A5FA8
+sub_81A5FA8: @ 81A5FA8
+ push {r4-r7,lr}
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r6, r0, 30
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ beq _081A6000
+ cmp r0, 0x2
+ bgt _081A5FE4
+ cmp r0, 0x1
+ beq _081A5FEA
+ b _081A6044
+ .pool
+_081A5FE4:
+ cmp r0, 0x3
+ beq _081A6030
+ b _081A6044
+_081A5FEA:
+ ldr r3, =gScriptResult
+ ldr r0, [r7]
+ lsls r1, r6, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r2, =0x00000de2
+ b _081A603C
+ .pool
+_081A6000:
+ ldr r4, =gScriptResult
+ ldr r2, [r7]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_08612164
+ lsls r0, r6, 2
+ lsls r1, r5, 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 _081A6044
+ .pool
+_081A6030:
+ ldr r3, =gScriptResult
+ ldr r0, [r7]
+ lsls r1, r6, 1
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r2, =0x00000df2
+_081A603C:
+ adds r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+_081A6044:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A5FA8
+
+ thumb_func_start sub_81A6054
+sub_81A6054: @ 81A6054
+ 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, 0x2
+ beq _081A60B4
+ cmp r0, 0x2
+ bgt _081A6090
+ cmp r0, 0x1
+ beq _081A6096
+ b _081A6128
+ .pool
+_081A6090:
+ cmp r0, 0x3
+ beq _081A6108
+ b _081A6128
+_081A6096:
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r1, =0x00000de2
+ adds r2, r1
+ adds r2, r0
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _081A6128
+ .pool
+_081A60B4:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A60E4
+ ldr r2, [r6]
+ ldr r0, =0x00000cdc
+ adds r2, r0
+ ldr r3, =gUnknown_08612164
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ orrs r0, r1
+ str r0, [r2]
+ b _081A6128
+ .pool
+_081A60E4:
+ ldr r2, [r6]
+ ldr r1, =0x00000cdc
+ adds r2, r1
+ ldr r3, =gUnknown_08612174
+ lsls r1, r5, 2
+ lsls r0, r4, 3
+ adds r1, r0
+ adds r1, r3
+ ldr r0, [r2]
+ ldr r1, [r1]
+ ands r0, r1
+ str r0, [r2]
+ b _081A6128
+ .pool
+_081A6108:
+ ldr r3, =gUnknown_03001288
+ ldrb r0, [r3]
+ cmp r0, 0x1
+ bne _081A6128
+ ldr r2, [r6]
+ lsls r0, r5, 1
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r1, =0x00000df2
+ adds r2, r1
+ adds r2, r0
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ strb r1, [r3]
+_081A6128:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A6054
+
+ thumb_func_start sub_81A613C
+sub_81A613C: @ 81A613C
+ 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_81A613C
+
+ thumb_func_start nullsub_75
+nullsub_75: @ 81A6180
+ bx lr
+ thumb_func_end nullsub_75
+
+ thumb_func_start nullsub_123
+nullsub_123: @ 81A6184
+ bx lr
+ thumb_func_end nullsub_123
+
+ thumb_func_start sub_81A6188
+sub_81A6188: @ 81A6188
+ push {lr}
+ bl ZeroPlayerPartyMons
+ bl sub_819A4F8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A6188
+
+ thumb_func_start sub_81A6198
+sub_81A6198: @ 81A6198
+ push {lr}
+ bl sub_819DC00
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A6198
+
+ thumb_func_start sub_81A61A4
+sub_81A61A4: @ 81A61A4
+ ldr r1, =gUnknown_03001288
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A61A4
+
+ thumb_func_start sub_81A61B0
+sub_81A61B0: @ 81A61B0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ str r0, [sp, 0x10]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r1, [r4]
+ ldr r3, [sp, 0x10]
+ lsls r2, r3, 1
+ lsrs r0, 14
+ adds r2, r0
+ ldr r6, =0x00000de2
+ adds r1, r6
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ ldr r2, =gUnknown_0203BC88
+ ldr r1, =gBattleFrontierTrainers
+ str r1, [r2]
+ ldr r5, =0x00000cb2
+ lsls r0, 24
+ str r0, [sp, 0x20]
+ mov r8, r0
+_081A61FA:
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ mov r2, r8
+ lsrs r0, r2, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r7, 0
+ ldr r1, [r4]
+ adds r0, r1, r5
+ ldr r6, [sp, 0x10]
+ lsls r6, 24
+ str r6, [sp, 0x1C]
+ ldrh r0, [r0]
+ cmp r7, r0
+ bge _081A6244
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ ldr r6, =gSaveBlock2Ptr
+ cmp r0, r3
+ beq _081A6244
+ ldr r1, [r6]
+ ldr r6, =0x00000cb2
+ adds r0, r1, r6
+ ldrh r2, [r0]
+ ldr r0, =0x00000cb4
+ adds r1, r0
+_081A6236:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, r2
+ bge _081A6244
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081A6236
+_081A6244:
+ ldr r0, [r4]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldr r6, =gSaveBlock2Ptr
+ ldrh r0, [r0]
+ cmp r7, r0
+ bne _081A61FA
+ ldr r0, =gTrainerBattleOpponent_A
+ strh r3, [r0]
+ ldr r2, [r6]
+ adds r1, r2, r1
+ ldrh r0, [r1]
+ cmp r0, 0x5
+ bhi _081A626C
+ adds r1, r0, 0
+ lsls r1, 1
+ ldr r4, =0x00000cb4
+ adds r0, r2, r4
+ adds r0, r1
+ strh r3, [r0]
+_081A626C:
+ movs r7, 0
+ mov r10, sp
+ movs r6, 0
+ lsls r6, 1
+ str r6, [sp, 0x14]
+ add r6, sp
+ str r6, [sp, 0x18]
+_081A627A:
+ ldr r1, [sp, 0x1C]
+ lsrs r0, r1, 24
+ ldr r2, [sp, 0x20]
+ lsrs r1, r2, 24
+ movs r2, 0
+ bl sub_81A6EF0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r4, =gUnknown_0203BC8C
+ ldr r2, [r4]
+ lsls r1, r0, 4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0xC9
+ beq _081A636E
+ movs r3, 0
+ ldr r6, =gSaveBlock2Ptr
+ mov r8, r1
+ adds r5, r0, 0
+ ldr r1, [r6]
+_081A62A6:
+ movs r4, 0xE7
+ lsls r4, 4
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 4
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _081A62C0
+ adds r1, 0xC
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _081A62A6
+_081A62C0:
+ cmp r3, 0x6
+ bne _081A636E
+ ldr r6, [sp, 0x10]
+ cmp r6, 0
+ bne _081A62D0
+ ldr r0, =0x00000351
+ cmp r9, r0
+ bhi _081A636E
+_081A62D0:
+ movs r2, 0
+ adds r4, r2, r7
+ cmp r2, r4
+ bge _081A6302
+ ldr r1, [sp, 0x18]
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _081A6302
+ adds r6, r4, 0
+ ldr r3, =gUnknown_0203BC8C
+ mov r12, r3
+ mov r5, r8
+ ldr r3, [sp, 0x14]
+ add r3, sp
+_081A62EC:
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, r6
+ bge _081A6302
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r5, r0
+ ldrh r1, [r3]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _081A62EC
+_081A6302:
+ cmp r2, r4
+ bne _081A636E
+ movs r2, 0
+ cmp r2, r4
+ bge _081A633E
+ ldr r3, =gBattleFrontierHeldItems
+ mov r12, r3
+ add r0, sp, 0x8
+ ldr r6, [sp, 0x14]
+ adds r3, r0, r6
+ mov r0, r8
+ str r0, [sp, 0x24]
+ adds r5, r4, 0
+_081A631C:
+ ldrh r1, [r3]
+ cmp r1, 0
+ beq _081A6336
+ ldr r6, =gUnknown_0203BC8C
+ ldr r0, [r6]
+ ldr r6, [sp, 0x24]
+ adds r0, r6, r0
+ ldrb r0, [r0, 0xA]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _081A633E
+_081A6336:
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ blt _081A631C
+_081A633E:
+ cmp r2, r4
+ bne _081A636E
+ lsls r4, r7, 1
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ add r1, r8
+ ldrh r0, [r1]
+ mov r2, r10
+ strh r0, [r2]
+ add r2, sp, 0x8
+ adds r2, r4
+ ldr r3, =gBattleFrontierHeldItems
+ ldrb r0, [r1, 0xA]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldr r0, =gUnknown_03006298
+ adds r4, r0
+ mov r3, r9
+ strh r3, [r4]
+ movs r4, 0x2
+ add r10, r4
+ adds r7, 0x1
+_081A636E:
+ cmp r7, 0x3
+ bne _081A627A
+ 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_81A61B0
+
+ thumb_func_start sub_81A63B8
+sub_81A63B8: @ 81A63B8
+ push {lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_8162614
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A63B8
+
+ thumb_func_start sub_81A63CC
+sub_81A63CC: @ 81A63CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _081A63FC
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ b _081A6400
+ .pool
+_081A63FC:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+_081A6400:
+ str r0, [r1]
+ movs r7, 0
+ ldr r2, =gSaveBlock2Ptr
+ mov r8, r2
+_081A6408:
+ mov r0, r8
+ ldr r1, [r0]
+ adds r0, r7, 0x3
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, =gUnknown_03006298
+ lsls r6, r7, 1
+ adds r6, r0
+ ldrh r0, [r6]
+ movs r2, 0xE7
+ lsls r2, 4
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r0, =gEnemyParty
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0x28
+ movs r2, 0
+ bl GetBoxMonData
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldr r2, =0x00000e78
+ adds r1, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldr r1, [r2]
+ ldr r2, =0x00000e74
+ adds r1, r2
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ movs r2, 0
+ bl GetBoxMonData
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldr r2, =0x00000e79
+ adds r1, r2
+ strb r0, [r1]
+ ldrh r1, [r6]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r2, [r1, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl SetMonData
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _081A6408
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A63CC
+
+ thumb_func_start sub_81A64C4
+sub_81A64C4: @ 81A64C4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r3, 0x3
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0x2
+ bne _081A6500
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+ str r0, [r1]
+ movs r2, 0x1E
+ str r2, [sp, 0x14]
+ b _081A6518
+ .pool
+_081A6500:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ movs r4, 0x32
+ str r4, [sp, 0x14]
+ cmp r0, 0
+ beq _081A6518
+ movs r5, 0x64
+ str r5, [sp, 0x14]
+_081A6518:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _081A6522
+ b _081A666C
+_081A6522:
+ bl ZeroPlayerPartyMons
+ movs r0, 0
+ mov r8, r0
+ mov r1, sp
+ adds r1, 0x12
+ str r1, [sp, 0x1C]
+ ldr r2, =gUnknown_0203BC8C
+ mov r9, r2
+_081A6534:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r2, [r4]
+ mov r5, r8
+ lsls r5, 1
+ mov r10, r5
+ mov r3, r10
+ add r3, r8
+ lsls r3, 2
+ adds r1, r2, r3
+ movs r4, 0xE7
+ lsls r4, 4
+ adds r0, r1, r4
+ ldrh r7, [r0]
+ ldr r5, =0x00000e78
+ adds r1, r5
+ ldrb r6, [r1]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ mov r4, r9
+ ldr r1, [r4]
+ lsls r4, r7, 4
+ adds r1, r4, r1
+ ldrh r1, [r1]
+ movs r5, 0x1
+ str r5, [sp]
+ ldr r5, =0x00000e74
+ adds r2, r5
+ adds r2, r3
+ ldr r2, [r2]
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ adds r3, r6, 0
+ bl CreateMon
+ movs r1, 0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r4, r0
+ ldrb r4, [r4, 0xB]
+ mov r5, r8
+ adds r5, 0x1
+ str r5, [sp, 0x18]
+ movs r5, 0x5
+_081A6596:
+ adds r0, r4, 0
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _081A65A2
+ adds r1, 0x1
+_081A65A2:
+ lsrs r4, 1
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081A6596
+ movs r0, 0xFF
+ lsls r0, 1
+ bl __divsi3
+ add r1, sp, 0x10
+ strh r0, [r1]
+ movs r4, 0x1
+ movs r5, 0
+ lsls r7, 4
+ movs r0, 0x64
+ mov r6, r8
+ muls r6, r0
+ ldr r3, =gPlayerParty
+_081A65C4:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrb r0, [r0, 0xB]
+ ands r0, r4
+ cmp r0, 0
+ beq _081A65E2
+ adds r1, r5, 0
+ adds r1, 0x1A
+ adds r0, r6, r3
+ add r2, sp, 0x10
+ str r3, [sp, 0x20]
+ bl SetMonData
+ ldr r3, [sp, 0x20]
+_081A65E2:
+ lsls r0, r4, 25
+ lsrs r4, r0, 24
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081A65C4
+ movs r2, 0x64
+ mov r4, r8
+ muls r4, r2
+ ldr r5, =gPlayerParty
+ adds r0, r4, r5
+ bl CalculateMonStats
+ movs r0, 0
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ movs r6, 0
+_081A6602:
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r0, r4, r5
+ bl sub_81A7024
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081A6602
+ movs r5, 0x64
+ mov r4, r8
+ muls r4, r5
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r2, r10
+ add r2, r8
+ lsls r2, 2
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ adds r2, r0
+ ldr r0, =0x00000e79
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl SetMonData
+ ldr r1, [sp, 0x18]
+ mov r8, r1
+ cmp r1, 0x2
+ bgt _081A666C
+ b _081A6534
+_081A666C:
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A667A
+ cmp r0, 0x2
+ beq _081A667A
+ b _081A67AE
+_081A667A:
+ movs r2, 0
+ mov r8, r2
+ ldr r4, =gUnknown_0203BC8C
+ mov r9, r4
+_081A6682:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r3, [r5]
+ mov r0, r8
+ adds r0, 0x3
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r1, r3, r2
+ movs r4, 0xE7
+ lsls r4, 4
+ adds r0, r1, r4
+ ldrh r7, [r0]
+ ldr r5, =0x00000e78
+ adds r1, r5
+ ldrb r6, [r1]
+ movs r1, 0x64
+ mov r0, r8
+ muls r0, r1
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ mov r4, r9
+ ldr r1, [r4]
+ lsls r4, r7, 4
+ adds r1, r4, r1
+ ldrh r1, [r1]
+ movs r5, 0x1
+ str r5, [sp]
+ ldr r5, =0x00000e74
+ adds r3, r5
+ adds r3, r2
+ ldr r2, [r3]
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ adds r3, r6, 0
+ bl CreateMon
+ movs r1, 0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r4, r0
+ ldrb r4, [r4, 0xB]
+ mov r5, r8
+ lsls r5, 1
+ mov r10, r5
+ mov r0, r8
+ adds r0, 0x1
+ str r0, [sp, 0x18]
+ movs r5, 0x5
+_081A66E8:
+ adds r0, r4, 0
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _081A66F4
+ adds r1, 0x1
+_081A66F4:
+ lsrs r4, 1
+ subs r5, 0x1
+ cmp r5, 0
+ bge _081A66E8
+ add r4, sp, 0x10
+ movs r0, 0xFF
+ lsls r0, 1
+ bl __divsi3
+ strh r0, [r4]
+ movs r4, 0x1
+ movs r5, 0
+ lsls r7, 4
+ movs r0, 0x64
+ mov r6, r8
+ muls r6, r0
+ ldr r3, =gEnemyParty
+_081A6716:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ ldrb r0, [r0, 0xB]
+ ands r0, r4
+ cmp r0, 0
+ beq _081A6734
+ adds r1, r5, 0
+ adds r1, 0x1A
+ adds r0, r6, r3
+ add r2, sp, 0x10
+ str r3, [sp, 0x20]
+ bl SetMonData
+ ldr r3, [sp, 0x20]
+_081A6734:
+ lsls r0, r4, 25
+ lsrs r4, r0, 24
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081A6716
+ movs r2, 0x64
+ mov r4, r8
+ muls r4, r2
+ ldr r5, =gEnemyParty
+ adds r0, r4, r5
+ bl CalculateMonStats
+ movs r6, 0
+_081A674E:
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, r6, 24
+ lsrs r2, 24
+ adds r0, r4, r5
+ bl sub_81A7024
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081A674E
+ movs r2, 0x64
+ mov r4, r8
+ muls r4, r2
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ mov r5, r9
+ ldr r0, [r5]
+ adds r0, r7, r0
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r2, r10
+ add r2, r8
+ lsls r2, 2
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ adds r2, r0
+ ldr r5, =0x00000e9d
+ adds r2, r5
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl SetMonData
+ ldr r0, [sp, 0x18]
+ mov r8, r0
+ cmp r0, 0x2
+ bgt _081A67AE
+ b _081A6682
+_081A67AE:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A64C4
+
+ thumb_func_start sub_81A67EC
+sub_81A67EC: @ 81A67EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4C
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0x38]
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x3C]
+ ldr r2, =gSaveBlock2Ptr
+ mov r9, r2
+ movs r2, 0
+ adds r3, r1, 0
+ adds r1, r0, 0
+ mov r0, sp
+ movs r4, 0x5
+ mov r8, r4
+_081A681A:
+ strh r2, [r0]
+ strh r2, [r1]
+ strh r2, [r3]
+ adds r3, 0x2
+ adds r1, 0x2
+ adds r0, 0x2
+ movs r5, 0x1
+ negs r5, r5
+ add r8, r5
+ mov r4, r8
+ cmp r4, 0
+ bge _081A681A
+ mov r5, r9
+ ldr r0, [r5]
+ ldr r7, =0x00000ca9
+ adds r0, r7
+ ldrb r4, [r0]
+ lsls r4, 30
+ lsrs r4, 30
+ ldr r6, =0x000040ce
+ adds r0, r6, 0
+ bl VarGet
+ lsls r0, 24
+ ldr r1, [r5]
+ lsls r4, 1
+ lsrs r0, 22
+ adds r4, r0
+ ldr r5, =0x00000de2
+ adds r1, r5
+ adds r1, r4
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ adds r0, r6, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r2, 0
+ cmp r0, 0x1
+ bne _081A6878
+ movs r2, 0x1
+_081A6878:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, r7
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081A68B4
+ movs r4, 0x1
+ str r4, [sp, 0x28]
+ b _081A68B8
+ .pool
+_081A68B4:
+ movs r5, 0
+ str r5, [sp, 0x28]
+_081A68B8:
+ adds r0, r2, 0
+ ldr r1, [sp, 0x28]
+ bl sub_81A6F70
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x2C]
+ movs r0, 0
+ mov r10, r0
+ mov r8, r0
+ ldr r1, [sp, 0x3C]
+ str r1, [sp, 0x40]
+ mov r2, sp
+ str r2, [sp, 0x44]
+ lsls r4, r0, 1
+ str r4, [sp, 0x30]
+ ldr r5, [sp, 0x38]
+ adds r5, r4
+ str r5, [sp, 0x34]
+_081A68DE:
+ ldr r0, [sp, 0x2C]
+ cmp r8, r0
+ bge _081A68EC
+ ldr r0, [sp, 0x28]
+ ldr r1, [sp, 0x24]
+ movs r2, 0x1
+ b _081A68F2
+_081A68EC:
+ ldr r0, [sp, 0x28]
+ ldr r1, [sp, 0x24]
+ movs r2, 0
+_081A68F2:
+ bl sub_81A6EF0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ lsls r2, r7, 4
+ adds r4, r2, r1
+ ldrh r1, [r4]
+ mov r9, r2
+ cmp r1, 0xC9
+ beq _081A69E2
+ movs r3, 0
+ mov r2, r8
+ adds r6, r3, r2
+ cmp r3, r6
+ bge _081A6950
+ ldr r5, [sp, 0x34]
+ ldrh r0, [r5]
+ cmp r0, r7
+ beq _081A6950
+ mov r12, r4
+ adds r2, r1, 0
+ lsls r4, r3, 1
+ ldr r1, [sp, 0x30]
+ add r1, sp
+ str r6, [sp, 0x48]
+_081A6928:
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _081A693A
+ mov r0, r10
+ cmp r0, 0
+ bne _081A6950
+ mov r5, r12
+ ldrh r5, [r5]
+ mov r10, r5
+_081A693A:
+ adds r4, 0x2
+ adds r1, 0x2
+ adds r3, 0x1
+ ldr r0, [sp, 0x48]
+ cmp r3, r0
+ bge _081A6950
+ ldr r5, [sp, 0x38]
+ adds r0, r5, r4
+ ldrh r0, [r0]
+ cmp r0, r7
+ bne _081A6928
+_081A6950:
+ cmp r3, r6
+ bne _081A69E2
+ movs r3, 0
+ cmp r3, r6
+ bge _081A699C
+ ldr r0, =gBattleFrontierHeldItems
+ mov r12, r0
+ ldr r1, [sp, 0x30]
+ ldr r2, [sp, 0x3C]
+ adds r5, r1, r2
+_081A6964:
+ ldrh r4, [r5]
+ cmp r4, 0
+ beq _081A6994
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ mov r2, r9
+ adds r1, r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _081A6994
+ ldrh r0, [r1]
+ cmp r0, r10
+ bne _081A699C
+ movs r4, 0
+ mov r10, r4
+ b _081A699C
+ .pool
+_081A6994:
+ adds r5, 0x2
+ adds r3, 0x1
+ cmp r3, r6
+ blt _081A6964
+_081A699C:
+ cmp r3, r6
+ bne _081A69E2
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r5, r8
+ lsls r3, r5, 1
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0xE7
+ lsls r0, 4
+ adds r1, r0
+ strh r7, [r1]
+ ldr r2, =gUnknown_0203BC8C
+ ldr r1, [r2]
+ add r1, r9
+ ldrh r0, [r1]
+ ldr r4, [sp, 0x44]
+ strh r0, [r4]
+ ldr r2, =gBattleFrontierHeldItems
+ ldrb r0, [r1, 0xA]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r5, [sp, 0x40]
+ strh r0, [r5]
+ ldr r0, [sp, 0x38]
+ adds r3, r0, r3
+ strh r7, [r3]
+ adds r5, 0x2
+ str r5, [sp, 0x40]
+ adds r4, 0x2
+ str r4, [sp, 0x44]
+ movs r1, 0x1
+ add r8, r1
+_081A69E2:
+ mov r2, r8
+ cmp r2, 0x6
+ beq _081A69EA
+ b _081A68DE
+_081A69EA:
+ add sp, 0x4C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A67EC
+
+ thumb_func_start sub_81A6A08
+sub_81A6A08: @ 81A6A08
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ movs r4, 0
+ add r5, sp, 0x14
+ ldr r7, =gScriptResult
+ movs r1, 0
+_081A6A1E:
+ mov r2, sp
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x11
+ bls _081A6A1E
+ movs r4, 0
+ ldr r0, =gUnknown_03006298
+ mov r8, r0
+ ldr r0, =gUnknown_0203BC8C
+ ldr r6, [r0]
+ ldr r1, =gBaseStats
+ mov r12, r1
+_081A6A3C:
+ lsls r0, r4, 1
+ add r0, r8
+ ldrh r0, [r0]
+ lsls r0, 4
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r2, r12
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x6]
+ mov r0, sp
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r1, [r3, 0x7]
+ cmp r2, r1
+ beq _081A6A70
+ ldrb r0, [r3, 0x7]
+ mov r2, sp
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081A6A70:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A6A3C
+ movs r0, 0
+ strb r0, [r5]
+ strb r0, [r5, 0x1]
+ movs r4, 0x1
+ adds r3, r5, 0
+_081A6A84:
+ ldrb r0, [r3]
+ add r0, sp
+ mov r2, sp
+ adds r1, r2, r4
+ ldrb r2, [r0]
+ ldrb r0, [r1]
+ cmp r2, r0
+ bcs _081A6AAC
+ strb r4, [r5]
+ b _081A6AB2
+ .pool
+_081A6AAC:
+ cmp r2, r0
+ bne _081A6AB2
+ strb r4, [r3, 0x1]
+_081A6AB2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x11
+ bls _081A6A84
+ ldrb r1, [r5]
+ mov r4, sp
+ adds r0, r4, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ beq _081A6ADA
+ ldrb r3, [r5, 0x1]
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bhi _081A6AD6
+ cmp r1, r3
+ bne _081A6ADA
+_081A6AD6:
+ strh r1, [r7]
+ b _081A6ADE
+_081A6ADA:
+ movs r0, 0x12
+ strh r0, [r7]
+_081A6ADE:
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A6A08
+
+ thumb_func_start sub_81A6AEC
+sub_81A6AEC: @ 81A6AEC
+ push {r4-r7,lr}
+ sub sp, 0x8
+ movs r7, 0
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ str r0, [r1]
+ movs r4, 0
+ movs r1, 0
+_081A6AFC:
+ mov r2, sp
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081A6AFC
+ movs r4, 0
+_081A6B0E:
+ ldr r1, =gUnknown_03006298
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r5, 0
+_081A6B18:
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ lsls r0, r6, 4
+ adds r0, r1
+ lsls r1, r5, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_81A6BA4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081A6B18
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A6B0E
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0x1
+ adds r5, r1, 0
+ ldr r3, =gBattleFactoryStyleRequiredMoveCounts
+ adds r2, r5, 0
+_081A6B5C:
+ mov r1, sp
+ adds r0, r1, r4
+ subs r1, r4, 0x1
+ adds r1, r3
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _081A6B74
+ strh r4, [r2]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_081A6B74:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081A6B5C
+ cmp r7, 0x2
+ bls _081A6B86
+ movs r0, 0x8
+ strh r0, [r5]
+_081A6B86:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A6AEC
+
+ thumb_func_start sub_81A6BA4
+sub_81A6BA4: @ 81A6BA4
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r2, 0
+ ldr r6, =gBattleFactoryStyleMoveListPointers
+_081A6BAE:
+ movs r3, 0
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r4, r2, 0x1
+ cmp r0, 0
+ beq _081A6BE4
+ lsls r0, r4, 24
+ lsrs r2, r0, 24
+_081A6BC2:
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _081A6BD4
+ adds r0, r2, 0
+ b _081A6BEE
+ .pool
+_081A6BD4:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081A6BC2
+_081A6BE4:
+ lsls r0, r4, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x6
+ bls _081A6BAE
+ movs r0, 0
+_081A6BEE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A6BA4
+
+ thumb_func_start sub_81A6BF4
+sub_81A6BF4: @ 81A6BF4
+ push {lr}
+ movs r2, 0
+ ldr r1, =gUnknown_02037318
+ ldr r3, =0xfffffea5
+ adds r0, r3, 0
+ ldrh r1, [r1, 0x12]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081A6C0C
+ movs r2, 0x1
+_081A6C0C:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A6BF4
+
+ thumb_func_start sub_81A6C1C
+sub_81A6C1C: @ 81A6C1C
+ push {r4,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ beq _081A6C48
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gBattleFrontierMons
+ b _081A6C4C
+ .pool
+_081A6C48:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+_081A6C4C:
+ str r0, [r1]
+ movs r4, 0
+_081A6C50:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r2, r1
+ movs r1, 0xE7
+ lsls r1, 4
+ adds r2, r1
+ ldrh r2, [r2]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r1, [r1]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r2, [r2, 0xA]
+ lsls r2, 1
+ ldr r1, =gBattleFrontierHeldItems
+ adds r2, r1
+ movs r1, 0xC
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A6C50
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A6C1C
+
+ thumb_func_start sub_81A6CA8
+sub_81A6CA8: @ 81A6CA8
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ negs r2, r1
+ orrs r2, r1
+ lsrs r2, 31
+ lsrs r1, r0, 24
+ cmp r1, 0x8
+ bls _081A6CBE
+ movs r1, 0x7
+_081A6CBE:
+ ldr r0, =gUnknown_08612184
+ lsls r1, 1
+ adds r1, r2, r1
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A6CA8
+
+ thumb_func_start sub_81A6CD0
+sub_81A6CD0: @ 81A6CD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ str r0, [sp, 0x2C]
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 24
+ ldr r1, [r4]
+ ldr r3, [sp, 0x2C]
+ lsls r2, r3, 1
+ lsrs r0, 22
+ adds r2, r0
+ ldr r7, =0x00000de2
+ adds r1, r7
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r1, r0, 24
+ str r1, [sp, 0x30]
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r2
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_81A6CA8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x24]
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x20]
+ movs r3, 0
+ mov r9, r3
+ ldr r1, [r4]
+ ldrb r4, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ orrs r4, r0
+ str r4, [sp, 0x28]
+_081A6D4C:
+ ldr r0, [sp, 0x2C]
+ ldr r1, [sp, 0x30]
+ movs r2, 0
+ bl sub_81A6EF0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r7, =gUnknown_0203BC8C
+ ldr r1, [r7]
+ lsls r0, r5, 4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xC9
+ bne _081A6D6A
+ b _081A6EB8
+_081A6D6A:
+ ldr r0, [sp, 0x20]
+ cmp r0, 0x32
+ bne _081A6D78
+ ldr r0, =0x00000351
+ cmp r5, r0
+ bls _081A6D78
+ b _081A6EB8
+_081A6D78:
+ movs r2, 0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ movs r3, 0xE7
+ lsls r3, 4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _081A6DA2
+ adds r4, r1, 0
+ movs r1, 0
+_081A6D8E:
+ adds r1, 0xC
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _081A6DA2
+ ldr r0, [r4]
+ adds r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _081A6D8E
+_081A6DA2:
+ cmp r2, 0x6
+ beq _081A6DA8
+ b _081A6EB8
+_081A6DA8:
+ movs r4, 0
+ cmp r4, r9
+ bge _081A6DDC
+ add r2, sp, 0xC
+ ldr r7, =gUnknown_0203BC8C
+ ldr r0, [r7]
+ lsls r1, r5, 4
+ adds r0, r1, r0
+ ldrh r2, [r2]
+ adds r7, r1, 0
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _081A6DDC
+ ldr r6, =gUnknown_0203BC8C
+ adds r3, r7, 0
+ add r2, sp, 0xC
+_081A6DC8:
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, r9
+ bge _081A6DDC
+ ldr r0, [r6]
+ adds r0, r3, r0
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _081A6DC8
+_081A6DDC:
+ cmp r4, r9
+ bne _081A6EB8
+ movs r4, 0
+ cmp r4, r9
+ bge _081A6E0C
+ ldr r7, =gBattleFrontierHeldItems
+ ldr r6, =gUnknown_0203BC8C
+ add r2, sp, 0x14
+ lsls r3, r5, 4
+_081A6DEE:
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _081A6E04
+ ldr r0, [r6]
+ adds r0, r3, r0
+ ldrb r0, [r0, 0xA]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _081A6E0C
+_081A6E04:
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, r9
+ blt _081A6DEE
+_081A6E0C:
+ cmp r4, r9
+ bne _081A6EB8
+ mov r0, r9
+ lsls r2, r0, 1
+ mov r1, sp
+ adds r1, r2
+ adds r1, 0xC
+ ldr r3, =gUnknown_0203BC8C
+ ldr r4, [r3]
+ lsls r5, 4
+ mov r8, r5
+ add r4, r8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ add r1, sp, 0x14
+ adds r1, r2
+ ldr r2, =gBattleFrontierHeldItems
+ ldrb r0, [r4, 0xA]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, 0x64
+ mov r5, r9
+ muls r5, r0
+ ldr r6, =gEnemyParty
+ adds r0, r5, r6
+ ldrh r1, [r4]
+ ldr r7, [sp, 0x20]
+ lsls r2, r7, 24
+ ldrb r3, [r4, 0xC]
+ ldr r7, [sp, 0x24]
+ str r7, [sp]
+ ldrb r4, [r4, 0xB]
+ str r4, [sp, 0x4]
+ ldr r4, [sp, 0x28]
+ str r4, [sp, 0x8]
+ lsrs r2, 24
+ bl sub_8068634
+ add r0, sp, 0x1C
+ movs r7, 0
+ strb r7, [r0]
+ movs r4, 0
+ mov r7, r8
+ mov r10, r0
+ movs r0, 0x1
+ add r0, r9
+ mov r8, r0
+_081A6E6E:
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, [r1]
+ adds r0, r7, r0
+ lsls r1, r4, 1
+ adds r0, 0x2
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r5, r6
+ bl sub_81A7024
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _081A6E6E
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ mov r2, r10
+ bl SetMonData
+ ldr r2, =gUnknown_0203BC8C
+ ldr r0, [r2]
+ adds r0, r7, r0
+ ldrb r2, [r0, 0xA]
+ lsls r2, 1
+ ldr r0, =gBattleFrontierHeldItems
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r9, r8
+_081A6EB8:
+ mov r3, r9
+ cmp r3, 0x3
+ beq _081A6EC0
+ b _081A6D4C
+_081A6EC0:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A6CD0
+
+ thumb_func_start sub_81A6EF0
+sub_81A6EF0: @ 81A6EF0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r4, 0x8
+ negs r1, r0
+ orrs r1, r0
+ asrs r1, 31
+ ands r1, r4
+ adds r4, r1, 0
+ cmp r3, 0x6
+ bhi _081A6F2C
+ cmp r2, 0
+ beq _081A6F20
+ ldr r2, =gUnknown_08612194
+ adds r1, r3
+ adds r1, 0x1
+ b _081A6F38
+ .pool
+_081A6F20:
+ ldr r2, =gUnknown_08612194
+ adds r1, r3
+ b _081A6F38
+ .pool
+_081A6F2C:
+ adds r1, r3, 0
+ cmp r1, 0x7
+ beq _081A6F34
+ movs r1, 0x7
+_081A6F34:
+ ldr r2, =gUnknown_08612194
+ adds r1, r4, r1
+_081A6F38:
+ lsls r1, 2
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ adds r1, r2
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ subs r0, r4
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r4, r0, r4
+ lsls r4, 16
+ lsrs r0, r4, 16
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A6EF0
+
+ thumb_func_start sub_81A6F70
+sub_81A6F70: @ 81A6F70
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ ldr r2, =gSaveBlock2Ptr
+ ldr r2, [r2]
+ lsrs r1, 23
+ lsrs r0, 22
+ adds r1, r0
+ ldr r0, =0x00000df2
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ movs r0, 0
+ cmp r1, 0xE
+ bls _081A6FA8
+ movs r0, 0x1
+ cmp r1, 0x15
+ bls _081A6FA8
+ movs r0, 0x2
+ cmp r1, 0x1C
+ bls _081A6FA8
+ movs r0, 0x3
+ cmp r1, 0x23
+ bls _081A6FA8
+ movs r0, 0x5
+ cmp r1, 0x2A
+ bhi _081A6FA8
+ movs r0, 0x4
+_081A6FA8:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A6F70
+
+ thumb_func_start GetAiScriptsInBattleFactory
+GetAiScriptsInBattleFactory: @ 81A6FB4
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r4, r0, 30
+ cmp r4, 0x2
+ beq _081A6FF8
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ ldr r1, [r5]
+ lsls r2, r4, 1
+ lsrs r0, 14
+ adds r2, r0
+ ldr r0, =0x00000de2
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r1, [r0]
+ ldr r0, =0x000003fe
+ cmp r1, r0
+ beq _081A7018
+ cmp r2, 0x1
+ bgt _081A7014
+_081A6FF8:
+ movs r0, 0
+ b _081A701E
+ .pool
+_081A7014:
+ cmp r2, 0x3
+ ble _081A701C
+_081A7018:
+ movs r0, 0x7
+ b _081A701E
+_081A701C:
+ movs r0, 0x1
+_081A701E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetAiScriptsInBattleFactory
+
+ thumb_func_start sub_81A7024
+sub_81A7024: @ 81A7024
+ push {lr}
+ lsls r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsrs r1, 16
+ cmp r1, 0xD8
+ bne _081A7034
+ movs r1, 0xDA
+_081A7034:
+ bl SetMonMoveSlot
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A7024
+
+ thumb_func_start sub_81A703C
+sub_81A703C: @ 81A703C
+ push {lr}
+ ldr r1, =gUnknown_086125F8
+ 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_81A703C
+
+ thumb_func_start sub_81A705C
+sub_81A705C: @ 81A705C
+ push {lr}
+ bl sub_81A79EC
+ ldr r1, =gUnknown_0300128C
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A705C
+
+ thumb_func_start sub_81A7070
+sub_81A7070: @ 81A7070
+ push {r4-r7,lr}
+ ldr r0, =0x00004010
+ movs r1, 0x1C
+ bl VarSet
+ ldr r0, =0x00004011
+ movs r1, 0xE2
+ bl VarSet
+ movs r4, 0x1
+ movs r6, 0
+ movs r5, 0
+ movs r7, 0
+ ldr r0, =gUnknown_0300128C
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bhi _081A7132
+ lsls r0, 2
+ ldr r1, =_081A70AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A70AC:
+ .4byte _081A70D0
+ .4byte _081A70DA
+ .4byte _081A70DE
+ .4byte _081A70E8
+ .4byte _081A70FC
+ .4byte _081A70D6
+ .4byte _081A7100
+ .4byte _081A7108
+ .4byte _081A710E
+_081A70D0:
+ movs r0, 0
+ bl sub_81A82A4
+_081A70D6:
+ movs r4, 0
+ b _081A711A
+_081A70DA:
+ movs r5, 0x1C
+ b _081A711A
+_081A70DE:
+ bl sub_81A7B58
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _081A711A
+_081A70E8:
+ movs r5, 0x30
+ ldr r0, =gUnknown_0300128D
+ ldrb r0, [r0]
+ movs r7, 0xE1
+ cmp r0, 0x1
+ bne _081A7118
+ movs r7, 0xE2
+ b _081A7118
+ .pool
+_081A70FC:
+ movs r5, 0x30
+ b _081A711A
+_081A7100:
+ movs r0, 0x1
+ bl sub_81A82A4
+ b _081A7114
+_081A7108:
+ bl sub_81A8374
+ b _081A70D6
+_081A710E:
+ movs r0, 0x5
+ bl sub_81A5030
+_081A7114:
+ movs r7, 0x1C
+ movs r4, 0
+_081A7118:
+ movs r6, 0x1
+_081A711A:
+ cmp r4, 0x1
+ bne _081A7126
+ ldr r0, =0x00004010
+ adds r1, r5, 0
+ bl VarSet
+_081A7126:
+ cmp r6, 0x1
+ bne _081A7132
+ ldr r0, =0x00004011
+ adds r1, r7, 0
+ bl VarSet
+_081A7132:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7070
+
+ thumb_func_start sub_81A7140
+sub_81A7140: @ 81A7140
+ push {lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r2, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bhi _081A723A
+ lsls r0, 2
+ ldr r1, =_081A7174
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A7174:
+ .4byte _081A7188
+ .4byte _081A71A0
+ .4byte _081A71C4
+ .4byte _081A71E8
+ .4byte _081A720C
+_081A7188:
+ ldr r0, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000e02
+ adds r1, r3
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _081A723A
+ .pool
+_081A71A0:
+ ldr r2, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000ca9
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r3, =0x00000e04
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ b _081A7238
+ .pool
+_081A71C4:
+ ldr r2, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000ca9
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r3, =0x00000e08
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ b _081A7238
+ .pool
+_081A71E8:
+ ldr r2, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000ca9
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r3, =0x00000e0c
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r1]
+ b _081A7238
+ .pool
+_081A720C:
+ cmp r2, 0
+ beq _081A7228
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 4
+ b _081A7236
+ .pool
+_081A7228:
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r3, =0x00000cdc
+ adds r0, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+_081A7236:
+ ands r0, r1
+_081A7238:
+ strh r0, [r2]
+_081A723A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7140
+
+ thumb_func_start sub_81A7248
+sub_81A7248: @ 81A7248
+ push {r4,r5,lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r3, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _081A7264
+ b _081A73AA
+_081A7264:
+ lsls r0, 2
+ ldr r1, =_081A7280
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A7280:
+ .4byte _081A7294
+ .4byte _081A72AC
+ .4byte _081A72D8
+ .4byte _081A7314
+ .4byte _081A7344
+_081A7294:
+ ldr r0, [r2]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r5, =0x00000e02
+ adds r0, r5
+ strh r1, [r0]
+ b _081A73AA
+ .pool
+_081A72AC:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r3, [r0]
+ ldr r0, =0x0000270f
+ cmp r3, r0
+ bls _081A72B8
+ b _081A73AA
+_081A72B8:
+ ldr r0, [r2]
+ ldr r2, =0x00000ca9
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 30
+ lsrs r1, 29
+ ldr r5, =0x00000e04
+ b _081A732C
+ .pool
+_081A72D8:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r4, [r0]
+ adds r3, r4, 0
+ ldr r0, =0x0000270f
+ cmp r3, r0
+ bhi _081A73AA
+ ldr r1, [r2]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r2, r0, 30
+ lsrs r0, r2, 29
+ ldr r5, =0x00000e08
+ adds r1, r5
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, r3
+ bcs _081A73AA
+ lsrs r0, r2, 29
+ adds r0, r1, r0
+ strh r4, [r0]
+ b _081A73AA
+ .pool
+_081A7314:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r3, [r0]
+ ldr r0, =0x0000270f
+ cmp r3, r0
+ bhi _081A73AA
+ ldr r0, [r2]
+ ldr r2, =0x00000ca9
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 30
+ lsrs r1, 29
+ ldr r5, =0x00000e0c
+_081A732C:
+ adds r0, r5
+ adds r0, r1
+ strh r3, [r0]
+ b _081A73AA
+ .pool
+_081A7344:
+ cmp r3, 0
+ beq _081A737C
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A7368
+ ldr r0, [r2]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ b _081A73A8
+ .pool
+_081A7368:
+ ldr r0, [r2]
+ ldr r2, =0x00000cdc
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r2, =0xfffff7ff
+ b _081A73A6
+ .pool
+_081A737C:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A739C
+ ldr r0, [r2]
+ ldr r5, =0x00000cdc
+ adds r0, r5
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 3
+ orrs r1, r2
+ b _081A73A8
+ .pool
+_081A739C:
+ ldr r0, [r2]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r2, =0xfffffbff
+_081A73A6:
+ ands r1, r2
+_081A73A8:
+ str r1, [r0]
+_081A73AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7248
+
+ thumb_func_start sub_81A73B8
+sub_81A73B8: @ 81A73B8
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xE
+ bls _081A73DC
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _081A73E0
+ .pool
+_081A73DC:
+ ldr r1, =gScriptResult
+ movs r0, 0
+_081A73E0:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A73B8
+
+ thumb_func_start sub_81A73EC
+sub_81A73EC: @ 81A73EC
+ ldr r0, =gScriptResult
+ ldr r1, =gUnknown_0300128C
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81A73EC
+
+ thumb_func_start sub_81A7400
+sub_81A7400: @ 81A7400
+ ldr r1, =gUnknown_0300128E
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A7400
+
+ thumb_func_start sub_81A740C
+sub_81A740C: @ 81A740C
+ ldr r1, =gUnknown_0300128E
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A740C
+
+ thumb_func_start sub_81A7418
+sub_81A7418: @ 81A7418
+ 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 save_serialize_map
+ movs r0, 0x1
+ bl TrySavingData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7418
+
+ thumb_func_start nullsub_76
+nullsub_76: @ 81A7460
+ bx lr
+ thumb_func_end nullsub_76
+
+ thumb_func_start nullsub_124
+nullsub_124: @ 81A7464
+ bx lr
+ thumb_func_end nullsub_124
+
+ thumb_func_start sub_81A7468
+sub_81A7468: @ 81A7468
+ push {lr}
+ ldr r0, =gUnknown_03001290
+ ldr r0, [r0]
+ cmp r0, 0x20
+ beq _081A748E
+ cmp r0, 0x20
+ bhi _081A7484
+ cmp r0, 0x7
+ beq _081A74BC
+ cmp r0, 0x10
+ beq _081A7498
+ b _081A74C2
+ .pool
+_081A7484:
+ cmp r0, 0x40
+ beq _081A74B0
+ cmp r0, 0x80
+ beq _081A74A4
+ b _081A74C2
+_081A748E:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ b _081A74C0
+ .pool
+_081A7498:
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ b _081A74C0
+ .pool
+_081A74A4:
+ ldr r1, =gScriptResult
+ movs r0, 0x2
+ b _081A74C0
+ .pool
+_081A74B0:
+ ldr r1, =gScriptResult
+ movs r0, 0x3
+ b _081A74C0
+ .pool
+_081A74BC:
+ ldr r1, =gScriptResult
+ movs r0, 0x4
+_081A74C0:
+ strh r0, [r1]
+_081A74C2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7468
+
+ thumb_func_start sub_81A74CC
+sub_81A74CC: @ 81A74CC
+ ldr r0, =gScriptResult
+ ldr r1, =gUnknown_0300128D
+ ldrb r1, [r1]
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81A74CC
+
+ thumb_func_start sub_81A74E0
+sub_81A74E0: @ 81A74E0
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0x1
+ ands r4, r0
+ adds r4, 0x1
+ adds r0, r4, 0
+ bl sub_81A7F38
+ ldr r0, =gScriptResult
+ strh r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A74E0
+
+ thumb_func_start sub_81A7508
+sub_81A7508: @ 81A7508
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _081A7538
+ ldr r1, =gUnknown_0861231C
+ ldr r0, =gUnknown_03001294
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ b _081A7560
+ .pool
+_081A7538:
+ cmp r0, 0xA
+ bhi _081A7554
+ ldr r1, =gUnknown_0861231C
+ ldr r0, =gUnknown_03001294
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x3]
+ b _081A7560
+ .pool
+_081A7554:
+ ldr r1, =gUnknown_0861231C
+ ldr r0, =gUnknown_03001294
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+_081A7560:
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gUnknown_086123E4
+ adds r0, r1
+ bl ConvertBattleFrontierTrainerSpeechToString
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7508
+
+ thumb_func_start sub_81A7580
+sub_81A7580: @ 81A7580
+ push {lr}
+ ldr r0, =sub_81A7EE4
+ movs r1, 0x2
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7580
+
+ thumb_func_start sub_81A7594
+sub_81A7594: @ 81A7594
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r4, 0
+ movs r1, 0
+_081A759E:
+ mov r2, sp
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081A759E
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r2, r0, 16
+ mov r1, sp
+ strb r0, [r1]
+ mov r0, sp
+ lsrs r2, 24
+ strb r2, [r0, 0x1]
+ adds r0, r5, 0
+ movs r1, 0x39
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+_081A75DA:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl CalculatePPWithBonus
+ mov r1, sp
+ strb r0, [r1]
+ adds r1, r4, 0
+ adds r1, 0x11
+ adds r0, r5, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081A75DA
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ strb r1, [r0, 0x2]
+ strb r1, [r0, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A7594
+
+ thumb_func_start sub_81A7628
+sub_81A7628: @ 81A7628
+ push {r4,lr}
+ adds r4, r1, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ cmp r4, 0x20
+ beq _081A7652
+ cmp r4, 0x20
+ bhi _081A7648
+ cmp r4, 0x7
+ beq _081A7664
+ cmp r4, 0x10
+ beq _081A7658
+ b _081A7674
+_081A7648:
+ cmp r4, 0x40
+ beq _081A765E
+ cmp r4, 0x80
+ beq _081A766E
+ b _081A7674
+_081A7652:
+ cmp r0, 0x28
+ bne _081A7674
+ b _081A7672
+_081A7658:
+ cmp r0, 0x29
+ bne _081A7674
+ b _081A7672
+_081A765E:
+ cmp r0, 0x7
+ bne _081A7674
+ b _081A7672
+_081A7664:
+ cmp r0, 0xF
+ beq _081A7672
+ cmp r0, 0x48
+ bne _081A7674
+ b _081A7672
+_081A766E:
+ cmp r0, 0x11
+ bne _081A7674
+_081A7672:
+ movs r1, 0x1
+_081A7674:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A7628
+
+ thumb_func_start sub_81A767C
+sub_81A767C: @ 81A767C
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r3, 0
+ cmp r1, 0x20
+ beq _081A76C4
+ cmp r1, 0x20
+ bhi _081A7696
+ cmp r1, 0x7
+ beq _081A771C
+ cmp r1, 0x10
+ beq _081A7704
+ b _081A771C
+_081A7696:
+ cmp r1, 0x40
+ beq _081A76E0
+ cmp r1, 0x80
+ bne _081A771C
+ ldr r1, =gBaseStats
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x6]
+ cmp r2, 0x8
+ beq _081A771A
+ cmp r2, 0x3
+ beq _081A771A
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x8
+ beq _081A771A
+ cmp r0, 0x3
+ bne _081A771C
+ b _081A771A
+ .pool
+_081A76C4:
+ ldr r0, =gBaseStats
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xF
+ beq _081A771A
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xF
+ bne _081A771C
+ b _081A771A
+ .pool
+_081A76E0:
+ ldr r1, =gBaseStats
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x6]
+ cmp r2, 0x4
+ beq _081A771A
+ cmp r2, 0xD
+ beq _081A771A
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x4
+ beq _081A771A
+ cmp r0, 0xD
+ bne _081A771C
+ b _081A771A
+ .pool
+_081A7704:
+ ldr r0, =gBaseStats
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xA
+ beq _081A771A
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xA
+ bne _081A771C
+_081A771A:
+ movs r3, 0x1
+_081A771C:
+ adds r0, r3, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A767C
+
+ thumb_func_start sub_81A7728
+sub_81A7728: @ 81A7728
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r6, 0
+_081A7736:
+ mov r1, sp
+ adds r0, r1, r6
+ strb r6, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _081A7736
+ movs r4, 0
+ mov r8, r4
+_081A774A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ adds r2, r1, r6
+ ldrb r3, [r2]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x9
+ bls _081A774A
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r4, =0x00000cb2
+ adds r0, r4
+ ldrh r0, [r0]
+ movs r1, 0x1
+ mov r10, r1
+ cmp r0, 0x4
+ bls _081A77A8
+ movs r4, 0x3
+ mov r10, r4
+ cmp r0, 0x9
+ bhi _081A77A8
+ movs r0, 0x2
+ mov r10, r0
+_081A77A8:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r7, =gUnknown_03001290
+_081A77AE:
+ movs r4, 0
+ mov r9, r4
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x22
+ bhi _081A77DC
+ movs r0, 0x80
+ b _081A77FC
+ .pool
+_081A77DC:
+ cmp r0, 0x3B
+ bhi _081A77E4
+ movs r0, 0x20
+ b _081A77FC
+_081A77E4:
+ cmp r0, 0x4F
+ bhi _081A77EC
+ movs r0, 0x40
+ b _081A77FC
+_081A77EC:
+ cmp r1, 0x59
+ bhi _081A77FA
+ movs r0, 0x7
+ b _081A77FC
+_081A77F4:
+ movs r0, 0x1
+ mov r9, r0
+ b _081A786E
+_081A77FA:
+ movs r0, 0x10
+_081A77FC:
+ str r0, [r7]
+ ldr r0, =gUnknown_03001290
+ ldr r0, [r0]
+ ldr r1, [sp, 0x4]
+ cmp r1, r0
+ beq _081A7874
+ str r0, [sp, 0x4]
+ movs r4, 0
+ mov r8, r4
+ movs r6, 0
+_081A7810:
+ mov r1, sp
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7860
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _081A7860
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, [r7]
+ adds r0, r4, 0
+ bl sub_81A767C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A77F4
+_081A7860:
+ cmp r8, r10
+ beq _081A786E
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _081A7810
+_081A786E:
+ mov r4, r8
+ cmp r4, 0
+ beq _081A78CC
+_081A7874:
+ mov r0, r9
+ cmp r0, 0
+ beq _081A77AE
+ ldr r0, =gUnknown_03001290
+ ldr r0, [r0]
+ cmp r0, 0x20
+ beq _081A7898
+ cmp r0, 0x20
+ bhi _081A78D0
+ cmp r0, 0x7
+ beq _081A78D0
+ cmp r0, 0x10
+ beq _081A78A4
+ b _081A78D0
+ .pool
+_081A7898:
+ ldr r1, =gUnknown_0300128D
+ movs r0, 0x1
+ b _081A78D4
+ .pool
+_081A78A4:
+ bl Random
+ lsls r0, 16
+ lsrs r1, r0, 16
+ movs r2, 0x1
+ ands r1, r2
+ cmp r1, 0
+ beq _081A78C0
+ ldr r0, =gUnknown_0300128D
+ strb r2, [r0]
+ b _081A78D6
+ .pool
+_081A78C0:
+ ldr r0, =gUnknown_0300128D
+ strb r1, [r0]
+ b _081A78D6
+ .pool
+_081A78CC:
+ movs r0, 0
+ b _081A7956
+_081A78D0:
+ ldr r1, =gUnknown_0300128D
+ movs r0, 0
+_081A78D4:
+ strb r0, [r1]
+_081A78D6:
+ movs r1, 0
+ mov r8, r1
+ movs r6, 0
+_081A78DC:
+ mov r4, sp
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7946
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _081A7946
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r7, =gUnknown_03001290
+ ldr r1, [r7]
+ adds r0, r5, 0
+ bl sub_81A7628
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7946
+ ldr r1, [r7]
+ adds r0, r4, 0
+ bl sub_81A767C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7946
+ adds r0, r5, 0
+ movs r1, 0x37
+ adds r2, r7, 0
+ bl SetMonData
+_081A7946:
+ cmp r8, r10
+ beq _081A7954
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x2
+ bls _081A78DC
+_081A7954:
+ movs r0, 0x1
+_081A7956:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A7728
+
+ thumb_func_start sub_81A7974
+sub_81A7974: @ 81A7974
+ push {r4-r7,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r7, 0x1
+ cmp r0, 0x4
+ bls _081A798E
+ movs r7, 0x3
+ cmp r0, 0x9
+ bhi _081A798E
+ movs r7, 0x2
+_081A798E:
+ movs r6, 0
+ movs r5, 0
+ b _081A79A2
+ .pool
+_081A799C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081A79A2:
+ cmp r5, 0x2
+ bhi _081A79D8
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A79D4
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _081A79D4
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_081A79D4:
+ cmp r6, r7
+ bne _081A799C
+_081A79D8:
+ cmp r6, 0
+ beq _081A79E4
+ movs r0, 0x1
+ b _081A79E6
+ .pool
+_081A79E4:
+ movs r0, 0
+_081A79E6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A7974
+
+ thumb_func_start sub_81A79EC
+sub_81A79EC: @ 81A79EC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ movs r4, 0xE1
+ lsls r4, 4
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r3, 0x78
+ ands r3, r2
+ adds r5, r1, 0
+ cmp r3, 0x40
+ bne _081A7A10
+ lsls r0, r2, 25
+ lsrs r0, 28
+ b _081A7B48
+ .pool
+_081A7A10:
+ ldr r0, =gSpecialVar_0x8007
+ lsls r1, r2, 29
+ ldrh r0, [r0]
+ lsrs r1, 29
+ cmp r0, r1
+ bne _081A7A34
+ cmp r3, 0x18
+ bne _081A7A24
+ bl sub_81A7728
+_081A7A24:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 28
+ b _081A7B48
+ .pool
+_081A7A34:
+ movs r2, 0
+ ldr r3, =gUnknown_0861266C
+ movs r1, 0
+_081A7A3A:
+ mov r4, sp
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _081A7A3A
+ movs r4, 0x8
+ ldr r0, [r5]
+ movs r6, 0xE1
+ lsls r6, 4
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 28
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r2, 0
+ adds r5, r3, 0
+ movs r3, 0x1
+_081A7A64:
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _081A7A78
+ mov r6, sp
+ adds r0, r6, r2
+ strb r3, [r0]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A7A78:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _081A7A64
+ mov r0, sp
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0x1
+ beq _081A7AA0
+ bl sub_81A8554
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7AA0
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A7AA0:
+ mov r0, sp
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x1
+ beq _081A7ABE
+ bl sub_81A7974
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7ABE
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A7ABE:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xE1
+ lsls r1, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081A7AFA
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ beq _081A7AE6
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A7AE6:
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x1
+ beq _081A7AFA
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A7AFA:
+ adds r0, r4, 0
+ bl AllocZeroed
+ adds r5, r0, 0
+ movs r3, 0
+ movs r2, 0
+_081A7B06:
+ mov r6, sp
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081A7B1C
+ adds r1, r3, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r1, r5, r1
+ strb r2, [r1]
+_081A7B1C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _081A7B06
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __modsi3
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ adds r0, r5, 0
+ bl Free
+ cmp r4, 0x3
+ bne _081A7B46
+ bl sub_81A7728
+_081A7B46:
+ adds r0, r4, 0
+_081A7B48:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A79EC
+
+ thumb_func_start sub_81A7B58
+sub_81A7B58: @ 81A7B58
+ push {r4,lr}
+ ldr r4, =gUnknown_03001294
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl __umodsi3
+ strb r0, [r4]
+ ldr r1, =gUnknown_0861231C
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A7B58
+
+ thumb_func_start sub_81A7B84
+sub_81A7B84: @ 81A7B84
+ ldr r0, =gUnknown_0300128E
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81A7B84
+
+ thumb_func_start sub_81A7B90
+sub_81A7B90: @ 81A7B90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_81A7D00
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, =gSaveBlock2Ptr
+ ldr r0, [r7]
+ ldr r4, =0x00000ca9
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+ ldr r1, =gUnknown_08612314
+ lsrs r0, 28
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, =gEnemyParty
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r0, r5, 16
+ lsrs r0, 16
+ bl sub_81A890C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081A7C1C
+ bl sub_8165CB4
+ adds r7, r0, 0
+ cmp r7, 0x3B
+ ble _081A7C08
+ lsls r0, r6, 2
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ subs r7, r0
+ cmp r7, 0x3B
+ bgt _081A7C32
+_081A7C08:
+ movs r7, 0x3C
+ b _081A7C32
+ .pool
+_081A7C1C:
+ lsls r0, r6, 2
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ ldr r1, [r0]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x32
+ subs r7, r0, r1
+_081A7C32:
+ mov r0, r8
+ cmp r0, 0x1
+ bne _081A7C4A
+ lsls r0, r7, 24
+ lsrs r0, 24
+ bl sub_81A88B0
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7C4A
+ movs r0, 0
+ b _081A7CE2
+_081A7C4A:
+ ldr r0, =gEnemyParty
+ ldr r1, =gBaseStats
+ mov r8, r1
+ lsls r6, 2
+ mov r9, r6
+ ldr r2, [sp, 0x4]
+ add r2, r9
+ mov r10, r2
+ ldr r1, [r2]
+ lsls r6, r5, 1
+ adds r4, r6, r5
+ lsls r4, 2
+ adds r1, r4, r1
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r2, r1
+ lsls r1, r7, 2
+ ldr r3, =gExperienceTables
+ adds r1, r3
+ adds r2, r1
+ movs r1, 0x19
+ bl SetMonData
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x17]
+ mov r7, r9
+ cmp r0, 0
+ beq _081A7CA8
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+_081A7CA8:
+ str r0, [sp]
+ ldr r0, =gEnemyParty
+ movs r1, 0x2E
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0
+ adds r0, r6, r5
+ lsls r6, r0, 2
+_081A7CBA:
+ ldr r2, [sp, 0x4]
+ adds r0, r7, r2
+ ldr r0, [r0]
+ adds r0, r6, r0
+ lsls r1, r4, 1
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r0, =gEnemyParty
+ bl SetMonMoveSlot
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _081A7CBA
+ ldr r0, =gEnemyParty
+ bl CalculateMonStats
+ movs r0, 0x1
+_081A7CE2:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A7B90
+
+ thumb_func_start sub_81A7D00
+sub_81A7D00: @ 81A7D00
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r2, =0x00000e04
+ adds r1, r2
+ adds r1, r0
+ ldrh r1, [r1]
+ adds r2, r1, 0
+ movs r0, 0x8C
+ lsls r0, 1
+ cmp r1, r0
+ bhi _081A7D34
+ movs r1, 0
+ b _081A7D4C
+ .pool
+_081A7D34:
+ movs r0, 0x8C
+ lsls r0, 2
+ cmp r1, r0
+ bhi _081A7D40
+ movs r1, 0x1
+ b _081A7D4C
+_081A7D40:
+ movs r0, 0xD2
+ lsls r0, 2
+ movs r1, 0x3
+ cmp r2, r0
+ bhi _081A7D4C
+ movs r1, 0x2
+_081A7D4C:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A7D00
+
+ thumb_func_start sub_81A7D54
+sub_81A7D54: @ 81A7D54
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =gUnknown_08612688
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_081A7D66:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A7D66
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7D54
+
+ thumb_func_start sub_81A7D8C
+sub_81A7D8C: @ 81A7D8C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081A7DA4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081A7DC8
+_081A7DA4:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _081A7DBC
+ movs r0, 0x10
+ strh r0, [r4, 0x16]
+_081A7DBC:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, =0x00002d6b
+ bl BlendPalettes
+_081A7DC8:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ ble _081A7DDA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+_081A7DDA:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A7D8C
+
+ thumb_func_start sub_81A7DE8
+sub_81A7DE8: @ 81A7DE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081A7E00
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081A7E22
+_081A7E00:
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081A7E16
+ movs r0, 0
+ strh r0, [r4, 0x16]
+_081A7E16:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, =0x00002d6b
+ bl BlendPalettes
+_081A7E22:
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _081A7E56
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081A7E50
+ ldr r0, =sub_81A7D54
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _081A7E56
+ .pool
+_081A7E50:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x8]
+_081A7E56:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A7DE8
+
+ thumb_func_start sub_81A7E60
+sub_81A7E60: @ 81A7E60
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, =sub_81A7D54
+ movs r1, 0x3
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ ldr r3, [sp]
+ strh r3, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A7E60
+
+ thumb_func_start sub_81A7EC4
+sub_81A7EC4: @ 81A7EC4
+ push {lr}
+ ldr r0, =sub_81A7D54
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081A7EDC
+ movs r0, 0
+ b _081A7EDE
+ .pool
+_081A7EDC:
+ movs r0, 0x1
+_081A7EDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A7EC4
+
+ thumb_func_start sub_81A7EE4
+sub_81A7EE4: @ 81A7EE4
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _081A7F1C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_81A7E60
+ b _081A7F30
+ .pool
+_081A7F1C:
+ bl sub_81A7EC4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A7F30
+ bl script_env_2_enable_and_set_ctx_running
+ adds r0, r4, 0
+ bl DestroyTask
+_081A7F30:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A7EE4
+
+ thumb_func_start sub_81A7F38
+sub_81A7F38: @ 81A7F38
+ 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
+ str r0, [sp, 0x4]
+ cmp r0, 0
+ bne _081A7F50
+ b _081A807A
+_081A7F50:
+ movs r0, 0
+ mov r8, r0
+_081A7F54:
+ mov r0, sp
+ add r0, r8
+ mov r1, r8
+ strb r1, [r0]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x2
+ bls _081A7F54
+ movs r5, 0
+_081A7F6C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r2, sp
+ add r2, r8
+ ldrb r3, [r2]
+ mov r0, sp
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x9
+ bls _081A7F6C
+ movs r1, 0
+ mov r8, r1
+_081A7FB0:
+ movs r0, 0
+ mov r10, r0
+ mov r4, sp
+ add r4, r8
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r7, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ str r4, [sp, 0x8]
+ cmp r5, r6
+ bcc _081A8044
+ adds r0, r7, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A7FFC
+ movs r0, 0x1
+ mov r10, r0
+ b _081A8048
+ .pool
+_081A7FFC:
+ adds r0, r7, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ b _081A8014
+_081A800E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081A8014:
+ cmp r4, 0x3
+ bhi _081A8048
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r9
+ adds r2, r4, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r1, r4, 0
+ adds r1, 0x11
+ adds r0, r7, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r6
+ bcs _081A800E
+_081A8044:
+ movs r1, 0x1
+ mov r10, r1
+_081A8048:
+ mov r0, r10
+ cmp r0, 0x1
+ bne _081A806C
+ ldr r0, [sp, 0x8]
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_81A7594
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ cmp r0, 0
+ beq _081A807A
+_081A806C:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x2
+ bls _081A7FB0
+_081A807A:
+ 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_81A7F38
+
+ thumb_func_start sub_81A8090
+sub_81A8090: @ 81A8090
+ push {r4,lr}
+ ldr r4, =gScriptResult
+ bl InBattlePike
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8090
+
+ thumb_func_start InBattlePike
+InBattlePike: @ 81A80A8
+ push {lr}
+ movs r2, 0
+ ldr r0, =gUnknown_02037318
+ ldrh r1, [r0, 0x12]
+ ldr r3, =0xfffffea1
+ adds r0, r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _081A80CA
+ movs r0, 0xB3
+ lsls r0, 1
+ cmp r1, r0
+ beq _081A80CA
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081A80CC
+_081A80CA:
+ movs r2, 0x1
+_081A80CC:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end InBattlePike
+
+ thumb_func_start sub_81A80DC
+sub_81A80DC: @ 81A80DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, =gScriptResult
+ movs r0, 0
+ strh r0, [r4]
+ movs r0, 0x1
+ bl sub_81A8590
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A8138
+ movs r0, 0x1
+ strh r0, [r4]
+ bl Random
+ ldr r5, =gSaveBlock2Ptr
+ ldr r4, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ movs r3, 0xE1
+ lsls r3, 4
+ adds r4, r3
+ movs r1, 0x7
+ ands r1, r0
+ ldrb r2, [r4]
+ movs r0, 0x8
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldr r2, [r5]
+ adds r2, r3
+ ldrb r1, [r2]
+ movs r0, 0x79
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x40
+ b _081A8248
+ .pool
+_081A8138:
+ bl Random
+ ldr r7, =gSaveBlock2Ptr
+ ldr r4, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ movs r3, 0xE1
+ lsls r3, 4
+ adds r4, r3
+ movs r1, 0x7
+ ands r1, r0
+ ldrb r2, [r4]
+ movs r0, 0x8
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldr r0, [r7]
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ movs r6, 0x8
+ cmp r0, 0
+ beq _081A8172
+ movs r6, 0x6
+_081A8172:
+ adds r0, r6, 0
+ bl AllocZeroed
+ adds r5, r0, 0
+ movs r2, 0
+ movs r3, 0
+ cmp r2, r6
+ bcs _081A81BE
+ adds r4, r7, 0
+_081A8184:
+ ldr r0, [r4]
+ movs r1, 0xE1
+ lsls r1, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081A81B0
+ cmp r2, 0x1
+ beq _081A81B4
+ cmp r2, 0x4
+ beq _081A81B4
+ adds r1, r3, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r1, r5, r1
+ strb r2, [r1]
+ b _081A81B4
+ .pool
+_081A81B0:
+ adds r0, r5, r2
+ strb r2, [r0]
+_081A81B4:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r6
+ bcc _081A8184
+_081A81BE:
+ bl Random
+ ldr r7, =gSaveBlock2Ptr
+ ldr r4, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __modsi3
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r6, 0xE1
+ lsls r6, 4
+ adds r4, r6
+ movs r1, 0xF
+ ands r1, r0
+ lsls r1, 3
+ ldrb r2, [r4]
+ movs r0, 0x79
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ adds r0, r5, 0
+ bl Free
+ ldr r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x78
+ ands r0, r1
+ cmp r0, 0x18
+ bne _081A821C
+ bl sub_81A7974
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A821C
+ ldr r2, [r7]
+ adds r2, r6
+ ldrb r1, [r2]
+ mov r0, r8
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r2]
+_081A821C:
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ movs r4, 0xE1
+ lsls r4, 4
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x78
+ ands r0, r1
+ cmp r0, 0x38
+ bne _081A824C
+ bl sub_81A8554
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A824C
+ ldr r2, [r5]
+ adds r2, r4
+ ldrb r1, [r2]
+ movs r0, 0x79
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+_081A8248:
+ orrs r0, r1
+ strb r0, [r2]
+_081A824C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A80DC
+
+ thumb_func_start sub_81A825C
+sub_81A825C: @ 81A825C
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r2, 0xE1
+ lsls r2, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ lsrs r0, 29
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A825C
+
+ thumb_func_start sub_81A827C
+sub_81A827C: @ 81A827C
+ ldr r2, =gScriptResult
+ ldr r1, =gUnknown_0861266C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r3, 0xE1
+ lsls r3, 4
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 25
+ lsrs r0, 28
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_81A827C
+
+ thumb_func_start sub_81A82A4
+sub_81A82A4: @ 81A82A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ movs r7, 0x6
+ cmp r0, 0
+ bne _081A82B0
+ movs r7, 0x1
+_081A82B0:
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r2, =0x00000e04
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0xE
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r5, r4, 0
+_081A82D2:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r3, 0
+ ldr r1, [r5]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, r0, 0x1
+ cmp r3, r2
+ bge _081A831A
+ ldr r0, =0x00000cb4
+ adds r1, r0
+ b _081A8314
+ .pool
+_081A830C:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r2
+ bge _081A831A
+_081A8314:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081A830C
+_081A831A:
+ ldr r0, [r5]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ bne _081A82D2
+ ldr r5, =gTrainerBattleOpponent_A
+ strh r4, [r5]
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_8162614
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000cb2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, 0xD
+ bhi _081A8356
+ subs r0, 0x1
+ lsls r0, 1
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r5]
+ strh r0, [r1]
+_081A8356:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A82A4
+
+ thumb_func_start sub_81A8374
+sub_81A8374: @ 81A8374
+ push {r4-r7,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r2, =0x00000e04
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0xE
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ lsls r7, r5, 24
+ adds r6, r4, 0
+_081A83A0:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r3, 0
+ ldr r1, [r6]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ subs r2, r0, 0x1
+ cmp r3, r2
+ bge _081A83EE
+ ldr r0, =0x00000cb4
+ adds r1, r0
+ b _081A83E8
+ .pool
+_081A83E0:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r2
+ bge _081A83EE
+_081A83E8:
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081A83E0
+_081A83EE:
+ ldr r0, [r6]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ bne _081A83A0
+ ldr r5, =gTrainerBattleOpponent_A
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_8162614
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r0, =0x00000cb2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, 0xE
+ bhi _081A8424
+ subs r0, 0x1
+ lsls r0, 1
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r5]
+ strh r0, [r1]
+_081A8424:
+ adds r5, r3, 0
+_081A8426:
+ lsrs r0, r7, 24
+ movs r1, 0x1
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r3, 0
+ ldr r1, [r5]
+ ldr r2, =0x00000cb2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r3, r0
+ bge _081A8466
+ adds r2, 0x2
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r4
+ beq _081A8466
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ subs r2, 0x2
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ ldr r0, =0x00000cb4
+ adds r1, r0
+_081A8458:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, r2
+ bge _081A8466
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081A8458
+_081A8466:
+ ldr r0, [r5]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r3, r0
+ bne _081A8426
+ ldr r5, =gTrainerBattleOpponent_B
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0x1
+ bl sub_8162614
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r0, =0x00000cb2
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, 0xD
+ bhi _081A849A
+ subs r0, 0x2
+ lsls r0, 1
+ ldr r2, =0x00000cb4
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r5]
+ strh r0, [r1]
+_081A849A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8374
+
+ thumb_func_start sub_81A84B4
+sub_81A84B4: @ 81A84B4
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r4, =0x00000cb4
+ ldr r0, =0x0000ffff
+ adds r3, r0, 0
+_081A84C0:
+ ldr r1, [r5]
+ lsls r0, r2, 1
+ adds r1, r4
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r3
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _081A84C0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A84B4
+
+ thumb_func_start sub_81A84EC
+sub_81A84EC: @ 81A84EC
+ push {lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081A8524
+ ldr r3, =gTrainerBattleOpponent_A
+ ldrh r1, [r3]
+ ldr r0, =0x0000012b
+ cmp r1, r0
+ bhi _081A8542
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+ b _081A8542
+ .pool
+_081A8524:
+ cmp r0, 0x1
+ bne _081A8542
+ ldr r3, =gTrainerBattleOpponent_B
+ ldrh r1, [r3]
+ ldr r0, =0x0000012b
+ cmp r1, r0
+ bhi _081A8542
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+_081A8542:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A84EC
+
+ thumb_func_start sub_81A8554
+sub_81A8554: @ 81A8554
+ push {r4-r6,lr}
+ ldr r5, =gPlayerParty
+ movs r6, 0
+ movs r4, 0
+_081A855C:
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081A856E
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_081A856E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, 0x64
+ cmp r4, 0x2
+ bls _081A855C
+ cmp r6, 0x1
+ bhi _081A8588
+ movs r0, 0x1
+ b _081A858A
+ .pool
+_081A8588:
+ movs r0, 0
+_081A858A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A8554
+
+ thumb_func_start sub_81A8590
+sub_81A8590: @ 81A8590
+ push {r4-r6,lr}
+ lsls r0, 24
+ movs r6, 0
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ ldr r3, =0x00000ca9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ lsls r1, 30
+ lsrs r1, 29
+ ldr r3, =0x00000e04
+ adds r2, r3
+ adds r2, r1
+ lsrs r4, r0, 24
+ ldrh r2, [r2]
+ adds r0, r4, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x5
+ bl sub_81A3B30
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ blt _081A85F0
+ cmp r2, 0x1
+ bgt _081A85F0
+ ldr r1, =gUnknown_086125DC
+ adds r0, r2, 0
+ adds r0, 0x14
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x17]
+ subs r0, r1
+ cmp r4, r0
+ bne _081A8634
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _081A8634
+ .pool
+_081A85F0:
+ ldr r5, =gUnknown_086125DC
+ movs r0, 0x5
+ lsls r3, r0, 2
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ adds r0, r5, 0x3
+ adds r0, r3, r0
+ ldrb r2, [r0]
+ subs r1, r2
+ cmp r4, r1
+ bne _081A8610
+ movs r6, 0x3
+ b _081A8634
+ .pool
+_081A8610:
+ adds r0, r5, 0x1
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ subs r0, r1, r2
+ cmp r4, r0
+ beq _081A8632
+ cmp r4, r1
+ bls _081A8634
+ subs r0, r4, r1
+ adds r0, r2
+ adds r1, r5, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ bl __modsi3
+ cmp r0, 0
+ bne _081A8634
+_081A8632:
+ movs r6, 0x4
+_081A8634:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A8590
+
+ thumb_func_start sub_81A863C
+sub_81A863C: @ 81A863C
+ push {r4,lr}
+ ldr r4, =gScriptResult
+ movs r0, 0
+ bl sub_81A8590
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A863C
+
+ thumb_func_start sub_81A8658
+sub_81A8658: @ 81A8658
+ push {r4,lr}
+ ldr r3, =gUnknown_08612675
+ ldr r2, =gSpecialVar_0x8007
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r1, 0xE1
+ lsls r1, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 29
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r2, [r2]
+ adds r0, r2
+ adds r0, r3
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl sub_81A7F38
+ ldr r0, =gScriptResult
+ strh r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8658
+
+ thumb_func_start sub_81A869C
+sub_81A869C: @ 81A869C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r1, [r0]
+ movs r0, 0xE1
+ lsls r0, 4
+ adds r2, r0
+ lsls r1, 7
+ ldrb r3, [r2]
+ movs r0, 0x7F
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_81A869C
+
+ thumb_func_start sub_81A86C0
+sub_81A86C0: @ 81A86C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r10, r0
+_081A86D4:
+ movs r0, 0
+ mov r9, r0
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r7, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r4, r5
+ bcc _081A8762
+ adds r0, r7, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ cmp r0, 0
+ bne _081A8762
+ adds r0, r7, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r6, 0
+ b _081A8732
+ .pool
+_081A872C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_081A8732:
+ cmp r6, 0x3
+ bhi _081A8766
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r7, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r8
+ adds r2, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r7, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcs _081A872C
+_081A8762:
+ movs r0, 0x1
+ mov r9, r0
+_081A8766:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _081A8778
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ b _081A8786
+ .pool
+_081A8778:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0x2
+ bls _081A86D4
+_081A8786:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A86C0
+
+ thumb_func_start sub_81A8794
+sub_81A8794: @ 81A8794
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r7, =gSaveBlock1Ptr
+ ldr r6, =gSaveBlock2Ptr
+_081A879C:
+ ldr r0, [r6]
+ lsls r4, r5, 1
+ ldr r1, =0x00000caa
+ adds r0, r1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ movs r2, 0xEA
+ lsls r2, 1
+ adds r1, r2
+ ldr r0, [r7]
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ ldr r1, [r6]
+ ldr r2, =0x00000e12
+ adds r1, r2
+ adds r1, r4
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081A879C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8794
+
+ thumb_func_start sub_81A87E8
+sub_81A87E8: @ 81A87E8
+ push {r4,lr}
+ movs r4, 0
+_081A87EC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ lsls r3, r4, 1
+ ldr r1, =0x00000caa
+ adds r0, r2, r1
+ adds r0, r3
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gBattleScripting + 0x14
+ adds r0, r1
+ ldr r1, =0x00000e12
+ adds r3, r1
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081A87EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A87E8
+
+ thumb_func_start sub_81A8830
+sub_81A8830: @ 81A8830
+ push {r4-r6,lr}
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x00000ca8
+ adds r1, r0
+ movs r4, 0
+ strb r4, [r1]
+ ldr r1, [r3]
+ ldr r6, =0x00000cb2
+ adds r0, r1, r6
+ strh r4, [r0]
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r3, [r3]
+ ldr r0, =0x00000cdc
+ adds r2, r3, r0
+ ldr r1, =gUnknown_08612690
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081A887C
+ lsls r1, r5, 1
+ ldr r2, =0x00000e04
+ adds r0, r3, r2
+ adds r0, r1
+ strh r4, [r0]
+_081A887C:
+ ldr r0, =gTrainerBattleOpponent_A
+ strh r4, [r0]
+ ldr r1, =gBattleOutcome
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8830
+
+ thumb_func_start sub_81A88B0
+sub_81A88B0: @ 81A88B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gPlayerParty
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _081A8904
+ adds r0, r4, 0
+ bl GetMonAbility
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x33
+ beq _081A88D6
+ cmp r0, 0x16
+ bne _081A8904
+_081A88D6:
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _081A8904
+ subs r0, 0x5
+ cmp r5, r0
+ bgt _081A8904
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081A8904
+ movs r0, 0
+ b _081A8906
+ .pool
+_081A8904:
+ movs r0, 0x1
+_081A8906:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A88B0
+
+ thumb_func_start sub_81A890C
+sub_81A890C: @ 81A890C
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =0x0000017b
+ cmp r2, r0
+ bne _081A8920
+ movs r1, 0
+ b _081A892A
+ .pool
+_081A8920:
+ ldr r0, =0x00000149
+ movs r1, 0x2
+ cmp r2, r0
+ bne _081A892A
+ movs r1, 0x1
+_081A892A:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A890C
+
+ thumb_func_start sub_81A8934
+@ void sub_81A8934(u8)
+sub_81A8934: @ 81A8934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203CE50
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _081A894A
+ movs r0, 0x44
+ bl AllocZeroed
+ str r0, [r4]
+_081A894A:
+ ldr r0, [r4]
+ adds r0, 0x41
+ strb r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8934
+
+ thumb_func_start sub_81A895C
+sub_81A895C: @ 81A895C
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE50
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _081A896E
+ bl Free
+ movs r0, 0
+ str r0, [r4]
+_081A896E:
+ 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, =gUnknown_02037350
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl sub_80D338C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A895C
+
+ thumb_func_start sub_81A89A0
+sub_81A89A0: @ 81A89A0
+ 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
+ str r0, [sp]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r1, r0
+ mov r9, r1
+ movs r3, 0
+ mov r10, r3
+ mov r8, r3
+_081A89C4:
+ mov r0, r8
+ lsls r4, r0, 1
+ adds r1, r4, r0
+ lsls r1, 3
+ add r1, r9
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x6]
+ adds r1, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gUnknown_0203CE50
+ ldr r0, [r0]
+ adds r0, 0x41
+ ldrb r0, [r0]
+ movs r2, 0xA6
+ lsls r2, 2
+ cmp r0, 0
+ bne _081A89F8
+ subs r2, 0x48
+_081A89F8:
+ ldr r0, =0x0000024f
+ cmp r1, r0
+ bls _081A8AD4
+ subs r1, r2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _081A8A08
+ adds r0, r1, 0x7
+_081A8A08:
+ asrs r2, r0, 3
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _081A8AD4
+ ldr r3, [sp]
+ cmp r0, r3
+ bne _081A8AD4
+ lsls r0, r2, 3
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bhi _081A8AD4
+ movs r1, 0
+ movs r2, 0
+ cmp r5, 0x1
+ beq _081A8A58
+ cmp r5, 0x1
+ bgt _081A8A44
+ cmp r5, 0
+ beq _081A8A4E
+ b _081A8AD4
+ .pool
+_081A8A44:
+ cmp r5, 0x2
+ beq _081A8A64
+ cmp r5, 0x3
+ beq _081A8A70
+ b _081A8AD4
+_081A8A4E:
+ ldr r7, =gUnknown_08612698
+ movs r1, 0x1
+ b _081A8A74
+ .pool
+_081A8A58:
+ ldr r7, =gUnknown_0861269C
+ movs r2, 0x1
+ b _081A8A74
+ .pool
+_081A8A64:
+ ldr r7, =gUnknown_086126A0
+ movs r1, 0xFF
+ b _081A8A74
+ .pool
+_081A8A70:
+ ldr r7, =gUnknown_086126A4
+ movs r2, 0xFF
+_081A8A74:
+ mov r3, r8
+ adds r0, r4, r3
+ lsls r0, 3
+ mov r3, r9
+ adds r4, r0, r3
+ lsls r0, r1, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x4]
+ lsls r0, r2, 24
+ asrs r0, 24
+ ldrh r3, [r4, 0x6]
+ adds r0, r3
+ strh r0, [r4, 0x6]
+ ldrb r0, [r4]
+ ldr r6, =gSaveBlock1Ptr
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ beq _081A8ACC
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_81A8D60
+ ldrb r4, [r4]
+ mov r10, r4
+ mov r0, r10
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ adds r3, r7, 0
+ bl exec_movement
+ b _081A8AD4
+ .pool
+_081A8ACC:
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_81A8D94
+_081A8AD4:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x3F
+ bhi _081A8AE4
+ b _081A89C4
+_081A8AE4:
+ mov r0, r10
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A89A0
+
+ thumb_func_start sub_81A8AF8
+sub_81A8AF8: @ 81A8AF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, =gUnknown_0203CE50
+ ldr r2, [r1]
+ cmp r2, 0
+ bne _081A8B0C
+ b _081A8D4A
+_081A8B0C:
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ movs r3, 0xA6
+ lsls r3, 2
+ mov r10, r3
+ cmp r0, 0
+ bne _081A8B22
+ movs r0, 0x94
+ lsls r0, 2
+ mov r10, r0
+_081A8B22:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r3, 0xC7
+ lsls r3, 4
+ adds r7, r0, r3
+ movs r0, 0
+ mov r9, r0
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r9, r0
+ bcc _081A8B3C
+ b _081A8D4A
+_081A8B3C:
+ mov r8, r1
+_081A8B3E:
+ mov r1, r8
+ ldr r0, [r1]
+ mov r2, r9
+ lsls r4, r2, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x6]
+ adds r1, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r0, 16
+ mov r3, r10
+ subs r1, r0, r3
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _081A8B76
+ adds r0, r1, 0x7
+_081A8B76:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r4
+ ldrb r1, [r1]
+ subs r0, r1
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ blt _081A8B96
+ cmp r1, 0x3
+ bne _081A8BAC
+_081A8B96:
+ movs r0, 0x3
+ negs r0, r0
+ movs r6, 0
+ cmp r1, r0
+ bne _081A8BB4
+ b _081A8BB2
+ .pool
+_081A8BAC:
+ movs r6, 0x2
+ cmp r1, 0
+ ble _081A8BB4
+_081A8BB2:
+ movs r6, 0x1
+_081A8BB4:
+ ldr r5, =gUnknown_0203CE50
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x10
+ bne _081A8BDC
+ b _081A8D32
+_081A8BDC:
+ ldr r0, =gUnknown_02037350
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, r0, 0
+ cmp r6, 0
+ bne _081A8C9C
+ cmp r0, 0x2
+ beq _081A8C60
+ cmp r0, 0x2
+ bgt _081A8C0C
+ cmp r0, 0x1
+ beq _081A8C30
+ b _081A8D32
+ .pool
+_081A8C0C:
+ cmp r0, 0x3
+ beq _081A8C48
+ cmp r0, 0x4
+ beq _081A8C16
+ b _081A8D32
+_081A8C16:
+ ldr r3, =gUnknown_086126AE
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x7
+ b _081A8C72
+ .pool
+_081A8C30:
+ ldr r3, =gUnknown_086126A8
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0xA
+ b _081A8C72
+ .pool
+_081A8C48:
+ ldr r3, =gUnknown_086126AA
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x8
+ b _081A8C72
+ .pool
+_081A8C60:
+ ldr r3, =gUnknown_086126AC
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x9
+_081A8C72:
+ strb r1, [r0, 0x9]
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl exec_movement
+ b _081A8D32
+ .pool
+_081A8C9C:
+ cmp r6, 0x1
+ bne _081A8D32
+ cmp r0, 0x2
+ beq _081A8D00
+ cmp r0, 0x2
+ bgt _081A8CAE
+ cmp r0, 0x1
+ beq _081A8CD0
+ b _081A8D32
+_081A8CAE:
+ cmp r1, 0x3
+ beq _081A8CE8
+ cmp r1, 0x4
+ bne _081A8D32
+ ldr r3, =gUnknown_086126AA
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x8
+ b _081A8D12
+ .pool
+_081A8CD0:
+ ldr r3, =gUnknown_086126AC
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x9
+ b _081A8D12
+ .pool
+_081A8CE8:
+ ldr r3, =gUnknown_086126AE
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x7
+ b _081A8D12
+ .pool
+_081A8D00:
+ ldr r3, =gUnknown_086126A8
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0xA
+_081A8D12:
+ strb r1, [r0, 0x9]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r7
+ ldrb r0, [r0]
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl exec_movement
+_081A8D32:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ mov r3, r8
+ ldr r0, [r3]
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r9, r0
+ bcs _081A8D4A
+ b _081A8B3E
+_081A8D4A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8AF8
+
+ thumb_func_start sub_81A8D60
+sub_81A8D60: @ 81A8D60
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE50
+ ldr r3, [r4]
+ adds r2, r3, 0
+ adds r2, 0x40
+ ldrb r2, [r2]
+ lsls r2, 2
+ adds r3, r2
+ strb r0, [r3, 0x1]
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0
+ strb r1, [r2]
+ ldr r1, [r4]
+ adds r1, 0x40
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8D60
+
+ thumb_func_start sub_81A8D94
+sub_81A8D94: @ 81A8D94
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r5, r0, r1
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x7
+ ldrh r1, [r1, 0x6]
+ adds r1, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ bl MapGridGetMetatileIdAt
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gUnknown_0203CE50
+ ldr r0, [r0]
+ adds r0, 0x41
+ ldrb r0, [r0]
+ movs r1, 0xA6
+ lsls r1, 2
+ cmp r0, 0
+ bne _081A8DDA
+ subs r1, 0x48
+_081A8DDA:
+ subs r1, r2, r1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _081A8DE4
+ adds r0, r1, 0x7
+_081A8DE4:
+ asrs r0, 3
+ lsls r0, 3
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, r6
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ blt _081A8DFC
+ cmp r1, 0x3
+ bne _081A8E08
+_081A8DFC:
+ movs r2, 0
+ b _081A8E1A
+ .pool
+_081A8E08:
+ cmp r1, 0
+ bgt _081A8E14
+ movs r0, 0x3
+ negs r0, r0
+ cmp r1, r0
+ bne _081A8E18
+_081A8E14:
+ movs r2, 0x1
+ b _081A8E1A
+_081A8E18:
+ movs r2, 0x2
+_081A8E1A:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x9]
+ adds r3, r0, 0
+ cmp r2, 0
+ bne _081A8E4C
+ cmp r0, 0x8
+ beq _081A8E72
+ cmp r0, 0x8
+ bgt _081A8E38
+ cmp r0, 0x7
+ beq _081A8E48
+ b _081A8E76
+_081A8E38:
+ cmp r0, 0x9
+ beq _081A8E44
+ cmp r0, 0xA
+ bne _081A8E76
+ movs r0, 0x7
+ b _081A8E74
+_081A8E44:
+ movs r0, 0x8
+ b _081A8E74
+_081A8E48:
+ movs r0, 0x9
+ b _081A8E74
+_081A8E4C:
+ cmp r2, 0x1
+ bne _081A8E76
+ cmp r0, 0x8
+ beq _081A8E6A
+ cmp r0, 0x8
+ bgt _081A8E5E
+ cmp r0, 0x7
+ beq _081A8E72
+ b _081A8E76
+_081A8E5E:
+ cmp r3, 0x9
+ beq _081A8E6E
+ cmp r3, 0xA
+ bne _081A8E76
+ movs r0, 0x8
+ b _081A8E74
+_081A8E6A:
+ movs r0, 0x9
+ b _081A8E74
+_081A8E6E:
+ movs r0, 0x7
+ b _081A8E74
+_081A8E72:
+ movs r0, 0xA
+_081A8E74:
+ strb r0, [r1, 0x9]
+_081A8E76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A8D94
+
+ thumb_func_start sub_81A8E7C
+sub_81A8E7C: @ 81A8E7C
+ push {lr}
+ ldr r1, =gUnknown_08613EE0
+ 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_81A8E7C
+
+ thumb_func_start sub_81A8E9C
+sub_81A8E9C: @ 81A8E9C
+ push {r4-r6,lr}
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r4, =0x00000ca9
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ ldr r0, =0x00000ca8
+ adds r1, r0
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3]
+ ldr r6, =0x00000cb2
+ adds r0, r1, r6
+ strh r2, [r0]
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ cmp r5, 0
+ beq _081A8EF0
+ ldr r0, [r3]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 6
+ b _081A8EFC
+ .pool
+_081A8EF0:
+ ldr r0, [r3]
+ ldr r6, =0x00000cdc
+ adds r0, r6
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+_081A8EFC:
+ ands r2, r0
+ cmp r2, 0
+ bne _081A8F14
+ ldr r0, [r3]
+ lsls r1, r5, 1
+ ldr r3, =0x00000e1a
+ adds r0, r3
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r5, 0
+ bl sub_81AAA7C
+_081A8F14:
+ bl sub_81C4EEC
+ ldr r0, =gTrainerBattleOpponent_A
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gBattleOutcome
+ strb r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8E9C
+
+ thumb_func_start sub_81A8F38
+sub_81A8F38: @ 81A8F38
+ push {r4,lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca9
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r4, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x6
+ bls _081A8F54
+ b _081A903A
+_081A8F54:
+ lsls r0, 2
+ ldr r1, =_081A8F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A8F70:
+ .4byte _081A8F8C
+ .4byte _081A8F9C
+ .4byte _081A8FB4
+ .4byte _081A8FE4
+ .4byte _081A8FF8
+ .4byte _081A9010
+ .4byte _081A9028
+_081A8F8C:
+ ldr r0, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000e18
+ b _081A8FFE
+ .pool
+_081A8F9C:
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ lsls r1, r4, 1
+ ldr r3, =0x00000e1a
+ adds r0, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ b _081A9038
+ .pool
+_081A8FB4:
+ cmp r4, 0
+ beq _081A8FCC
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ b _081A9030
+ .pool
+_081A8FCC:
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r3, =0x00000cdc
+ adds r0, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ b _081A9036
+ .pool
+_081A8FE4:
+ ldr r0, =gScriptResult
+ ldr r1, [r3]
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ b _081A9000
+ .pool
+_081A8FF8:
+ ldr r0, =gScriptResult
+ ldr r1, [r3]
+ ldr r3, =0x00000e1c
+_081A8FFE:
+ adds r1, r3
+_081A9000:
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _081A903A
+ .pool
+_081A9010:
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r1, =0x00000cdc
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ b _081A9036
+ .pool
+_081A9028:
+ ldr r2, =gScriptResult
+ ldr r0, [r3]
+ ldr r3, =0x00000cdc
+ adds r0, r3
+_081A9030:
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+_081A9036:
+ ands r0, r1
+_081A9038:
+ strh r0, [r2]
+_081A903A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A8F38
+
+ thumb_func_start sub_81A9048
+sub_81A9048: @ 81A9048
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r1, r0, 30
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081A9098
+ cmp r0, 0x1
+ bgt _081A9078
+ cmp r0, 0
+ beq _081A9082
+ b _081A9126
+ .pool
+_081A9078:
+ cmp r0, 0x2
+ beq _081A90B0
+ cmp r0, 0x7
+ beq _081A911C
+ b _081A9126
+_081A9082:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r1, [r0]
+ ldr r3, =0x00000e18
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _081A9126
+ .pool
+_081A9098:
+ lsls r1, 1
+ ldr r3, =0x00000e1a
+ adds r0, r2, r3
+ adds r0, r1
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _081A9126
+ .pool
+_081A90B0:
+ cmp r1, 0
+ beq _081A90E4
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A90D0
+ ldr r1, =0x00000cdc
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 6
+ b _081A90F6
+ .pool
+_081A90D0:
+ ldr r3, =0x00000cdc
+ adds r0, r2, r3
+ ldr r1, [r0]
+ ldr r2, =0xffffdfff
+ b _081A910C
+ .pool
+_081A90E4:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A9104
+ ldr r1, =0x00000cdc
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 5
+_081A90F6:
+ orrs r1, r2
+ str r1, [r0]
+ b _081A9126
+ .pool
+_081A9104:
+ ldr r3, =0x00000cdc
+ adds r0, r2, r3
+ ldr r1, [r0]
+ ldr r2, =0xffffefff
+_081A910C:
+ ands r1, r2
+ str r1, [r0]
+ b _081A9126
+ .pool
+_081A911C:
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r1, [r0]
+ ldr r3, =0x00000e2a
+ adds r0, r2, r3
+ strb r1, [r0]
+_081A9126:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9048
+
+ thumb_func_start sub_81A9134
+sub_81A9134: @ 81A9134
+ 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 save_serialize_map
+ movs r0, 0x1
+ bl TrySavingData
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9134
+
+ thumb_func_start sub_81A917C
+sub_81A917C: @ 81A917C
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r1, [r4]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 29
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0x29
+ bls _081A91CC
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_08613F34
+ 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, =0x00000e18
+ adds r4, r1
+ b _081A91EA
+ .pool
+_081A91CC:
+ bl Random
+ ldr r4, [r4]
+ ldr r5, =gUnknown_08613F28
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r5
+ ldrh r0, [r0]
+ ldr r2, =0x00000e18
+ adds r4, r2
+_081A91EA:
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A917C
+
+ thumb_func_start sub_81A91FC
+sub_81A91FC: @ 81A91FC
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000e18
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _081A9244
+ ldr r0, [r4]
+ ldr r1, =0x00000e18
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000e18
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081A924A
+ .pool
+_081A9244:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_081A924A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A91FC
+
+ thumb_func_start sub_81A9254
+sub_81A9254: @ 81A9254
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, =gSaveBlock2Ptr
+_081A925A:
+ bl Random
+ ldr r1, [r5]
+ lsls r2, r4, 1
+ ldr r3, =0x00000e22
+ adds r1, r3
+ adds r1, r2
+ strh r0, [r1]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _081A925A
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e2a
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9254
+
+ thumb_func_start CalculateBattlePyramidItemBallItemId
+CalculateBattlePyramidItemBallItemId: @ 81A9290
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r0, 30
+ mov r10, r0
+ adds r2, 0x9
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ str r0, [sp]
+ mov r2, r10
+ lsls r0, r2, 1
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x13
+ bls _081A92DE
+ movs r0, 0x13
+ mov r8, r0
+_081A92DE:
+ bl sub_81AA9E4
+ lsls r0, 24
+ ldr r1, =gScriptLastTalked
+ ldrh r4, [r1]
+ ldr r1, =gUnknown_08613650
+ lsrs r0, 20
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ subs r4, r0
+ subs r7, r4, 0x1
+ ldr r1, [r5]
+ lsrs r0, r7, 31
+ adds r0, r7, r0
+ asrs r0, 1
+ lsls r0, 1
+ ldr r2, =0x00000e22
+ adds r1, r2
+ adds r1, r0
+ ldrh r6, [r1]
+ adds r0, r6, 0
+ bl SeedRng2
+ movs r5, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r9, r0
+ cmp r5, r4
+ bge _081A9332
+_081A9318:
+ bl Random2
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r5, 0x1
+ adds r0, r7, 0x1
+ cmp r5, r0
+ blt _081A9318
+_081A9332:
+ ldr r0, =gUnknown_08613B3A
+ ldr r1, [sp]
+ adds r0, r1, r0
+ ldrb r5, [r0]
+ ldr r1, =gUnknown_08613ABC
+ ldr r3, =gSpecialVar_0x8000
+ ldr r4, =gSpecialVar_0x8001
+ cmp r5, 0x3E
+ bhi _081A935E
+ lsls r2, r5, 1
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _081A935E
+ adds r0, r2, r1
+_081A9350:
+ adds r0, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3E
+ bhi _081A935E
+ ldrb r2, [r0]
+ cmp r6, r2
+ bge _081A9350
+_081A935E:
+ mov r0, r10
+ cmp r0, 0
+ beq _081A9394
+ ldr r2, =gUnknown_0861392C
+ b _081A9396
+ .pool
+_081A9394:
+ ldr r2, =gUnknown_0861379C
+_081A9396:
+ lsls r0, r5, 1
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ mov r1, r9
+ add r1, r8
+ lsls r1, 2
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ movs r0, 0x1
+ strh r0, [r4]
+ 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 CalculateBattlePyramidItemBallItemId
+
+ thumb_func_start sub_81A93C8
+sub_81A93C8: @ 81A93C8
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r3, r0, r1
+ movs r2, 0
+ ldr r4, =gScriptLastTalked
+ b _081A93F4
+ .pool
+_081A93E4:
+ adds r2, 0x1
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081A940A
+_081A93F4:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ ldrh r5, [r4]
+ cmp r0, r5
+ bne _081A93E4
+ ldr r0, =0x00007fff
+ strh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+_081A940A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A93C8
+
+ thumb_func_start sub_81A9414
+sub_81A9414: @ 81A9414
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gBattleFrontierTrainers
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A9414
+
+ thumb_func_start sub_81A9424
+sub_81A9424: @ 81A9424
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r1, r0
+ mov r8, r1
+ ldr r2, =gUnknown_02037350
+ ldr r0, =gUnknown_03005DF0
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ bl sub_81A9AA8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r6, 0
+ ldr r2, =gUnknown_08613C1C
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081A9488
+ ldrb r2, [r2, 0x1]
+ mov r9, r2
+ b _081A94AE
+ .pool
+_081A9488:
+ adds r6, 0x1
+ cmp r6, 0x31
+ bhi _081A94AE
+ ldr r4, =gUnknown_08613C1C
+ lsls r3, r6, 1
+ adds r2, r3, r4
+ ldr r0, =gUnknown_0203BC88
+ ldr r1, [r0]
+ movs r0, 0x34
+ muls r0, r5
+ adds r0, r1
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081A9488
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ mov r9, r0
+_081A94AE:
+ ldr r3, =gUnknown_08613ED8
+ ldr r2, =gUnknown_02037350
+ ldr r0, =gUnknown_03005DF0
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ subs r0, 0x1
+ adds r0, r3
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r6, 0
+ mov r3, r9
+ lsls r3, 2
+ mov r9, r3
+_081A94D0:
+ ldr r0, [sp]
+ cmp r0, 0x8
+ bls _081A94D8
+ b _081A95E8
+_081A94D8:
+ lsls r0, 2
+ ldr r1, =_081A94FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081A94FC:
+ .4byte _081A9520
+ .4byte _081A9530
+ .4byte _081A9572
+ .4byte _081A95B4
+ .4byte _081A95BA
+ .4byte _081A95C0
+ .4byte _081A95C6
+ .4byte _081A95D2
+ .4byte _081A95DE
+_081A9520:
+ mov r0, sp
+ movs r1, 0x8
+ movs r2, 0
+ bl sub_81A9998
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _081A95EE
+_081A9530:
+ movs r6, 0
+ ldr r2, =0x7fff0000
+ mov r4, r8
+ adds r4, 0x4
+ mov r5, r8
+ b _081A9560
+ .pool
+_081A9540:
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3B
+ bne _081A955A
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ asrs r1, r2, 16
+ cmp r0, r1
+ beq _081A955A
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ cmp r0, r1
+ beq _081A955A
+ adds r7, 0x1
+_081A955A:
+ adds r4, 0x18
+ adds r5, 0x18
+ adds r6, 0x1
+_081A9560:
+ str r2, [sp, 0x4]
+ bl sub_81AAA40
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, r0
+ blt _081A9540
+ b _081A95EE
+_081A9572:
+ bl sub_81AA9E4
+ lsls r0, 24
+ ldr r1, =gUnknown_08613650
+ lsrs r0, 20
+ adds r0, r1
+ ldrb r7, [r0, 0x1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e2a
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, =gBitTable
+ movs r6, 0x7
+_081A958E:
+ ldr r0, [r1]
+ ands r0, r2
+ cmp r0, 0
+ beq _081A9598
+ subs r7, 0x1
+_081A9598:
+ adds r1, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _081A958E
+ b _081A95EE
+ .pool
+_081A95B4:
+ mov r0, sp
+ movs r1, 0x8
+ b _081A95D6
+_081A95BA:
+ mov r0, sp
+ movs r1, 0x8
+ b _081A95CA
+_081A95C0:
+ mov r0, sp
+ movs r1, 0x10
+ b _081A95D6
+_081A95C6:
+ mov r0, sp
+ movs r1, 0x10
+_081A95CA:
+ movs r2, 0x1
+ bl sub_81A9998
+ b _081A95E8
+_081A95D2:
+ mov r0, sp
+ movs r1, 0x18
+_081A95D6:
+ movs r2, 0x2
+ bl sub_81A9998
+ b _081A95E8
+_081A95DE:
+ mov r0, sp
+ movs r1, 0x18
+ movs r2, 0x1
+ bl sub_81A9998
+_081A95E8:
+ cmp r6, 0
+ bne _081A95EE
+ b _081A94D0
+_081A95EE:
+ ldr r1, =gUnknown_08613EC0
+ add r1, r9
+ ldr r0, [sp]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl box_related_two__2
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9424
+
+ thumb_func_start sub_81A9618
+sub_81A9618: @ 81A9618
+ push {r4,r5,lr}
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r2, r0, 29
+ ldr r4, =0x00000e1a
+ adds r1, r4
+ adds r1, r2
+ ldrh r3, [r1]
+ ldr r0, =0x000003e6
+ cmp r3, r0
+ bhi _081A963A
+ adds r0, r3, 0x1
+ strh r0, [r1]
+_081A963A:
+ ldr r0, [r5]
+ adds r1, r0, r4
+ adds r1, r2
+ ldr r3, =0x00000e1e
+ adds r0, r3
+ adds r0, r2
+ ldrh r1, [r1]
+ ldrh r2, [r0]
+ cmp r1, r2
+ bls _081A9650
+ strh r1, [r0]
+_081A9650:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9618
+
+ thumb_func_start sub_81A966C
+sub_81A966C: @ 81A966C
+ push {r4,lr}
+ ldr r4, =gScriptResult
+ bl InBattlePyramid
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A966C
+
+ thumb_func_start sub_81A9684
+sub_81A9684: @ 81A9684
+ push {r4,lr}
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081A9698
+ cmp r0, 0x1
+ beq _081A96B4
+ b _081A9754
+ .pool
+_081A9698:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ ldr r2, =0x00000e68
+ adds r0, r2
+ strb r1, [r0]
+ b _081A9754
+ .pool
+_081A96B4:
+ ldr r4, =gScriptResult
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _081A9710
+ cmp r0, 0x1
+ bgt _081A9754
+ cmp r0, 0
+ bne _081A9754
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081A9754
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000e68
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x77
+ bls _081A96F4
+ movs r0, 0x78
+ strb r0, [r1]
+ b _081A96FC
+ .pool
+_081A96F4:
+ ldr r0, =gSpecialVar_0x8007
+ ldrh r0, [r0]
+ bl PlaySE
+_081A96FC:
+ ldr r1, =gScriptResult
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081A9754
+ .pool
+_081A9710:
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081A9750
+ subs r0, 0x1
+ strh r0, [r1]
+ ldr r3, =gSaveBlock2Ptr
+ ldr r1, [r3]
+ ldr r2, =0x00000e68
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0x78
+ bls _081A973E
+ movs r0, 0x78
+ strb r0, [r1]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_081A973E:
+ bl door_upload_tiles
+ b _081A9754
+ .pool
+_081A9750:
+ movs r0, 0x2
+ strh r0, [r4]
+_081A9754:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A9684
+
+ thumb_func_start sub_81A975C
+sub_81A975C: @ 81A975C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0
+ movs r0, 0x64
+ mov r9, r0
+ ldr r1, =gPlayerParty
+ mov r8, r1
+_081A9776:
+ movs r4, 0
+ adds r7, r5, 0x1
+ mov r6, r9
+ muls r6, r5
+_081A977E:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ lsls r1, r4, 1
+ ldr r2, =0x00000caa
+ adds r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081A97A2
+ subs r0, 0x1
+ cmp r0, r5
+ bne _081A97A2
+ mov r1, r8
+ adds r0, r6, r1
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_081A97A2:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _081A977E
+ adds r5, r7, 0
+ cmp r5, 0x5
+ ble _081A9776
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A975C
+
+ thumb_func_start sub_81A97C8
+sub_81A97C8: @ 81A97C8
+ push {lr}
+ ldr r0, =sub_81A97DC
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A97C8
+
+ thumb_func_start sub_81A97DC
+sub_81A97DC: @ 81A97DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081A980C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 5
+ ldr r1, =gUnknown_08D856C8
+ adds r0, r1
+ ldr r1, =gPlttBufferUnfaded + 0xC0
+ movs r2, 0x10
+ bl CpuSet
+ adds r0, r4, 0
+ bl DestroyTask
+_081A980C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A97DC
+
+ thumb_func_start sub_81A9828
+sub_81A9828: @ 81A9828
+ push {lr}
+ bl sub_809FDD4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A9828
+
+ thumb_func_start sub_81A9834
+sub_81A9834: @ 81A9834
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ str r0, [sp]
+_081A9844:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, [sp]
+ lsls r1, r2, 1
+ ldr r5, =0x00000caa
+ adds r0, r5
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r5, r0, 0x1
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r2, 0x64
+ adds r1, r5, 0
+ muls r1, r2
+ str r1, [sp, 0x8]
+ movs r0, 0x8E
+ lsls r0, 2
+ adds r6, r1, r0
+ movs r1, 0
+ str r1, [sp, 0x10]
+_081A986C:
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ adds r0, r6
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ ldr r3, =gPlayerParty
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r3
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp, 0x14]
+ bl GetMonData
+ ldr r3, [sp, 0x14]
+ cmp r4, r0
+ bne _081A993C
+ movs r6, 0
+ adds r2, r5, 0x1
+ str r2, [sp, 0xC]
+ movs r1, 0x64
+ adds r0, r5, 0
+ muls r0, r1
+ movs r5, 0x8E
+ lsls r5, 2
+ adds r5, r0
+ mov r9, r5
+ ldr r7, [sp, 0x4]
+ muls r7, r1
+ mov r10, r3
+_081A98AC:
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r8, r0
+ b _081A98C6
+ .pool
+_081A98C4:
+ adds r5, 0x1
+_081A98C6:
+ cmp r5, 0x3
+ bgt _081A98EE
+ ldr r1, =gSaveBlock1Ptr
+ ldr r0, [r1]
+ add r0, r9
+ adds r1, r5, 0
+ adds r1, 0xD
+ movs r2, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r2, r10
+ adds r0, r7, r2
+ movs r2, 0
+ bl GetMonData
+ cmp r4, r0
+ bne _081A98C4
+_081A98EE:
+ cmp r5, 0x4
+ bne _081A9900
+ lsls r2, r6, 24
+ lsrs r2, 24
+ mov r5, r10
+ adds r0, r7, r5
+ movs r1, 0xA6
+ bl SetMonMoveSlot
+_081A9900:
+ mov r6, r8
+ cmp r6, 0x3
+ ble _081A98AC
+ ldr r1, =gSaveBlock1Ptr
+ ldr r0, [r1]
+ ldr r2, [sp, 0x8]
+ adds r0, r2
+ movs r5, 0x8E
+ lsls r5, 2
+ adds r0, r5
+ ldr r1, =gPlayerParty
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ movs r2, 0x64
+ bl memcpy
+ ldr r0, =gUnknown_0203CEF8
+ ldr r5, [sp, 0x4]
+ adds r0, r5, r0
+ mov r1, sp
+ ldrb r1, [r1, 0xC]
+ strb r1, [r0]
+ b _081A994C
+ .pool
+_081A993C:
+ ldr r2, [sp, 0x10]
+ adds r2, 0x64
+ str r2, [sp, 0x10]
+ ldr r0, [sp, 0x4]
+ adds r0, 0x1
+ str r0, [sp, 0x4]
+ cmp r0, 0x2
+ ble _081A986C
+_081A994C:
+ ldr r1, [sp]
+ adds r1, 0x1
+ str r1, [sp]
+ cmp r1, 0x2
+ bgt _081A9958
+ b _081A9844
+_081A9958:
+ movs r2, 0
+ str r2, [sp]
+ ldr r4, =gSaveBlock2Ptr
+ ldr r3, =0x00000caa
+ ldr r2, =gUnknown_0203CEF8
+_081A9962:
+ ldr r1, [r4]
+ ldr r5, [sp]
+ lsls r0, r5, 1
+ adds r1, r3
+ adds r1, r0
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ adds r5, 0x1
+ str r5, [sp]
+ cmp r5, 0x2
+ ble _081A9962
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9834
+
+ thumb_func_start sub_81A9998
+sub_81A9998: @ 81A9998
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r4, 0
+ ldr r0, =gUnknown_03005DC0
+ ldr r5, [r0, 0x8]
+ ldr r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, 0xE
+ adds r5, r0
+ movs r3, 0
+ ldr r0, =0x000003ff
+ mov r8, r0
+ ldr r1, =0x0000028e
+ mov r12, r1
+ ldr r0, =gUnknown_02037350
+ mov r9, r0
+_081A99CC:
+ movs r2, 0
+_081A99CE:
+ lsls r0, r2, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, r12
+ bne _081A9A8A
+ adds r2, 0x7
+ ldr r0, =gUnknown_03005DF0
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r5, 0xC
+ ldrsh r1, [r0, r5]
+ subs r2, r1
+ adds r1, r3, 0x7
+ movs r3, 0xE
+ ldrsh r0, [r0, r3]
+ subs r3, r1, r0
+ cmp r2, r6
+ bge _081A9A0E
+ negs r0, r6
+ cmp r2, r0
+ ble _081A9A0E
+ cmp r3, r6
+ bge _081A9A0E
+ cmp r3, r0
+ ble _081A9A0E
+ cmp r7, 0
+ bne _081A9A84
+_081A9A0E:
+ cmp r2, 0
+ ble _081A9A34
+ cmp r3, 0
+ ble _081A9A34
+ movs r4, 0x3
+ cmp r2, r3
+ blt _081A9A7C
+ movs r4, 0x2
+ b _081A9A7C
+ .pool
+_081A9A34:
+ cmp r2, 0
+ bge _081A9A46
+ cmp r3, 0
+ bge _081A9A46
+ movs r4, 0x1
+ cmp r2, r3
+ ble _081A9A7C
+ movs r4, 0
+ b _081A9A7C
+_081A9A46:
+ cmp r2, 0
+ bne _081A9A54
+ movs r4, 0
+ cmp r3, 0
+ ble _081A9A7C
+ movs r4, 0x3
+ b _081A9A7C
+_081A9A54:
+ cmp r3, 0
+ bne _081A9A62
+ movs r4, 0x1
+ cmp r2, 0
+ ble _081A9A7C
+ movs r4, 0x2
+ b _081A9A7C
+_081A9A62:
+ cmp r2, 0
+ bge _081A9A72
+ adds r0, r2, r3
+ movs r4, 0x1
+ cmp r0, 0
+ ble _081A9A7C
+ movs r4, 0x3
+ b _081A9A7C
+_081A9A72:
+ adds r0, r2, r3
+ mvns r0, r0
+ asrs r4, r0, 31
+ movs r0, 0x2
+ ands r4, r0
+_081A9A7C:
+ movs r0, 0
+ mov r5, r10
+ str r0, [r5]
+ b _081A9A98
+_081A9A84:
+ mov r0, r10
+ str r7, [r0]
+ b _081A9A98
+_081A9A8A:
+ adds r2, 0x1
+ cmp r2, 0x1F
+ ble _081A99CE
+ adds r5, 0x5E
+ adds r3, 0x1
+ cmp r3, 0x1F
+ ble _081A99CC
+_081A9A98:
+ adds r0, r4, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A9998
+
+ thumb_func_start sub_81A9AA8
+sub_81A9AA8: @ 81A9AA8
+ lsls r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r1, [r1]
+ lsrs r0, 23
+ adds r1, r0
+ ldr r0, =0x00000cb2
+ adds r1, r0
+ ldrh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81A9AA8
+
+ thumb_func_start GetBattlePyramidTrainerFlag
+GetBattlePyramidTrainerFlag: @ 81A9AC4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSaveBlock2Ptr
+ ldr r2, [r1]
+ ldr r1, =0x00000e2a
+ adds r2, r1
+ ldr r4, =gBitTable
+ ldr r3, =gUnknown_02037350
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r0, [r1, 0x8]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ ands r0, r1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetBattlePyramidTrainerFlag
+
+ thumb_func_start sub_81A9B04
+sub_81A9B04: @ 81A9B04
+ push {lr}
+ ldr r0, =gTrainerBattleOpponent_A
+ ldrh r0, [r0]
+ bl sub_81A9B44
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _081A9B2E
+ movs r0, 0x1
+ bl sub_80B47E0
+ ldr r1, =gUnknown_03005DF0
+ strb r0, [r1]
+ ldr r0, =gTrainerBattleOpponent_B
+ ldrh r0, [r0]
+ bl sub_81A9B44
+_081A9B2E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9B04
+
+ thumb_func_start sub_81A9B44
+sub_81A9B44: @ 81A9B44
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0
+ ldr r0, =gUnknown_02037350
+ mov r12, r0
+ ldr r6, =gUnknown_03005DF0
+ ldr r1, =gSaveBlock1Ptr
+ mov r10, r1
+ ldr r7, =gSaveBlock2Ptr
+ mov r9, r7
+ ldr r0, =0x00000cb4
+ mov r8, r0
+ ldr r4, =gBitTable
+_081A9B68:
+ mov r1, r9
+ ldr r2, [r1]
+ lsls r0, r3, 1
+ mov r7, r8
+ adds r1, r2, r7
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, r5
+ bne _081A9B86
+ ldr r1, =0x00000e2a
+ adds r0, r2, r1
+ ldr r1, [r4]
+ ldrb r2, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+_081A9B86:
+ adds r4, 0x4
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _081A9B68
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ movs r3, 0x2
+ strb r3, [r0, 0x6]
+ mov r7, r10
+ ldr r2, [r7]
+ ldr r0, =gScriptLastTalked
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ ldr r1, =0x00000c79
+ adds r2, r1
+ strb r3, [r2]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrh r1, [r0, 0x10]
+ strh r1, [r0, 0xC]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrh r1, [r0, 0x12]
+ strh r1, [r0, 0xE]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9B44
+
+ thumb_func_start sub_81A9C04
+sub_81A9C04: @ 81A9C04
+ push {r4-r6,lr}
+ sub sp, 0x14
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r5, r0, 30
+ lsls r0, r5, 1
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x13
+ bls _081A9C3A
+ movs r0, 0x13
+_081A9C3A:
+ cmp r5, 0
+ beq _081A9C54
+ ldr r1, =gBattlePyramidOpenLevelWildMonPointers
+ b _081A9C56
+ .pool
+_081A9C54:
+ ldr r1, =gBattlePyramidLevel50WildMonPointers
+_081A9C56:
+ lsls r0, 2
+ adds r0, r1
+ ldr r6, [r0]
+ ldr r4, =gEnemyParty
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetMonData
+ subs r0, 0x1
+ str r0, [sp, 0x10]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6, r2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl SetMonData
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0]
+ mov r0, sp
+ bl GetSpeciesName
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl SetMonData
+ cmp r5, 0
+ beq _081A9CD4
+ bl sub_8165C40
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ subs r5, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x5
+ adds r5, r0
+ b _081A9CF6
+ .pool
+_081A9CD4:
+ bl Random
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r6
+ ldrb r4, [r1, 0x2]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xB
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x5
+ adds r5, r4, r0
+_081A9CF6:
+ ldr r4, =gEnemyParty
+ ldr r2, =gBaseStats
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ adds r2, r1, 0
+ muls r2, r0
+ lsls r0, r5, 2
+ ldr r1, =gExperienceTables
+ adds r0, r1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x3]
+ cmp r1, 0
+ blt _081A9D4C
+ cmp r1, 0x1
+ bgt _081A9D4C
+ adds r2, r0, 0x3
+ b _081A9D7C
+ .pool
+_081A9D4C:
+ ldr r2, =gBaseStats
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0
+ beq _081A9D90
+ ldr r4, =gEnemyParty
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x1
+ ands r1, r0
+ str r1, [sp, 0xC]
+ add r2, sp, 0xC
+_081A9D7C:
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl SetMonData
+ b _081A9D9C
+ .pool
+_081A9D90:
+ str r0, [sp, 0xC]
+ ldr r0, =gEnemyParty
+ add r2, sp, 0xC
+ movs r1, 0x2E
+ bl SetMonData
+_081A9D9C:
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r2, 0
+ lsls r4, r5, 1
+_081A9DA4:
+ ldr r1, [sp, 0x10]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ lsls r1, r2, 1
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gEnemyParty
+ bl SetMonMoveSlot
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ str r0, [sp, 0xC]
+ adds r2, r0, 0
+ cmp r2, 0x3
+ ble _081A9DA4
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e1a
+ adds r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x8B
+ bls _081A9E0C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0xF
+ str r0, [sp, 0x10]
+ movs r0, 0
+ str r0, [sp, 0xC]
+_081A9DF6:
+ adds r1, r0, 0
+ adds r1, 0x27
+ ldr r0, =gEnemyParty
+ add r2, sp, 0x10
+ bl SetMonData
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ str r0, [sp, 0xC]
+ cmp r0, 0x5
+ ble _081A9DF6
+_081A9E0C:
+ ldr r0, =gEnemyParty
+ bl CalculateMonStats
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9C04
+
+ thumb_func_start sub_81A9E28
+sub_81A9E28: @ 81A9E28
+ push {lr}
+ bl sub_81AA9E4
+ lsls r0, 24
+ ldr r1, =gUnknown_08613650
+ lsrs r0, 20
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A9E28
+
+ thumb_func_start InBattlePyramid
+InBattlePyramid: @ 81A9E40
+ push {lr}
+ ldr r0, =gUnknown_02037318
+ ldrh r1, [r0, 0x12]
+ ldr r0, =0x00000169
+ cmp r1, r0
+ bne _081A9E58
+ movs r0, 0x1
+ b _081A9E66
+ .pool
+_081A9E58:
+ movs r0, 0xBD
+ lsls r0, 1
+ cmp r1, r0
+ beq _081A9E64
+ movs r0, 0
+ b _081A9E66
+_081A9E64:
+ movs r0, 0x2
+_081A9E66:
+ pop {r1}
+ bx r1
+ thumb_func_end InBattlePyramid
+
+ thumb_func_start sub_81A9E6C
+sub_81A9E6C: @ 81A9E6C
+ push {lr}
+ movs r2, 0
+ ldr r0, =gUnknown_02037318
+ ldrh r1, [r0, 0x12]
+ ldr r0, =0x00000169
+ cmp r1, r0
+ beq _081A9E80
+ adds r0, 0x11
+ cmp r1, r0
+ bne _081A9E82
+_081A9E80:
+ movs r2, 0x1
+_081A9E82:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A9E6C
+
+ thumb_func_start sub_81A9E90
+sub_81A9E90: @ 81A9E90
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A9EB8
+ bl sub_81A9834
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca8
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, =0x0000400e
+ movs r1, 0
+ bl VarSet
+ bl copy_player_party_from_sav1
+_081A9EB8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9E90
+
+ thumb_func_start sub_81A9EC8
+sub_81A9EC8: @ 81A9EC8
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ beq _081A9ED8
+ bl DoSoftReset
+_081A9ED8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81A9EC8
+
+ thumb_func_start sub_81A9EDC
+sub_81A9EDC: @ 81A9EDC
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, =gUnknown_0203BC88
+ movs r1, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9EDC
+
+ thumb_func_start sub_81A9EFC
+sub_81A9EFC: @ 81A9EFC
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, =gUnknown_0203BC88
+ movs r1, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0x18
+ bl ConvertBattleFrontierTrainerSpeechToString
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9EFC
+
+ thumb_func_start sub_81A9F1C
+sub_81A9F1C: @ 81A9F1C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, =gUnknown_0203BC88
+ movs r1, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0x24
+ bl ConvertBattleFrontierTrainerSpeechToString
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9F1C
+
+ thumb_func_start sub_81A9F3C
+sub_81A9F3C: @ 81A9F3C
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r4, 0
+ ldr r3, =gTrainerClassNameIndices
+ ldr r1, =gUnknown_0203BC88
+ ldr r2, [r1]
+ movs r1, 0x34
+ muls r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ ldrb r2, [r0]
+ ldr r1, =gUnknown_08613B44
+_081A9F58:
+ ldrb r0, [r1]
+ cmp r0, r2
+ bne _081A9F70
+ ldrb r0, [r1, 0x1]
+ b _081A9F7A
+ .pool
+_081A9F70:
+ adds r1, 0x4
+ adds r4, 0x1
+ cmp r4, 0x35
+ bls _081A9F58
+ movs r0, 0
+_081A9F7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81A9F3C
+
+ thumb_func_start sub_81A9F80
+sub_81A9F80: @ 81A9F80
+ push {lr}
+ ldr r0, =gUnknown_08252C88
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81A9F80
+
+ thumb_func_start sub_81A9F90
+sub_81A9F90: @ 81A9F90
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ lsls r1, 30
+ lsrs r1, 29
+ ldr r2, =0x00000e1a
+ adds r0, r4, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x00000cb2
+ adds r4, r1
+ ldrh r1, [r4]
+ cmp r1, 0x7
+ bne _081AA020
+ adds r0, 0x1
+ lsls r7, r0, 24
+ lsls r1, 24
+ mov r8, r1
+_081A9FCC:
+ lsrs r0, r7, 24
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ cmp r2, r5
+ bge _081AA004
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r4, =0x00000cb4
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _081AA004
+ adds r6, r1, 0
+_081A9FF0:
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081AA004
+ ldr r0, [r6]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _081A9FF0
+_081AA004:
+ cmp r2, r5
+ bne _081A9FCC
+ b _081AA062
+ .pool
+_081AA020:
+ lsls r1, 24
+ mov r8, r1
+ lsls r7, r0, 24
+_081AA026:
+ lsrs r0, r7, 24
+ mov r2, r8
+ lsrs r1, r2, 24
+ bl sub_8162548
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ cmp r2, r5
+ bge _081AA05E
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r4, =0x00000cb4
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _081AA05E
+ adds r6, r1, 0
+_081AA04A:
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081AA05E
+ ldr r0, [r6]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _081AA04A
+_081AA05E:
+ cmp r2, r5
+ bne _081AA026
+_081AA062:
+ adds r0, r3, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81A9F90
+
+ thumb_func_start sub_81AA078
+sub_81AA078: @ 81AA078
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x8]
+ movs r0, 0x10
+ bl AllocZeroed
+ str r0, [sp, 0xC]
+ bl sub_81AA96C
+ mov r4, sp
+ adds r4, 0x1
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_81AA33C
+ movs r7, 0
+_081AA0A6:
+ ldr r1, [sp, 0xC]
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ ldr r2, =0x00000169
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, =gUnknown_08481DD4
+ adds r0, r1
+ ldr r6, [r0]
+ ldr r2, [r6, 0xC]
+ mov r10, r2
+ ldr r0, [sp, 0x4]
+ ldr r1, =gUnknown_03005DC0
+ str r0, [r1, 0x8]
+ ldr r0, [r6]
+ lsls r0, 2
+ adds r2, r0, 0
+ adds r2, 0xF
+ str r2, [r1]
+ ldr r0, [r6, 0x4]
+ lsls r0, 2
+ adds r0, 0xE
+ str r0, [r1, 0x4]
+ ldr r0, [sp, 0x4]
+ mov r9, r0
+ adds r1, r7, 0
+ cmp r7, 0
+ bge _081AA0E0
+ adds r1, r7, 0x3
+_081AA0E0:
+ asrs r1, 2
+ ldr r4, [r6, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, 0x7
+ muls r2, r0
+ lsls r1, 2
+ subs r1, r7, r1
+ ldr r3, [r6]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r0, 0x7
+ adds r2, r0
+ lsls r2, 1
+ add r9, r2
+ movs r1, 0
+ mov r8, r1
+ adds r2, r7, 0x1
+ str r2, [sp, 0x10]
+ cmp r8, r4
+ bge _081AA1B6
+_081AA10A:
+ movs r0, 0
+ mov r12, r0
+ mov r1, r8
+ adds r1, 0x1
+ str r1, [sp, 0x14]
+ cmp r12, r3
+ bge _081AA1A2
+ ldr r2, =gSaveBlock1Ptr
+ str r2, [sp, 0x18]
+ mov r4, r9
+ mov r5, r10
+_081AA120:
+ ldrh r1, [r5]
+ ldr r0, =0x000003ff
+ ands r0, r1
+ ldr r2, =0x0000028e
+ cmp r0, r2
+ bne _081AA194
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r7, r0
+ beq _081AA194
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r7, r0
+ bne _081AA164
+ ldr r1, [sp, 0x8]
+ cmp r1, 0
+ bne _081AA164
+ ldr r2, [sp, 0x18]
+ ldr r3, [r2]
+ adds r2, r7, 0
+ cmp r7, 0
+ bge _081AA14E
+ adds r2, r7, 0x3
+_081AA14E:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r7, r1
+ ldr r0, [r6]
+ muls r0, r1
+ add r0, r12
+ strh r0, [r3]
+ ldr r0, [r6, 0x4]
+ muls r0, r2
+ add r0, r8
+ strh r0, [r3, 0x2]
+_081AA164:
+ ldrh r0, [r5]
+ movs r1, 0xFC
+ lsls r1, 8
+ ands r1, r0
+ ldr r2, =0x0000028d
+ adds r0, r2, 0
+ orrs r1, r0
+ strh r1, [r4]
+ ldr r3, [r6]
+ b _081AA196
+ .pool
+_081AA194:
+ strh r1, [r4]
+_081AA196:
+ adds r4, 0x2
+ adds r5, 0x2
+ movs r0, 0x1
+ add r12, r0
+ cmp r12, r3
+ blt _081AA120
+_081AA1A2:
+ lsls r0, r3, 3
+ adds r0, 0x1E
+ add r9, r0
+ lsls r0, r3, 1
+ add r10, r0
+ ldr r1, [sp, 0x14]
+ mov r8, r1
+ ldr r0, [r6, 0x4]
+ cmp r8, r0
+ blt _081AA10A
+_081AA1B6:
+ ldr r7, [sp, 0x10]
+ cmp r7, 0xF
+ bgt _081AA1BE
+ b _081AA0A6
+_081AA1BE:
+ bl mapheader_run_script_with_tag_x1
+ ldr r0, [sp, 0xC]
+ bl Free
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AA078
+
+ thumb_func_start sub_81AA1D8
+sub_81AA1D8: @ 81AA1D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r5, 0
+ mov r6, sp
+ adds r6, 0x1
+ add r0, sp, 0x4
+ mov r8, r0
+ ldr r4, =gSaveBlock2Ptr
+ ldr r3, =0x00000cb4
+ ldr r0, =0x0000ffff
+ adds r2, r0, 0
+_081AA1F2:
+ ldr r0, [r4]
+ lsls r1, r5, 1
+ adds r0, r3
+ adds r0, r1
+ ldrh r1, [r0]
+ orrs r1, r2
+ strh r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _081AA1F2
+ bl sub_81AA9E4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, sp
+ adds r1, r6, 0
+ bl sub_81AA33C
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r0, 0xC7
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, =0x05000180
+ mov r0, r8
+ bl CpuSet
+ movs r5, 0
+_081AA22E:
+ cmp r5, 0
+ bne _081AA254
+ ldr r1, =gUnknown_08613650
+ lsls r0, r7, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ b _081AA25C
+ .pool
+_081AA254:
+ ldr r1, =gUnknown_08613650
+ lsls r0, r7, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+_081AA25C:
+ cmp r0, 0x4
+ bhi _081AA2E4
+ lsls r0, 2
+ ldr r1, =_081AA274
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AA274:
+ .4byte _081AA288
+ .4byte _081AA292
+ .4byte _081AA2A2
+ .4byte _081AA2B0
+ .4byte _081AA2CC
+_081AA288:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_81AA398
+ b _081AA2E4
+_081AA292:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_81AA4D8
+ b _081AA2BE
+_081AA2A2:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl sub_81AA4D8
+ b _081AA2BE
+_081AA2B0:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ mov r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_81AA648
+_081AA2BE:
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA2E4
+ adds r0, r4, 0
+ bl sub_81AA398
+ b _081AA2E4
+_081AA2CC:
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl sub_81AA648
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA2E4
+ adds r0, r4, 0
+ bl sub_81AA398
+_081AA2E4:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _081AA22E
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AA1D8
+
+ thumb_func_start sub_81AA2F8
+sub_81AA2F8: @ 81AA2F8
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r5, =gUnknown_08252C4F
+ ldr r4, =gUnknown_08252C6A
+ movs r2, 0xC8
+ lsls r2, 4
+ adds r1, r0, r2
+ movs r3, 0xC7
+ lsls r3, 4
+ adds r2, r0, r3
+ movs r3, 0x3F
+_081AA310:
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3B
+ beq _081AA328
+ str r5, [r1]
+ b _081AA32A
+ .pool
+_081AA328:
+ str r4, [r1]
+_081AA32A:
+ adds r1, 0x18
+ adds r2, 0x18
+ subs r3, 0x1
+ cmp r3, 0
+ bge _081AA310
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AA2F8
+
+ thumb_func_start sub_81AA33C
+sub_81AA33C: @ 81AA33C
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ ldr r5, =gSaveBlock2Ptr
+ ldr r1, [r5]
+ ldr r2, =0x00000e28
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ movs r3, 0xF
+ ands r2, r3
+ strb r2, [r4]
+ ldr r7, =0x00000e22
+ adds r1, r7
+ ldrh r0, [r1]
+ ands r0, r3
+ strb r0, [r6]
+ cmp r2, r0
+ bne _081AA386
+ ldr r1, [r5]
+ ldr r2, =0x00000e28
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ adds r3, r2, 0x1
+ adds r0, r3, 0
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r3, r0
+ strb r0, [r4]
+ adds r0, r1, r7
+ ldrh r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xF
+ adds r0, r2, 0
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r2, r0
+ strb r0, [r6]
+_081AA386:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AA33C
+
+ thumb_func_start sub_81AA398
+sub_81AA398: @ 81AA398
+ 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
+ str r0, [sp]
+ movs r5, 0
+ bl sub_81AA9E4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x10
+ bl AllocZeroed
+ str r0, [sp, 0x8]
+ bl sub_81AA96C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e26
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r0, 0xF
+ ands r4, r0
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _081AA3F0
+ ldr r1, =gUnknown_08613650
+ lsls r0, r6, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x4]
+ b _081AA3FE
+ .pool
+_081AA3F0:
+ ldr r1, =gUnknown_08613650
+ lsls r0, r6, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r10, r1
+ ldrb r0, [r0, 0x1]
+ str r0, [sp, 0x4]
+_081AA3FE:
+ movs r0, 0
+ mov r8, r0
+ cmp r8, r10
+ bge _081AA4C0
+_081AA406:
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+ b _081AA42E
+ .pool
+_081AA414:
+ lsls r2, r4, 24
+ lsrs r2, 24
+ ldr r3, [sp, 0x4]
+ add r3, r8
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x8]
+ bl sub_81AA760
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA4B6
+_081AA42E:
+ ldr r0, =gBitTable
+ mov r12, r0
+ ldr r6, =gSaveBlock2Ptr
+ ldr r7, =0x00000e28
+ movs r3, 0x2
+ lsls r0, r4, 2
+ mov r1, r12
+ adds r2, r0, r1
+_081AA43E:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _081AA464
+ ldr r0, [r6]
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _081AA474
+ b _081AA472
+ .pool
+_081AA464:
+ ldr r0, [r6]
+ adds r0, r7
+ ldrh r1, [r0]
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _081AA474
+_081AA472:
+ orrs r5, r3
+_081AA474:
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _081AA480
+ mov r2, r12
+ movs r4, 0
+_081AA480:
+ ldr r0, [r6]
+ ldr r1, =0x00000e26
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0xF
+ ands r1, r0
+ cmp r4, r1
+ bne _081AA4A6
+ movs r1, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081AA4A4
+ movs r0, 0x6
+ orrs r5, r0
+ b _081AA4A6
+ .pool
+_081AA4A4:
+ orrs r5, r1
+_081AA4A6:
+ adds r0, r5, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _081AA43E
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ beq _081AA414
+_081AA4B6:
+ movs r0, 0x1
+ ands r5, r0
+ mov r8, r9
+ cmp r8, r10
+ blt _081AA406
+_081AA4C0:
+ ldr r0, [sp, 0x8]
+ bl Free
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AA398
+
+ thumb_func_start sub_81AA4D8
+sub_81AA4D8: @ 81AA4D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ movs r6, 0
+ movs r7, 0
+ movs r0, 0
+ str r0, [sp, 0xC]
+ bl sub_81AA9E4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x10
+ bl AllocZeroed
+ str r0, [sp, 0x14]
+ bl sub_81AA96C
+ ldr r1, [sp]
+ cmp r1, 0
+ bne _081AA524
+ ldr r1, =gUnknown_08613650
+ lsls r0, r4, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ b _081AA530
+ .pool
+_081AA524:
+ ldr r1, =gUnknown_08613650
+ lsls r0, r4, 4
+ adds r0, r1
+ ldrb r2, [r0]
+ str r2, [sp, 0x10]
+ ldrb r0, [r0, 0x1]
+_081AA530:
+ movs r3, 0
+ str r3, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ asrs r1, 31
+ str r1, [sp, 0x18]
+ ldr r2, [sp, 0x10]
+ cmp r3, r2
+ bge _081AA622
+ str r0, [sp, 0x1C]
+ adds r3, r0, 0
+ lsls r3, 24
+ mov r9, r3
+_081AA548:
+ cmp r7, 0
+ bne _081AA56E
+ mov r0, r9
+ lsrs r3, r0, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x14]
+ ldr r2, [sp, 0x4]
+ bl sub_81AA760
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA568
+ movs r7, 0x1
+ b _081AA56E
+ .pool
+_081AA568:
+ ldr r1, [sp, 0xC]
+ adds r1, 0x1
+ str r1, [sp, 0xC]
+_081AA56E:
+ movs r0, 0x1
+ ands r0, r7
+ cmp r0, 0
+ beq _081AA600
+ ldr r2, =gUnknown_08613F46
+ mov r8, r2
+ ldr r3, [sp, 0x4]
+ lsls r4, r3, 2
+ adds r0, r6, r4
+ add r0, r8
+ ldrb r2, [r0]
+ mov r0, r9
+ lsrs r3, r0, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x14]
+ bl sub_81AA760
+ lsls r0, 24
+ ldr r1, [sp, 0x1C]
+ mov r10, r1
+ adds r5, r4, 0
+ cmp r0, 0
+ beq _081AA5E8
+ ldr r4, [sp, 0xC]
+ adds r4, 0x1
+ b _081AA5C2
+ .pool
+_081AA5A8:
+ adds r0, r6, r5
+ adds r0, r2
+ ldrb r2, [r0]
+ mov r0, r10
+ lsls r3, r0, 24
+ lsrs r3, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x14]
+ bl sub_81AA760
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA5E0
+_081AA5C2:
+ adds r6, 0x1
+ ldr r0, =gUnknown_08613F46
+ adds r1, r6, r5
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0xFF
+ beq _081AA5D6
+ cmp r6, 0x3
+ ble _081AA5D8
+_081AA5D6:
+ movs r6, 0
+_081AA5D8:
+ adds r7, 0x2
+ asrs r0, r7, 1
+ cmp r0, 0x4
+ bne _081AA5A8
+_081AA5E0:
+ str r4, [sp, 0xC]
+ b _081AA600
+ .pool
+_081AA5E8:
+ adds r6, 0x1
+ adds r0, r6, r4
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _081AA5F8
+ cmp r6, 0x3
+ ble _081AA5FA
+_081AA5F8:
+ movs r6, 0
+_081AA5FA:
+ ldr r1, [sp, 0xC]
+ adds r1, 0x1
+ str r1, [sp, 0xC]
+_081AA600:
+ asrs r0, r7, 1
+ cmp r0, 0x4
+ beq _081AA622
+ movs r0, 0x1
+ ands r7, r0
+ ldr r2, [sp, 0x1C]
+ adds r2, 0x1
+ str r2, [sp, 0x1C]
+ movs r3, 0x80
+ lsls r3, 17
+ add r9, r3
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ cmp r0, r1
+ blt _081AA548
+_081AA622:
+ movs r1, 0
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x18]
+ subs r0, r2, r3
+ asrs r0, 1
+ ldr r2, [sp, 0xC]
+ cmp r0, r2
+ ble _081AA634
+ movs r1, 0x1
+_081AA634:
+ adds r0, r1, 0
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AA4D8
+
+ thumb_func_start sub_81AA648
+sub_81AA648: @ 81AA648
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r4, 0
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ bl sub_81AA9E4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x10
+ bl AllocZeroed
+ str r0, [sp, 0x8]
+ bl sub_81AA96C
+ ldr r1, [sp]
+ cmp r1, 0
+ bne _081AA694
+ ldr r1, =gUnknown_08613650
+ lsls r0, r5, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ mov r10, r0
+ movs r0, 0
+ b _081AA6A0
+ .pool
+_081AA694:
+ ldr r1, =gUnknown_08613650
+ lsls r0, r5, 4
+ adds r0, r1
+ ldrb r2, [r0]
+ mov r10, r2
+ ldrb r0, [r0, 0x1]
+_081AA6A0:
+ movs r3, 0
+ str r3, [sp, 0x4]
+ mov r1, r10
+ asrs r1, 31
+ str r1, [sp, 0xC]
+ cmp r3, r10
+ bge _081AA73E
+ ldr r2, =gUnknown_08613F46
+ mov r9, r2
+ lsls r5, r6, 2
+ lsls r6, r0, 24
+_081AA6B6:
+ adds r0, r4, r5
+ add r0, r9
+ ldrb r2, [r0]
+ lsrs r3, r6, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x8]
+ bl sub_81AA760
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA714
+ adds r7, 0x1
+ b _081AA6EE
+ .pool
+_081AA6D8:
+ adds r0, r4, r5
+ adds r0, r1
+ ldrb r2, [r0]
+ lsrs r3, r6, 24
+ ldr r0, [sp]
+ ldr r1, [sp, 0x8]
+ bl sub_81AA760
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA728
+_081AA6EE:
+ adds r4, 0x1
+ adds r0, r4, r5
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_08613F46
+ cmp r0, 0xFF
+ beq _081AA700
+ cmp r4, 0x3
+ ble _081AA702
+_081AA700:
+ movs r4, 0
+_081AA702:
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x4
+ bne _081AA6D8
+ b _081AA728
+ .pool
+_081AA714:
+ adds r4, 0x1
+ adds r0, r4, r5
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _081AA724
+ cmp r4, 0x3
+ ble _081AA726
+_081AA724:
+ movs r4, 0
+_081AA726:
+ adds r7, 0x1
+_081AA728:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _081AA73E
+ movs r2, 0x80
+ lsls r2, 17
+ adds r6, r2
+ ldr r3, [sp, 0x4]
+ adds r3, 0x1
+ str r3, [sp, 0x4]
+ cmp r3, r10
+ blt _081AA6B6
+_081AA73E:
+ movs r1, 0
+ mov r2, r10
+ ldr r3, [sp, 0xC]
+ subs r0, r2, r3
+ asrs r0, 1
+ cmp r0, r7
+ ble _081AA74E
+ movs r1, 0x1
+_081AA74E:
+ adds r0, r1, 0
+ 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_81AA648
+
+ thumb_func_start sub_81AA760
+sub_81AA760: @ 81AA760
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e22
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AA7D0
+ movs r6, 0x7
+_081AA792:
+ movs r4, 0x7
+ lsls r5, r6, 24
+_081AA796:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r9
+ lsrs r2, r5, 24
+ mov r3, r10
+ bl sub_81AA810
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA7CC
+ subs r4, 0x1
+ cmp r4, 0
+ bge _081AA796
+ subs r6, 0x1
+ movs r1, 0x1
+ negs r1, r1
+ cmp r6, r1
+ bgt _081AA792
+ b _081AA7FC
+ .pool
+_081AA7CC:
+ movs r0, 0
+ b _081AA7FE
+_081AA7D0:
+ movs r6, 0
+_081AA7D2:
+ movs r4, 0
+ lsls r5, r6, 24
+_081AA7D6:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ str r7, [sp, 0x4]
+ mov r0, r9
+ lsrs r2, r5, 24
+ mov r3, r10
+ bl sub_81AA810
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AA7CC
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _081AA7D6
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _081AA7D2
+_081AA7FC:
+ movs r0, 0x1
+_081AA7FE:
+ 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_81AA760
+
+ thumb_func_start sub_81AA810
+sub_81AA810: @ 81AA810
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r4, [sp, 0x34]
+ ldr r5, [sp, 0x38]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r4, 24
+ lsrs r4, 24
+ mov r10, r4
+ lsls r5, 24
+ lsrs r6, r5, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r1, r0, r1
+ str r1, [sp, 0x8]
+ add r3, r10
+ ldrb r1, [r3]
+ adds r1, 0x2C
+ movs r0, 0x19
+ bl get_mapheader_by_bank_and_number
+ adds r5, r0, 0
+ movs r7, 0
+ ldr r1, [r5, 0x4]
+ ldrb r2, [r1]
+ cmp r7, r2
+ bge _081AA95A
+ movs r0, 0x3
+ ands r0, r4
+ lsls r0, 3
+ str r0, [sp, 0xC]
+_081AA868:
+ ldr r1, [r1, 0x4]
+ lsls r2, r7, 1
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ movs r4, 0x4
+ ldrsh r0, [r3, r4]
+ ldr r1, [r5, 0x4]
+ mov r12, r1
+ mov r9, r2
+ ldr r2, [sp, 0x4]
+ cmp r0, r2
+ bne _081AA950
+ movs r4, 0x6
+ ldrsh r0, [r3, r4]
+ cmp r0, r8
+ bne _081AA950
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _081AA896
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x3B
+ bne _081AA8A2
+_081AA896:
+ ldr r1, [sp]
+ cmp r1, 0x1
+ bne _081AA950
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x3B
+ bne _081AA950
+_081AA8A2:
+ movs r3, 0
+ ldr r2, [r5, 0x4]
+ mov r12, r2
+ cmp r3, r6
+ bge _081AA8DC
+ ldr r4, [sp, 0x4]
+ ldr r0, [sp, 0xC]
+ adds r4, r0
+ str r4, [sp, 0x10]
+ mov r1, r10
+ lsrs r0, r1, 2
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r2, r0
+ ldr r2, [sp, 0x8]
+ adds r2, 0x4
+_081AA8C2:
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ ldr r4, [sp, 0x10]
+ cmp r0, r4
+ bne _081AA8D4
+ movs r4, 0x2
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ beq _081AA8DC
+_081AA8D4:
+ adds r2, 0x18
+ adds r3, 0x1
+ cmp r3, r6
+ blt _081AA8C2
+_081AA8DC:
+ cmp r3, r6
+ bne _081AA950
+ lsls r0, r6, 1
+ mov r8, r0
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, [sp, 0x8]
+ adds r5, r0, r1
+ mov r3, r12
+ ldr r2, [r3, 0x4]
+ mov r4, r9
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r0, r5, 0
+ adds r1, r2
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldrh r0, [r5, 0x4]
+ ldr r1, [sp, 0xC]
+ adds r0, r1
+ strh r0, [r5, 0x4]
+ mov r2, r10
+ lsrs r0, r2, 2
+ lsls r0, 3
+ ldrh r3, [r5, 0x6]
+ adds r0, r3
+ strh r0, [r5, 0x6]
+ adds r0, r6, 0x1
+ strb r0, [r5]
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x3B
+ beq _081AA940
+ adds r0, r6, 0
+ bl sub_81A9F90
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r4, r7, 0
+ adds r0, r4, 0
+ bl sub_81627A4
+ strb r0, [r5, 0x1]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000cb4
+ adds r0, r1
+ add r0, r8
+ strh r4, [r0]
+_081AA940:
+ movs r0, 0
+ b _081AA95C
+ .pool
+_081AA950:
+ adds r7, 0x1
+ mov r1, r12
+ ldrb r2, [r1]
+ cmp r7, r2
+ blt _081AA868
+_081AA95A:
+ movs r0, 0x1
+_081AA95C:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AA810
+
+ thumb_func_start sub_81AA96C
+sub_81AA96C: @ 81AA96C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000e22
+ adds r1, r0, r2
+ ldrh r4, [r1]
+ ldr r1, =0x00000e24
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ orrs r4, r0
+ bl sub_81AA9E4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r2, =gUnknown_08613655
+ mov r12, r2
+ movs r7, 0x7
+_081AA994:
+ adds r2, r6, r3
+ adds r0, r4, 0
+ ands r0, r7
+ lsls r1, r5, 4
+ adds r0, r1
+ add r0, r12
+ ldrb r0, [r0]
+ strb r0, [r2]
+ asrs r4, 3
+ cmp r3, 0x7
+ bne _081AA9C0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000e26
+ adds r0, r1, r2
+ ldrh r4, [r0]
+ ldr r0, =0x00000e28
+ adds r1, r0
+ ldrh r0, [r1]
+ lsls r0, 16
+ orrs r4, r0
+ asrs r4, 8
+_081AA9C0:
+ adds r3, 0x1
+ cmp r3, 0xF
+ ble _081AA994
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AA96C
+
+ thumb_func_start sub_81AA9E4
+sub_81AA9E4: @ 81AA9E4
+ push {r4,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r1, =0x00000e28
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r0, =0x00000cb2
+ adds r4, r0
+ ldrh r0, [r4]
+ ldr r1, =gUnknown_08613794
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x21
+ bhi _081AAA38
+ ldr r1, =gUnknown_08613750
+ lsls r0, r2, 1
+ adds r0, r1
+_081AAA10:
+ ldrb r1, [r0]
+ cmp r3, r1
+ bge _081AAA30
+ ldrb r0, [r0, 0x1]
+ b _081AAA3A
+ .pool
+_081AAA30:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x21
+ bls _081AAA10
+_081AAA38:
+ movs r0, 0
+_081AAA3A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AA9E4
+
+ thumb_func_start sub_81AAA40
+sub_81AAA40: @ 81AAA40
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0xC7
+ lsls r1, 4
+ adds r2, r0, r1
+ movs r1, 0
+ movs r3, 0xC7
+ lsls r3, 4
+ adds r0, r3
+ b _081AAA6E
+ .pool
+_081AAA5C:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bhi _081AAA74
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+_081AAA6E:
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081AAA5C
+_081AAA74:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AAA40
+
+ thumb_func_start sub_81AAA7C
+sub_81AAA7C: @ 81AAA7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldr r1, =gSaveBlock2Ptr
+ mov r8, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ movs r0, 0
+ mov r12, r0
+ lsls r4, r1, 1
+ ldr r7, =0x00000e2c
+ movs r6, 0
+ ldr r5, =0x00000e54
+ lsls r2, r1, 2
+_081AAA9E:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r1, r0, r7
+ adds r1, r2
+ strh r6, [r1]
+ adds r1, r3, r4
+ adds r0, r5
+ adds r0, r1
+ mov r1, r12
+ strb r1, [r0]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _081AAA9E
+ movs r0, 0x15
+ movs r1, 0x1
+ bl AddPyramidBagItem
+ movs r0, 0x22
+ movs r1, 0x1
+ bl AddPyramidBagItem
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AAA7C
+
+ thumb_func_start CalculateBattlePyramidPickupItemId
+CalculateBattlePyramidPickupItemId: @ 81AAAE0
+ push {r4-r6,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r2, =0x00000ca9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r6, r0, 30
+ lsls r0, r6, 1
+ ldr r2, =0x00000e1a
+ adds r1, r2
+ adds r1, r0
+ ldrh r0, [r1]
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ ble _081AAB0A
+ movs r4, 0x13
+_081AAB0A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, =gUnknown_08613F86
+ ldrb r0, [r3]
+ lsls r5, r4, 2
+ cmp r0, r2
+ bgt _081AAB36
+_081AAB28:
+ adds r1, 0x1
+ cmp r1, 0x9
+ bhi _081AAB3A
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ ble _081AAB28
+_081AAB36:
+ cmp r1, 0x9
+ bls _081AAB3C
+_081AAB3A:
+ movs r1, 0x9
+_081AAB3C:
+ cmp r6, 0
+ bne _081AAB58
+ ldr r2, =gUnknown_0861379C
+ b _081AAB5A
+ .pool
+_081AAB58:
+ ldr r2, =gUnknown_0861392C
+_081AAB5A:
+ lsls r1, 1
+ adds r0, r5, r4
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end CalculateBattlePyramidPickupItemId
+
+ thumb_func_start ResetBagScrollPositions
+ResetBagScrollPositions: @ 81AAB70
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE58
+ movs r0, 0
+ strb r0, [r4, 0x5]
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0
+ movs r2, 0xA
+ bl memset
+ adds r4, 0x12
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xA
+ bl memset
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ResetBagScrollPositions
+
+ thumb_func_start CB2_BagMenuFromStartMenu
+@ void CB2_BagMenuFromStartMenu()
+CB2_BagMenuFromStartMenu: @ 81AAB9C
+ push {lr}
+ ldr r2, =sub_8086194
+ movs r0, 0
+ movs r1, 0x5
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_BagMenuFromStartMenu
+
+ thumb_func_start sub_81AABB0
+sub_81AABB0: @ 81AABB0
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AABCC
+ ldr r2, =sub_8059D50
+ movs r0, 0x1
+ movs r1, 0x5
+ bl GoToBagMenu
+ b _081AABD4
+ .pool
+_081AABCC:
+ ldr r1, =sub_8059D50
+ movs r0, 0x1
+ bl sub_81C4F98
+_081AABD4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AABB0
+
+ thumb_func_start CB2_ChooseBerry
+CB2_ChooseBerry: @ 81AABDC
+ push {lr}
+ ldr r2, =sub_80861B0
+ movs r0, 0x4
+ movs r1, 0x3
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_ChooseBerry
+
+ thumb_func_start sub_81AABF0
+sub_81AABF0: @ 81AABF0
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x5
+ movs r1, 0x3
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AABF0
+
+ thumb_func_start CB2_GoToSellMenu
+@ void CB2_GoToSellMenu()
+CB2_GoToSellMenu: @ 81AAC00
+ push {lr}
+ ldr r2, =CB2_ExitSellMenu
+ movs r0, 0x3
+ movs r1, 0x5
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_GoToSellMenu
+
+ thumb_func_start sub_81AAC14
+sub_81AAC14: @ 81AAC14
+ push {lr}
+ ldr r2, =sub_816B31C
+ movs r0, 0x6
+ movs r1, 0x5
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AAC14
+
+ thumb_func_start sub_81AAC28
+sub_81AAC28: @ 81AAC28
+ push {lr}
+ ldr r2, =bag_menu_leave_maybe_3
+ movs r0, 0x9
+ movs r1, 0x5
+ bl GoToBagMenu
+ ldr r0, =gSpecialVar_0x8005
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AAC28
+
+ thumb_func_start sub_81AAC50
+sub_81AAC50: @ 81AAC50
+ push {lr}
+ ldr r2, =bag_menu_leave_maybe_2
+ movs r0, 0x7
+ movs r1, 0x5
+ bl GoToBagMenu
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AAC50
+
+ thumb_func_start sub_81AAC70
+sub_81AAC70: @ 81AAC70
+ push {lr}
+ ldr r2, =bag_menu_leave_maybe
+ movs r0, 0x8
+ movs r1, 0x5
+ bl GoToBagMenu
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AAC70
+
+ thumb_func_start GoToBagMenu
+@ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)())
+GoToBagMenu: @ 81AAC90
+ push {r4-r7,lr}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r6, =gUnknown_0203CE54
+ ldr r0, =0x00000c48
+ bl AllocZeroed
+ str r0, [r6]
+ cmp r0, 0
+ bne _081AACBC
+ adds r0, r4, 0
+ bl SetMainCallback2
+ b _081AAD3A
+ .pool
+_081AACBC:
+ ldr r0, =gUnknown_0203CE58
+ cmp r5, 0xC
+ beq _081AACC4
+ strb r5, [r0, 0x4]
+_081AACC4:
+ cmp r4, 0
+ beq _081AACCA
+ str r4, [r0]
+_081AACCA:
+ cmp r7, 0x4
+ bhi _081AACD0
+ strb r7, [r0, 0x5]
+_081AACD0:
+ ldrb r0, [r0, 0x4]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081AACF0
+ ldr r2, [r6]
+ ldr r0, =0x0000081b
+ adds r2, r0
+ ldrb r1, [r2]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_081AACF0:
+ ldr r0, [r6]
+ movs r1, 0
+ str r1, [r0]
+ ldr r1, =0x0000081a
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldr r1, =0x0000081e
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldr r1, =0x0000081f
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strb r1, [r0]
+ ldr r0, [r6]
+ ldr r1, =0x00000804
+ adds r0, r1
+ movs r1, 0xFF
+ movs r2, 0xC
+ bl memset
+ ldr r0, [r6]
+ movs r1, 0x81
+ lsls r1, 4
+ adds r0, r1
+ movs r1, 0xFF
+ movs r2, 0xA
+ bl memset
+ ldr r0, =CB2_Bag
+ bl SetMainCallback2
+_081AAD3A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end GoToBagMenu
+
+ thumb_func_start c2_bag_3
+c2_bag_3: @ 81AAD5C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl do_scheduled_bg_tilemap_copies_to_vram
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end c2_bag_3
+
+ thumb_func_start vblank_cb_bag_menu
+vblank_cb_bag_menu: @ 81AAD78
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end vblank_cb_bag_menu
+
+ thumb_func_start CB2_Bag
+CB2_Bag: @ 81AAD8C
+ push {lr}
+_081AAD8E:
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AADB2
+ bl setup_bag_menu
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AADB2
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081AAD8E
+_081AADB2:
+ pop {r0}
+ bx r0
+ thumb_func_end CB2_Bag
+
+ thumb_func_start setup_bag_menu
+setup_bag_menu: @ 81AADB8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x14
+ bls _081AADCE
+ b _081AB02C
+_081AADCE:
+ lsls r0, 2
+ ldr r1, =_081AADE0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AADE0:
+ .4byte _081AAE34
+ .4byte _081AAE3E
+ .4byte _081AAE50
+ .4byte _081AAE56
+ .4byte _081AAE78
+ .4byte _081AAE7E
+ .4byte _081AAE86
+ .4byte _081AAEA4
+ .4byte _081AAECC
+ .4byte _081AAEDA
+ .4byte _081AAEEC
+ .4byte _081AAEFA
+ .4byte _081AAF0C
+ .4byte _081AAF1C
+ .4byte _081AAF54
+ .4byte _081AAFA0
+ .4byte _081AAFBC
+ .4byte _081AAFC2
+ .4byte _081AAFD8
+ .4byte _081AAFDE
+ .4byte _081AAFF8
+_081AAE34:
+ bl SetVBlankHBlankCallbacksToNull
+ bl clear_scheduled_bg_copies_to_vram
+ b _081AB012
+_081AAE3E:
+ bl remove_some_task
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAE50:
+ bl FreeAllSpritePalettes
+ b _081AB012
+_081AAE56:
+ bl ResetPaletteFade
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAE78:
+ bl ResetSpriteData
+ b _081AB012
+_081AAE7E:
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+ b _081AB01A
+_081AAE86:
+ bl sub_81221AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AAE94
+ bl ResetTasks
+_081AAE94:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAEA4:
+ bl bag_menu_init_bgs
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000834
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAECC:
+ bl load_bag_menu_graphics
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AAED8
+ b _081AB044
+_081AAED8:
+ b _081AB012
+_081AAEDA:
+ bl setup_bag_menu_textboxes
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAEEC:
+ bl sub_81ABA6C
+ bl sub_81ABAC4
+ bl sub_81ABAE0
+ b _081AB012
+_081AAEFA:
+ bl allocate_bag_item_list_buffers
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAF0C:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ bl load_bag_item_list_buffers
+ b _081AB012
+ .pool
+_081AAF1C:
+ ldr r1, =gUnknown_085E91FC
+ ldr r4, =gUnknown_0203CE58
+ ldrb r0, [r4, 0x5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl bag_menu_print_pocket_names
+ movs r0, 0
+ bl bag_menu_copy_pocket_name_to_window
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x1
+ bl bag_menu_draw_pocket_indicator_square
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAF54:
+ ldr r4, =gUnknown_0203CE58
+ ldrb r0, [r4, 0x4]
+ bl sub_81AB1F0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_03006310
+ ldrb r2, [r4, 0x5]
+ lsls r2, 1
+ adds r1, r4, 0
+ adds r1, 0x12
+ adds r1, r2, r1
+ ldrh r1, [r1]
+ adds r4, 0x8
+ adds r2, r4
+ ldrh r2, [r2]
+ bl ListMenuInit
+ ldr r2, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x18]
+ b _081AB012
+ .pool
+_081AAFA0:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ bl AddBagVisualObject
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAFBC:
+ bl sub_80D4FAC
+ b _081AB012
+_081AAFC2:
+ bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
+ bl bag_menu_add_list_scroll_arrow_indicators_maybe
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAFD8:
+ bl bag_menu_prepare_tmhm_move_window
+ b _081AB012
+_081AAFDE:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _081AB01A
+ .pool
+_081AAFF8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_081AB012:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+_081AB01A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081AB044
+ .pool
+_081AB02C:
+ ldr r0, =vblank_cb_bag_menu
+ bl SetVBlankCallback
+ ldr r0, =c2_bag_3
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _081AB046
+ .pool
+_081AB044:
+ movs r0, 0
+_081AB046:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end setup_bag_menu
+
+ thumb_func_start bag_menu_init_bgs
+bag_menu_init_bgs: @ 81AB050
+ push {r4,lr}
+ bl sub_8121DA0
+ ldr r4, =gUnknown_0203CE54
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r2, 0x80
+ lsls r2, 4
+ movs r1, 0
+ bl memset
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_08613F90
+ movs r0, 0
+ movs r2, 0x3
+ bl InitBgsFromTemplates
+ ldr r1, [r4]
+ adds r1, 0x4
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ bl sub_8121E10
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_init_bgs
+
+ thumb_func_start load_bag_menu_graphics
+load_bag_menu_graphics: @ 81AB0BC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203CE54
+ ldr r0, [r4]
+ ldr r1, =0x00000834
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _081AB0D2
+ b _081AB1CC
+_081AB0D2:
+ lsls r0, 2
+ ldr r1, =_081AB0E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AB0E8:
+ .4byte _081AB0FC
+ .4byte _081AB118
+ .4byte _081AB13C
+ .4byte _081AB174
+ .4byte _081AB1A8
+_081AB0FC:
+ bl reset_temp_tile_data_buffers
+ ldr r1, =gUnknown_08D9A620
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _081AB1AE
+ .pool
+_081AB118:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AB1E4
+ ldr r0, =gUnknown_08D9A88C
+ ldr r4, =gUnknown_0203CE54
+ ldr r1, [r4]
+ adds r1, 0x4
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _081AB1B2
+ .pool
+_081AB13C:
+ bl IsWallysBag
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AB164
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _081AB164
+ ldr r0, =gUnknown_08D9A5D4
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _081AB1AE
+ .pool
+_081AB164:
+ ldr r0, =gUnknown_08D9A588
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _081AB1AE
+ .pool
+_081AB174:
+ bl IsWallysBag
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AB18A
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _081AB19C
+_081AB18A:
+ ldr r0, =gUnknown_0857FB34
+ bl LoadCompressedObjectPic
+ b _081AB1AE
+ .pool
+_081AB19C:
+ ldr r0, =gUnknown_0857FB3C
+ bl LoadCompressedObjectPic
+ b _081AB1AE
+ .pool
+_081AB1A8:
+ ldr r0, =gUnknown_0857FB44
+ bl LoadCompressedObjectPalette
+_081AB1AE:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+_081AB1B2:
+ ldr r0, =0x00000834
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081AB1E4
+ .pool
+_081AB1CC:
+ bl sub_8122328
+ ldr r0, [r4]
+ ldr r1, =0x00000834
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ b _081AB1E6
+ .pool
+_081AB1E4:
+ movs r0, 0
+_081AB1E6:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end load_bag_menu_graphics
+
+ thumb_func_start sub_81AB1F0
+sub_81AB1F0: @ 81AB1F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _081AB204
+ ldr r0, =Task_WallyTutorialBagMenu
+ b _081AB206
+ .pool
+_081AB204:
+ ldr r0, =Task_BagMenu
+_081AB206:
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81AB1F0
+
+ thumb_func_start allocate_bag_item_list_buffers
+allocate_bag_item_list_buffers: @ 81AB218
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE74
+ movs r0, 0x82
+ lsls r0, 2
+ bl Alloc
+ str r0, [r4]
+ ldr r4, =gUnknown_0203CE78
+ movs r0, 0xC3
+ lsls r0, 3
+ bl Alloc
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end allocate_bag_item_list_buffers
+
+ thumb_func_start load_bag_item_list_buffers
+@ void load_bag_item_list_buffers(int pocket_id)
+load_bag_item_list_buffers: @ 81AB240
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, r7, 3
+ ldr r0, =gBagPockets
+ adds r1, r0
+ mov r8, r1
+ ldr r0, =gUnknown_0203CE54
+ ldr r2, [r0]
+ ldr r1, =0x0000081b
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081AB2FC
+ movs r6, 0
+ ldr r3, =0x00000829
+ adds r0, r2, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _081AB2B6
+ ldr r5, =gUnknown_0203CE78
+_081AB276:
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 3
+ ldr r0, [r5]
+ adds r0, r4
+ mov r1, r8
+ ldr r2, [r1]
+ lsls r1, r6, 2
+ adds r1, r2
+ ldrh r1, [r1]
+ bl get_name
+ ldr r0, =gUnknown_0203CE74
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldr r0, [r5]
+ adds r0, r4
+ str r0, [r1]
+ str r6, [r1, 0x4]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r3, =0x00000829
+ adds r0, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _081AB276
+_081AB2B6:
+ ldr r5, =gUnknown_0203CE78
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 3
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =gUnknown_085E8DB4
+ bl StringCopy
+ ldr r0, =gUnknown_0203CE74
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldr r0, [r5]
+ adds r0, r4
+ str r0, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ str r0, [r1, 0x4]
+ b _081AB34A
+ .pool
+_081AB2FC:
+ movs r6, 0
+ ldr r4, =0x00000829
+ adds r0, r2, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _081AB34A
+ ldr r5, =gUnknown_0203CE78
+_081AB30C:
+ lsls r4, r6, 1
+ adds r4, r6
+ lsls r4, 3
+ ldr r0, [r5]
+ adds r0, r4
+ mov r1, r8
+ ldr r2, [r1]
+ lsls r1, r6, 2
+ adds r1, r2
+ ldrh r1, [r1]
+ bl get_name
+ ldr r0, =gUnknown_0203CE74
+ ldr r0, [r0]
+ lsls r1, r6, 3
+ adds r1, r0
+ ldr r0, [r5]
+ adds r0, r4
+ str r0, [r1]
+ str r6, [r1, 0x4]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r3, =0x00000829
+ adds r0, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _081AB30C
+_081AB34A:
+ ldr r2, =gUnknown_03006310
+ adds r1, r2, 0
+ ldr r0, =gUnknown_08613F9C
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldm r0!, {r3-r5}
+ stm r1!, {r3-r5}
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ ldr r4, =0x00000829
+ adds r0, r1, r4
+ adds r0, r7
+ ldrb r0, [r0]
+ strh r0, [r2, 0xC]
+ ldr r0, =gUnknown_0203CE74
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r5, =0x0000082e
+ adds r1, r5
+ adds r1, r7
+ ldrb r0, [r1]
+ strh r0, [r2, 0xE]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end load_bag_item_list_buffers
+
+ thumb_func_start get_name
+@ void get_name(char *dest, int name_id)
+get_name: @ 81AB39C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x2
+ beq _081AB3C0
+ cmp r0, 0x3
+ beq _081AB420
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl CopyItemName
+ b _081AB43E
+ .pool
+_081AB3C0:
+ ldr r4, =gStringVar2
+ adds r0, r5, 0
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, =gMoveNames
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r5, r0
+ bls _081AB408
+ ldr r0, =gStringVar1
+ ldr r2, =0xfffffeae
+ adds r1, r5, r2
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gUnknown_085E921A
+ b _081AB438
+ .pool
+_081AB408:
+ ldr r0, =gStringVar1
+ ldr r2, =0xfffffee0
+ adds r1, r5, r2
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ b _081AB436
+ .pool
+_081AB420:
+ ldr r0, =gStringVar1
+ adds r1, r5, 0
+ subs r1, 0x84
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gStringVar2
+ adds r0, r5, 0
+ bl CopyItemName
+_081AB436:
+ ldr r1, =gUnknown_085E9210
+_081AB438:
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+_081AB43E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end get_name
+
+ thumb_func_start bag_menu_change_item_callback
+bag_menu_change_item_callback: @ 81AB450
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _081AB466
+ movs r0, 0x5
+ bl PlaySE
+ bl ShakeBagVisual
+_081AB466:
+ ldr r4, =gUnknown_0203CE54
+ ldr r1, [r4]
+ ldr r2, =0x0000081a
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081AB50C
+ adds r2, 0x1
+ adds r0, r1, r2
+ ldrb r1, [r0]
+ lsls r1, 26
+ lsrs r1, 30
+ movs r0, 0x1
+ eors r0, r1
+ bl RemoveBagItemIconObject
+ movs r0, 0x2
+ negs r0, r0
+ cmp r6, r0
+ beq _081AB4C8
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r6, 16
+ lsrs r1, 16
+ bl BagGetItemIdByPocketPosition
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [r4]
+ ldr r2, =0x0000081b
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 26
+ lsrs r1, 30
+ bl AddBagItemIconObject
+ b _081AB4DA
+ .pool
+_081AB4C8:
+ ldr r0, =0x0000ffff
+ ldr r1, [r4]
+ ldr r2, =0x0000081b
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 26
+ lsrs r1, 30
+ bl AddBagItemIconObject
+_081AB4DA:
+ ldr r5, =gUnknown_0203CE54
+ ldr r2, [r5]
+ ldr r4, =0x0000081b
+ adds r2, r4
+ ldrb r3, [r2]
+ lsls r0, r3, 26
+ lsrs r0, 30
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 4
+ movs r0, 0x31
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081AB50C
+ adds r0, r6, 0
+ bl bag_menu_print_description_box_text
+_081AB50C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_change_item_callback
+
+ thumb_func_start sub_81AB520
+@ void sub_81AB520(u8 rbox_id, int item_index_in_pocket, int a3)
+sub_81AB520: @ 81AB520
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ bne _081AB540
+ b _081AB696
+_081AB540:
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x0000081a
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ beq _081AB570
+ lsls r0, r4, 24
+ lsrs r0, 24
+ cmp r1, r0
+ bne _081AB568
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl bag_menu_print_cursor
+ b _081AB570
+ .pool
+_081AB568:
+ adds r0, r7, 0
+ movs r1, 0xFF
+ bl bag_menu_print_cursor
+_081AB570:
+ ldr r5, =gUnknown_0203CE58
+ ldrb r0, [r5, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl BagGetItemIdByPocketPosition
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrb r0, [r5, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl BagGetQuantityByPocketPosition
+ lsls r0, 16
+ lsrs r4, r0, 16
+ mov r9, r4
+ ldr r1, =0xfffffead
+ adds r0, r6, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x7
+ bhi _081AB5BE
+ ldr r1, =gUnknown_08DC6378
+ subs r3, r7, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0x10
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r2, 0x8
+ bl BlitBitmapToWindow
+_081AB5BE:
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0x3
+ bne _081AB610
+ ldr r0, =gStringVar1
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8DA0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x7
+ adds r1, r4, 0
+ movs r2, 0x77
+ bl GetStringRightAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ str r7, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0xFF
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ b _081AB652
+ .pool
+_081AB610:
+ cmp r0, 0x4
+ beq _081AB66C
+ adds r0, r6, 0
+ bl itemid_is_unique
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081AB66C
+ ldr r0, =gStringVar1
+ mov r1, r9
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8DA0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x7
+ adds r1, r4, 0
+ movs r2, 0x77
+ bl GetStringRightAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ str r7, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0xFF
+ str r0, [sp, 0xC]
+ str r5, [sp, 0x10]
+_081AB652:
+ mov r0, r8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl bag_menu_print
+ b _081AB696
+ .pool
+_081AB66C:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000496
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081AB696
+ cmp r0, r6
+ bne _081AB696
+ ldr r1, =gUnknown_086140A4
+ subs r3, r7, 0x1
+ lsls r3, 16
+ lsrs r3, 16
+ movs r0, 0x18
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r2, 0x60
+ bl BlitBitmapToWindow
+_081AB696:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AB520
+
+ thumb_func_start bag_menu_print_description_box_text
+@ void bag_menu_print_description_box_text(int a1)
+bag_menu_print_description_box_text: @ 81AB6B0
+ push {r4,lr}
+ sub sp, 0x14
+ adds r1, r0, 0
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _081AB6E0
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl BagGetItemIdByPocketPosition
+ lsls r0, 16
+ lsrs r0, 16
+ bl ItemId_GetDescription
+ adds r4, r0, 0
+ b _081AB6FC
+ .pool
+_081AB6E0:
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085E9180
+ ldr r1, =gUnknown_0203CE58
+ ldrb r1, [r1, 0x4]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E91C0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+_081AB6FC:
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print_description_box_text
+
+ thumb_func_start bag_menu_print_cursor_
+bag_menu_print_cursor_: @ 81AB73C
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl ListMenuGetYCoordForPrintingArrowCursor
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl bag_menu_print_cursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bag_menu_print_cursor_
+
+ thumb_func_start bag_menu_print_cursor
+bag_menu_print_cursor: @ 81AB75C
+ push {r4,r5,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0xFF
+ bne _081AB798
+ movs r0, 0x1
+ movs r1, 0
+ bl GetMenuCursorDimensionByFont
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ adds r3, r5, 0
+ bl FillWindowPixelRect
+ b _081AB7AE
+_081AB798:
+ ldr r2, =gUnknown_085E8D60
+ str r5, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0
+ bl bag_menu_print
+_081AB7AE:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print_cursor
+
+ thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe
+bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 81AB7BC
+ push {r4-r6,lr}
+ sub sp, 0x10
+ ldr r5, =gUnknown_0203CE54
+ ldr r4, [r5]
+ ldr r1, =0x0000081e
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081AB80A
+ ldr r2, =gUnknown_0203CE58
+ ldrb r3, [r2, 0x5]
+ ldr r6, =0x00000829
+ adds r0, r4, r6
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r6, 0x5
+ adds r0, r4, r6
+ adds r0, r3
+ ldrb r0, [r0]
+ subs r1, r0
+ str r1, [sp]
+ movs r0, 0x6E
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r2, 0x12
+ adds r0, r2
+ str r0, [sp, 0xC]
+ movs r0, 0x2
+ movs r1, 0xAC
+ movs r2, 0xC
+ movs r3, 0x94
+ bl AddScrollIndicatorArrowPairParametrized
+ ldr r1, [r5]
+ ldr r2, =0x0000081e
+ adds r1, r2
+ strb r0, [r1]
+_081AB80A:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe
+
+ thumb_func_start sub_81AB824
+sub_81AB824: @ 81AB824
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE54
+ ldr r0, [r4]
+ ldr r2, =0x0000081e
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081AB842
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r1, =0x0000081e
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+_081AB842:
+ bl sub_81AB89C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AB824
+
+ thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe
+bag_menu_add_list_scroll_arrow_indicators_maybe: @ 81AB854
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE54
+ ldr r2, [r4]
+ ldr r1, =0x0000081b
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ beq _081AB882
+ ldr r1, =0x0000081f
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081AB882
+ ldr r0, =gUnknown_08614094
+ ldr r1, =gUnknown_0203CE5E
+ bl AddScrollIndicatorArrowPair
+ ldr r1, [r4]
+ ldr r2, =0x0000081f
+ adds r1, r2
+ strb r0, [r1]
+_081AB882:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe
+
+ thumb_func_start sub_81AB89C
+sub_81AB89C: @ 81AB89C
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CE54
+ ldr r0, [r4]
+ ldr r2, =0x0000081f
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _081AB8BA
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r1, =0x0000081f
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+_081AB8BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AB89C
+
+ thumb_func_start free_bag_item_list_buffers
+free_bag_item_list_buffers: @ 81AB8C8
+ push {lr}
+ ldr r0, =gUnknown_0203CE78
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =gUnknown_0203CE74
+ ldr r0, [r0]
+ bl Free
+ bl FreeAllWindowBuffers
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end free_bag_item_list_buffers
+
+ thumb_func_start unknown_ItemMenu_Confirm
+unknown_ItemMenu_Confirm: @ 81AB8F8
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ 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
+ ldr r1, =task_close_bag_menu_2
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unknown_ItemMenu_Confirm
+
+ thumb_func_start task_close_bag_menu_2
+task_close_bag_menu_2: @ 81AB930
+ 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 r2, r0, r1
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081AB9A0
+ ldrb r0, [r2]
+ ldr r4, =gUnknown_0203CE58
+ ldrb r2, [r4, 0x5]
+ lsls r2, 1
+ adds r1, r4, 0
+ adds r1, 0x12
+ adds r1, r2, r1
+ adds r3, r4, 0
+ adds r3, 0x8
+ adds r2, r3
+ bl sub_81AE6C8
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081AB984
+ bl SetMainCallback2
+ b _081AB98A
+ .pool
+_081AB984:
+ ldr r0, [r4]
+ bl SetMainCallback2
+_081AB98A:
+ bl sub_81AB824
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl free_bag_item_list_buffers
+ adds r0, r5, 0
+ bl DestroyTask
+_081AB9A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end task_close_bag_menu_2
+
+ thumb_func_start sub_81AB9A8
+sub_81AB9A8: @ 81AB9A8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, r5, 3
+ ldr r0, =gBagPockets
+ adds r4, r1, r0
+ cmp r5, 0x3
+ bgt _081AB9C8
+ cmp r5, 0x2
+ blt _081AB9C8
+ adds r0, r4, 0
+ bl sub_80D6FB4
+ b _081AB9CE
+ .pool
+_081AB9C8:
+ adds r0, r4, 0
+ bl sub_80D6F64
+_081AB9CE:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ ldr r6, =0x00000829
+ adds r1, r6
+ adds r1, r5
+ movs r2, 0
+ strb r2, [r1]
+ adds r3, r0, 0
+ ldrb r0, [r4, 0x4]
+ cmp r2, r0
+ bcs _081ABA12
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081ABA12
+ adds r7, r3, 0
+_081AB9EE:
+ ldr r0, [r7]
+ adds r0, r6
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrb r1, [r4, 0x4]
+ cmp r2, r1
+ bcs _081ABA12
+ ldr r0, [r4]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081AB9EE
+_081ABA12:
+ ldr r2, [r3]
+ ldr r1, =0x0000081b
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081ABA2E
+ ldr r0, =0x00000829
+ adds r1, r2, r0
+ adds r1, r5
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081ABA2E:
+ ldr r1, [r3]
+ ldr r2, =0x00000829
+ adds r0, r1, r2
+ adds r0, r5
+ ldrb r2, [r0]
+ cmp r2, 0x8
+ bls _081ABA58
+ ldr r3, =0x0000082e
+ adds r0, r1, r3
+ adds r0, r5
+ movs r1, 0x8
+ strb r1, [r0]
+ b _081ABA60
+ .pool
+_081ABA58:
+ ldr r3, =0x0000082e
+ adds r0, r1, r3
+ adds r0, r5
+ strb r2, [r0]
+_081ABA60:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AB9A8
+
+ thumb_func_start sub_81ABA6C
+sub_81ABA6C: @ 81ABA6C
+ push {r4,lr}
+ movs r4, 0
+_081ABA70:
+ adds r0, r4, 0
+ bl sub_81AB9A8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _081ABA70
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81ABA6C
+
+ thumb_func_start sub_81ABA88
+sub_81ABA88: @ 81ABA88
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ ldr r2, =gUnknown_0203CE6A
+ adds r4, r1, r2
+ subs r2, 0xA
+ adds r1, r2
+ ldr r2, =gUnknown_0203CE54
+ ldr r3, [r2]
+ ldr r5, =0x0000082e
+ adds r2, r3, r5
+ adds r2, r0
+ ldrb r2, [r2]
+ subs r5, 0x5
+ adds r3, r5
+ adds r3, r0
+ ldrb r3, [r3]
+ adds r0, r4, 0
+ bl sub_812225C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ABA88
+
+ thumb_func_start sub_81ABAC4
+sub_81ABAC4: @ 81ABAC4
+ push {r4,lr}
+ movs r4, 0
+_081ABAC8:
+ adds r0, r4, 0
+ bl sub_81ABA88
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _081ABAC8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81ABAC4
+
+ thumb_func_start sub_81ABAE0
+sub_81ABAE0: @ 81ABAE0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r5, 0
+ ldr r6, =gUnknown_0203CE6A
+ adds r7, r6, 0
+ subs r7, 0xA
+_081ABAEC:
+ lsls r1, r5, 1
+ adds r0, r1, r6
+ adds r1, r7
+ ldr r2, =gUnknown_0203CE54
+ ldr r3, [r2]
+ ldr r4, =0x0000082e
+ adds r2, r3, r4
+ adds r2, r5
+ ldrb r2, [r2]
+ subs r4, 0x5
+ adds r3, r4
+ adds r3, r5
+ ldrb r3, [r3]
+ movs r4, 0x8
+ str r4, [sp]
+ bl sub_8122298
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _081ABAEC
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ABAE0
+
+ thumb_func_start sub_81ABB2C
+sub_81ABB2C: @ 81ABB2C
+ lsls r0, 24
+ ldr r1, =gUnknown_0203CE58
+ lsrs r0, 23
+ adds r2, r1, 0
+ adds r2, 0x12
+ adds r2, r0, r2
+ adds r1, 0x8
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ bx lr
+ .pool
+ thumb_func_end sub_81ABB2C
+
+ thumb_func_start DisplayItemMessage
+@ void DisplayItemMessage(u8 taskId, u8 fontId, u8 *str, void ( *callback)(u8 taskId))
+DisplayItemMessage: @ 81ABB4C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x10
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ mov r9, r3
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ movs r0, 0x4
+ bl AddItemMessageWindow
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x14]
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ bl sav2_get_text_speed
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0x14]
+ str r6, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r2, 0xA
+ movs r3, 0xD
+ bl DisplayMessageAndContinueTask
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end DisplayItemMessage
+
+ thumb_func_start bag_menu_inits_lists_menu
+bag_menu_inits_lists_menu: @ 81ABBBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, r6, 2
+ adds r5, r6
+ lsls r5, 3
+ ldr r0, =gTasks + 0x8
+ adds r5, r0
+ ldr r7, =gUnknown_0203CE58
+ ldrb r4, [r7, 0x5]
+ lsls r4, 1
+ movs r0, 0x12
+ adds r0, r7
+ mov r8, r0
+ add r8, r4
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r4, r0
+ movs r0, 0x4
+ bl bag_menu_RemoveBagItem_message_window
+ ldrb r0, [r5]
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_81AE6C8
+ ldrb r0, [r7, 0x5]
+ bl sub_81AB9A8
+ ldrb r0, [r7, 0x5]
+ bl sub_81ABA88
+ ldrb r0, [r7, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ mov r2, r8
+ ldrh r1, [r2]
+ ldrh r2, [r4]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r6, 0
+ bl set_callback3_to_bag
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_inits_lists_menu
+
+ thumb_func_start sub_81ABC3C
+sub_81ABC3C: @ 81ABC3C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl bag_menu_add_window
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_81ABC54
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81ABC3C
+
+ thumb_func_start sub_81ABC54
+sub_81ABC54: @ 81ABC54
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ movs r3, 0x2
+ cmp r0, 0x3
+ bne _081ABC6C
+ movs r3, 0x3
+_081ABC6C:
+ ldr r0, =gStringVar1
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8DA0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x28
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ABC54
+
+ thumb_func_start sub_81ABCC0
+sub_81ABCC0: @ 81ABCC0
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r7, r2, 0
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ movs r3, 0x2
+ cmp r0, 0x3
+ bne _081ABCD4
+ movs r3, 0x3
+_081ABCD4:
+ ldr r0, =gStringVar1
+ movs r2, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r6, =gStringVar4
+ ldr r1, =gUnknown_085E8DA0
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r1, 0x26
+ movs r2, 0x1
+ adds r3, r7, 0
+ bl PrintMoneyAmount
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ABCC0
+
+ thumb_func_start Task_BagMenu
+Task_BagMenu: @ 81ABD28
+ 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 r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ str r0, [sp]
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ ldr r5, =gUnknown_0203CE58
+ ldrb r0, [r5, 0x5]
+ lsls r0, 1
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r7, r0, r1
+ subs r1, 0xA
+ adds r0, r1
+ mov r8, r0
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081ABD66
+ b _081ABEB2
+_081ABD66:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081ABD74
+ b _081ABEB2
+_081ABD74:
+ bl GetSwitchBagPocketDirection
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081ABDB8
+ cmp r0, 0x2
+ beq _081ABDC0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ cmp r0, 0
+ beq _081ABE10
+ bl sub_81AC2C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081ABDA4
+ b _081ABEB2
+_081ABDA4:
+ b _081ABDCC
+ .pool
+_081ABDB8:
+ movs r1, 0x1
+ negs r1, r1
+ mov r0, r9
+ b _081ABDC4
+_081ABDC0:
+ mov r0, r9
+ movs r1, 0x1
+_081ABDC4:
+ movs r2, 0
+ bl SwitchBagPocket
+ b _081ABEB2
+_081ABDCC:
+ ldrb r0, [r6]
+ adds r1, r7, 0
+ mov r2, r8
+ bl get_coro_args_x18_x1A
+ ldrh r2, [r7]
+ mov r3, r8
+ ldrh r0, [r3]
+ adds r2, r0
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =gUnknown_0203CE58
+ ldr r3, =0x00000829
+ adds r0, r3
+ ldrb r1, [r1, 0x5]
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r2, r0
+ beq _081ABEB2
+ movs r0, 0x5
+ bl PlaySE
+ mov r0, r9
+ bl bag_menu_swap_items
+ b _081ABEB2
+ .pool
+_081ABE10:
+ ldrb r0, [r6]
+ bl ListMenuHandleInput
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ adds r1, r7, 0
+ mov r2, r8
+ bl get_coro_args_x18_x1A
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081ABE32
+ adds r0, 0x1
+ cmp r4, r0
+ bne _081ABE68
+ b _081ABEB2
+_081ABE32:
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x5
+ bne _081ABE40
+ movs r0, 0x20
+ bl PlaySE
+ b _081ABEB2
+_081ABE40:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CE7C
+ mov r1, r10
+ strh r1, [r0]
+ ldr r0, =gTasks + 0x8
+ subs r0, 0x8
+ ldr r3, [sp]
+ adds r0, r3, r0
+ ldr r1, =unknown_ItemMenu_Confirm
+ str r1, [r0]
+ b _081ABEB2
+ .pool
+_081ABE68:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_81AB824
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl bag_menu_print_cursor_
+ strh r4, [r6, 0x2]
+ ldrb r0, [r5, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl BagGetQuantityByPocketPosition
+ strh r0, [r6, 0x4]
+ ldrb r0, [r5, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl BagGetItemIdByPocketPosition
+ ldr r1, =gUnknown_0203CE7C
+ strh r0, [r1]
+ ldr r1, =gUnknown_08614054
+ ldrb r0, [r5, 0x4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, r9
+ bl _call_via_r1
+_081ABEB2:
+ 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 Task_BagMenu
+
+ thumb_func_start set_callback3_to_bag
+set_callback3_to_bag: @ 81ABECC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
+ bl bag_menu_add_list_scroll_arrow_indicators_maybe
+ movs r0, 0x3
+ bl ClearWindowTilemap
+ movs r0, 0x4
+ bl ClearWindowTilemap
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =Task_BagMenu
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end set_callback3_to_bag
+
+ thumb_func_start GetSwitchBagPocketDirection
+GetSwitchBagPocketDirection: @ 81ABF10
+ push {lr}
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x0000081b
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _081ABF6A
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081ABF3C
+ cmp r2, 0x1
+ bne _081ABF54
+_081ABF3C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ b _081ABF6C
+ .pool
+_081ABF54:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081ABF60
+ cmp r2, 0x2
+ bne _081ABF6A
+_081ABF60:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ b _081ABF6C
+_081ABF6A:
+ movs r0, 0
+_081ABF6C:
+ pop {r1}
+ bx r1
+ thumb_func_end GetSwitchBagPocketDirection
+
+ thumb_func_start ChangeBagPocketId
+@ void ChangeBagPocketId(u8 *bagPocketId, u8 deltaBagPocketId)
+ChangeBagPocketId: @ 81ABF70
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ asrs r1, 24
+ cmp r1, 0x1
+ bne _081ABF88
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _081ABF88
+ movs r0, 0
+ b _081ABFA0
+_081ABF88:
+ lsls r0, r4, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ ldrb r3, [r2]
+ cmp r0, r1
+ bne _081ABF9E
+ cmp r3, 0
+ bne _081ABF9E
+ movs r0, 0x4
+ b _081ABFA0
+_081ABF9E:
+ adds r0, r3, r4
+_081ABFA0:
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ChangeBagPocketId
+
+ thumb_func_start SwitchBagPocket
+@ void SwitchBagPocket(u8 taskId, u16 deltaBagPocketId, u16 a3)
+SwitchBagPocket: @ 81ABFA8
+ push {r4-r6,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ movs r0, 0
+ strh r0, [r4, 0x1A]
+ strh r0, [r4, 0x18]
+ strh r5, [r4, 0x16]
+ cmp r2, 0
+ bne _081AC026
+ movs r0, 0
+ bl ClearWindowTilemap
+ movs r0, 0x1
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ ldr r3, =gUnknown_0203CE58
+ ldrb r2, [r3, 0x5]
+ lsls r2, 1
+ adds r1, r3, 0
+ adds r1, 0x12
+ adds r1, r2, r1
+ adds r3, 0x8
+ adds r2, r3
+ bl sub_81AE6C8
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r3, =gSprites
+ ldr r0, =gUnknown_0203CE54
+ ldr r2, [r0]
+ ldr r1, =0x0000081b
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 26
+ lsrs r1, 30
+ movs r0, 0x1
+ eors r0, r1
+ adds r2, r0
+ ldr r0, =0x00000806
+ adds r2, r0
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bl sub_81AB824
+_081AC026:
+ ldr r4, =gUnknown_0203CE58
+ ldrb r1, [r4, 0x5]
+ add r0, sp, 0x8
+ strb r1, [r0]
+ lsls r1, r5, 24
+ asrs r1, 24
+ bl ChangeBagPocketId
+ lsls r0, r5, 16
+ asrs r1, r0, 16
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081AC07C
+ ldr r2, =gUnknown_085E91FC
+ ldrb r0, [r4, 0x5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ add r1, sp, 0x8
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl bag_menu_print_pocket_names
+ movs r0, 0
+ bl bag_menu_copy_pocket_name_to_window
+ b _081AC09A
+ .pool
+_081AC07C:
+ ldr r2, =gUnknown_085E91FC
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldrb r1, [r4, 0x5]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl bag_menu_print_pocket_names
+ movs r0, 0x8
+ bl bag_menu_copy_pocket_name_to_window
+_081AC09A:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ movs r1, 0
+ bl bag_menu_draw_pocket_indicator_square
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl bag_menu_draw_pocket_indicator_square
+ movs r0, 0xF
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0xB
+ movs r2, 0xE
+ movs r3, 0x2
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl SetBagVisualPocketId
+ movs r0, 0x1
+ bl RemoveBagObject
+ asrs r0, r5, 16
+ bl AddSwitchPocketRotatingBallObject
+ ldr r1, =sub_81AC10C
+ ldr r2, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r6, 0
+ bl SetTaskFuncWithFollowupFunc
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SwitchBagPocket
+
+ thumb_func_start sub_81AC10C
+sub_81AC10C: @ 81AC10C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ bl sub_81221AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC184
+ bl IsWallysBag
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC184
+ bl GetSwitchBagPocketDirection
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AC148
+ cmp r0, 0x2
+ beq _081AC164
+ b _081AC184
+ .pool
+_081AC148:
+ ldr r0, =gUnknown_0203CE5D
+ movs r1, 0x16
+ ldrsb r1, [r6, r1]
+ bl ChangeBagPocketId
+ adds r0, r7, 0
+ bl SwitchTaskToFollowupFunc
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r7, 0
+ b _081AC178
+ .pool
+_081AC164:
+ ldr r0, =gUnknown_0203CE5D
+ movs r1, 0x16
+ ldrsb r1, [r6, r1]
+ bl ChangeBagPocketId
+ adds r0, r7, 0
+ bl SwitchTaskToFollowupFunc
+ adds r0, r7, 0
+ movs r1, 0x1
+_081AC178:
+ movs r2, 0x1
+ bl SwitchBagPocket
+ b _081AC22E
+ .pool
+_081AC184:
+ movs r1, 0x1A
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _081AC192
+ cmp r0, 0x1
+ beq _081AC1DC
+ b _081AC22E
+_081AC192:
+ ldrb r0, [r6, 0x18]
+ bl sub_81AC23C
+ ldrh r0, [r6, 0x18]
+ adds r1, r0, 0x1
+ strh r1, [r6, 0x18]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081AC1CC
+ movs r2, 0x16
+ ldrsh r0, [r6, r2]
+ cmp r0, 0x1
+ bne _081AC1BC
+ lsls r0, r1, 16
+ asrs r0, 17
+ lsls r0, 24
+ lsrs r0, 24
+ bl bag_menu_copy_pocket_name_to_window
+ b _081AC1CC
+_081AC1BC:
+ lsls r1, 16
+ asrs r1, 17
+ movs r0, 0x8
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl bag_menu_copy_pocket_name_to_window
+_081AC1CC:
+ movs r1, 0x18
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x10
+ bne _081AC22E
+ ldrh r0, [r6, 0x1A]
+ adds r0, 0x1
+ strh r0, [r6, 0x1A]
+ b _081AC22E
+_081AC1DC:
+ ldr r4, =gUnknown_0203CE5D
+ movs r1, 0x16
+ ldrsb r1, [r6, r1]
+ adds r0, r4, 0
+ bl ChangeBagPocketId
+ subs r5, r4, 0x5
+ ldrb r0, [r5, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ ldrb r2, [r5, 0x5]
+ lsls r2, 1
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r1, r2, r1
+ ldrh r1, [r1]
+ adds r4, 0x3
+ adds r2, r4
+ ldrh r2, [r2]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ bl bag_menu_add_pocket_scroll_arrow_indicators_maybe
+ bl bag_menu_add_list_scroll_arrow_indicators_maybe
+ adds r0, r7, 0
+ bl SwitchTaskToFollowupFunc
+_081AC22E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AC10C
+
+ thumb_func_start sub_81AC23C
+sub_81AC23C: @ 81AC23C
+ push {lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ lsls r3, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0xF
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x11
+ movs r2, 0xE
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AC23C
+
+ thumb_func_start bag_menu_draw_pocket_indicator_square
+@ void bag_menu_draw_pocket_indicator_square(char x, int is_current_bag)
+bag_menu_draw_pocket_indicator_square: @ 81AC26C
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _081AC298
+ ldr r1, =0x00001017
+ adds r2, r0, 0x5
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r3, 0x3
+ bl FillBgTilemapBufferRect_Palette0
+ b _081AC2AE
+ .pool
+_081AC298:
+ ldr r1, =0x0000102b
+ adds r2, r0, 0x5
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r3, 0x3
+ bl FillBgTilemapBufferRect_Palette0
+_081AC2AE:
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_draw_pocket_indicator_square
+
+ thumb_func_start sub_81AC2C0
+sub_81AC2C0: @ 81AC2C0
+ push {lr}
+ ldr r1, =gUnknown_0203CE58
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x1
+ bhi _081AC2E0
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _081AC2E0
+ movs r0, 0x1
+ b _081AC2E2
+ .pool
+_081AC2E0:
+ movs r0, 0
+_081AC2E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AC2C0
+
+ thumb_func_start bag_menu_swap_items
+bag_menu_swap_items: @ 81AC2E8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ mov r9, r0
+ adds r6, r4, r0
+ ldrb r0, [r6]
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_81AF15C
+ ldr r3, =gUnknown_0203CE58
+ ldrb r0, [r3, 0x5]
+ lsls r0, 1
+ adds r2, r3, 0
+ adds r2, 0x12
+ adds r2, r0, r2
+ adds r1, r3, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ strh r1, [r6, 0x2]
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r2, =0x0000081a
+ adds r0, r2
+ movs r5, 0
+ strb r1, [r0]
+ ldrb r0, [r3, 0x5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ bl BagGetItemIdByPocketPosition
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, =gStringVar4
+ mov r8, r0
+ ldr r1, =gUnknown_085E8DFE
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r1, 0x1
+ mov r2, r8
+ movs r3, 0x3
+ bl bag_menu_print
+ ldrb r0, [r6, 0x2]
+ bl sub_80D4FEC
+ bl sub_81AB89C
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl bag_menu_print_cursor_
+ movs r2, 0x8
+ negs r2, r2
+ add r9, r2
+ add r4, r9
+ ldr r0, =sub_81AC3C0
+ str r0, [r4]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_swap_items
+
+ thumb_func_start sub_81AC3C0
+@ void sub_81AC3C0(u8 taskId)
+sub_81AC3C0: @ 81AC3C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AC48E
+ ldr r0, =gMain
+ mov r8, r0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081AC418
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ ldr r3, =gUnknown_0203CE58
+ ldrb r2, [r3, 0x5]
+ lsls r2, 1
+ adds r1, r3, 0
+ adds r1, 0x12
+ adds r1, r2, r1
+ adds r3, 0x8
+ adds r2, r3
+ bl get_coro_args_x18_x1A
+ b _081AC472
+ .pool
+_081AC418:
+ ldrb r0, [r4]
+ bl ListMenuHandleInput
+ adds r7, r0, 0
+ ldrb r0, [r4]
+ ldr r5, =gUnknown_0203CE58
+ ldrb r2, [r5, 0x5]
+ lsls r2, 1
+ adds r1, r5, 0
+ adds r1, 0x12
+ adds r1, r2, r1
+ adds r4, r5, 0
+ adds r4, 0x8
+ adds r2, r4
+ bl get_coro_args_x18_x1A
+ movs r0, 0
+ bl sub_80D4FC8
+ ldrb r0, [r5, 0x5]
+ lsls r0, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_80D4FEC
+ movs r0, 0x2
+ negs r0, r0
+ cmp r7, r0
+ beq _081AC460
+ adds r0, 0x1
+ cmp r7, r0
+ bne _081AC482
+ b _081AC48E
+ .pool
+_081AC460:
+ movs r0, 0x5
+ bl PlaySE
+ mov r0, r8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AC47A
+_081AC472:
+ adds r0, r6, 0
+ bl sub_81AC498
+ b _081AC48E
+_081AC47A:
+ adds r0, r6, 0
+ bl sub_81AC590
+ b _081AC48E
+_081AC482:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r6, 0
+ bl sub_81AC498
+_081AC48E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AC3C0
+
+ thumb_func_start sub_81AC498
+sub_81AC498: @ 81AC498
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ mov r10, r0
+ ldr r0, =gTasks + 0x8
+ add r0, r10
+ mov r9, r0
+ ldr r5, =gUnknown_0203CE58
+ ldrb r6, [r5, 0x5]
+ lsls r1, r6, 1
+ adds r0, r5, 0
+ adds r0, 0x12
+ adds r0, r1
+ mov r8, r0
+ ldr r2, =gUnknown_0203CE60
+ adds r7, r1, r2
+ ldrh r0, [r7]
+ mov r1, r8
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ mov r0, r9
+ movs r1, 0x2
+ ldrsh r2, [r0, r1]
+ cmp r2, r4
+ beq _081AC4E2
+ subs r0, r4, 0x1
+ cmp r2, r0
+ bne _081AC4F8
+_081AC4E2:
+ adds r0, r3, 0
+ bl sub_81AC590
+ b _081AC566
+ .pool
+_081AC4F8:
+ ldr r1, =gBagPockets
+ lsls r0, r6, 3
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r2, 0
+ adds r2, r4, 0
+ bl sub_80D702C
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r2, =0x0000081a
+ adds r0, r2
+ movs r1, 0xFF
+ strb r1, [r0]
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_81AE6C8
+ mov r2, r9
+ movs r1, 0x2
+ ldrsh r0, [r2, r1]
+ cmp r0, r4
+ bge _081AC538
+ ldrb r1, [r5, 0x5]
+ lsls r1, 1
+ ldr r2, =gUnknown_0203CE60
+ adds r1, r2
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_081AC538:
+ ldrb r0, [r5, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ mov r2, r8
+ ldrh r1, [r2]
+ ldrh r2, [r7]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_80D4FC8
+ bl bag_menu_add_list_scroll_arrow_indicators_maybe
+ ldr r0, =gTasks + 0x8
+ subs r0, 0x8
+ add r0, r10
+ ldr r1, =Task_BagMenu
+ str r1, [r0]
+_081AC566:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AC498
+
+ thumb_func_start sub_81AC590
+sub_81AC590: @ 81AC590
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ mov r9, r1
+ ldr r0, =gTasks + 0x8
+ mov r10, r0
+ mov r7, r9
+ add r7, r10
+ ldr r4, =gUnknown_0203CE58
+ ldrb r0, [r4, 0x5]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x12
+ adds r6, r0, r1
+ movs r1, 0x8
+ adds r1, r4
+ mov r8, r1
+ adds r5, r0, r1
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x0000081a
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_81AE6C8
+ movs r0, 0x2
+ ldrsh r2, [r7, r0]
+ ldrh r0, [r6]
+ ldrh r1, [r5]
+ adds r0, r1
+ cmp r2, r0
+ bge _081AC5F2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ add r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_081AC5F2:
+ ldrb r0, [r4, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ ldrh r1, [r6]
+ ldrh r2, [r5]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7]
+ movs r0, 0x1
+ bl sub_80D4FC8
+ bl bag_menu_add_list_scroll_arrow_indicators_maybe
+ mov r0, r10
+ subs r0, 0x8
+ add r0, r9
+ ldr r1, =Task_BagMenu
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AC590
+
+ thumb_func_start sub_81AC644
+sub_81AC644: @ 81AC644
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x4]
+ subs r0, 0x1
+ cmp r0, 0x9
+ bls _081AC654
+ b _081AC82C
+_081AC654:
+ lsls r0, 2
+ ldr r1, =_081AC668
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AC668:
+ .4byte _081AC690
+ .4byte _081AC82C
+ .4byte _081AC82C
+ .4byte _081AC82C
+ .4byte _081AC6E8
+ .4byte _081AC82C
+ .4byte _081AC76C
+ .4byte _081AC7CC
+ .4byte _081AC70C
+ .4byte _081AC690
+_081AC690:
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl ItemId_GetBattleUsage
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AC6C4
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614042
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x2
+ b _081ACA10
+ .pool
+_081AC6C4:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614046
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x1
+ b _081ACA10
+ .pool
+_081AC6E8:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614047
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x4
+ b _081ACA10
+ .pool
+_081AC70C:
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC748
+ ldrh r0, [r4]
+ cmp r0, 0xAF
+ beq _081AC748
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_0861404B
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x2
+ b _081ACA10
+ .pool
+_081AC748:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614046
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x1
+ b _081ACA10
+ .pool
+_081AC76C:
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC7A8
+ ldrh r0, [r4]
+ cmp r0, 0xAF
+ beq _081AC7A8
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_0861404D
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x2
+ b _081ACA10
+ .pool
+_081AC7A8:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614046
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x1
+ b _081ACA10
+ .pool
+_081AC7CC:
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC808
+ ldrh r0, [r4]
+ cmp r0, 0xAF
+ beq _081AC808
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_0861404F
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x2
+ b _081ACA10
+ .pool
+_081AC808:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614046
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x1
+ b _081ACA10
+ .pool
+_081AC82C:
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AC840
+ bl InUnionRoom
+ cmp r0, 0x1
+ bne _081AC8A4
+_081AC840:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _081AC856
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl sub_8122148
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AC880
+_081AC856:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614046
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x1
+ b _081ACA10
+ .pool
+_081AC880:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614044
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x2
+ b _081ACA10
+ .pool
+_081AC8A4:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ bls _081AC8AE
+ b _081ACA12
+_081AC8AE:
+ lsls r0, 2
+ ldr r1, =_081AC8C0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AC8C0:
+ .4byte _081AC8D4
+ .4byte _081AC9B4
+ .4byte _081AC9D8
+ .4byte _081AC9FC
+ .4byte _081AC92C
+_081AC8D4:
+ ldr r4, =gUnknown_0203CE54
+ ldr r1, [r4]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r3, =0x00000824
+ adds r0, r1, r3
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, r3
+ ldr r1, =gUnknown_0861402C
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081AC90A
+ b _081ACA12
+_081AC90A:
+ ldr r0, [r4]
+ ldr r1, =0x00000824
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ b _081ACA12
+ .pool
+_081AC92C:
+ ldr r4, =gUnknown_0203CE54
+ ldr r1, [r4]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r5, =0x00000824
+ adds r0, r1, r5
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, r5
+ ldr r1, =gUnknown_08614030
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000496
+ adds r0, r1
+ ldr r2, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ cmp r0, r1
+ bne _081AC96C
+ ldr r0, [r4]
+ ldr r1, =0x00000825
+ adds r0, r1
+ movs r1, 0x8
+ strb r1, [r0]
+_081AC96C:
+ ldrh r1, [r2]
+ ldr r0, =0x00000103
+ cmp r1, r0
+ beq _081AC97A
+ adds r0, 0xD
+ cmp r1, r0
+ bne _081ACA12
+_081AC97A:
+ movs r0, 0x6
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _081ACA12
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x7
+ strb r1, [r0]
+ b _081ACA12
+ .pool
+_081AC9B4:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614034
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x4
+ b _081ACA10
+ .pool
+_081AC9D8:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_08614038
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x4
+ b _081ACA10
+ .pool
+_081AC9FC:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r2, r1, r0
+ ldr r0, =gUnknown_0861403C
+ str r0, [r2]
+ ldr r0, =0x00000828
+ adds r1, r0
+ movs r0, 0x6
+_081ACA10:
+ strb r0, [r1]
+_081ACA12:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x2
+ bne _081ACA50
+ movs r0, 0x1
+ bl ClearWindowTilemap
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl PrintTMHMMoveData
+ movs r0, 0x3
+ bl PutWindowTilemap
+ movs r0, 0x4
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081ACA86
+ .pool
+_081ACA50:
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8DBE
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+_081ACA86:
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000828
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081ACAB0
+ movs r0, 0
+ b _081ACAB6
+ .pool
+_081ACAB0:
+ cmp r0, 0x2
+ bne _081ACAC4
+ movs r0, 0x1
+_081ACAB6:
+ bl bag_menu_add_window
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81ACAF8
+ b _081ACAEE
+_081ACAC4:
+ cmp r0, 0x4
+ bne _081ACADC
+ movs r0, 0x2
+ bl bag_menu_add_window
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ movs r2, 0x2
+ bl sub_81ACB54
+ b _081ACAEE
+_081ACADC:
+ movs r0, 0x3
+ bl bag_menu_add_window
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ movs r2, 0x3
+ bl sub_81ACB54
+_081ACAEE:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AC644
+
+ thumb_func_start sub_81ACAF8
+sub_81ACAF8: @ 81ACAF8
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ ldr r6, =gUnknown_0203CE54
+ ldr r1, [r6]
+ ldr r5, =0x00000828
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ str r0, [sp, 0x8]
+ ldr r0, =gUnknown_08613FB4
+ str r0, [sp, 0xC]
+ movs r0, 0x82
+ lsls r0, 4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [sp, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x8
+ movs r3, 0x1
+ bl AddItemMenuActionTextPrinters
+ ldr r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ movs r2, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ACAF8
+
+ thumb_func_start sub_81ACB54
+sub_81ACB54: @ 81ACB54
+ push {r4-r6,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x38
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ ldr r0, =gUnknown_08613FB4
+ str r0, [sp, 0xC]
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ movs r1, 0x82
+ lsls r1, 4
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [sp, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x7
+ movs r2, 0x8
+ movs r3, 0x1
+ bl sub_8198DBC
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x38
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8199944
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ACB54
+
+ thumb_func_start unknown_item_menu_type
+unknown_item_menu_type: @ 81ACBB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_81AC644
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000828
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bhi _081ACBE8
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =Task_HandleInBattleItemMenuInput
+ b _081ACBF4
+ .pool
+_081ACBE8:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =Task_HandleOutOfBattleItemMenuInput
+_081ACBF4:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unknown_item_menu_type
+
+ thumb_func_start Task_HandleInBattleItemMenuInput
+Task_HandleInBattleItemMenuInput: @ 81ACC04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081ACC6A
+ bl ProcessMenuInputNoWrapAround
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081ACC6A
+ adds r0, 0x1
+ cmp r4, r0
+ bne _081ACC44
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_08613FB4
+ ldr r1, [r0, 0x24]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _081ACC6A
+ .pool
+_081ACC44:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_08613FB4
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ movs r2, 0x82
+ lsls r2, 4
+ adds r0, r2
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+_081ACC6A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Task_HandleInBattleItemMenuInput
+
+ thumb_func_start Task_HandleOutOfBattleItemMenuInput
+Task_HandleOutOfBattleItemMenuInput: @ 81ACC78
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081ACC8C
+ b _081ACDF0
+_081ACC8C:
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =gMain
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081ACCD4
+ lsls r0, r4, 24
+ asrs r0, 24
+ cmp r0, 0
+ bgt _081ACCAA
+ b _081ACDF0
+_081ACCAA:
+ subs r0, 0x2
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_81ACDFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081ACCBC
+ b _081ACDF0
+_081ACCBC:
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ bl sub_8199134
+ b _081ACDF0
+ .pool
+_081ACCD4:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081ACD1C
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r2, =0x00000828
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x2
+ cmp r1, r0
+ blt _081ACCF2
+ b _081ACDF0
+_081ACCF2:
+ adds r0, r1, 0x2
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_81ACDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081ACDF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8199134
+ b _081ACDF0
+ .pool
+_081ACD1C:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _081ACD30
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081ACD58
+_081ACD30:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081ACDF0
+ subs r0, r1, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_81ACDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081ACDF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _081ACD92
+_081ACD58:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081ACD6E
+ bl GetLRKeysState
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _081ACD9A
+_081ACD6E:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081ACDF0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_81ACDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081ACDF0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_081ACD92:
+ movs r1, 0
+ bl sub_8199134
+ b _081ACDF0
+_081ACD9A:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081ACDD8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gUnknown_08613FB4
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r3, 0x82
+ lsls r3, 4
+ adds r0, r3
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _081ACDF0
+ .pool
+_081ACDD8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081ACDF0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_08613FB4
+ ldr r1, [r0, 0x24]
+ adds r0, r6, 0
+ bl _call_via_r1
+_081ACDF0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Task_HandleOutOfBattleItemMenuInput
+
+ thumb_func_start sub_81ACDFC
+sub_81ACDFC: @ 81ACDFC
+ push {lr}
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ blt _081ACE30
+ ldr r0, =gUnknown_0203CE54
+ ldr r2, [r0]
+ ldr r3, =0x00000828
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bgt _081ACE30
+ movs r3, 0x82
+ lsls r3, 4
+ adds r0, r2, r3
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ beq _081ACE30
+ movs r0, 0x1
+ b _081ACE32
+ .pool
+_081ACE30:
+ movs r0, 0
+_081ACE32:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81ACDFC
+
+ thumb_func_start bag_menu_remove_some_window
+bag_menu_remove_some_window: @ 81ACE38
+ push {lr}
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000828
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081ACE58
+ movs r0, 0
+ bl bag_menu_remove_window
+ b _081ACE76
+ .pool
+_081ACE58:
+ cmp r0, 0x2
+ bne _081ACE64
+ movs r0, 0x1
+ bl bag_menu_remove_window
+ b _081ACE76
+_081ACE64:
+ cmp r0, 0x4
+ bne _081ACE70
+ movs r0, 0x2
+ bl bag_menu_remove_window
+ b _081ACE76
+_081ACE70:
+ movs r0, 0x3
+ bl bag_menu_remove_window
+_081ACE76:
+ pop {r0}
+ bx r0
+ thumb_func_end bag_menu_remove_some_window
+
+ thumb_func_start ItemMenu_UseOutOfBattle
+@ void ItemMenu_UseOutOfBattle(u8 taskId)
+ItemMenu_UseOutOfBattle: @ 81ACE7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =gUnknown_0203CE7C
+ ldrh r0, [r5]
+ bl ItemId_GetFieldFunc
+ cmp r0, 0
+ beq _081ACEEE
+ bl bag_menu_remove_some_window
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _081ACEB8
+ ldrh r0, [r5]
+ bl ItemId_GetType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081ACEB8
+ adds r0, r4, 0
+ bl bag_menu_print_there_is_no_pokemon
+ b _081ACEEE
+ .pool
+_081ACEB8:
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x3
+ beq _081ACEE8
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl ItemId_GetFieldFunc
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _081ACEEE
+ .pool
+_081ACEE8:
+ adds r0, r4, 0
+ bl sub_80FDD10
+_081ACEEE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemMenu_UseOutOfBattle
+
+ thumb_func_start ItemMenu_Toss
+ItemMenu_Toss: @ 81ACEF4
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, =gTasks + 0x8
+ adds r4, r6, r7
+ bl bag_menu_remove_some_window
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _081ACF24
+ adds r0, r5, 0
+ bl BagMenuConfirmToss
+ b _081ACF6A
+ .pool
+_081ACF24:
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8EE0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ movs r0, 0x7
+ bl sub_81ABC3C
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, =Task_ChooseHowManyToToss
+ str r1, [r0]
+_081ACF6A:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ItemMenu_Toss
+
+ thumb_func_start BagMenuConfirmToss
+BagMenuConfirmToss: @ 81ACF88
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, =gStringVar2
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8F0E
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ ldr r2, =gUnknown_08614084
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl bag_menu_yes_no
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BagMenuConfirmToss
+
+ thumb_func_start BagMenuCancelToss
+BagMenuCancelToss: @ 81AD010
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ bl bag_menu_print_description_box_text
+ ldrb r0, [r4]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ adds r0, r5, 0
+ bl set_callback3_to_bag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BagMenuCancelToss
+
+ thumb_func_start Task_ChooseHowManyToToss
+Task_ChooseHowManyToToss: @ 81AD044
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ adds r0, r4, 0
+ adds r0, 0x10
+ ldrh r1, [r4, 0x4]
+ bl AdjustQuantityAccordingToDPadInput
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081AD088
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000817
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ bl sub_81ABC54
+ b _081AD0C6
+ .pool
+_081AD088:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD0AC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ bl bag_menu_remove_window
+ adds r0, r5, 0
+ bl BagMenuConfirmToss
+ b _081AD0C6
+ .pool
+_081AD0AC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD0C6
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ bl bag_menu_remove_window
+ adds r0, r6, 0
+ bl BagMenuCancelToss
+_081AD0C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_ChooseHowManyToToss
+
+ thumb_func_start BagMenuActuallyToss
+BagMenuActuallyToss: @ 81AD0CC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, =gTasks + 0x8
+ adds r6, r4, r5
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, =gStringVar2
+ movs r2, 0x10
+ ldrsh r1, [r6, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r6, =gStringVar4
+ ldr r1, =gUnknown_085E8EF9
+ adds r0, r6, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ subs r5, 0x8
+ adds r4, r5
+ ldr r0, =Task_ActuallyToss
+ str r0, [r4]
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end BagMenuActuallyToss
+
+ thumb_func_start Task_ActuallyToss
+Task_ActuallyToss: @ 81AD150
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldr r4, =gUnknown_0203CE58
+ ldrb r0, [r4, 0x5]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x12
+ adds r1, r0
+ mov r8, r1
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r7, r0, r1
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD1CE
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldrh r1, [r5, 0x10]
+ bl RemoveBagItem
+ ldrb r0, [r5]
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_81AE6C8
+ ldrb r0, [r4, 0x5]
+ bl sub_81AB9A8
+ ldrb r0, [r4, 0x5]
+ bl sub_81ABA88
+ ldrb r0, [r4, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ mov r2, r8
+ ldrh r1, [r2]
+ ldrh r2, [r7]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r6, 0
+ bl set_callback3_to_bag
+_081AD1CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Task_ActuallyToss
+
+ thumb_func_start ItemMenu_Register
+ItemMenu_Register: @ 81AD1EC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ ldr r0, =gUnknown_0203CE58
+ ldrb r1, [r0, 0x5]
+ lsls r1, 1
+ adds r2, r0, 0
+ adds r2, 0x12
+ adds r6, r1, r2
+ adds r0, 0x8
+ adds r5, r1, r0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000496
+ adds r1, r0, r2
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _081AD238
+ movs r0, 0
+ strh r0, [r1]
+ b _081AD23A
+ .pool
+_081AD238:
+ strh r2, [r1]
+_081AD23A:
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_81AE6C8
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ ldrh r1, [r6]
+ ldrh r2, [r5]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7]
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r4, 0
+ bl ItemMenu_Cancel
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ItemMenu_Register
+
+ thumb_func_start ItemMenu_Give
+ItemMenu_Give: @ 81AD278
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ bl bag_menu_remove_some_window
+ ldr r5, =gUnknown_0203CE7C
+ ldrh r0, [r5]
+ bl itemid_80BF6D8_mail_related
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD2AC
+ ldr r2, =gUnknown_085E8DCE
+ ldr r3, =sub_81AD350
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl DisplayItemMessage
+ b _081AD2EA
+ .pool
+_081AD2AC:
+ ldrh r0, [r5]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD2E4
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD2CA
+ adds r0, r4, 0
+ bl bag_menu_print_there_is_no_pokemon
+ b _081AD2EA
+_081AD2CA:
+ ldr r0, =gUnknown_0203CE54
+ ldr r1, [r0]
+ ldr r0, =sub_81B7F60
+ str r0, [r1]
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ b _081AD2EA
+ .pool
+_081AD2E4:
+ adds r0, r6, 0
+ bl bag_menu_print_cant_be_held_msg
+_081AD2EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end ItemMenu_Give
+
+ thumb_func_start bag_menu_print_there_is_no_pokemon
+bag_menu_print_there_is_no_pokemon: @ 81AD2F0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_085E8DE9
+ ldr r3, =sub_81AD350
+ movs r1, 0x1
+ bl DisplayItemMessage
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print_there_is_no_pokemon
+
+ thumb_func_start bag_menu_print_cant_be_held_msg
+bag_menu_print_cant_be_held_msg: @ 81AD30C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r5, =gStringVar4
+ ldr r1, =gUnknown_085E8E11
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r3, =sub_81AD350
+ adds r0, r4, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ bl DisplayItemMessage
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print_cant_be_held_msg
+
+ thumb_func_start sub_81AD350
+sub_81AD350: @ 81AD350
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD36E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl bag_menu_inits_lists_menu
+_081AD36E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD350
+
+ thumb_func_start ItemMenu_CheckTag
+ItemMenu_CheckTag: @ 81AD378
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CE54
+ ldr r2, [r1]
+ ldr r1, =sub_8177C14
+ str r1, [r2]
+ bl unknown_ItemMenu_Confirm
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ItemMenu_CheckTag
+
+ thumb_func_start ItemMenu_Cancel
+ItemMenu_Cancel: @ 81AD398
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ bl bag_menu_remove_some_window
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ bl bag_menu_print_description_box_text
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ ldrb r0, [r4]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ adds r0, r5, 0
+ bl set_callback3_to_bag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ItemMenu_Cancel
+
+ thumb_func_start ItemMenu_UseInBattle
+ItemMenu_UseInBattle: @ 81AD3DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl ItemId_GetBattleFunc
+ cmp r0, 0
+ beq _081AD400
+ bl bag_menu_remove_some_window
+ ldrh r0, [r4]
+ bl ItemId_GetBattleFunc
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl _call_via_r1
+_081AD400:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ItemMenu_UseInBattle
+
+ thumb_func_start bag_menu_mail_related
+bag_menu_mail_related: @ 81AD40C
+ push {lr}
+ movs r0, 0xC
+ movs r1, 0x5
+ movs r2, 0
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ thumb_func_end bag_menu_mail_related
+
+ thumb_func_start item_menu_type_2
+item_menu_type_2: @ 81AD41C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl itemid_80BF6D8_mail_related
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD44C
+ ldr r2, =gUnknown_085E8DCE
+ ldr r3, =sub_81AD350
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl DisplayItemMessage
+ b _081AD4AE
+ .pool
+_081AD44C:
+ ldrh r0, [r4]
+ bl sub_8122148
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD488
+ ldrh r0, [r4]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8E27
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r3, =sub_81AD350
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl DisplayItemMessage
+ b _081AD4AE
+ .pool
+_081AD488:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _081AD4A8
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD4A8
+ adds r0, r5, 0
+ bl unknown_ItemMenu_Confirm
+ b _081AD4AE
+ .pool
+_081AD4A8:
+ adds r0, r5, 0
+ bl bag_menu_print_cant_be_held_msg
+_081AD4AE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end item_menu_type_2
+
+ thumb_func_start item_menu_type_b
+item_menu_type_b: @ 81AD4B4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =gUnknown_0203CE7C
+ ldrh r0, [r5]
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081AD4E4
+ ldr r2, =gUnknown_085E8DCE
+ ldr r3, =sub_81AD350
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl DisplayItemMessage
+ b _081AD51A
+ .pool
+_081AD4E4:
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x4
+ beq _081AD514
+ ldrh r0, [r5]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD514
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =unknown_ItemMenu_Confirm
+ str r0, [r1]
+ b _081AD51A
+ .pool
+_081AD514:
+ adds r0, r4, 0
+ bl bag_menu_print_cant_be_held_msg
+_081AD51A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end item_menu_type_b
+
+ thumb_func_start UseRegisteredKeyItemOnField
+@ bool8 UseRegisteredKeyItemOnField()
+UseRegisteredKeyItemOnField: @ 81AD520
+ push {r4-r7,lr}
+ bl InUnionRoom
+ cmp r0, 0x1
+ beq _081AD54C
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _081AD54C
+ bl InBattlePike
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ bne _081AD54C
+ bl InMultiBattleRoom
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081AD550
+_081AD54C:
+ movs r0, 0
+ b _081AD5D2
+_081AD550:
+ bl HideMapNamePopUpWindow
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY_ScreenOff
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x00000496
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081AD5CA
+ movs r1, 0x1
+ bl CheckBagHasItem
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bne _081AD5C4
+ bl script_env_2_enable
+ bl player_bitmagic
+ bl sub_808B864
+ bl sub_808BCF4
+ ldr r2, =gUnknown_0203CE7C
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r1, [r0]
+ strh r1, [r2]
+ ldrh r0, [r0]
+ bl ItemId_GetFieldFunc
+ movs r1, 0x8
+ 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 r6, [r1, 0xE]
+ b _081AD5D0
+ .pool
+_081AD5C4:
+ ldr r0, [r4]
+ adds r0, r5
+ strh r7, [r0]
+_081AD5CA:
+ ldr r0, =gUnknown_082736B3
+ bl ScriptContext1_SetupScript
+_081AD5D0:
+ movs r0, 0x1
+_081AD5D2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end UseRegisteredKeyItemOnField
+
+ thumb_func_start display_sell_item_ask_str
+@ void display_sell_item_ask_str(int a1)
+display_sell_item_ask_str: @ 81AD5DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r6, =gUnknown_0203CE7C
+ ldrh r0, [r6]
+ bl itemid_get_market_price
+ lsls r0, 16
+ cmp r0, 0
+ bne _081AD634
+ ldrh r0, [r6]
+ ldr r1, =gStringVar2
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E960F
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r3, =bag_menu_inits_lists_menu
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl DisplayItemMessage
+ b _081AD66A
+ .pool
+_081AD634:
+ movs r0, 0x1
+ strh r0, [r4, 0x10]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _081AD64C
+ bl bag_menu_add_money_window
+ adds r0, r5, 0
+ bl sub_81AD680
+ b _081AD66A
+_081AD64C:
+ ldrh r0, [r6]
+ ldr r1, =gStringVar2
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E962F
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r3, =sub_81AD730
+ adds r0, r7, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl DisplayItemMessage
+_081AD66A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end display_sell_item_ask_str
+
+ thumb_func_start sub_81AD680
+sub_81AD680: @ 81AD680
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldr r6, =gStringVar1
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ muls r1, r0
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9654
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r3, =sub_81AD6E4
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl DisplayItemMessage
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD680
+
+ thumb_func_start sub_81AD6E4
+sub_81AD6E4: @ 81AD6E4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gUnknown_0861408C
+ movs r1, 0x6
+ bl bag_menu_yes_no
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD6E4
+
+ thumb_func_start sub_81AD6FC
+sub_81AD6FC: @ 81AD6FC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ bl bag_menu_remove_money_window
+ movs r0, 0x4
+ bl bag_menu_RemoveBagItem_message_window
+ ldrb r0, [r4]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ adds r0, r5, 0
+ bl set_callback3_to_bag
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD6FC
+
+ thumb_func_start sub_81AD730
+sub_81AD730: @ 81AD730
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, =gTasks + 0x8
+ adds r0, r4, r6
+ mov r8, r0
+ movs r0, 0x8
+ bl bag_menu_add_window
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ mov r2, r8
+ movs r3, 0x10
+ ldrsh r1, [r2, r3]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81ABCC0
+ bl bag_menu_add_money_window
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, =sub_81AD794
+ str r0, [r4]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD730
+
+ thumb_func_start sub_81AD794
+sub_81AD794: @ 81AD794
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ adds r0, r6, 0
+ adds r0, 0x10
+ ldrh r1, [r6, 0x4]
+ bl AdjustQuantityAccordingToDPadInput
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081AD7F4
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000818
+ adds r0, r1
+ ldrb r4, [r0]
+ movs r2, 0x10
+ ldrsh r5, [r6, r2]
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ movs r2, 0x10
+ ldrsh r1, [r6, r2]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81ABCC0
+ b _081AD844
+ .pool
+_081AD7F4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD818
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x8
+ bl bag_menu_remove_window
+ adds r0, r4, 0
+ bl sub_81AD680
+ b _081AD844
+ .pool
+_081AD818:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD844
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r6]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ bl bag_menu_remove_money_window
+ movs r0, 0x8
+ bl bag_menu_remove_window
+ movs r0, 0x4
+ bl bag_menu_RemoveBagItem_message_window
+ adds r0, r5, 0
+ bl set_callback3_to_bag
+_081AD844:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AD794
+
+ thumb_func_start sub_81AD84C
+sub_81AD84C: @ 81AD84C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldr r6, =gUnknown_0203CE7C
+ ldrh r0, [r6]
+ ldr r1, =gStringVar2
+ bl CopyItemName
+ ldr r0, =gStringVar1
+ mov r8, r0
+ ldrh r0, [r6]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ muls r1, r0
+ mov r0, r8
+ movs r2, 0
+ movs r3, 0x6
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9677
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r3, =sub_81AD8C8
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl DisplayItemMessage
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD84C
+
+ thumb_func_start sub_81AD8C8
+sub_81AD8C8: @ 81AD8C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r6, r0, 2
+ adds r6, r0
+ lsls r6, 3
+ ldr r0, =gTasks + 0x8
+ adds r0, r6
+ mov r10, r0
+ ldr r7, =gUnknown_0203CE58
+ ldrb r5, [r7, 0x5]
+ lsls r5, 1
+ movs r1, 0x12
+ adds r1, r7
+ mov r9, r1
+ add r9, r5
+ adds r0, r7, 0
+ adds r0, 0x8
+ adds r5, r0
+ movs r0, 0x5F
+ bl PlaySE
+ ldr r2, =gUnknown_0203CE7C
+ mov r8, r2
+ ldrh r0, [r2]
+ mov r3, r10
+ ldrh r1, [r3, 0x10]
+ bl RemoveBagItem
+ ldr r0, =gSaveBlock1Ptr
+ ldr r4, [r0]
+ movs r1, 0x92
+ lsls r1, 3
+ adds r4, r1
+ mov r2, r8
+ ldrh r0, [r2]
+ bl itemid_get_market_price
+ lsls r0, 16
+ lsrs r0, 17
+ mov r3, r10
+ movs r2, 0x10
+ ldrsh r1, [r3, r2]
+ muls r1, r0
+ adds r0, r4, 0
+ bl add_money
+ mov r3, r10
+ ldrb r0, [r3]
+ mov r1, r9
+ adds r2, r5, 0
+ bl sub_81AE6C8
+ ldrb r0, [r7, 0x5]
+ bl sub_81AB9A8
+ ldrb r0, [r7, 0x5]
+ bl sub_81ABA88
+ ldrb r0, [r7, 0x5]
+ bl load_bag_item_list_buffers
+ ldr r0, =gUnknown_03006310
+ mov r2, r9
+ ldrh r1, [r2]
+ ldrh r2, [r5]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ mov r3, r10
+ strh r0, [r3]
+ movs r1, 0x2
+ bl bag_menu_print_cursor_
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000819
+ adds r0, r1
+ ldrb r4, [r0]
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, [r2]
+ movs r3, 0x92
+ lsls r3, 3
+ adds r0, r3
+ bl DecryptMoney
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ bl PrintMoneyAmountInMoneyBox
+ ldr r0, =gTasks + 0x8
+ subs r0, 0x8
+ adds r6, r0
+ ldr r0, =sub_81AD9C0
+ str r0, [r6]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD8C8
+
+ thumb_func_start sub_81AD9C0
+sub_81AD9C0: @ 81AD9C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081AD9E2
+ movs r0, 0x5
+ bl PlaySE
+ bl bag_menu_remove_money_window
+ adds r0, r4, 0
+ bl bag_menu_inits_lists_menu
+_081AD9E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AD9C0
+
+ thumb_func_start display_deposit_item_ask_str
+display_deposit_item_ask_str: @ 81AD9EC
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r5, r0, 3
+ ldr r6, =gTasks + 0x8
+ adds r1, r5, r6
+ movs r0, 0x1
+ strh r0, [r1, 0x10]
+ movs r3, 0x4
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ bne _081ADA18
+ adds r0, r2, 0
+ bl sub_81ADB14
+ b _081ADA5E
+ .pool
+_081ADA18:
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8E42
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ movs r0, 0x7
+ bl sub_81ABC3C
+ adds r0, r6, 0
+ subs r0, 0x8
+ adds r0, r5, r0
+ ldr r1, =sub_81ADA7C
+ str r1, [r0]
+_081ADA5E:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end display_deposit_item_ask_str
+
+ thumb_func_start sub_81ADA7C
+sub_81ADA7C: @ 81ADA7C
+ push {r4-r6,lr}
+ 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
+ adds r0, r5, 0
+ adds r0, 0x10
+ ldrh r1, [r5, 0x4]
+ bl AdjustQuantityAccordingToDPadInput
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081ADAC0
+ ldr r0, =gUnknown_0203CE54
+ ldr r0, [r0]
+ ldr r1, =0x00000817
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r2, 0x10
+ ldrsh r1, [r5, r2]
+ bl sub_81ABC54
+ b _081ADB0E
+ .pool
+_081ADAC0:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081ADAE4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x7
+ bl bag_menu_remove_window
+ adds r0, r4, 0
+ bl sub_81ADB14
+ b _081ADB0E
+ .pool
+_081ADAE4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081ADB0E
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl bag_menu_print_description_box_text
+ ldrb r0, [r5]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ movs r0, 0x7
+ bl bag_menu_remove_window
+ adds r0, r6, 0
+ bl set_callback3_to_bag
+_081ADB0E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81ADA7C
+
+ thumb_func_start sub_81ADB14
+sub_81ADB14: @ 81ADB14
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r7, r1, 3
+ ldr r0, =gTasks + 0x8
+ mov r9, r0
+ adds r2, r7, 0
+ add r2, r9
+ mov r8, r2
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl itemid_is_unique
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _081ADB6C
+ ldr r2, =gUnknown_085E8E8E
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ str r0, [sp, 0x10]
+ movs r0, 0x1
+ b _081ADBE2
+ .pool
+_081ADB6C:
+ ldrh r0, [r4]
+ mov r3, r8
+ ldrh r1, [r3, 0x10]
+ bl sub_80D6D70
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bne _081ADBD4
+ ldrh r0, [r4]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, =gStringVar2
+ mov r2, r8
+ movs r3, 0x10
+ ldrsh r1, [r2, r3]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E8E5A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r5, [sp, 0x10]
+ movs r0, 0x1
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl bag_menu_print
+ mov r0, r9
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, =Task_ActuallyToss
+ b _081ADBF2
+ .pool
+_081ADBD4:
+ ldr r2, =gUnknown_085E8E6E
+ movs r0, 0x1
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ str r5, [sp, 0xC]
+ str r5, [sp, 0x10]
+_081ADBE2:
+ movs r1, 0x1
+ movs r3, 0x3
+ bl bag_menu_print
+ mov r0, r9
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, =sub_81ADC0C
+_081ADBF2:
+ str r1, [r0]
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ADB14
+
+ thumb_func_start sub_81ADC0C
+sub_81ADC0C: @ 81ADC0C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081ADC44
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ bl bag_menu_print_description_box_text
+ ldrb r0, [r5]
+ movs r1, 0
+ bl bag_menu_print_cursor_
+ adds r0, r4, 0
+ bl set_callback3_to_bag
+_081ADC44:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81ADC0C
+
+ thumb_func_start IsWallysBag
+@ bool8 IsWallysBag()
+IsWallysBag: @ 81ADC54
+ push {lr}
+ ldr r0, =gUnknown_0203CE58
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0xA
+ beq _081ADC68
+ movs r0, 0
+ b _081ADC6A
+ .pool
+_081ADC68:
+ movs r0, 0x1
+_081ADC6A:
+ pop {r1}
+ bx r1
+ thumb_func_end IsWallysBag
+
+ thumb_func_start PrepareBagForWallyTutorial
+@ void PrepareBagForWallyTutorial()
+PrepareBagForWallyTutorial: @ 81ADC70
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203CE80
+ movs r0, 0xD0
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r5, =gSaveBlock1Ptr
+ ldr r1, [r5]
+ movs r2, 0xAC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0x78
+ bl memcpy
+ ldr r0, [r4]
+ ldr r1, [r5]
+ movs r2, 0xCA
+ lsls r2, 3
+ adds r1, r2
+ adds r0, 0x78
+ movs r2, 0x40
+ bl memcpy
+ ldr r0, [r4]
+ ldr r2, =gUnknown_0203CE58
+ ldrb r1, [r2, 0x5]
+ adds r0, 0xCE
+ strh r1, [r0]
+ movs r6, 0
+ adds r5, r2, 0
+ adds r5, 0x8
+_081ADCAE:
+ ldr r2, [r4]
+ lsls r3, r6, 1
+ adds r0, r2, 0
+ adds r0, 0xB8
+ adds r0, r3
+ ldrh r1, [r5]
+ strh r1, [r0]
+ adds r2, 0xC2
+ adds r2, r3
+ ldrh r0, [r5, 0xA]
+ strh r0, [r2]
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x4
+ bls _081ADCAE
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ movs r1, 0xAC
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1E
+ bl ClearItemSlots
+ ldr r0, [r4]
+ movs r2, 0xCA
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x10
+ bl ClearItemSlots
+ bl ResetBagScrollPositions
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end PrepareBagForWallyTutorial
+
+ thumb_func_start RestoreBagAfterWallyTutorial
+@ void RestoreBagAfterWallyTutorial()
+RestoreBagAfterWallyTutorial: @ 81ADD00
+ push {r4-r6,lr}
+ ldr r5, =gSaveBlock1Ptr
+ ldr r0, [r5]
+ movs r1, 0xAC
+ lsls r1, 3
+ adds r0, r1
+ ldr r4, =gUnknown_0203CE80
+ ldr r1, [r4]
+ movs r2, 0x78
+ bl memcpy
+ ldr r0, [r5]
+ movs r1, 0xCA
+ lsls r1, 3
+ adds r0, r1
+ ldr r1, [r4]
+ adds r1, 0x78
+ movs r2, 0x40
+ bl memcpy
+ ldr r1, =gUnknown_0203CE58
+ ldr r0, [r4]
+ adds r0, 0xCE
+ ldrh r0, [r0]
+ strb r0, [r1, 0x5]
+ movs r5, 0
+ adds r6, r4, 0
+ adds r3, r1, 0
+ adds r3, 0x8
+_081ADD3A:
+ lsls r2, r5, 1
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ adds r1, 0xC2
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r3, 0xA]
+ adds r3, 0x2
+ adds r5, 0x1
+ cmp r5, 0x4
+ bls _081ADD3A
+ ldr r0, [r6]
+ bl Free
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RestoreBagAfterWallyTutorial
+
+ thumb_func_start DoWallyTutorialBagMenu
+@ void DoWallyTutorialBagMenu()
+DoWallyTutorialBagMenu: @ 81ADD70
+ push {lr}
+ bl PrepareBagForWallyTutorial
+ movs r0, 0xD
+ movs r1, 0x1
+ bl AddBagItem
+ movs r0, 0x4
+ movs r1, 0x1
+ bl AddBagItem
+ ldr r2, =sub_8059D50
+ movs r0, 0xA
+ movs r1, 0
+ bl GoToBagMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end DoWallyTutorialBagMenu
+
+ thumb_func_start Task_WallyTutorialBagMenu
+@ void Task_WallyTutorialBagMenu(u8 taskId)
+Task_WallyTutorialBagMenu: @ 81ADD98
+ 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 r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081ADE32
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ cmp r1, 0xCC
+ beq _081ADDEC
+ cmp r1, 0xCC
+ bgt _081ADDD0
+ cmp r1, 0x66
+ beq _081ADDDA
+ b _081ADE2C
+ .pool
+_081ADDD0:
+ movs r0, 0x99
+ lsls r0, 1
+ cmp r1, r0
+ beq _081ADE0C
+ b _081ADE2C
+_081ADDDA:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0
+ bl SwitchBagPocket
+ b _081ADE2C
+_081ADDEC:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl bag_menu_print_cursor_
+ ldr r1, =gUnknown_0203CE7C
+ movs r0, 0x4
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_81AC644
+ b _081ADE2C
+ .pool
+_081ADE0C:
+ movs r0, 0x5
+ bl PlaySE
+ bl bag_menu_remove_some_window
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ bl RestoreBagAfterWallyTutorial
+ adds r0, r5, 0
+ bl unknown_ItemMenu_Confirm
+ b _081ADE32
+_081ADE2C:
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x1
+ strh r0, [r4, 0x10]
+_081ADE32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_WallyTutorialBagMenu
+
+ thumb_func_start unknown_ItemMenu_Show
+unknown_ItemMenu_Show: @ 81ADE38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gSpecialVar_0x8005
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ bl bag_menu_remove_some_window
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unknown_ItemMenu_Show
+
+ thumb_func_start bag_menu_leave_maybe_3
+bag_menu_leave_maybe_3: @ 81ADE6C
+ push {lr}
+ ldr r0, =gUnknown_03005DAC
+ ldr r1, =sub_819FA50
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_leave_maybe_3
+
+ thumb_func_start unknown_ItemMenu_Give2
+unknown_ItemMenu_Give2: @ 81ADE8C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ bl bag_menu_remove_some_window
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unknown_ItemMenu_Give2
+
+ thumb_func_start bag_menu_leave_maybe_2
+bag_menu_leave_maybe_2: @ 81ADEBC
+ push {lr}
+ ldr r0, =gUnknown_03005DAC
+ ldr r1, =sub_818DEF4
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_leave_maybe_2
+
+ thumb_func_start unknown_ItemMenu_Confirm2
+unknown_ItemMenu_Confirm2: @ 81ADEDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ bl bag_menu_remove_some_window
+ adds r0, r4, 0
+ bl unknown_ItemMenu_Confirm
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end unknown_ItemMenu_Confirm2
+
+ thumb_func_start bag_menu_leave_maybe
+bag_menu_leave_maybe: @ 81ADF00
+ push {lr}
+ ldr r0, =gUnknown_03005DAC
+ ldr r1, =sub_818E564
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_leave_maybe
+
+ thumb_func_start bag_menu_print_pocket_names
+bag_menu_print_pocket_names: @ 81ADF20
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ adds r4, r0, 0
+ mov r8, r1
+ movs r0, 0
+ movs r1, 0
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+ ldr r1, =0x00ffffff
+ ldr r0, [sp, 0x14]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 21
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ ldr r1, =0xffffff00
+ ldr r0, [sp, 0x18]
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ str r0, [sp, 0x18]
+ add r0, sp, 0x14
+ bl AddWindow
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ lsls r3, r0, 24
+ lsrs r3, 24
+ movs r7, 0x1
+ str r7, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0xFF
+ mov r9, r0
+ str r0, [sp, 0xC]
+ str r7, [sp, 0x10]
+ adds r0, r6, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl bag_menu_print
+ mov r2, r8
+ cmp r2, 0
+ beq _081ADFBA
+ movs r0, 0x1
+ mov r1, r8
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ adds r3, 0x40
+ lsls r3, 24
+ lsrs r3, 24
+ str r7, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ str r7, [sp, 0x10]
+ adds r0, r6, 0
+ movs r1, 0x1
+ mov r2, r8
+ bl bag_menu_print
+_081ADFBA:
+ adds r0, r6, 0
+ movs r1, 0x7
+ bl GetWindowAttribute
+ ldr r1, =gUnknown_0203CE54
+ ldr r1, [r1]
+ ldr r2, =0x00000844
+ adds r1, r2
+ ldr r2, =0x04000100
+ bl CpuSet
+ adds r0, r6, 0
+ bl RemoveWindow
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print_pocket_names
+
+ thumb_func_start bag_menu_copy_pocket_name_to_window
+bag_menu_copy_pocket_name_to_window: @ 81ADFF8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ cmp r7, 0x8
+ bls _081AE002
+ movs r7, 0x8
+_081AE002:
+ ldr r0, =gUnknown_0203CE54
+ ldr r4, [r0]
+ ldr r0, =0x00000844
+ adds r4, r0
+ movs r0, 0x2
+ movs r1, 0x7
+ bl GetWindowAttribute
+ adds r5, r0, 0
+ lsls r0, r7, 5
+ adds r0, r4, r0
+ ldr r6, =0x04000040
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CpuSet
+ adds r0, r7, 0
+ adds r0, 0x10
+ lsls r0, 5
+ adds r4, r0
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CpuSet
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_copy_pocket_name_to_window
+
+ thumb_func_start setup_bag_menu_textboxes
+setup_bag_menu_textboxes: @ 81AE054
+ push {r4,lr}
+ ldr r0, =gUnknown_08614174
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xE0
+ bl sub_809882C
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0xD0
+ bl copy_textbox_border_tile_patterns_to_vram
+ movs r0, 0xC0
+ movs r1, 0x1
+ bl sub_819A2BC
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r4, 0
+_081AE088:
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081AE088
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end setup_bag_menu_textboxes
+
+ thumb_func_start bag_menu_print
+bag_menu_print: @ 81AE0BC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r9, r3
+ ldr r3, [sp, 0x30]
+ ldr r4, [sp, 0x34]
+ ldr r6, [sp, 0x38]
+ ldr r5, [sp, 0x3C]
+ mov r8, r5
+ ldr r5, [sp, 0x40]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ lsls r7, 24
+ lsrs r7, 24
+ mov r9, r7
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ lsls r4, r5, 1
+ adds r4, r5
+ ldr r5, =gUnknown_08614164
+ adds r4, r5
+ str r4, [sp, 0x8]
+ mov r4, r8
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp, 0xC]
+ str r2, [sp, 0x10]
+ mov r2, r9
+ bl AddTextPrinterParametrized2
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_print
+
+ thumb_func_start sub_81AE124
+sub_81AE124: @ 81AE124
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CE54
+ ldr r1, [r1]
+ movs r2, 0x81
+ lsls r2, 4
+ adds r1, r2
+ adds r1, r0
+ ldrb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81AE124
+
+ thumb_func_start bag_menu_add_window
+bag_menu_add_window: @ 81AE13C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203CE54
+ movs r3, 0x81
+ lsls r3, 4
+ adds r1, r2, r3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _081AE172
+ lsls r0, r2, 3
+ ldr r1, =gUnknown_086141AC
+ adds r0, r1
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+_081AE172:
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end bag_menu_add_window
+
+ thumb_func_start bag_menu_remove_window
+bag_menu_remove_window: @ 81AE184
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CE54
+ movs r2, 0x81
+ lsls r2, 4
+ adds r0, r2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _081AE1B8
+ movs r1, 0
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0xFF
+ strb r0, [r4]
+_081AE1B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_remove_window
+
+ thumb_func_start AddItemMessageWindow
+@ u8 AddItemMessageWindow(u8 a1)
+AddItemMessageWindow: @ 81AE1C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203CE54
+ movs r3, 0x81
+ lsls r3, 4
+ adds r1, r2, r3
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ bne _081AE1E8
+ lsls r0, r2, 3
+ ldr r1, =gUnknown_086141AC
+ adds r0, r1
+ bl AddWindow
+ strb r0, [r4]
+_081AE1E8:
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddItemMessageWindow
+
+ thumb_func_start bag_menu_RemoveBagItem_message_window
+bag_menu_RemoveBagItem_message_window: @ 81AE1F8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CE54
+ movs r2, 0x81
+ lsls r2, 4
+ adds r0, r2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _081AE22C
+ movs r1, 0
+ bl sub_8197DF8
+ ldrb r0, [r4]
+ bl ClearWindowTilemap
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0xFF
+ strb r0, [r4]
+_081AE22C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_RemoveBagItem_message_window
+
+ thumb_func_start bag_menu_yes_no
+bag_menu_yes_no: @ 81AE238
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 21
+ ldr r3, =gUnknown_086141AC
+ adds r1, r3
+ movs r3, 0x2
+ str r3, [sp]
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+ movs r3, 0xE
+ str r3, [sp, 0x8]
+ str r2, [sp, 0xC]
+ movs r2, 0x1
+ movs r3, 0
+ bl CreateYesNoMenuWithCallbacks
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_yes_no
+
+ thumb_func_start bag_menu_add_money_window
+bag_menu_add_money_window: @ 81AE268
+ push {r4,lr}
+ movs r0, 0x9
+ bl bag_menu_add_window
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ bl DecryptMoney
+ adds r3, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xE
+ bl set_window_border_style_and_print_money_box
+ movs r0, 0x13
+ movs r1, 0xB
+ bl AddMoneyLabelObject
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end bag_menu_add_money_window
+
+ thumb_func_start bag_menu_remove_money_window
+bag_menu_remove_money_window: @ 81AE2A4
+ push {lr}
+ movs r0, 0x9
+ bl bag_menu_remove_window
+ bl RemoveMoneyLabelObject
+ pop {r0}
+ bx r0
+ thumb_func_end bag_menu_remove_money_window
+
+ thumb_func_start bag_menu_prepare_tmhm_move_window
+bag_menu_prepare_tmhm_move_window: @ 81AE2B4
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x3
+ movs r1, 0x13
+ movs r2, 0
+ movs r3, 0
+ bl blit_move_info_icon
+ movs r0, 0x3
+ movs r1, 0x14
+ movs r2, 0
+ movs r3, 0xC
+ bl blit_move_info_icon
+ movs r0, 0x3
+ movs r1, 0x15
+ movs r2, 0
+ movs r3, 0x18
+ bl blit_move_info_icon
+ movs r0, 0x3
+ movs r1, 0x16
+ movs r2, 0
+ movs r3, 0x24
+ bl blit_move_info_icon
+ movs r0, 0x3
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end bag_menu_prepare_tmhm_move_window
+
+ thumb_func_start PrintTMHMMoveData
+PrintTMHMMoveData: @ 81AE2FC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0x4
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ cmp r4, 0
+ bne _081AE354
+ movs r4, 0
+ movs r5, 0
+_081AE31A:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 26
+ lsrs r0, 24
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0xFF
+ str r0, [sp, 0xC]
+ movs r0, 0x4
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ ldr r2, =gUnknown_085E8D45
+ movs r3, 0x7
+ bl bag_menu_print
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081AE31A
+ movs r0, 0x4
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081AE440
+ .pool
+_081AE354:
+ adds r0, r4, 0
+ bl ItemIdToBattleMoveId
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r1, =gBattleMoves
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x2]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl blit_move_info_icon
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0x1
+ bhi _081AE38C
+ ldr r2, =gUnknown_085E8D45
+ b _081AE39C
+ .pool
+_081AE38C:
+ ldr r4, =gStringVar1
+ ldrb r1, [r5, 0x1]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r2, r4, 0
+_081AE39C:
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0xFF
+ str r0, [sp, 0xC]
+ movs r0, 0x4
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0x7
+ bl bag_menu_print
+ ldr r2, =gBattleMoves
+ lsls r1, r7, 1
+ adds r0, r1, r7
+ lsls r0, 2
+ adds r2, r0, r2
+ ldrb r0, [r2, 0x3]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _081AE3D8
+ ldr r2, =gUnknown_085E8D45
+ b _081AE3E8
+ .pool
+_081AE3D8:
+ ldr r4, =gStringVar1
+ ldrb r1, [r2, 0x3]
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r2, r4, 0
+_081AE3E8:
+ movs r0, 0x18
+ str r0, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0xFF
+ mov r8, r0
+ str r0, [sp, 0xC]
+ movs r0, 0x4
+ mov r9, r0
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0x7
+ bl bag_menu_print
+ ldr r5, =gStringVar1
+ ldr r1, =gBattleMoves
+ adds r0, r6, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x24
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r0, r8
+ str r0, [sp, 0xC]
+ mov r0, r9
+ str r0, [sp, 0x10]
+ movs r0, 0x4
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x7
+ bl bag_menu_print
+ movs r0, 0x4
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081AE440:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end PrintTMHMMoveData
+
+ thumb_func_start ListMenuDummyTask
+@ void ListMenuDummyTask(u8 taskId)
+ListMenuDummyTask: @ 81AE458
+ bx lr
+ thumb_func_end ListMenuDummyTask
+
+ thumb_func_start DoMysteryGiftListMenu
+@ int DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, int a3, int a4, int a5)
+DoMysteryGiftListMenu: @ 81AE45C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r12, r0
+ str r1, [sp]
+ ldr r0, [sp, 0x28]
+ lsls r2, 24
+ lsrs r6, r2, 24
+ mov r10, r6
+ lsls r3, 16
+ lsrs r7, r3, 16
+ str r7, [sp, 0x4]
+ lsls r0, 16
+ mov r8, r0
+ lsrs r0, 16
+ mov r9, r0
+ ldr r5, =gUnknown_0203CE84
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0x1
+ beq _081AE4F4
+ cmp r4, 0x1
+ ble _081AE492
+ cmp r4, 0x2
+ beq _081AE558
+_081AE492:
+ mov r0, r12
+ bl AddWindow
+ strb r0, [r5, 0x5]
+ cmp r6, 0x1
+ beq _081AE4B0
+ cmp r6, 0x2
+ bne _081AE4C0
+ ldrb r0, [r5, 0x5]
+ mov r1, r9
+ lsls r2, r1, 24
+ lsrs r2, 24
+ adds r1, r7, 0
+ bl sub_809882C
+_081AE4B0:
+ ldrb r0, [r5, 0x5]
+ mov r3, r8
+ lsrs r2, r3, 20
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r1, [sp, 0x4]
+ bl sub_8098858
+_081AE4C0:
+ ldr r0, =gUnknown_03006310
+ adds r2, r0, 0
+ ldr r1, [sp]
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldr r4, =gUnknown_0203CE84
+ ldrb r1, [r4, 0x5]
+ strb r1, [r0, 0x10]
+ movs r1, 0
+ movs r2, 0
+ bl ListMenuInit
+ strb r0, [r4, 0x6]
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ movs r0, 0x1
+ strb r0, [r4, 0x4]
+ b _081AE570
+ .pool
+_081AE4F4:
+ ldrb r0, [r5, 0x6]
+ bl ListMenuHandleInput
+ str r0, [r5]
+ ldr r1, =gMain
+ ldrh r0, [r1, 0x2E]
+ ands r4, r0
+ cmp r4, 0
+ beq _081AE50A
+ movs r0, 0x2
+ strb r0, [r5, 0x4]
+_081AE50A:
+ ldrh r1, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081AE51E
+ movs r0, 0x2
+ negs r0, r0
+ str r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x4]
+_081AE51E:
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x2
+ bne _081AE570
+ cmp r6, 0
+ bne _081AE534
+ ldrb r0, [r5, 0x5]
+ bl ClearWindowTilemap
+ b _081AE546
+ .pool
+_081AE534:
+ mov r4, r10
+ cmp r4, 0
+ blt _081AE546
+ cmp r4, 0x2
+ bgt _081AE546
+ ldrb r0, [r5, 0x5]
+ movs r1, 0
+ bl sub_819746C
+_081AE546:
+ ldr r0, =gUnknown_0203CE84
+ ldrb r0, [r0, 0x5]
+ movs r1, 0x1
+ bl CopyWindowToVram
+ b _081AE570
+ .pool
+_081AE558:
+ ldrb r0, [r5, 0x6]
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldrb r0, [r5, 0x5]
+ bl RemoveWindow
+ movs r0, 0
+ strb r0, [r5, 0x4]
+ ldr r0, [r5]
+ b _081AE574
+_081AE570:
+ movs r0, 0x1
+ negs r0, r0
+_081AE574:
+ 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 DoMysteryGiftListMenu
+
+ thumb_func_start ListMenuInit
+@ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
+ListMenuInit: @ 81AE584
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ bl ListMenuInitInternal
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5, 0x10]
+ bl PutWindowTilemap
+ ldrb r0, [r5, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuInit
+
+ thumb_func_start Unused_ListMenuInit2
+@ u8 Unused_ListMenuInit2(struct ListMenuTemplate *listMenuTemplate, int a2, u16 scrollOffset, u16 selectedRow)
+Unused_ListMenuInit2: @ 81AE5B0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r1, r2, 0
+ adds r2, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ bl ListMenuInitInternal
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0xFF
+ beq _081AE5F0
+ adds r5, r4, 0
+_081AE5D4:
+ ldrb r0, [r6, 0x10]
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5, 0x2]
+ ldrb r4, [r5, 0x3]
+ str r4, [sp]
+ ldrb r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl PutWindowRectTilemapOverridePalette
+ adds r5, 0x8
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0xFF
+ bne _081AE5D4
+_081AE5F0:
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ adds r0, r7, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end Unused_ListMenuInit2
+
+ thumb_func_start ListMenuHandleInput
+@ int ListMenuHandleInput(u8 taskId)
+ListMenuHandleInput: @ 81AE604
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r3, r1, r0
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081AE638
+ ldrh r0, [r3, 0x18]
+ ldrh r1, [r3, 0x1A]
+ adds r0, r1
+ ldr r1, [r3]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ b _081AE6C2
+ .pool
+_081AE638:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081AE646
+ movs r0, 0x2
+ negs r0, r0
+ b _081AE6C2
+_081AE646:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081AE65A
+ adds r0, r3, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0
+ b _081AE6BA
+_081AE65A:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081AE66A
+ adds r0, r3, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ b _081AE6B8
+_081AE66A:
+ ldrb r0, [r3, 0x16]
+ lsrs r0, 6
+ cmp r0, 0x1
+ beq _081AE680
+ cmp r0, 0x1
+ ble _081AE67A
+ cmp r0, 0x2
+ beq _081AE68C
+_081AE67A:
+ movs r2, 0
+ movs r0, 0
+ b _081AE6A0
+_081AE680:
+ movs r0, 0x20
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0x10
+ b _081AE69A
+_081AE68C:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r0, 0x80
+ lsls r0, 1
+_081AE69A:
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_081AE6A0:
+ cmp r2, 0
+ beq _081AE6AE
+ ldrb r2, [r3, 0xE]
+ adds r0, r3, 0
+ movs r1, 0x1
+ movs r3, 0
+ b _081AE6BA
+_081AE6AE:
+ cmp r0, 0
+ beq _081AE6BE
+ ldrb r2, [r3, 0xE]
+ adds r0, r3, 0
+ movs r1, 0x1
+_081AE6B8:
+ movs r3, 0x1
+_081AE6BA:
+ bl ListMenuChangeSelection
+_081AE6BE:
+ movs r0, 0x1
+ negs r0, r0
+_081AE6C2:
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuHandleInput
+
+ thumb_func_start sub_81AE6C8
+sub_81AE6C8: @ 81AE6C8
+ push {r4,lr}
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r1, r0, r1
+ cmp r3, 0
+ beq _081AE6E4
+ ldrh r0, [r1, 0x18]
+ strh r0, [r3]
+_081AE6E4:
+ cmp r2, 0
+ beq _081AE6EC
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r2]
+_081AE6EC:
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0xFF
+ beq _081AE6FC
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 6
+ subs r1, 0x2
+ bl ListMenuRemoveCursorObject
+_081AE6FC:
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AE6C8
+
+ thumb_func_start sub_81AE70C
+sub_81AE70C: @ 81AE70C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ ldrb r2, [r4, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl FillWindowPixelBuffer
+ ldrh r1, [r4, 0x18]
+ ldrh r3, [r4, 0xE]
+ adds r0, r4, 0
+ movs r2, 0
+ bl ListMenuPrintEntries
+ adds r0, r4, 0
+ bl ListMenuDrawCursor
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AE70C
+
+ thumb_func_start sub_81AE750
+sub_81AE750: @ 81AE750
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ lsrs r1, 20
+ ldrb r6, [r4, 0x14]
+ movs r5, 0xF
+ adds r0, r5, 0
+ ands r0, r6
+ orrs r0, r1
+ strb r0, [r4, 0x14]
+ ands r2, r5
+ ldrb r1, [r4, 0x15]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ lsrs r3, 20
+ ands r0, r5
+ orrs r0, r3
+ strb r0, [r4, 0x15]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AE750
+
+ thumb_func_start sub_81AE794
+sub_81AE794: @ 81AE794
+ push {r4,r5,lr}
+ adds r3, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x1
+ adds r2, r3, 0
+ bl SetWindowAttribute
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x2
+ adds r2, r5, 0
+ bl SetWindowAttribute
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AE794
+
+ thumb_func_start sub_81AE7D0
+sub_81AE7D0: @ 81AE7D0
+ push {r4-r7,lr}
+ sub sp, 0x20
+ mov r12, r2
+ ldr r5, [sp, 0x34]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r4, r3, 0
+ mov r3, sp
+ ldm r0!, {r2,r6,r7}
+ stm r3!, {r2,r6,r7}
+ ldm r0!, {r2,r6,r7}
+ stm r3!, {r2,r6,r7}
+ mov r0, sp
+ movs r3, 0
+ strh r1, [r0, 0x18]
+ mov r1, r12
+ strh r1, [r0, 0x1A]
+ strb r3, [r0, 0x1C]
+ strb r3, [r0, 0x1D]
+ cmp r4, 0x40
+ bne _081AE804
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl ListMenuChangeSelection
+_081AE804:
+ cmp r4, 0x80
+ bne _081AE814
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl ListMenuChangeSelection
+_081AE814:
+ cmp r5, 0
+ beq _081AE81E
+ mov r0, sp
+ ldrh r0, [r0, 0x18]
+ strh r0, [r5]
+_081AE81E:
+ ldr r2, [sp, 0x38]
+ cmp r2, 0
+ beq _081AE82A
+ mov r0, sp
+ ldrh r0, [r0, 0x1A]
+ strh r0, [r2]
+_081AE82A:
+ movs r0, 0x1
+ negs r0, r0
+ add sp, 0x20
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AE7D0
+
+ thumb_func_start sub_81AE838
+sub_81AE838: @ 81AE838
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ cmp r2, 0
+ beq _081AE856
+ ldrh r0, [r1, 0x1A]
+ ldrh r1, [r1, 0x18]
+ adds r0, r1
+ strh r0, [r2]
+_081AE856:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AE838
+
+ thumb_func_start get_coro_args_x18_x1A
+get_coro_args_x18_x1A: @ 81AE860
+ push {lr}
+ adds r3, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ cmp r3, 0
+ beq _081AE87A
+ ldrh r0, [r1, 0x18]
+ strh r0, [r3]
+_081AE87A:
+ cmp r2, 0
+ beq _081AE882
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r2]
+_081AE882:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end get_coro_args_x18_x1A
+
+ thumb_func_start ListMenuGetYCoordForPrintingArrowCursor
+@ u8 ListMenuGetYCoordForPrintingArrowCursor(u8 taskId)
+ListMenuGetYCoordForPrintingArrowCursor: @ 81AE88C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldrb r0, [r4, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ ldrb r1, [r4, 0x16]
+ lsls r1, 26
+ lsrs r1, 29
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x1A]
+ adds r2, r1, 0
+ muls r2, r0
+ adds r1, r2, 0
+ ldrb r0, [r4, 0x14]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ListMenuGetYCoordForPrintingArrowCursor
+
+ thumb_func_start ListMenuInitInternal
+@ u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
+ListMenuInitInternal: @ 81AE8D4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, =ListMenuDummyTask
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ adds r0, r7, 0
+ ldm r4!, {r1-r3}
+ stm r0!, {r1-r3}
+ ldm r4!, {r1-r3}
+ stm r0!, {r1-r3}
+ movs r1, 0
+ strh r5, [r7, 0x18]
+ strh r6, [r7, 0x1A]
+ strb r1, [r7, 0x1C]
+ strb r1, [r7, 0x1D]
+ movs r0, 0xFF
+ strb r0, [r7, 0x1E]
+ strb r1, [r7, 0x1F]
+ ldr r3, =gUnknown_03006300
+ ldrb r1, [r7, 0x14]
+ movs r5, 0xF
+ lsrs r1, 4
+ ldrb r4, [r3]
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r1, [r7, 0x15]
+ lsls r1, 28
+ lsrs r1, 24
+ ands r0, r5
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r0, [r7, 0x15]
+ lsrs r0, 4
+ ands r5, r0
+ ldrb r0, [r3, 0x1]
+ ands r2, r0
+ orrs r2, r5
+ strb r2, [r3, 0x1]
+ ldrb r1, [r7, 0x16]
+ lsls r1, 29
+ lsrs r1, 17
+ ldr r0, [r3]
+ ldr r2, =0xfffc0fff
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r3]
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ strb r0, [r3, 0x3]
+ ldrh r0, [r7, 0xC]
+ ldrh r1, [r7, 0xE]
+ cmp r0, r1
+ bcs _081AE96C
+ strh r0, [r7, 0xE]
+_081AE96C:
+ ldrb r0, [r7, 0x10]
+ ldrb r2, [r7, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl FillWindowPixelBuffer
+ ldrh r1, [r7, 0x18]
+ ldrh r3, [r7, 0xE]
+ adds r0, r7, 0
+ movs r2, 0
+ bl ListMenuPrintEntries
+ adds r0, r7, 0
+ bl ListMenuDrawCursor
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl ListMenuCallSelectionChangedCallback
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ListMenuInitInternal
+
+ thumb_func_start ListMenuPrint
+@ void ListMenuPrint(struct ListMenu *listMenu, u8 *str, u8 x, u8 y)
+ListMenuPrint: @ 81AE9B4
+ push {r4-r7,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ ldr r5, =gUnknown_03006300
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _081AEA20
+ add r1, sp, 0x14
+ ldr r2, [r5]
+ lsls r0, r2, 24
+ lsrs r0, 28
+ movs r3, 0
+ strb r0, [r1]
+ lsls r0, r2, 28
+ lsrs r0, 28
+ strb r0, [r1, 0x1]
+ lsls r0, r2, 20
+ lsrs r0, 28
+ strb r0, [r1, 0x2]
+ ldrb r0, [r4, 0x10]
+ lsls r1, r2, 1
+ lsrs r1, 25
+ lsls r2, 14
+ lsrs r2, 26
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ add r2, sp, 0x14
+ str r2, [sp, 0x8]
+ movs r2, 0x1
+ negs r2, r2
+ str r2, [sp, 0xC]
+ str r6, [sp, 0x10]
+ adds r2, r7, 0
+ mov r3, r12
+ bl AddTextPrinterParametrized2
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5, 0x3]
+ b _081AEA5E
+ .pool
+_081AEA20:
+ add r2, sp, 0x14
+ ldrb r1, [r4, 0x15]
+ lsls r0, r1, 28
+ lsrs r0, 28
+ strb r0, [r2]
+ ldrb r0, [r4, 0x14]
+ lsrs r0, 4
+ strb r0, [r2, 0x1]
+ adds r0, r2, 0
+ lsls r1, 24
+ lsrs r1, 28
+ strb r1, [r0, 0x2]
+ ldrb r0, [r4, 0x10]
+ ldrb r1, [r4, 0x17]
+ lsls r1, 26
+ lsrs r1, 26
+ ldrb r2, [r4, 0x16]
+ lsls r2, 29
+ lsrs r2, 29
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ add r2, sp, 0x14
+ str r2, [sp, 0x8]
+ movs r2, 0x1
+ negs r2, r2
+ str r2, [sp, 0xC]
+ str r6, [sp, 0x10]
+ adds r2, r7, 0
+ mov r3, r12
+ bl AddTextPrinterParametrized2
+_081AEA5E:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuPrint
+
+ thumb_func_start ListMenuPrintEntries
+@ void ListMenuPrintEntries(struct ListMenu *listMenu, u16 startIndex, u16 yOffset, u16 count)
+ListMenuPrintEntries: @ 81AEA68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r10, r3
+ ldrb r0, [r4, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ ldrb r1, [r4, 0x16]
+ lsls r1, 26
+ lsrs r1, 29
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r8, r0
+ cmp r8, r10
+ bge _081AEB10
+_081AEAAA:
+ ldr r0, [r4]
+ mov r2, r9
+ lsls r1, r2, 3
+ adds r0, r1, r0
+ ldr r2, [r0, 0x4]
+ movs r0, 0x3
+ negs r0, r0
+ adds r5, r1, 0
+ cmp r2, r0
+ beq _081AEAC2
+ ldrb r6, [r4, 0x12]
+ b _081AEAC4
+_081AEAC2:
+ ldrb r6, [r4, 0x11]
+_081AEAC4:
+ ldr r0, [sp]
+ add r0, r8
+ ldr r2, [sp, 0x4]
+ adds r1, r0, 0
+ muls r1, r2
+ ldrb r0, [r4, 0x14]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r7, r2, 0
+ ldr r3, [r4, 0x8]
+ cmp r3, 0
+ beq _081AEAEE
+ ldrb r0, [r4, 0x10]
+ ldr r1, [r4]
+ adds r1, r5, r1
+ ldr r1, [r1, 0x4]
+ bl _call_via_r3
+_081AEAEE:
+ ldr r0, [r4]
+ adds r0, r5, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl ListMenuPrint
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r0, 0x1
+ add r8, r0
+ cmp r8, r10
+ blt _081AEAAA
+_081AEB10:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuPrintEntries
+
+ thumb_func_start ListMenuDrawCursor
+@ void ListMenuDrawCursor(struct ListMenu *listMenu)
+ListMenuDrawCursor: @ 81AEB20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ ldrb r1, [r6, 0x16]
+ lsls r1, 26
+ lsrs r1, 29
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6, 0x13]
+ mov r8, r1
+ ldrh r1, [r6, 0x1A]
+ muls r1, r0
+ ldrb r0, [r6, 0x14]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r6, 0x17]
+ lsrs r0, 6
+ cmp r0, 0x1
+ beq _081AEC0C
+ cmp r0, 0x1
+ bgt _081AEB66
+ cmp r0, 0
+ beq _081AEB70
+ b _081AEC0C
+_081AEB66:
+ cmp r0, 0x2
+ beq _081AEB84
+ cmp r0, 0x3
+ beq _081AEBCC
+ b _081AEC0C
+_081AEB70:
+ ldr r1, =gUnknown_085E8D60
+ adds r0, r6, 0
+ mov r2, r8
+ adds r3, r7, 0
+ bl ListMenuPrint
+ b _081AEC0C
+ .pool
+_081AEB84:
+ ldrb r0, [r6, 0x1E]
+ cmp r0, 0xFF
+ bne _081AEB94
+ adds r0, r6, 0
+ movs r1, 0
+ bl ListMenuAddCursorObject
+ strb r0, [r6, 0x1E]
+_081AEB94:
+ ldrb r5, [r6, 0x1E]
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ adds r4, r0, 0
+ lsls r4, 19
+ ldr r0, =0xffff0000
+ adds r4, r0
+ lsrs r4, 16
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x2
+ bl GetWindowAttribute
+ adds r2, r0, 0
+ lsls r2, 3
+ adds r2, r7
+ subs r2, 0x1
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl ListMenuUpdateCursorObject
+ b _081AEC0C
+ .pool
+_081AEBCC:
+ ldrb r0, [r6, 0x1E]
+ cmp r0, 0xFF
+ bne _081AEBDC
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl ListMenuAddCursorObject
+ strb r0, [r6, 0x1E]
+_081AEBDC:
+ ldrb r5, [r6, 0x1E]
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ adds r4, r0, 0
+ lsls r4, 3
+ add r4, r8
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x2
+ bl GetWindowAttribute
+ adds r2, r0, 0
+ lsls r2, 3
+ adds r2, r7
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl ListMenuUpdateCursorObject
+_081AEC0C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuDrawCursor
+
+ thumb_func_start ListMenuAddCursorObject
+ListMenuAddCursorObject: @ 81AEC18
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0xA0
+ strb r0, [r1, 0x1]
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x3
+ bl GetWindowAttribute
+ mov r1, sp
+ lsls r0, 3
+ adds r0, 0x2
+ strh r0, [r1, 0x2]
+ ldrb r0, [r4, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ mov r1, sp
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x2
+ strh r0, [r1, 0x4]
+ movs r0, 0x80
+ lsls r0, 7
+ strh r0, [r1, 0x6]
+ ldr r0, =0x0000ffff
+ strh r0, [r1, 0x8]
+ movs r0, 0xF
+ strb r0, [r1, 0xA]
+ mov r0, sp
+ adds r1, r5, 0
+ bl ListMenuAddCursorObjectInternal
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ListMenuAddCursorObject
+
+ thumb_func_start ListMenuErasePrintedCursor
+ListMenuErasePrintedCursor: @ 81AEC78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldrb r1, [r7, 0x17]
+ lsrs r0, r1, 6
+ cmp r0, 0
+ bne _081AECF4
+ lsls r0, r1, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ adds r4, r0, 0
+ ldrb r0, [r7, 0x16]
+ lsls r0, 26
+ lsrs r0, 29
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0
+ bl GetMenuCursorDimensionByFont
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r6, [r7, 0x10]
+ ldrb r2, [r7, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ ldrb r2, [r7, 0x13]
+ mov r3, r8
+ muls r3, r4
+ adds r4, r3, 0
+ ldrb r3, [r7, 0x14]
+ lsls r3, 28
+ lsrs r3, 28
+ adds r3, r4
+ lsls r3, 16
+ lsrs r3, 16
+ str r5, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ bl FillWindowPixelRect
+_081AECF4:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuErasePrintedCursor
+
+ thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset
+@ u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(int, bool8 movingDown)
+ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 81AED00
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ ldrh r3, [r4, 0x1A]
+ ldrh r5, [r4, 0x18]
+ cmp r1, 0
+ bne _081AED74
+ ldrh r0, [r4, 0xE]
+ cmp r0, 0x1
+ bne _081AED18
+ movs r2, 0
+ b _081AED2A
+_081AED18:
+ ldrh r0, [r4, 0xE]
+ lsrs r2, r0, 1
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, r1
+ subs r0, r2
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+_081AED2A:
+ cmp r5, 0
+ bne _081AED50
+ cmp r3, 0
+ beq _081AEDB6
+ ldr r1, [r4]
+ movs r2, 0x3
+ negs r2, r2
+_081AED38:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r5, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ cmp r0, r2
+ bne _081AEDBA
+ cmp r3, 0
+ bne _081AED38
+ b _081AEDB6
+_081AED50:
+ cmp r3, r2
+ bls _081AED70
+ ldr r1, [r4]
+ movs r6, 0x3
+ negs r6, r6
+_081AED5A:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r5, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ cmp r0, r6
+ bne _081AEDBA
+ cmp r3, r2
+ bhi _081AED5A
+_081AED70:
+ subs r0, r5, 0x1
+ b _081AEDE2
+_081AED74:
+ ldrh r0, [r4, 0xE]
+ cmp r0, 0x1
+ bne _081AED7E
+ movs r2, 0
+ b _081AED88
+_081AED7E:
+ ldrh r0, [r4, 0xE]
+ lsrs r2, r0, 1
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, r1
+_081AED88:
+ adds r1, r0, 0
+ ldrh r0, [r4, 0xC]
+ subs r0, r1
+ cmp r5, r0
+ bne _081AEDC0
+ subs r0, r1, 0x1
+ cmp r3, r0
+ bge _081AEDB6
+ ldr r2, [r4]
+ movs r6, 0x3
+ negs r6, r6
+ adds r1, r0, 0
+_081AEDA0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r5, r3
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ cmp r0, r6
+ bne _081AEDBA
+ cmp r3, r1
+ blt _081AEDA0
+_081AEDB6:
+ movs r0, 0
+ b _081AEDE8
+_081AEDBA:
+ strh r3, [r4, 0x1A]
+ movs r0, 0x1
+ b _081AEDE8
+_081AEDC0:
+ cmp r3, r2
+ bcs _081AEDE0
+ ldr r1, [r4]
+ movs r6, 0x3
+ negs r6, r6
+_081AEDCA:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r5, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ cmp r0, r6
+ bne _081AEDBA
+ cmp r3, r2
+ bcc _081AEDCA
+_081AEDE0:
+ adds r0, r5, 0x1
+_081AEDE2:
+ strh r2, [r4, 0x1A]
+ strh r0, [r4, 0x18]
+ movs r0, 0x2
+_081AEDE8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset
+
+ thumb_func_start ListMenuScroll
+@ void ListMenuScroll(struct ListMenu *listMenu, int a2, bool8 movingDown)
+ListMenuScroll: @ 81AEDF0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ ldrh r0, [r6, 0xE]
+ cmp r5, r0
+ bcc _081AEE2A
+ ldrb r0, [r6, 0x10]
+ ldrb r2, [r6, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl FillWindowPixelBuffer
+ ldrh r1, [r6, 0x18]
+ ldrh r3, [r6, 0xE]
+ adds r0, r6, 0
+ movs r2, 0
+ bl ListMenuPrintEntries
+ b _081AEF1A
+_081AEE2A:
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ movs r1, 0x1
+ bl GetFontAttribute
+ ldrb r1, [r6, 0x16]
+ lsls r1, 26
+ lsrs r1, 29
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, r8
+ cmp r1, 0
+ bne _081AEEBC
+ ldrb r0, [r6, 0x10]
+ adds r2, r5, 0
+ muls r2, r4
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r1, [r6, 0x15]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0x1
+ bl ScrollWindow
+ ldrh r1, [r6, 0x18]
+ adds r0, r6, 0
+ movs r2, 0
+ adds r3, r5, 0
+ bl ListMenuPrintEntries
+ ldrh r0, [r6, 0xE]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r1, 0
+ ldrb r4, [r6, 0x14]
+ lsls r4, 28
+ lsrs r4, 28
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x3
+ bl GetWindowAttribute
+ adds r5, r0, 0
+ lsls r5, 19
+ lsrs r5, 16
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x4
+ bl GetWindowAttribute
+ lsls r0, 3
+ subs r0, r4
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r3, [r6, 0x10]
+ ldrb r2, [r6, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ str r5, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r2, 0
+ adds r3, r4, 0
+ bl FillWindowPixelRect
+ b _081AEF1A
+_081AEEBC:
+ ldrb r0, [r6, 0x10]
+ adds r2, r7, 0
+ muls r2, r4
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r1, [r6, 0x15]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0
+ bl ScrollWindow
+ ldrh r2, [r6, 0xE]
+ subs r2, r7
+ ldrh r1, [r6, 0x18]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r6, 0
+ adds r3, r7, 0
+ bl ListMenuPrintEntries
+ ldrb r0, [r6, 0x10]
+ movs r1, 0x3
+ bl GetWindowAttribute
+ lsls r0, 19
+ lsrs r0, 16
+ ldrb r3, [r6, 0x10]
+ ldrb r2, [r6, 0x15]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ str r0, [sp]
+ ldrb r0, [r6, 0x14]
+ lsls r0, 28
+ lsrs r0, 28
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowPixelRect
+_081AEF1A:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuScroll
+
+ thumb_func_start ListMenuChangeSelection
+@ bool8 ListMenuChangeSelection(struct ListMenu *listMenu, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown)
+ListMenuChangeSelection: @ 81AEF28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ ldrh r0, [r4, 0x1A]
+ mov r10, r0
+ movs r7, 0
+ movs r5, 0
+ movs r0, 0
+ cmp r7, r8
+ bcs _081AEF90
+_081AEF56:
+ adds r6, r0, 0x1
+ b _081AEF76
+_081AEF5A:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r4, 0x18]
+ ldrh r1, [r4, 0x1A]
+ adds r0, r1
+ ldr r1, [r4]
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r0, 0x4]
+ movs r0, 0x3
+ negs r0, r0
+ cmp r1, r0
+ bne _081AEF88
+_081AEF76:
+ adds r0, r4, 0
+ mov r1, r9
+ bl ListMenuUpdateSelectedRowIndexAndScrollOffset
+ lsls r0, 24
+ lsrs r0, 24
+ orrs r5, r0
+ cmp r0, 0x2
+ beq _081AEF5A
+_081AEF88:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, r8
+ bcc _081AEF56
+_081AEF90:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _081AEFEE
+ cmp r5, 0x1
+ beq _081AEFA6
+ cmp r5, 0x1
+ ble _081AEFA2
+ cmp r5, 0x3
+ ble _081AEFC6
+_081AEFA2:
+ movs r0, 0x1
+ b _081AEFF0
+_081AEFA6:
+ adds r0, r4, 0
+ mov r1, r10
+ bl ListMenuErasePrintedCursor
+ adds r0, r4, 0
+ bl ListMenuDrawCursor
+ adds r0, r4, 0
+ movs r1, 0
+ bl ListMenuCallSelectionChangedCallback
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081AEFEE
+_081AEFC6:
+ adds r0, r4, 0
+ mov r1, r10
+ bl ListMenuErasePrintedCursor
+ adds r0, r4, 0
+ adds r1, r7, 0
+ mov r2, r9
+ bl ListMenuScroll
+ adds r0, r4, 0
+ bl ListMenuDrawCursor
+ adds r0, r4, 0
+ movs r1, 0
+ bl ListMenuCallSelectionChangedCallback
+ ldrb r0, [r4, 0x10]
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081AEFEE:
+ movs r0, 0
+_081AEFF0:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuChangeSelection
+
+ thumb_func_start ListMenuCallSelectionChangedCallback
+@ void ListMenuCallSelectionChangedCallback(struct ListMenu *listMenu, u8 a2)
+ListMenuCallSelectionChangedCallback: @ 81AF000
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r3, [r2, 0x4]
+ cmp r3, 0
+ beq _081AF022
+ ldrh r0, [r2, 0x18]
+ ldrh r1, [r2, 0x1A]
+ adds r0, r1
+ ldr r1, [r2]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl _call_via_r3
+_081AF022:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuCallSelectionChangedCallback
+
+ thumb_func_start sub_81AF028
+sub_81AF028: @ 81AF028
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r6, =gUnknown_03006300
+ movs r5, 0xF
+ ands r0, r5
+ ldrb r3, [r6]
+ mov r8, r3
+ movs r4, 0x10
+ negs r4, r4
+ adds r3, r4, 0
+ mov r7, r8
+ ands r3, r7
+ orrs r3, r0
+ lsrs r1, 20
+ ands r3, r5
+ orrs r3, r1
+ strb r3, [r6]
+ ands r2, r5
+ ldrb r0, [r6, 0x1]
+ ands r4, r0
+ orrs r4, r2
+ strb r4, [r6, 0x1]
+ ldrb r0, [r6, 0x3]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AF028
+
+ thumb_func_start sub_81AF078
+sub_81AF078: @ 81AF078
+ push {lr}
+ lsls r1, 24
+ cmp r1, 0
+ bne _081AF086
+ movs r0, 0x5
+ bl PlaySE
+_081AF086:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AF078
+
+ thumb_func_start sub_81AF08C
+sub_81AF08C: @ 81AF08C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r2, r1, r0
+ cmp r3, 0x10
+ bhi _081AF154
+ lsls r0, r3, 2
+ ldr r1, =_081AF0B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AF0B8:
+ .4byte _081AF0FC
+ .4byte _081AF0FC
+ .4byte _081AF100
+ .4byte _081AF104
+ .4byte _081AF108
+ .4byte _081AF10C
+ .4byte _081AF110
+ .4byte _081AF114
+ .4byte _081AF118
+ .4byte _081AF11C
+ .4byte _081AF122
+ .4byte _081AF12A
+ .4byte _081AF130
+ .4byte _081AF138
+ .4byte _081AF140
+ .4byte _081AF146
+ .4byte _081AF14E
+_081AF0FC:
+ ldr r0, [r2, 0x4]
+ b _081AF158
+_081AF100:
+ ldrh r0, [r2, 0xC]
+ b _081AF158
+_081AF104:
+ ldrh r0, [r2, 0xE]
+ b _081AF158
+_081AF108:
+ ldrb r0, [r2, 0x10]
+ b _081AF158
+_081AF10C:
+ ldrb r0, [r2, 0x11]
+ b _081AF158
+_081AF110:
+ ldrb r0, [r2, 0x12]
+ b _081AF158
+_081AF114:
+ ldrb r0, [r2, 0x13]
+ b _081AF158
+_081AF118:
+ ldrb r0, [r2, 0x14]
+ b _081AF124
+_081AF11C:
+ ldrb r0, [r2, 0x14]
+ lsrs r0, 4
+ b _081AF158
+_081AF122:
+ ldrb r0, [r2, 0x15]
+_081AF124:
+ lsls r0, 28
+ lsrs r0, 28
+ b _081AF158
+_081AF12A:
+ ldrb r0, [r2, 0x15]
+ lsrs r0, 4
+ b _081AF158
+_081AF130:
+ ldrb r0, [r2, 0x16]
+ lsls r0, 29
+ lsrs r0, 29
+ b _081AF158
+_081AF138:
+ ldrb r0, [r2, 0x16]
+ lsls r0, 26
+ lsrs r0, 29
+ b _081AF158
+_081AF140:
+ ldrb r0, [r2, 0x16]
+ lsrs r0, 6
+ b _081AF158
+_081AF146:
+ ldrb r0, [r2, 0x17]
+ lsls r0, 26
+ lsrs r0, 26
+ b _081AF158
+_081AF14E:
+ ldrb r0, [r2, 0x17]
+ lsrs r0, 6
+ b _081AF158
+_081AF154:
+ movs r0, 0x1
+ negs r0, r0
+_081AF158:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AF08C
+
+ thumb_func_start sub_81AF15C
+sub_81AF15C: @ 81AF15C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r3, r1, r0
+ cmp r4, 0x10
+ bhi _081AF25C
+ lsls r0, r4, 2
+ ldr r1, =_081AF188
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081AF188:
+ .4byte _081AF1CC
+ .4byte _081AF1CC
+ .4byte _081AF1D0
+ .4byte _081AF1D4
+ .4byte _081AF1D8
+ .4byte _081AF1DC
+ .4byte _081AF1E0
+ .4byte _081AF1E4
+ .4byte _081AF1E8
+ .4byte _081AF1F4
+ .4byte _081AF202
+ .4byte _081AF20E
+ .4byte _081AF21C
+ .4byte _081AF228
+ .4byte _081AF236
+ .4byte _081AF244
+ .4byte _081AF250
+_081AF1CC:
+ str r2, [r3, 0x4]
+ b _081AF25C
+_081AF1D0:
+ strh r2, [r3, 0xC]
+ b _081AF25C
+_081AF1D4:
+ strh r2, [r3, 0xE]
+ b _081AF25C
+_081AF1D8:
+ strb r2, [r3, 0x10]
+ b _081AF25C
+_081AF1DC:
+ strb r2, [r3, 0x11]
+ b _081AF25C
+_081AF1E0:
+ strb r2, [r3, 0x12]
+ b _081AF25C
+_081AF1E4:
+ strb r2, [r3, 0x13]
+ b _081AF25C
+_081AF1E8:
+ movs r0, 0xF
+ ands r2, r0
+ ldrb r1, [r3, 0x14]
+ movs r0, 0x10
+ negs r0, r0
+ b _081AF1FA
+_081AF1F4:
+ lsls r2, 4
+ ldrb r1, [r3, 0x14]
+ movs r0, 0xF
+_081AF1FA:
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x14]
+ b _081AF25C
+_081AF202:
+ movs r0, 0xF
+ ands r2, r0
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x10
+ negs r0, r0
+ b _081AF214
+_081AF20E:
+ lsls r2, 4
+ ldrb r1, [r3, 0x15]
+ movs r0, 0xF
+_081AF214:
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x15]
+ b _081AF25C
+_081AF21C:
+ movs r0, 0x7
+ ands r2, r0
+ ldrb r1, [r3, 0x16]
+ movs r0, 0x8
+ negs r0, r0
+ b _081AF23C
+_081AF228:
+ movs r0, 0x7
+ ands r2, r0
+ lsls r2, 3
+ ldrb r1, [r3, 0x16]
+ movs r0, 0x39
+ negs r0, r0
+ b _081AF23C
+_081AF236:
+ lsls r2, 6
+ ldrb r1, [r3, 0x16]
+ movs r0, 0x3F
+_081AF23C:
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x16]
+ b _081AF25C
+_081AF244:
+ movs r0, 0x3F
+ ands r2, r0
+ ldrb r1, [r3, 0x17]
+ movs r0, 0x40
+ negs r0, r0
+ b _081AF256
+_081AF250:
+ lsls r2, 6
+ ldrb r1, [r3, 0x17]
+ movs r0, 0x3F
+_081AF256:
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3, 0x17]
+_081AF25C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81AF15C
+
+ thumb_func_start sub_81AF264
+sub_81AF264: @ 81AF264
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081AF276
+ cmp r0, 0x1
+ beq _081AF28A
+ b _081AF2E4
+_081AF276:
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081AF2E4
+_081AF28A:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081AF29A
+ cmp r0, 0x1
+ beq _081AF2C0
+ ldrh r2, [r4, 0x38]
+ b _081AF2DE
+_081AF29A:
+ movs r0, 0x34
+ ldrsh r3, [r4, r0]
+ ldr r1, =gSineTable
+ ldrh r2, [r4, 0x38]
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r3
+ cmp r0, 0
+ bge _081AF2B4
+ adds r0, 0xFF
+_081AF2B4:
+ asrs r0, 8
+ strh r0, [r4, 0x24]
+ b _081AF2DE
+ .pool
+_081AF2C0:
+ movs r0, 0x34
+ ldrsh r3, [r4, r0]
+ ldr r1, =gSineTable
+ ldrh r2, [r4, 0x38]
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ muls r0, r3
+ cmp r0, 0
+ bge _081AF2DA
+ adds r0, 0xFF
+_081AF2DA:
+ asrs r0, 8
+ strh r0, [r4, 0x26]
+_081AF2DE:
+ ldrh r0, [r4, 0x36]
+ adds r0, r2, r0
+ strh r0, [r4, 0x38]
+_081AF2E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AF264
+
+ thumb_func_start AddScrollIndicatorArrowObject
+AddScrollIndicatorArrowObject: @ 81AF2F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x18
+ adds r6, r0, 0
+ ldr r5, [sp, 0x30]
+ lsls r6, 24
+ lsrs r6, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, 16
+ lsrs r5, 16
+ mov r12, r5
+ mov r4, sp
+ ldr r0, =gUnknown_08614244
+ ldm r0!, {r5-r7}
+ stm r4!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r4!, {r5-r7}
+ mov r0, sp
+ movs r4, 0
+ strh r3, [r0]
+ mov r3, r12
+ strh r3, [r0, 0x2]
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSprites
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r1
+ adds r5, r3, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r5]
+ strh r4, [r3, 0x2E]
+ ldr r1, =gUnknown_086141FC
+ mov r5, r8
+ lsls r6, r5, 2
+ adds r6, r1
+ ldrb r2, [r6]
+ lsls r1, r2, 28
+ lsrs r1, 28
+ strh r1, [r3, 0x30]
+ lsrs r2, 4
+ strh r2, [r3, 0x32]
+ ldrb r1, [r6, 0x1]
+ strh r1, [r3, 0x34]
+ ldrh r1, [r6, 0x2]
+ strh r1, [r3, 0x36]
+ strh r4, [r3, 0x38]
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddScrollIndicatorArrowObject
+
+ thumb_func_start AddScrollIndicatorArrowPair
+AddScrollIndicatorArrowPair: @ 81AF380
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ adds r6, r0, 0
+ mov r9, r1
+ ldr r0, =gUnknown_086142C8
+ str r0, [sp, 0x4]
+ ldr r5, =0xffff0000
+ ldr r0, [sp, 0x8]
+ ands r0, r5
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ ldr r4, =0x0000ffff
+ ands r0, r4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ add r0, sp, 0x4
+ bl LoadCompressedObjectPic
+ ldrh r2, [r6, 0xC]
+ cmp r2, r4
+ bne _081AF3DC
+ ldr r0, =gUnknown_086142A8
+ ldrb r1, [r6, 0xE]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ b _081AF3EE
+ .pool
+_081AF3DC:
+ ldr r0, =gUnknown_086142A8
+ str r0, [sp, 0xC]
+ add r0, sp, 0xC
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_081AF3EE:
+ ldr r0, =Task_ScrollIndicatorArrowPair
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r9
+ str r0, [r7, 0x4]
+ ldrh r0, [r6, 0x6]
+ strh r0, [r7, 0x8]
+ ldrh r0, [r6, 0x8]
+ strh r0, [r7, 0xA]
+ ldrh r0, [r6, 0xA]
+ strh r0, [r7, 0xE]
+ ldrh r0, [r6, 0xC]
+ strh r0, [r7, 0x10]
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrh r3, [r6, 0xA]
+ ldrh r4, [r6, 0xC]
+ str r4, [sp]
+ bl AddScrollIndicatorArrowObject
+ strb r0, [r7, 0xC]
+ ldrb r0, [r6, 0x3]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x5]
+ ldrh r3, [r6, 0xA]
+ ldrh r4, [r6, 0xC]
+ str r4, [sp]
+ bl AddScrollIndicatorArrowObject
+ strb r0, [r7, 0xD]
+ ldrh r1, [r6, 0xC]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081AF47C
+ ldr r5, =gSprites
+ ldrb r0, [r7, 0xC]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r6, 0xE]
+ lsls r3, 4
+ ldrb r4, [r1, 0x5]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r7, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r6, 0xE]
+ lsls r1, 4
+ ldrb r3, [r0, 0x5]
+ ands r2, r3
+ orrs r2, r1
+ strb r2, [r0, 0x5]
+_081AF47C:
+ mov r0, r8
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddScrollIndicatorArrowPair
+
+ thumb_func_start AddScrollIndicatorArrowPairParametrized
+AddScrollIndicatorArrowPairParametrized: @ 81AF4A0
+ push {r4,lr}
+ adds r4, r1, 0
+ subs r0, 0x2
+ cmp r0, 0x1
+ bhi _081AF4C4
+ ldr r0, =gUnknown_0203CE8C
+ movs r1, 0x2
+ strb r1, [r0]
+ strb r4, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ movs r1, 0x3
+ strb r1, [r0, 0x3]
+ strb r4, [r0, 0x4]
+ strb r3, [r0, 0x5]
+ b _081AF4D6
+ .pool
+_081AF4C4:
+ ldr r0, =gUnknown_0203CE8C
+ movs r1, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r4, [r0, 0x2]
+ movs r1, 0x1
+ strb r1, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ strb r4, [r0, 0x5]
+_081AF4D6:
+ adds r2, r0, 0
+ movs r1, 0
+ movs r0, 0
+ strh r0, [r2, 0x6]
+ ldr r0, [sp, 0x8]
+ strh r0, [r2, 0x8]
+ ldr r0, [sp, 0xC]
+ strh r0, [r2, 0xA]
+ ldr r0, [sp, 0x10]
+ strh r0, [r2, 0xC]
+ strb r1, [r2, 0xE]
+ adds r0, r2, 0
+ ldr r1, [sp, 0x14]
+ bl AddScrollIndicatorArrowPair
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end AddScrollIndicatorArrowPairParametrized
+
+ thumb_func_start Task_ScrollIndicatorArrowPair
+Task_ScrollIndicatorArrowPair: @ 81AF504
+ push {r4,r5,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
+ ldr r0, [r4, 0x4]
+ ldrh r5, [r0]
+ ldrh r0, [r4, 0x8]
+ cmp r5, r0
+ bne _081AF548
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ beq _081AF548
+ ldr r3, =gSprites
+ ldrb r1, [r4, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ b _081AF55E
+ .pool
+_081AF548:
+ ldr r3, =gSprites
+ ldrb r1, [r4, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_081AF55E:
+ strb r1, [r0]
+ ldrh r0, [r4, 0xA]
+ cmp r5, r0
+ bne _081AF580
+ ldrb r1, [r4, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ b _081AF594
+ .pool
+_081AF580:
+ ldrb r1, [r4, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_081AF594:
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_ScrollIndicatorArrowPair
+
+ thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu
+Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C
+ 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, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081AF5E8
+ ldr r3, =gSprites
+ ldrb r1, [r4, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ b _081AF612
+ .pool
+_081AF5E8:
+ ldr r3, =gSprites
+ ldrb r1, [r4, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_081AF612:
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu
+
+ thumb_func_start RemoveScrollIndicatorArrowPair
+RemoveScrollIndicatorArrowPair: @ 81AF620
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xE]
+ ldr r4, =0x0000ffff
+ cmp r0, r4
+ beq _081AF63E
+ bl FreeSpriteTilesByTag
+_081AF63E:
+ ldrh r0, [r5, 0x10]
+ cmp r0, r4
+ beq _081AF648
+ bl FreeSpritePaletteByTag
+_081AF648:
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ bl DestroySprite
+ ldrb r1, [r5, 0xD]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r6, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RemoveScrollIndicatorArrowPair
+
+ thumb_func_start ListMenuAddCursorObjectInternal
+ListMenuAddCursorObjectInternal: @ 81AF680
+ push {lr}
+ cmp r1, 0
+ beq _081AF68A
+ cmp r1, 0x1
+ beq _081AF690
+_081AF68A:
+ bl ListMenuAddRedOutlineCursorObject
+ b _081AF694
+_081AF690:
+ bl ListMenuAddRedArrowCursorObject
+_081AF694:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuAddCursorObjectInternal
+
+ thumb_func_start ListMenuUpdateCursorObject
+@ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4)
+ListMenuUpdateCursorObject: @ 81AF69C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r3, 0
+ beq _081AF6B4
+ cmp r3, 0x1
+ beq _081AF6BA
+ b _081AF6BE
+_081AF6B4:
+ bl ListMenuUpdateRedOutlineCursorObject
+ b _081AF6BE
+_081AF6BA:
+ bl ListMenuUpdateRedArrowCursorObject
+_081AF6BE:
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuUpdateCursorObject
+
+ thumb_func_start ListMenuRemoveCursorObject
+ListMenuRemoveCursorObject: @ 81AF6C4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, 0
+ beq _081AF6D4
+ cmp r1, 0x1
+ beq _081AF6DA
+ b _081AF6DE
+_081AF6D4:
+ bl ListMenuRemoveRedOutlineCursorObject
+ b _081AF6DE
+_081AF6DA:
+ bl ListMenuRemoveRedArrowCursorObject
+_081AF6DE:
+ pop {r0}
+ bx r0
+ thumb_func_end ListMenuRemoveCursorObject
+
+ thumb_func_start Task_RedOutlineCursor
+Task_RedOutlineCursor: @ 81AF6E4
+ bx lr
+ thumb_func_end Task_RedOutlineCursor
+
+ thumb_func_start ListMenuGetRedOutlineCursorSpriteCount
+ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ movs r3, 0x4
+ cmp r0, 0x10
+ bls _081AF708
+ movs r2, 0x8
+ subs r0, 0x8
+ cmp r2, r0
+ bge _081AF708
+_081AF700:
+ adds r3, 0x2
+ adds r2, 0x8
+ cmp r2, r0
+ blt _081AF700
+_081AF708:
+ cmp r1, 0x10
+ bls _081AF71C
+ movs r2, 0x8
+ subs r1, 0x8
+ cmp r2, r1
+ bge _081AF71C
+_081AF714:
+ adds r3, 0x2
+ adds r2, 0x8
+ cmp r2, r1
+ blt _081AF714
+_081AF71C:
+ lsls r0, r3, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end ListMenuGetRedOutlineCursorSpriteCount
+
+ thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable
+ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r3, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldr r0, =gUnknown_0861425C
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r1, 0x88
+ strb r1, [r3]
+ strb r1, [r3, 0x1]
+ ldr r0, =gUnknown_08614260
+ ldr r0, [r0]
+ str r0, [r3, 0x4]
+ mov r2, r8
+ adds r2, 0x80
+ strb r2, [r3, 0x4]
+ strb r1, [r3, 0x5]
+ ldr r0, =gUnknown_08614274
+ ldr r0, [r0]
+ str r0, [r3, 0x8]
+ strb r1, [r3, 0x8]
+ mov r4, r9
+ adds r4, 0x80
+ strb r4, [r3, 0x9]
+ ldr r0, =gUnknown_08614278
+ ldr r0, [r0]
+ str r0, [r3, 0xC]
+ strb r2, [r3, 0xC]
+ strb r4, [r3, 0xD]
+ movs r0, 0x4
+ mov r12, r0
+ mov r2, r8
+ cmp r2, 0x10
+ bls _081AF7B8
+ movs r2, 0x8
+ mov r5, r8
+ subs r5, 0x8
+ cmp r2, r5
+ bge _081AF7B8
+ ldr r0, =gUnknown_08614264
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r0, =gUnknown_08614270
+ ldr r6, [r0]
+ adds r1, r3, 0
+ adds r1, 0x10
+ movs r7, 0x88
+ mov r10, r7
+_081AF796:
+ ldr r0, [sp]
+ str r0, [r1]
+ adds r0, r2, 0
+ subs r0, 0x78
+ strb r0, [r1]
+ mov r7, r10
+ strb r7, [r1, 0x1]
+ adds r1, 0x4
+ str r6, [r1]
+ strb r0, [r1]
+ strb r4, [r1, 0x1]
+ adds r1, 0x4
+ movs r0, 0x2
+ add r12, r0
+ adds r2, 0x8
+ cmp r2, r5
+ blt _081AF796
+_081AF7B8:
+ mov r2, r9
+ cmp r2, 0x10
+ bls _081AF7F6
+ movs r1, 0x8
+ mov r4, r9
+ subs r4, 0x8
+ cmp r1, r4
+ bge _081AF7F6
+ ldr r0, =gUnknown_08614268
+ ldr r6, [r0]
+ ldr r0, =gUnknown_0861426C
+ ldr r5, [r0]
+ mov r7, r12
+ lsls r0, r7, 2
+ adds r2, r0, r3
+ movs r7, 0x88
+ mov r3, r8
+ adds r3, 0x80
+_081AF7DC:
+ str r6, [r2]
+ strb r7, [r2]
+ adds r0, r1, 0
+ subs r0, 0x78
+ strb r0, [r2, 0x1]
+ adds r2, 0x4
+ str r5, [r2]
+ strb r3, [r2]
+ strb r0, [r2, 0x1]
+ adds r2, 0x4
+ adds r1, 0x8
+ cmp r1, r4
+ blt _081AF7DC
+_081AF7F6:
+ 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 ListMenuSetUpRedOutlineCursorSpriteOamTable
+
+ thumb_func_start ListMenuAddRedOutlineCursorObject
+ListMenuAddRedOutlineCursorObject: @ 81AF828
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ adds r6, r0, 0
+ ldr r0, =gUnknown_08614338
+ str r0, [sp, 0x18]
+ ldr r5, =0xffff0000
+ add r0, sp, 0x18
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ movs r2, 0x80
+ lsls r2, 1
+ orrs r1, r2
+ ldrh r2, [r6, 0x6]
+ lsls r2, 16
+ ldr r3, =0x0000ffff
+ ands r1, r3
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPic
+ ldrh r2, [r6, 0x8]
+ ldr r7, =0x0000ffff
+ cmp r2, r7
+ bne _081AF884
+ ldr r0, =gUnknown_086142A8
+ ldrb r1, [r6, 0xA]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ b _081AF896
+ .pool
+_081AF884:
+ ldr r0, =gUnknown_086142A8
+ str r0, [sp, 0x20]
+ add r0, sp, 0x20
+ ldr r1, [r0, 0x4]
+ ands r1, r5
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_081AF896:
+ ldr r0, =Task_RedOutlineCursor
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldrh r0, [r6, 0x6]
+ movs r3, 0
+ mov r8, r3
+ strh r0, [r5, 0xE]
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0x10]
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r6, 0x4]
+ bl ListMenuGetRedOutlineCursorSpriteCount
+ strb r0, [r5]
+ ldrb r0, [r5]
+ lsls r0, 2
+ bl Alloc
+ adds r2, r0, 0
+ str r2, [r5, 0x8]
+ str r2, [r5, 0x4]
+ ldrh r0, [r6, 0x2]
+ ldrh r1, [r6, 0x4]
+ bl ListMenuSetUpRedOutlineCursorSpriteOamTable
+ mov r1, sp
+ ldr r0, =gDummySpriteTemplate
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ mov r1, sp
+ ldrh r0, [r6, 0x6]
+ strh r0, [r1]
+ ldrh r0, [r6, 0x8]
+ strh r0, [r1, 0x2]
+ ldrb r1, [r6]
+ adds r1, 0x78
+ ldrb r2, [r6, 0x1]
+ adds r2, 0x78
+ mov r0, sp
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r5, 0xC]
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r7, =gSprites
+ adds r0, r7
+ adds r1, r5, 0
+ bl SetSubspriteTables
+ ldrb r0, [r5, 0xC]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x43
+ mov r1, r8
+ strb r1, [r0]
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x42
+ ldrb r2, [r0]
+ movs r1, 0x40
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r1, [r6, 0x8]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081AF96E
+ ldrb r0, [r5, 0xC]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r6, 0xA]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_081AF96E:
+ adds r0, r4, 0
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ListMenuAddRedOutlineCursorObject
+
+ thumb_func_start ListMenuUpdateRedOutlineCursorObject
+@ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y)
+ListMenuUpdateRedOutlineCursorObject: @ 81AF994
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, =gTasks + 0x8
+ adds r3, r0
+ ldr r5, =gSprites
+ ldrb r4, [r3, 0xC]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ adds r1, 0x78
+ strh r1, [r0, 0x20]
+ ldrb r1, [r3, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r2, 0x78
+ strh r2, [r0, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ListMenuUpdateRedOutlineCursorObject
+
+ thumb_func_start ListMenuRemoveRedOutlineCursorObject
+ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r0, [r4, 0x8]
+ bl Free
+ ldrh r0, [r4, 0xE]
+ ldr r6, =0x0000ffff
+ cmp r0, r6
+ beq _081AF9FC
+ bl FreeSpriteTilesByTag
+_081AF9FC:
+ ldrh r0, [r4, 0x10]
+ cmp r0, r6
+ beq _081AFA06
+ bl FreeSpritePaletteByTag
+_081AFA06:
+ ldrb r1, [r4, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ListMenuRemoveRedOutlineCursorObject
+
+ thumb_func_start ObjectCB_RedArrowCursor
+ObjectCB_RedArrowCursor: @ 81AFA30
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, =gSineTable
+ ldrh r3, [r2, 0x2E]
+ lsls r0, r3, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _081AFA48
+ adds r0, 0x3F
+_081AFA48:
+ asrs r0, 6
+ strh r0, [r2, 0x24]
+ adds r0, r3, 0
+ adds r0, 0x8
+ strh r0, [r2, 0x2E]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ObjectCB_RedArrowCursor
+
+ thumb_func_start Task_RedArrowCursor
+Task_RedArrowCursor: @ 81AFA5C
+ bx lr
+ thumb_func_end Task_RedArrowCursor
+
+ thumb_func_start ListMenuAddRedArrowCursorObject
+ListMenuAddRedArrowCursorObject: @ 81AFA60
+ push {r4-r7,lr}
+ sub sp, 0x28
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08614378
+ str r0, [sp, 0x18]
+ ldr r6, =0xffff0000
+ add r0, sp, 0x18
+ ldr r1, [r0, 0x4]
+ ands r1, r6
+ movs r2, 0x80
+ orrs r1, r2
+ ldrh r2, [r5, 0x6]
+ lsls r2, 16
+ ldr r4, =0x0000ffff
+ ands r1, r4
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPic
+ ldrh r2, [r5, 0x8]
+ cmp r2, r4
+ bne _081AFAB4
+ ldr r0, =gUnknown_086142A8
+ ldrb r1, [r5, 0xA]
+ lsls r1, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r1, r2
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadPalette
+ b _081AFAC6
+ .pool
+_081AFAB4:
+ ldr r0, =gUnknown_086142A8
+ str r0, [sp, 0x20]
+ add r0, sp, 0x20
+ ldr r1, [r0, 0x4]
+ ands r1, r6
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpritePalette
+_081AFAC6:
+ ldr r0, =Task_RedArrowCursor
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r5, 0x6]
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r4, 0x4]
+ mov r1, sp
+ ldr r0, =gUnknown_08614290
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ ldm r0!, {r2,r3,r7}
+ stm r1!, {r2,r3,r7}
+ mov r1, sp
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r1, 0x2]
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ mov r0, sp
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4]
+ ldr r3, =gSprites
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x8
+ strh r2, [r0, 0x24]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x26]
+ ldrh r1, [r5, 0x8]
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ bne _081AFB46
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r5, 0xA]
+ lsls r2, 4
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_081AFB46:
+ adds r0, r6, 0
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ListMenuAddRedArrowCursorObject
+
+ thumb_func_start ListMenuUpdateRedArrowCursorObject
+@ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y)
+ListMenuUpdateRedArrowCursorObject: @ 81AFB68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, =gTasks + 0x8
+ adds r3, r0
+ ldr r5, =gSprites
+ ldrb r4, [r3]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r5
+ strh r1, [r0, 0x20]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ListMenuUpdateRedArrowCursorObject
+
+ thumb_func_start ListMenuRemoveRedArrowCursorObject
+ListMenuRemoveRedArrowCursorObject: @ 81AFBA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x2]
+ ldr r6, =0x0000ffff
+ cmp r0, r6
+ beq _081AFBBE
+ bl FreeSpriteTilesByTag
+_081AFBBE:
+ ldrh r0, [r4, 0x4]
+ cmp r0, r6
+ beq _081AFBC8
+ bl FreeSpritePaletteByTag
+_081AFBC8:
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ListMenuRemoveRedArrowCursorObject
+
+ thumb_func_start sub_81AFBF0
+sub_81AFBF0: @ 81AFBF0
+ push {lr}
+ ldr r1, =gUnknown_0203CE9C
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0x1C
+_081AFBFA:
+ str r2, [r0]
+ subs r0, 0x4
+ cmp r0, r1
+ bge _081AFBFA
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AFBF0
+
+ thumb_func_start sub_81AFC0C
+sub_81AFC0C: @ 81AFC0C
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x7
+ bhi _081AFC20
+ ldr r1, =gUnknown_0203CE9C
+ lsls r0, 2
+ adds r0, r1
+ str r2, [r0]
+_081AFC20:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AFC0C
+
+ thumb_func_start sub_81AFC28
+sub_81AFC28: @ 81AFC28
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _081AFC68
+ ldr r5, =gUnknown_0203CE9C
+_081AFC38:
+ cmp r1, 0xF7
+ beq _081AFC48
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ b _081AFC60
+ .pool
+_081AFC48:
+ adds r4, 0x1
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _081AFC5E
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+_081AFC5E:
+ adds r4, 0x1
+_081AFC60:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081AFC38
+_081AFC68:
+ movs r0, 0xFF
+ strb r0, [r2]
+ adds r0, r2, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81AFC28
+
+ thumb_func_start sub_81AFC74
+sub_81AFC74: @ 81AFC74
+ lsls r0, 24
+ ldr r1, =gUnknown_0203CE9C
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81AFC74
+
+ thumb_func_start sav1_are_mapnumbers_in_given_list
+sav1_are_mapnumbers_in_given_list: @ 81AFC84
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ lsls r1, 8
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r0, [r2]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _081AFCC4
+ adds r4, r1, 0
+ adds r1, r2, 0
+_081AFCAA:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081AFCBC
+ movs r0, 0x1
+ b _081AFCC6
+ .pool
+_081AFCBC:
+ adds r1, 0x2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081AFCAA
+_081AFCC4:
+ movs r0, 0
+_081AFCC6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sav1_are_mapnumbers_in_given_list
+
+ thumb_func_start sav1_is_in_pokecenter
+sav1_is_in_pokecenter: @ 81AFCCC
+ push {lr}
+ ldr r0, =gUnknown_086143BC
+ bl sav1_are_mapnumbers_in_given_list
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sav1_is_in_pokecenter
+
+ thumb_func_start sub_81AFCDC
+sub_81AFCDC: @ 81AFCDC
+ push {lr}
+ ldr r0, =gUnknown_0861440A
+ bl sav1_are_mapnumbers_in_given_list
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81AFCDC
+
+ thumb_func_start sub_81AFCEC
+sub_81AFCEC: @ 81AFCEC
+ push {lr}
+ ldr r0, =gUnknown_0861440E
+ bl sav1_are_mapnumbers_in_given_list
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81AFCEC
+
+ thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter
+sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC
+ push {lr}
+ bl sav1_is_in_pokecenter
+ cmp r0, 0
+ bne _081AFD18
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0xFD
+ ands r0, r1
+ b _081AFD22
+ .pool
+_081AFD18:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ orrs r0, r1
+_081AFD22:
+ strb r0, [r2, 0x9]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter
+
+ thumb_func_start sub_81AFD2C
+sub_81AFD2C: @ 81AFD2C
+ push {lr}
+ bl sub_81AFCDC
+ cmp r0, 0
+ bne _081AFD48
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0xFB
+ ands r0, r1
+ b _081AFD52
+ .pool
+_081AFD48:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x4
+ orrs r0, r1
+_081AFD52:
+ strb r0, [r2, 0x9]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AFD2C
+
+ thumb_func_start sub_81AFD5C
+sub_81AFD5C: @ 81AFD5C
+ push {lr}
+ bl sub_81AFCEC
+ cmp r0, 0
+ bne _081AFD78
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0xF7
+ ands r0, r1
+ b _081AFD82
+ .pool
+_081AFD78:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x8
+ orrs r0, r1
+_081AFD82:
+ strb r0, [r2, 0x9]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81AFD5C
+
+ thumb_func_start sav2_set_x9_depending_on_sav1_map
+sav2_set_x9_depending_on_sav1_map: @ 81AFD8C
+ push {lr}
+ bl sav2_set_x9_bit3_when_sav1_in_pokecenter
+ bl sub_81AFD2C
+ bl sub_81AFD5C
+ pop {r0}
+ bx r0
+ thumb_func_end sav2_set_x9_depending_on_sav1_map
+
+ thumb_func_start sub_81AFDA0
+sub_81AFDA0: @ 81AFDA0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ adds r2, 0xA8
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ str r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_81AFDA0
+
+ thumb_func_start sub_81AFDD0
+sub_81AFDD0: @ 81AFDD0
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ bx lr
+ .pool
+ thumb_func_end sub_81AFDD0
+
+ thumb_func_start AllocItemIconTemporaryBuffers
+@ bool8 AllocItemIconTemporaryBuffers()
+AllocItemIconTemporaryBuffers: @ 81AFDE4
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CEBC
+ movs r0, 0x90
+ lsls r0, 1
+ bl Alloc
+ str r0, [r5]
+ cmp r0, 0
+ beq _081AFE1A
+ ldr r4, =gUnknown_0203CEC0
+ movs r0, 0x80
+ lsls r0, 2
+ bl AllocZeroed
+ str r0, [r4]
+ cmp r0, 0
+ beq _081AFE14
+ movs r0, 0x1
+ b _081AFE1C
+ .pool
+_081AFE14:
+ ldr r0, [r5]
+ bl Free
+_081AFE1A:
+ movs r0, 0
+_081AFE1C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end AllocItemIconTemporaryBuffers
+
+ thumb_func_start FreeItemIconTemporaryBuffers
+@ void FreeItemIconTemporaryBuffers()
+FreeItemIconTemporaryBuffers: @ 81AFE24
+ push {lr}
+ ldr r0, =gUnknown_0203CEBC
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =gUnknown_0203CEC0
+ ldr r0, [r0]
+ bl Free
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end FreeItemIconTemporaryBuffers
+
+ thumb_func_start CopyItemIconPicTo4x4Buffer
+@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest)
+CopyItemIconPicTo4x4Buffer: @ 81AFE44
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+_081AFE4C:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 5
+ adds r0, r6, r0
+ lsls r1, r4, 7
+ adds r1, r5, r1
+ movs r2, 0x30
+ bl CpuSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081AFE4C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end CopyItemIconPicTo4x4Buffer
+
+ thumb_func_start AddItemIconObject
+@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
+AddItemIconObject: @ 81AFE70
+ push {r4-r7,lr}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ bl AllocItemIconTemporaryBuffers
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AFF28
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetItemIconPicOrPalette
+ ldr r4, =gUnknown_0203CEBC
+ ldr r1, [r4]
+ bl LZDecompressWram
+ ldr r0, [r4]
+ ldr r4, =gUnknown_0203CEC0
+ ldr r1, [r4]
+ bl CopyItemIconPicTo4x4Buffer
+ ldr r0, [r4]
+ str r0, [sp]
+ ldr r4, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r4
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ lsls r2, r7, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetItemIconPicOrPalette
+ str r0, [sp, 0x8]
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r4
+ orrs r1, r6
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPalette
+ movs r0, 0x18
+ bl Alloc
+ adds r5, r0, 0
+ ldr r0, =gUnknown_08614FF4
+ adds r1, r5, 0
+ movs r2, 0xC
+ bl CpuSet
+ strh r7, [r5]
+ strh r6, [r5, 0x2]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl FreeItemIconTemporaryBuffers
+ adds r0, r5, 0
+ bl Free
+ adds r0, r4, 0
+ b _081AFF2A
+ .pool
+_081AFF28:
+ movs r0, 0x40
+_081AFF2A:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end AddItemIconObject
+
+ thumb_func_start AddItemIconObjectWithCustomObjectTemplate
+@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId)
+AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ mov r8, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r3, 16
+ lsrs r5, r3, 16
+ bl AllocItemIconTemporaryBuffers
+ lsls r0, 24
+ cmp r0, 0
+ beq _081AFFEC
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetItemIconPicOrPalette
+ ldr r4, =gUnknown_0203CEBC
+ ldr r1, [r4]
+ bl LZDecompressWram
+ ldr r0, [r4]
+ ldr r4, =gUnknown_0203CEC0
+ ldr r1, [r4]
+ bl CopyItemIconPicTo4x4Buffer
+ ldr r0, [r4]
+ str r0, [sp]
+ ldr r4, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r4
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ lsls r2, r7, 16
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetItemIconPicOrPalette
+ str r0, [sp, 0x8]
+ add r0, sp, 0x8
+ ldr r1, [r0, 0x4]
+ ands r1, r4
+ orrs r1, r6
+ str r1, [r0, 0x4]
+ bl LoadCompressedObjectPalette
+ movs r0, 0x18
+ bl Alloc
+ adds r5, r0, 0
+ mov r0, r8
+ adds r1, r5, 0
+ movs r2, 0xC
+ bl CpuSet
+ strh r7, [r5]
+ strh r6, [r5, 0x2]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl FreeItemIconTemporaryBuffers
+ adds r0, r5, 0
+ bl Free
+ adds r0, r4, 0
+ b _081AFFEE
+ .pool
+_081AFFEC:
+ movs r0, 0x40
+_081AFFEE:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end AddItemIconObjectWithCustomObjectTemplate
+
+ thumb_func_start GetItemIconPicOrPalette
+@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which)
+GetItemIconPicOrPalette: @ 81AFFFC
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =0x0000ffff
+ cmp r3, r0
+ bne _081B0018
+ ldr r3, =0x00000179
+ b _081B0022
+ .pool
+_081B0018:
+ movs r0, 0xBC
+ lsls r0, 1
+ cmp r3, r0
+ bls _081B0022
+ movs r3, 0
+_081B0022:
+ ldr r2, =gItemIconTable
+ lsls r0, r1, 2
+ lsls r1, r3, 3
+ adds r0, r1
+ adds r0, r2
+ ldr r0, [r0]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end GetItemIconPicOrPalette
+
+ thumb_func_start sub_81B0038
+sub_81B0038: @ 81B0038
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ bl reset_brm
+ ldr r0, =gUnknown_0203CEC4
+ mov r10, r0
+ movs r0, 0x8E
+ lsls r0, 2
+ bl Alloc
+ adds r5, r0, 0
+ mov r1, r10
+ str r5, [r1]
+ cmp r5, 0
+ bne _081B0088
+ ldr r0, [sp, 0x2C]
+ bl SetMainCallback2
+ b _081B0194
+ .pool
+_081B0088:
+ ldr r3, =gUnknown_0203CEC8
+ movs r1, 0xF
+ mov r4, r8
+ ands r1, r4
+ ldrb r2, [r3, 0x8]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x8]
+ ldr r0, [sp, 0x2C]
+ str r0, [r3]
+ movs r4, 0
+ strb r7, [r3, 0xB]
+ lsls r2, r6, 2
+ ldrh r1, [r5, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5, 0xA]
+ ldr r0, [sp, 0x28]
+ str r0, [r5]
+ str r4, [r5, 0x4]
+ ldrb r1, [r5, 0x8]
+ movs r0, 0xF
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ mov r1, r10
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x8]
+ movs r4, 0xFE
+ lsls r4, 3
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xFE
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ adds r6, r3, 0
+ mov r5, r8
+ cmp r5, 0x4
+ bne _081B00F0
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x1
+ orrs r0, r1
+ b _081B00F8
+ .pool
+_081B00F0:
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+_081B00F8:
+ strb r0, [r2, 0x8]
+ mov r0, r9
+ cmp r0, 0xFF
+ beq _081B0114
+ movs r0, 0x3
+ mov r1, r9
+ ands r0, r1
+ lsls r0, 4
+ ldrb r2, [r6, 0x8]
+ movs r1, 0x31
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6, 0x8]
+_081B0114:
+ movs r2, 0
+ ldr r5, =gUnknown_0203CEC4
+ movs r4, 0x86
+ lsls r4, 2
+ movs r3, 0
+_081B011E:
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _081B011E
+ movs r2, 0
+ ldr r4, =gUnknown_0203CEC4
+ movs r3, 0xFF
+_081B0138:
+ ldr r0, [r4]
+ adds r0, 0xC
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x2
+ bls _081B0138
+ ldr r4, [sp]
+ cmp r4, 0
+ bne _081B015C
+ strb r4, [r6, 0x9]
+ b _081B017E
+ .pool
+_081B015C:
+ adds r1, r6, 0
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _081B017A
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _081B017E
+_081B017A:
+ movs r0, 0
+ strb r0, [r6, 0x9]
+_081B017E:
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl CalculatePlayerPartyCount
+ ldr r0, =c2_811EBD0
+ bl SetMainCallback2
+_081B0194:
+ 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_81B0038
+
+ thumb_func_start sub_81B01B0
+sub_81B01B0: @ 81B01B0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl do_scheduled_bg_tilemap_copies_to_vram
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B01B0
+
+ thumb_func_start sub_81B01CC
+sub_81B01CC: @ 81B01CC
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B01CC
+
+ thumb_func_start c2_811EBD0
+c2_811EBD0: @ 81B01E0
+ push {lr}
+_081B01E2:
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B0206
+ bl sub_81B020C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B0206
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B01E2
+_081B0206:
+ pop {r0}
+ bx r0
+ thumb_func_end c2_811EBD0
+
+ thumb_func_start sub_81B020C
+sub_81B020C: @ 81B020C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x16
+ bls _081B0222
+ b _081B0498
+_081B0222:
+ lsls r0, 2
+ ldr r1, =_081B0234
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B0234:
+ .4byte _081B0290
+ .4byte _081B02AC
+ .4byte _081B02B2
+ .4byte _081B02D4
+ .4byte _081B02DA
+ .4byte _081B02EC
+ .4byte _081B02FE
+ .4byte _081B0310
+ .4byte _081B0338
+ .4byte _081B0354
+ .4byte _081B0368
+ .4byte _081B038C
+ .4byte _081B03A0
+ .4byte _081B03A6
+ .4byte _081B03B8
+ .4byte _081B03BE
+ .4byte _081B03E0
+ .4byte _081B0400
+ .4byte _081B0414
+ .4byte _081B0428
+ .4byte _081B0430
+ .4byte _081B044C
+ .4byte _081B0474
+_081B0290:
+ bl SetVBlankHBlankCallbacksToNull
+ bl sub_8121DA0
+ bl clear_scheduled_bg_copies_to_vram
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B02AC:
+ bl remove_some_task
+ b _081B0484
+_081B02B2:
+ bl ResetPaletteFade
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B02D4:
+ bl ResetSpriteData
+ b _081B0484
+_081B02DA:
+ bl FreeAllSpritePalettes
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B02EC:
+ bl sub_81221AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B02F8
+ b _081B0484
+_081B02F8:
+ bl ResetTasks
+ b _081B0484
+_081B02FE:
+ bl sub_81B209C
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B0310:
+ bl sub_81B0550
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B0322
+ bl sub_81B04BC
+ movs r0, 0x1
+ b _081B04B2
+_081B0322:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081B0484
+ .pool
+_081B0338:
+ bl sub_81B05C8
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B0344
+ b _081B04B0
+_081B0344:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B0354:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 26
+ lsrs r0, 30
+ bl sub_81B239C
+ b _081B0484
+ .pool
+_081B0368:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 26
+ lsrs r0, 30
+ bl sub_81B0740
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081B0484
+ .pool
+_081B038C:
+ bl sub_81B5D30
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B03A0:
+ bl sub_81B6040
+ b _081B0484
+_081B03A6:
+ bl sub_81B6160
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B03B8:
+ bl sub_80D2F04
+ b _081B0484
+_081B03BE:
+ bl party_menu_add_per_mon_objects
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B03CA
+ b _081B04B0
+_081B03CA:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081B0484
+ .pool
+_081B03E0:
+ bl sub_81B0DA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B04B0
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _081B0484
+ .pool
+_081B0400:
+ bl sub_81B0F28
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B0414:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ lsrs r0, 31
+ bl sub_81B2428
+ b _081B0484
+ .pool
+_081B0428:
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+ b _081B048C
+_081B0430:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ ldr r0, [r0]
+ movs r1, 0
+ bl CreateTask
+ ldr r0, [r4]
+ ldrh r0, [r0, 0xA]
+ lsrs r0, 2
+ bl display_pokemon_menu_message
+ b _081B0484
+ .pool
+_081B044C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r2, =gPaletteFade
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _081B048C
+ .pool
+_081B0474:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081B0484:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+_081B048C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081B04B0
+ .pool
+_081B0498:
+ ldr r0, =sub_81B01CC
+ bl SetVBlankCallback
+ ldr r0, =sub_81B01B0
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _081B04B2
+ .pool
+_081B04B0:
+ movs r0, 0
+_081B04B2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B020C
+
+ thumb_func_start sub_81B04BC
+sub_81B04BC: @ 81B04BC
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_81B04F8
+ movs r1, 0
+ bl CreateTask
+ ldr r0, =sub_81B01CC
+ bl SetVBlankCallback
+ ldr r0, =sub_81B01B0
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B04BC
+
+ thumb_func_start sub_81B04F8
+sub_81B04F8: @ 81B04F8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B051C
+ ldr r0, =gUnknown_0203CEC8
+ ldr r0, [r0]
+ bl SetMainCallback2
+ bl sub_81B06F4
+ adds r0, r4, 0
+ bl DestroyTask
+_081B051C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B04F8
+
+ thumb_func_start reset_brm
+reset_brm: @ 81B052C
+ ldr r0, =gUnknown_0203CEC4
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =gUnknown_0203CEE4
+ str r1, [r0]
+ ldr r0, =gUnknown_0203CEDC
+ str r1, [r0]
+ ldr r0, =gUnknown_0203CEE0
+ str r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end reset_brm
+
+ thumb_func_start sub_81B0550
+sub_81B0550: @ 81B0550
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CEE4
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ cmp r0, 0
+ beq _081B05C0
+ movs r1, 0
+ adds r2, r4, 0
+ bl memset
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_086156B8
+ movs r0, 0
+ movs r2, 0x3
+ bl InitBgsFromTemplates
+ ldr r1, [r5]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl sub_8121E10
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ movs r0, 0x1
+ b _081B05C2
+ .pool
+_081B05C0:
+ movs r0, 0
+_081B05C2:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B0550
+
+ thumb_func_start sub_81B05C8
+sub_81B05C8: @ 81B05C8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ bhi _081B06B0
+ lsls r0, 2
+ ldr r1, =_081B05F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B05F0:
+ .4byte _081B0610
+ .4byte _081B0638
+ .4byte _081B0658
+ .4byte _081B0684
+ .4byte _081B0688
+ .4byte _081B068C
+ .4byte _081B0690
+ .4byte _081B0694
+_081B0610:
+ ldr r4, =gUnknown_0203CEE0
+ ldr r0, =gUnknown_08D967EC
+ mov r1, sp
+ bl malloc_and_decompress
+ adds r1, r0, 0
+ str r1, [r4]
+ ldr r2, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r3, 0
+ bl LoadBgTiles
+ b _081B069A
+ .pool
+_081B0638:
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B06B4
+ ldr r0, =gUnknown_08D96BA0
+ ldr r1, =gUnknown_0203CEE4
+ ldr r1, [r1]
+ bl LZDecompressWram
+ b _081B069A
+ .pool
+_081B0658:
+ ldr r0, =gUnknown_08D96AB4
+ movs r2, 0xB0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadCompressedPalette
+ ldr r0, =gPlttBufferUnfaded
+ ldr r4, =gUnknown_0203CEC4
+ ldr r1, [r4]
+ adds r1, 0x18
+ movs r2, 0xB0
+ bl CpuSet
+ ldr r1, [r4]
+ b _081B069E
+ .pool
+_081B0684:
+ movs r0, 0x4
+ b _081B0696
+_081B0688:
+ movs r0, 0x5
+ b _081B0696
+_081B068C:
+ movs r0, 0x6
+ b _081B0696
+_081B0690:
+ movs r0, 0x7
+ b _081B0696
+_081B0694:
+ movs r0, 0x8
+_081B0696:
+ bl sub_81B06C0
+_081B069A:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+_081B069E:
+ movs r0, 0x86
+ lsls r0, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081B06B4
+ .pool
+_081B06B0:
+ movs r0, 0x1
+ b _081B06B6
+_081B06B4:
+ movs r0, 0
+_081B06B6:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B05C8
+
+ thumb_func_start sub_81B06C0
+sub_81B06C0: @ 81B06C0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 28
+ ldr r5, =gPlttBufferUnfaded + 0x60
+ lsrs r4, 23
+ adds r1, r5, 0
+ subs r1, 0x60
+ adds r1, r4, r1
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl CpuSet
+ ldr r0, =gPlttBufferFaded
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ bl CpuSet
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B06C0
+
+ thumb_func_start sub_81B06F4
+sub_81B06F4: @ 81B06F4
+ push {lr}
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081B0702
+ bl Free
+_081B0702:
+ ldr r0, =gUnknown_0203CEE4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081B070E
+ bl Free
+_081B070E:
+ ldr r0, =gUnknown_0203CEE0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081B071A
+ bl Free
+_081B071A:
+ ldr r0, =gUnknown_0203CEDC
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081B0726
+ bl Free
+_081B0726:
+ bl FreeAllWindowBuffers
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B06F4
+
+ thumb_func_start sub_81B0740
+sub_81B0740: @ 81B0740
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203CEDC
+ movs r0, 0x60
+ bl Alloc
+ str r0, [r4]
+ movs r5, 0
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 4
+ mov r8, r0
+ movs r6, 0xFF
+ mov r9, r4
+_081B0764:
+ ldr r2, [r4]
+ lsls r3, r5, 4
+ adds r2, r3, r2
+ ldr r0, =gUnknown_086156E4
+ mov r12, r0
+ str r0, [r2]
+ lsls r0, r5, 3
+ ldr r1, =gUnknown_08615704
+ adds r0, r1
+ add r0, r8
+ str r0, [r2, 0x4]
+ strb r5, [r2, 0x8]
+ ldr r1, [r4]
+ adds r1, r3, r1
+ ldrb r0, [r1, 0x9]
+ orrs r0, r6
+ strb r0, [r1, 0x9]
+ ldr r1, [r4]
+ adds r1, r3, r1
+ ldrb r0, [r1, 0xA]
+ orrs r0, r6
+ strb r0, [r1, 0xA]
+ ldr r1, [r4]
+ adds r1, r3, r1
+ ldrb r0, [r1, 0xB]
+ orrs r0, r6
+ strb r0, [r1, 0xB]
+ ldr r0, [r4]
+ adds r3, r0
+ ldrb r0, [r3, 0xC]
+ orrs r0, r6
+ strb r0, [r3, 0xC]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _081B0764
+ mov r1, r9
+ ldr r0, [r1]
+ mov r1, r12
+ subs r1, 0x20
+ str r1, [r0]
+ cmp r7, 0x3
+ bne _081B07CC
+ str r1, [r0, 0x30]
+ b _081B07D2
+ .pool
+_081B07CC:
+ cmp r7, 0
+ beq _081B07D2
+ str r1, [r0, 0x10]
+_081B07D2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0740
+
+ thumb_func_start sub_81B07E0
+sub_81B07E0: @ 81B07E0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x5
+ bne _081B085C
+ cmp r5, 0x2
+ bls _081B085C
+ adds r0, r5, 0
+ bl sub_81B0CEC
+ ldr r0, =gUnknown_02022FF8
+ subs r1, r5, 0x3
+ lsls r1, 5
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081B0828
+ ldr r0, =gUnknown_0203CEDC
+ lsls r4, r5, 4
+ ldr r0, [r0]
+ adds r0, r4
+ movs r1, 0x40
+ bl sub_81B2748
+ b _081B0836
+ .pool
+_081B0828:
+ ldr r0, =gUnknown_0203CEDC
+ lsls r4, r5, 4
+ ldr r0, [r0]
+ adds r0, r4
+ movs r1, 0x8
+ bl sub_81B2748
+_081B0836:
+ adds r5, r4, 0
+ ldr r4, =gUnknown_0203CEDC
+ ldr r0, [r4]
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, [r4]
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081B093E
+ .pool
+_081B085C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _081B089C
+ ldr r4, =gUnknown_0203CEDC
+ ldr r0, [r4]
+ lsls r5, 4
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x8]
+ bl sub_81B2720
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0x40
+ bl sub_81B2748
+ ldr r0, [r4]
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081B092C
+ .pool
+_081B089C:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0x7
+ bne _081B08B4
+ adds r0, r5, 0
+ bl sub_81B0B60
+ b _081B08F6
+ .pool
+_081B08B4:
+ cmp r1, 0x2
+ bne _081B08C0
+ adds r0, r5, 0
+ bl sub_81B0B08
+ b _081B08F6
+_081B08C0:
+ cmp r1, 0x4
+ bne _081B08CC
+ adds r0, r5, 0
+ bl sub_81B0A9C
+ b _081B08F6
+_081B08CC:
+ cmp r1, 0xB
+ bne _081B08D8
+ adds r0, r5, 0
+ bl sub_81B0B98
+ b _081B08F6
+_081B08D8:
+ cmp r1, 0xC
+ bne _081B08E4
+ adds r0, r5, 0
+ bl sub_81B0BC4
+ b _081B08F6
+_081B08E4:
+ adds r0, r5, 0
+ bl sub_81B0BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B08F6
+ adds r0, r5, 0
+ bl sub_81B0948
+_081B08F6:
+ ldr r2, =gUnknown_0203CEC8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x5
+ bne _081B0910
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81B0FCC
+ b _081B092A
+ .pool
+_081B0910:
+ movs r0, 0x9
+ ldrsb r0, [r2, r0]
+ cmp r0, r5
+ bne _081B0922
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81B0FCC
+ b _081B092A
+_081B0922:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81B0FCC
+_081B092A:
+ lsls r5, 4
+_081B092C:
+ ldr r0, =gUnknown_0203CEDC
+ ldr r0, [r0]
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+_081B093E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B07E0
+
+ thumb_func_start sub_81B0948
+sub_81B0948: @ 81B0948
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x2D
+ bl GetMonData
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _081B09A0
+ ldr r6, =gUnknown_0203CEDC
+ ldr r0, [r6]
+ lsls r5, r4, 4
+ adds r0, r5, r0
+ ldr r2, [r0]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r4, [r2]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl _call_via_r4
+ ldr r1, [r6]
+ adds r1, r5
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2A70
+ b _081B0A02
+ .pool
+_081B09A0:
+ ldr r5, =gUnknown_0203CEDC
+ ldr r0, [r5]
+ lsls r4, 4
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldrb r0, [r0, 0x8]
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ ldr r6, [r1]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl _call_via_r6
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2A70
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2AC8
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2B8C
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2CD4
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ movs r2, 0
+ bl sub_81B2D74
+ ldr r1, [r5]
+ adds r1, r4
+ adds r0, r7, 0
+ bl sub_81B2E28
+_081B0A02:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0948
+
+ thumb_func_start sub_81B0A10
+sub_81B0A10: @ 81B0A10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r1, 0x64
+ adds r2, r0, 0
+ muls r2, r1
+ ldr r1, =gPlayerParty
+ adds r6, r2, r1
+ ldr r7, =gUnknown_0203CEDC
+ ldr r1, [r7]
+ lsls r5, r0, 4
+ adds r1, r5, r1
+ ldr r2, [r1]
+ ldrb r0, [r1, 0x8]
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r4, [r2]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl _call_via_r4
+ ldr r1, [r7]
+ adds r1, r5
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_81B2A70
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081B0A7C
+ ldr r1, [r7]
+ adds r1, r5
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_81B2AC8
+ ldr r1, [r7]
+ adds r1, r5
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_81B2B8C
+_081B0A7C:
+ ldr r1, [r7]
+ adds r1, r5
+ mov r0, r8
+ movs r2, 0
+ bl sub_81B2FA8
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0A10
+
+ thumb_func_start sub_81B0A9C
+sub_81B0A9C: @ 81B0A9C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r6, =gUnknown_0203CEF8
+ bl sub_81B85AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B0AD6
+ adds r0, r5, 0
+ movs r1, 0x7
+ bl sub_81B0A10
+ b _081B0B02
+ .pool
+_081B0AC8:
+ adds r1, r4, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_81B0A10
+ b _081B0B02
+_081B0AD6:
+ movs r4, 0
+ b _081B0AEE
+_081B0ADA:
+ adds r1, r6, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081B0AE8
+ subs r0, 0x1
+ cmp r0, r5
+ beq _081B0AC8
+_081B0AE8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081B0AEE:
+ bl sub_81B8830
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _081B0ADA
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81B0A10
+_081B0B02:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0A9C
+
+ thumb_func_start sub_81B0B08
+sub_81B0B08: @ 81B0B08
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_80DAE0C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _081B0B5A
+ lsls r0, 2
+ ldr r1, =_081B0B34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B0B34:
+ .4byte _081B0B48
+ .4byte _081B0B52
+ .4byte _081B0B52
+ .4byte _081B0B48
+ .4byte _081B0B48
+_081B0B48:
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl sub_81B0A10
+ b _081B0B5A
+_081B0B52:
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl sub_81B0A10
+_081B0B5A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0B08
+
+ thumb_func_start sub_81B0B60
+sub_81B0B60: @ 81B0B60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNumberOfRelearnableMoves
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B0B88
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl sub_81B0A10
+ b _081B0B90
+ .pool
+_081B0B88:
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_81B0A10
+_081B0B90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0B60
+
+ thumb_func_start sub_81B0B98
+sub_81B0B98: @ 81B0B98
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_81B218C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B0BB6
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl sub_81B0A10
+ b _081B0BBE
+_081B0BB6:
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl sub_81B0A10
+_081B0BBE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0B98
+
+ thumb_func_start sub_81B0BC4
+sub_81B0BC4: @ 81B0BC4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ beq _081B0BEC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl sub_81B0A10
+ b _081B0BF4
+ .pool
+_081B0BEC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl sub_81B0A10
+_081B0BF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0BC4
+
+ thumb_func_start sub_81B0BFC
+sub_81B0BFC: @ 81B0BFC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r6, r1, r0
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r4, [r0]
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0xC
+ bne _081B0C40
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r2, [r0]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81B0C94
+ b _081B0C8A
+ .pool
+_081B0C40:
+ cmp r0, 0x3
+ bne _081B0C56
+ adds r0, r4, 0
+ bl CheckIfItemIsTMHMOrEvolutionStone
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B0C5A
+ cmp r0, 0x2
+ beq _081B0C66
+_081B0C56:
+ movs r0, 0
+ b _081B0C8C
+_081B0C5A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81B0C94
+ b _081B0C8A
+_081B0C66:
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081B0C82
+ adds r0, r6, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ cmp r0, 0
+ bne _081B0C56
+_081B0C82:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81B0A10
+_081B0C8A:
+ movs r0, 0x1
+_081B0C8C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B0BFC
+
+ thumb_func_start sub_81B0C94
+sub_81B0C94: @ 81B0C94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r3, =gPlayerParty
+ adds r0, r3
+ bl sub_81B22D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _081B0CD2
+ cmp r0, 0x2
+ bgt _081B0CC4
+ cmp r0, 0x1
+ beq _081B0CC8
+ b _081B0CDC
+ .pool
+_081B0CC4:
+ cmp r0, 0x3
+ bne _081B0CDC
+_081B0CC8:
+ adds r0, r4, 0
+ movs r1, 0x9
+ bl sub_81B0A10
+ b _081B0CE4
+_081B0CD2:
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl sub_81B0A10
+ b _081B0CE4
+_081B0CDC:
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_81B0A10
+_081B0CE4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B0C94
+
+ thumb_func_start sub_81B0CEC
+sub_81B0CEC: @ 81B0CEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CEDC
+ lsls r2, r0, 4
+ ldr r1, [r1]
+ adds r6, r1, r2
+ subs r0, 0x3
+ lsls r0, 24
+ ldr r5, =gUnknown_02022FF8
+ lsrs r0, 19
+ mov r8, r0
+ adds r7, r0, r5
+ ldrh r0, [r7]
+ cmp r0, 0
+ bne _081B0D24
+ ldrb r0, [r6, 0x8]
+ bl sub_81B2720
+ b _081B0D8E
+ .pool
+_081B0D24:
+ ldr r2, [r6]
+ ldrb r0, [r6, 0x8]
+ movs r1, 0
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ ldr r4, [r2]
+ movs r2, 0
+ movs r3, 0
+ bl _call_via_r4
+ ldr r4, =gStringVar1
+ adds r5, 0x4
+ add r5, r8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl StringGetEnd10
+ adds r0, r4, 0
+ bl sub_81DB52C
+ ldrb r0, [r6, 0x8]
+ ldr r3, [r6]
+ adds r3, 0x4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81B2A3C
+ ldrb r0, [r7, 0xF]
+ adds r1, r6, 0
+ bl sub_81B2B40
+ ldrb r0, [r7, 0x1C]
+ ldrh r1, [r7]
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_81B2BF4
+ ldrh r0, [r7, 0x10]
+ adds r1, r6, 0
+ bl sub_81B2D3C
+ ldrh r0, [r7, 0x12]
+ adds r1, r6, 0
+ bl sub_81B2DDC
+ ldrh r0, [r7, 0x10]
+ ldrh r1, [r7, 0x12]
+ adds r2, r6, 0
+ bl sub_81B2E64
+_081B0D8E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0CEC
+
+ thumb_func_start sub_81B0DA0
+sub_81B0DA0: @ 81B0DA0
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CEC4
+ ldr r0, [r5]
+ movs r4, 0x86
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_81B07E0
+ ldr r1, [r5]
+ adds r1, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _081B0DCC
+ movs r0, 0
+ b _081B0DCE
+ .pool
+_081B0DCC:
+ movs r0, 0x1
+_081B0DCE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B0DA0
+
+ thumb_func_start sub_81B0DD4
+sub_81B0DD4: @ 81B0DD4
+ lsls r0, 16
+ ldr r1, =gUnknown_0203CEE0
+ lsrs r0, 11
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .pool
+ thumb_func_end sub_81B0DD4
+
+ thumb_func_start party_menu_add_per_mon_objects_internal
+party_menu_add_per_mon_objects_internal: @ 81B0DE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x5
+ bne _081B0E98
+ cmp r7, 0x2
+ bls _081B0E98
+ subs r0, r7, 0x3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, =gUnknown_02022FF8
+ mov r9, r0
+ mov r2, r10
+ lsls r2, 5
+ mov r8, r2
+ mov r6, r8
+ add r6, r9
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _081B0EDC
+ mov r1, r9
+ adds r1, 0x18
+ add r1, r8
+ ldr r1, [r1]
+ ldr r4, =gUnknown_0203CEDC
+ lsls r5, r7, 4
+ ldr r2, [r4]
+ adds r2, r5
+ movs r3, 0
+ str r3, [sp]
+ bl party_menu_link_mon_icon_anim
+ ldrh r0, [r6]
+ ldrh r1, [r6, 0x2]
+ ldr r2, [r4]
+ adds r2, r5
+ bl party_menu_link_mon_held_item_object
+ ldrh r0, [r6]
+ ldr r1, [r4]
+ adds r1, r5
+ bl party_menu_link_mon_pokeball_object
+ ldrh r0, [r6, 0x10]
+ cmp r0, 0
+ bne _081B0E68
+ movs r3, 0x7
+ b _081B0E78
+ .pool
+_081B0E68:
+ mov r0, r9
+ adds r0, 0x14
+ add r0, r8
+ ldr r0, [r0]
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r3, r0, 24
+_081B0E78:
+ ldr r1, =gUnknown_02022FF8
+ mov r2, r10
+ lsls r0, r2, 5
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gUnknown_0203CEDC
+ ldr r2, [r1]
+ adds r2, r5
+ adds r1, r3, 0
+ bl party_menu_link_mon_status_condition_object
+ b _081B0EDC
+ .pool
+_081B0E98:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B0EDC
+ ldr r4, =gUnknown_0203CEDC
+ lsls r5, r7, 4
+ ldr r1, [r4]
+ adds r1, r5
+ adds r0, r6, 0
+ adds r2, r7, 0
+ bl party_menu_icon_anim
+ ldr r1, [r4]
+ adds r1, r5
+ adds r0, r6, 0
+ bl party_menu_held_item_object
+ ldr r1, [r4]
+ adds r1, r5
+ adds r0, r6, 0
+ bl party_menu_pokeball_object
+ ldr r1, [r4]
+ adds r1, r5
+ adds r0, r6, 0
+ bl party_menu_status_condition_object
+_081B0EDC:
+ 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 party_menu_add_per_mon_objects_internal
+
+ thumb_func_start party_menu_add_per_mon_objects
+party_menu_add_per_mon_objects: @ 81B0EF4
+ push {r4,r5,lr}
+ ldr r5, =gUnknown_0203CEC4
+ ldr r0, [r5]
+ movs r4, 0x86
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ bl party_menu_add_per_mon_objects_internal
+ ldr r1, [r5]
+ adds r1, r4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _081B0F20
+ movs r0, 0
+ b _081B0F22
+ .pool
+_081B0F20:
+ movs r0, 0x1
+_081B0F22:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end party_menu_add_per_mon_objects
+
+ thumb_func_start sub_81B0F28
+sub_81B0F28: @ 81B0F28
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x5
+ bne _081B0F54
+ movs r0, 0x7
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r1, 0xE
+ movs r2, 0x17
+ movs r3, 0x11
+ bl FillBgTilemapBufferRect
+ b _081B0FBC
+ .pool
+_081B0F54:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B0F94
+ movs r0, 0xBF
+ movs r1, 0x88
+ bl sub_81B5F74
+ ldr r3, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x7F
+ ands r0, r1
+ lsls r0, 4
+ ldrh r2, [r3, 0x8]
+ ldr r1, =0xfffff80f
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x8]
+ bl sub_81B120C
+ movs r0, 0xBF
+ movs r1, 0x98
+ bl sub_81B5F74
+ b _081B0F9C
+ .pool
+_081B0F94:
+ movs r0, 0xC6
+ movs r1, 0x94
+ bl sub_81B5F34
+_081B0F9C:
+ ldr r3, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x7F
+ ands r0, r1
+ lsls r0, 11
+ ldr r1, [r3, 0x8]
+ ldr r2, =0xfffc07ff
+ ands r1, r2
+ orrs r1, r0
+ str r1, [r3, 0x8]
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+_081B0FBC:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0F28
+
+ thumb_func_start sub_81B0FCC
+sub_81B0FCC: @ 81B0FCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ cmp r7, 0x6
+ beq _081B1038
+ cmp r7, 0x7
+ beq _081B1074
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B10E8
+ ldr r6, =gUnknown_0203CEDC
+ lsls r5, r7, 4
+ ldr r4, [r6]
+ adds r4, r5
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_81B10F8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_81B2748
+ ldr r0, [r6]
+ adds r0, r5, r0
+ ldrb r0, [r0, 0x9]
+ mov r1, r8
+ bl sub_81B5B6C
+ ldr r0, [r6]
+ adds r5, r0
+ ldrb r0, [r5, 0xB]
+ mov r1, r8
+ bl sub_81B5F98
+ b _081B10E8
+ .pool
+_081B1038:
+ mov r0, r8
+ cmp r0, 0
+ bne _081B1052
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0x17
+ movs r2, 0x10
+ movs r3, 0x7
+ bl sub_8199C30
+ b _081B1064
+_081B1052:
+ movs r0, 0x2
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x17
+ movs r2, 0x10
+ movs r3, 0x7
+ bl sub_8199C30
+_081B1064:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x8]
+ lsls r0, 21
+ b _081B10DA
+ .pool
+_081B1074:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ bne _081B10A6
+ mov r0, r8
+ cmp r0, 0
+ bne _081B1098
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0x17
+ movs r2, 0x11
+ b _081B10B8
+ .pool
+_081B1098:
+ movs r0, 0x2
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x17
+ movs r2, 0x11
+ b _081B10B8
+_081B10A6:
+ mov r0, r8
+ cmp r0, 0
+ bne _081B10C0
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0x17
+ movs r2, 0x12
+_081B10B8:
+ movs r3, 0x7
+ bl sub_8199C30
+ b _081B10D2
+_081B10C0:
+ movs r0, 0x2
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x17
+ movs r2, 0x12
+ movs r3, 0x7
+ bl sub_8199C30
+_081B10D2:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ lsls r0, 14
+_081B10DA:
+ lsrs r0, 25
+ mov r1, r8
+ bl sub_81B5F98
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+_081B10E8:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0FCC
+
+ thumb_func_start sub_81B10F8
+sub_81B10F8: @ 81B10F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ movs r4, 0
+ cmp r1, 0x1
+ bne _081B110A
+ movs r4, 0x1
+_081B110A:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081B1120
+ movs r0, 0x2
+ orrs r4, r0
+_081B1120:
+ adds r0, r5, 0
+ bl sub_81B118C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B1136
+ movs r0, 0x8
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_081B1136:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0xB]
+ adds r2, r0, 0
+ cmp r1, 0x9
+ bne _081B1148
+ movs r0, 0x10
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_081B1148:
+ cmp r1, 0x8
+ bne _081B1164
+ movs r0, 0x9
+ ldrsb r0, [r2, r0]
+ cmp r5, r0
+ beq _081B115C
+ movs r0, 0xA
+ ldrsb r0, [r2, r0]
+ cmp r5, r0
+ bne _081B1164
+_081B115C:
+ movs r0, 0x4
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_081B1164:
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0xA
+ bne _081B117A
+ movs r0, 0x9
+ ldrsb r0, [r2, r0]
+ cmp r5, r0
+ bne _081B117A
+ movs r0, 0x20
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_081B117A:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B10F8
+
+ thumb_func_start sub_81B118C
+sub_81B118C: @ 81B118C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0x20
+ bne _081B11B4
+ cmp r2, 0x1
+ beq _081B11AA
+ cmp r2, 0x4
+ beq _081B11AA
+ cmp r2, 0x5
+ bne _081B11B4
+_081B11AA:
+ movs r0, 0x1
+ b _081B11F8
+ .pool
+_081B11B4:
+ cmp r2, 0x2
+ bhi _081B11F6
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ beq _081B11F6
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B11F6
+ adds r0, r2, 0
+ bl sub_81B8F38
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ movs r2, 0xA8
+ lsls r2, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ asrs r1, r0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _081B11F8
+_081B11F6:
+ movs r0, 0
+_081B11F8:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B118C
+
+ thumb_func_start sub_81B120C
+sub_81B120C: @ 81B120C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r1, =gUnknown_086157C4
+ movs r6, 0x7
+ str r6, [sp]
+ movs r5, 0x2
+ str r5, [sp, 0x4]
+ movs r4, 0x11
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r2, 0x17
+ movs r3, 0x10
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ ldr r1, =gUnknown_086157E0
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r0, 0x1
+ movs r2, 0x17
+ movs r3, 0x12
+ bl CopyToBgTilemapBufferRect_ChangePalette
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B120C
+
+ thumb_func_start sub_81B1250
+sub_81B1250: @ 81B1250
+ push {lr}
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x49
+ ands r0, r1
+ cmp r0, 0x49
+ bne _081B1280
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B1280
+ movs r0, 0x1
+ b _081B1282
+ .pool
+_081B1280:
+ movs r0, 0
+_081B1282:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B1250
+
+ thumb_func_start sub_81B1288
+sub_81B1288: @ 81B1288
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ movs r0, 0x64
+ bl Alloc
+ adds r5, r0, 0
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ bl Free
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B1288
+
+ thumb_func_start sub_81B12C0
+sub_81B12C0: @ 81B12C0
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ 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
+ ldr r1, =c3_0811FAB4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B12C0
+
+ thumb_func_start c3_0811FAB4
+c3_0811FAB4: @ 81B12F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B134C
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r1, [r4, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081B131A
+ bl sub_81B9080
+_081B131A:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ cmp r0, 0
+ beq _081B1338
+ bl SetMainCallback2
+ b _081B133E
+ .pool
+_081B1338:
+ ldr r0, [r4]
+ bl SetMainCallback2
+_081B133E:
+ bl ResetSpriteData
+ bl sub_81B06F4
+ adds r0, r5, 0
+ bl DestroyTask
+_081B134C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end c3_0811FAB4
+
+ thumb_func_start brm_get_pokemon_selection
+brm_get_pokemon_selection: @ 81B1354
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ bx lr
+ .pool
+ thumb_func_end brm_get_pokemon_selection
+
+ thumb_func_start sub_81B1360
+sub_81B1360: @ 81B1360
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ bx lr
+ .pool
+ thumb_func_end sub_81B1360
+
+ thumb_func_start sub_81B1370
+sub_81B1370: @ 81B1370
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B13E0
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B13E0
+ bl sub_81B13EC
+ adds r4, r0, 0
+ bl sub_81B1760
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _081B13C0
+ cmp r0, 0x2
+ bgt _081B13B0
+ cmp r0, 0x1
+ beq _081B13B6
+ b _081B13E0
+ .pool
+_081B13B0:
+ cmp r0, 0x8
+ beq _081B13CA
+ b _081B13E0
+_081B13B6:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81B140C
+ b _081B13E0
+_081B13C0:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_81B15D0
+ b _081B13E0
+_081B13CA:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B13E0
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_81B4F88
+_081B13E0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1370
+
+ thumb_func_start sub_81B13EC
+sub_81B13EC: @ 81B13EC
+ push {lr}
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0xB]
+ cmp r1, 0x8
+ beq _081B13FA
+ cmp r1, 0xA
+ bne _081B1404
+_081B13FA:
+ adds r0, 0xA
+ b _081B1406
+ .pool
+_081B1404:
+ adds r0, 0x9
+_081B1406:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B13EC
+
+ thumb_func_start sub_81B140C
+sub_81B140C: @ 81B140C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x6
+ bne _081B142C
+ ldr r0, =gUnknown_0203CEC8
+ ldr r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _081B159E
+ .pool
+_081B142C:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ subs r0, 0x3
+ cmp r0, 0xA
+ bls _081B1438
+ b _081B1592
+_081B1438:
+ lsls r0, 2
+ ldr r1, =_081B144C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B144C:
+ .4byte _081B149C
+ .4byte _081B1592
+ .4byte _081B1538
+ .4byte _081B1538
+ .4byte _081B1510
+ .4byte _081B1560
+ .4byte _081B1592
+ .4byte _081B1478
+ .4byte _081B156E
+ .4byte _081B14E8
+ .4byte _081B157C
+_081B1478:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B1486
+ b _081B159E
+_081B1486:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl sub_81615A8
+ b _081B159E
+ .pool
+_081B149C:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B14AA
+ b _081B159E
+_081B14AA:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ ldr r2, =gUnknown_0203CEC4
+ cmp r0, 0x1
+ bne _081B14BE
+ ldr r1, [r2]
+ ldr r0, =sub_81B9140
+ str r0, [r1, 0x4]
+_081B14BE:
+ ldr r0, [r2]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gUnknown_03006328
+ ldr r1, =sub_81B6794
+ ldr r2, [r0]
+ adds r0, r5, 0
+ bl _call_via_r2
+ b _081B159E
+ .pool
+_081B14E8:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B159E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl sub_81B7E4C
+ b _081B159E
+ .pool
+_081B1510:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B159E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl sub_81B8474
+ b _081B159E
+ .pool
+_081B1538:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B159E
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl sub_81B7FAC
+ b _081B159E
+ .pool
+_081B1560:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81B3938
+ b _081B159E
+_081B156E:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81B12C0
+ b _081B159E
+_081B157C:
+ adds r0, r4, 0
+ bl sub_81B15A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B159E
+ ldrb r1, [r4]
+ adds r0, r5, 0
+ bl sub_81B21AC
+ b _081B159E
+_081B1592:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81B36FC
+_081B159E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B140C
+
+ thumb_func_start sub_81B15A4
+sub_81B15A4: @ 81B15A4
+ push {lr}
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _081B15C4
+ movs r0, 0x1
+ b _081B15CC
+ .pool
+_081B15C4:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0
+_081B15CC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B15A4
+
+ thumb_func_start sub_81B15D0
+sub_81B15D0: @ 81B15D0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x8
+ beq _081B1602
+ cmp r0, 0x8
+ bgt _081B15F0
+ cmp r0, 0x1
+ beq _081B15FA
+ b _081B161E
+ .pool
+_081B15F0:
+ cmp r0, 0xA
+ beq _081B1602
+ cmp r0, 0xD
+ beq _081B1610
+ b _081B161E
+_081B15FA:
+ movs r0, 0x20
+ bl PlaySE
+ b _081B1652
+_081B1602:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B407C
+ b _081B1652
+_081B1610:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B2210
+ b _081B1652
+_081B161E:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B1660
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B1652
+ bl sub_81221AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B1642
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x7
+ strh r0, [r1]
+_081B1642:
+ ldr r0, =gUnknown_0203CEE8
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x7
+ strb r0, [r5]
+ adds r0, r4, 0
+ bl sub_81B12C0
+_081B1652:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B15D0
+
+ thumb_func_start sub_81B1660
+sub_81B1660: @ 81B1660
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0x2
+ bne _081B1680
+ ldr r5, =gUnknown_085EA110
+ b _081B168A
+ .pool
+_081B1680:
+ cmp r1, 0x4
+ bne _081B168A
+ bl sub_81B88BC
+ adds r5, r0, 0
+_081B168A:
+ cmp r5, 0
+ beq _081B16CC
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B16D4
+ str r1, [r0]
+ movs r0, 0x1
+ b _081B16CE
+ .pool
+_081B16CC:
+ movs r0, 0
+_081B16CE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B1660
+
+ thumb_func_start sub_81B16D4
+sub_81B16D4: @ 81B16D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B16F8
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1708
+ str r0, [r1]
+_081B16F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B16D4
+
+ thumb_func_start sub_81B1708
+sub_81B1708: @ 81B1708
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B172E
+ cmp r1, 0
+ bgt _081B1728
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B174C
+ b _081B1758
+_081B1728:
+ cmp r1, 0x1
+ beq _081B1752
+ b _081B1758
+_081B172E:
+ ldr r0, =gUnknown_0203CEE8
+ strb r1, [r0]
+ ldr r1, =gUnknown_0203CEC8
+ movs r0, 0x7
+ strb r0, [r1, 0x9]
+ bl sub_81B8558
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B1758
+ .pool
+_081B174C:
+ movs r0, 0x5
+ bl PlaySE
+_081B1752:
+ adds r0, r4, 0
+ bl sub_81B1C1C
+_081B1758:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B1708
+
+ thumb_func_start sub_81B1760
+sub_81B1760: @ 81B1760
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x30]
+ adds r3, r0, 0
+ cmp r1, 0x20
+ beq _081B178E
+ cmp r1, 0x20
+ bgt _081B177C
+ cmp r1, 0x10
+ beq _081B1792
+ b _081B1796
+ .pool
+_081B177C:
+ cmp r1, 0x40
+ beq _081B1786
+ cmp r1, 0x80
+ beq _081B178A
+ b _081B1796
+_081B1786:
+ movs r1, 0xFF
+ b _081B17B2
+_081B178A:
+ movs r1, 0x1
+ b _081B17B2
+_081B178E:
+ movs r1, 0xFE
+ b _081B17B2
+_081B1792:
+ movs r1, 0x2
+ b _081B17B2
+_081B1796:
+ bl sub_812210C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B17AA
+ cmp r0, 0x2
+ beq _081B17AE
+ movs r1, 0
+ b _081B17B0
+_081B17AA:
+ movs r1, 0xFF
+ b _081B17B0
+_081B17AE:
+ movs r1, 0x1
+_081B17B0:
+ ldr r3, =gMain
+_081B17B2:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _081B17C4
+ movs r0, 0x8
+ b _081B17F0
+ .pool
+_081B17C4:
+ lsls r0, r1, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B17D6
+ adds r0, r4, 0
+ bl sub_81B17F8
+ movs r0, 0
+ b _081B17F0
+_081B17D6:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _081B17EA
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x7
+ bne _081B17EA
+ movs r0, 0x2
+ b _081B17F0
+_081B17EA:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+_081B17F0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B1760
+
+ thumb_func_start sub_81B17F8
+sub_81B17F8: @ 81B17F8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r4, [r5]
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x8]
+ lsls r0, 26
+ lsrs r0, 30
+ cmp r0, 0
+ bne _081B1820
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl sub_81B1854
+ b _081B182A
+ .pool
+_081B1820:
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl sub_81B195C
+_081B182A:
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r4, 24
+ asrs r0, r4, 24
+ cmp r1, r0
+ beq _081B184C
+ movs r0, 0x5
+ bl PlaySE
+ lsrs r0, r4, 24
+ movs r1, 0
+ bl sub_81B0FCC
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_81B0FCC
+_081B184C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B17F8
+
+ thumb_func_start sub_81B1854
+sub_81B1854: @ 81B1854
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B187A
+ cmp r1, r0
+ bgt _081B1870
+ subs r0, 0x1
+ cmp r1, r0
+ beq _081B1924
+ b _081B1952
+_081B1870:
+ cmp r1, 0x1
+ beq _081B18C0
+ cmp r1, 0x2
+ beq _081B18F8
+ b _081B1952
+_081B187A:
+ ldrb r0, [r4]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ cmp r1, 0
+ bne _081B1888
+ movs r0, 0x7
+ b _081B1950
+_081B1888:
+ cmp r1, 0x6
+ bne _081B1898
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _081B1950
+ .pool
+_081B1898:
+ cmp r1, 0x7
+ bne _081B18BC
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B18B0
+ movs r0, 0x6
+ b _081B1950
+ .pool
+_081B18B0:
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _081B1950
+ .pool
+_081B18BC:
+ subs r0, 0x1
+ b _081B1950
+_081B18C0:
+ ldrb r2, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x7
+ beq _081B194E
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _081B18F4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B18F0
+ movs r0, 0x6
+ b _081B1950
+ .pool
+_081B18F0:
+ movs r0, 0x7
+ b _081B1950
+_081B18F4:
+ adds r0, r2, 0x1
+ b _081B1950
+_081B18F8:
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081B1952
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _081B1952
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 28
+ lsrs r0, 29
+ cmp r0, 0
+ bne _081B1950
+ movs r0, 0x1
+ b _081B1950
+ .pool
+_081B1924:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ beq _081B1952
+ cmp r0, 0x6
+ beq _081B1952
+ cmp r0, 0x7
+ beq _081B1952
+ ldr r0, =gUnknown_0203CEC4
+ ldr r3, [r0]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3, 0x8]
+ movs r0, 0xF
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x8]
+_081B194E:
+ movs r0, 0
+_081B1950:
+ strb r0, [r4]
+_081B1952:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1854
+
+ thumb_func_start sub_81B195C
+sub_81B195C: @ 81B195C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ asrs r5, r1, 24
+ movs r6, 0x1
+ negs r6, r6
+ cmp r5, r6
+ beq _081B1988
+ cmp r5, r6
+ bgt _081B197E
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ bne _081B197C
+ b _081B1A9C
+_081B197C:
+ b _081B1AF4
+_081B197E:
+ cmp r5, 0x1
+ beq _081B19E4
+ cmp r5, 0x2
+ beq _081B1A24
+ b _081B1AF4
+_081B1988:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _081B1996
+ movs r0, 0x7
+ b _081B1AF2
+_081B1996:
+ cmp r0, 0x6
+ bne _081B19A8
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _081B1AF2
+ .pool
+_081B19A8:
+ cmp r0, 0x7
+ bne _081B19C4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B19C0
+ movs r0, 0x6
+ b _081B1AF2
+ .pool
+_081B19C0:
+ subs r0, r1, 0x1
+ strb r0, [r4]
+_081B19C4:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r1, r2, 24
+ asrs r1, 24
+ bl sub_81B1B00
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _081B19E0
+ b _081B1AF4
+_081B19E0:
+ strb r2, [r4]
+ b _081B1AF4
+_081B19E4:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0x6
+ bne _081B19F0
+ movs r0, 0x7
+ b _081B1AF2
+_081B19F0:
+ cmp r0, 0x7
+ bne _081B19F8
+ movs r0, 0
+ b _081B1AF2
+_081B19F8:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ movs r1, 0x1
+ bl sub_81B1B00
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, r6
+ bne _081B19E0
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B1A20
+ movs r0, 0x6
+ b _081B1AF2
+ .pool
+_081B1A20:
+ movs r0, 0x7
+ b _081B1AF2
+_081B1A24:
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bne _081B1A5C
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 28
+ lsrs r6, r0, 29
+ cmp r6, 0x3
+ bne _081B1A54
+ ldr r0, =gPlayerParty + 300
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B1AF4
+ strb r6, [r4]
+ b _081B1AF4
+ .pool
+_081B1A54:
+ ldr r0, =gPlayerParty + 200
+ b _081B1A70
+ .pool
+_081B1A5C:
+ cmp r0, 0x1
+ bne _081B1AF4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 28
+ lsrs r5, r0, 29
+ cmp r5, 0x5
+ bne _081B1A88
+ ldr r0, =gPlayerParty + 500
+_081B1A70:
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B1AF4
+ strb r5, [r4]
+ b _081B1AF4
+ .pool
+_081B1A88:
+ ldr r0, =gPlayerParty + 400
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B1AF4
+ movs r0, 0x4
+ b _081B1AF2
+ .pool
+_081B1A9C:
+ ldrb r1, [r4]
+ subs r0, r1, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081B1ACC
+ ldr r0, =gUnknown_0203CEC4
+ ldr r3, [r0]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3, 0x8]
+ movs r0, 0xF
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x8]
+ movs r0, 0
+ b _081B1AF2
+ .pool
+_081B1ACC:
+ subs r0, r1, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081B1AF4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r3, [r0]
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3, 0x8]
+ movs r0, 0xF
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x8]
+ movs r0, 0x1
+_081B1AF2:
+ strb r0, [r4]
+_081B1AF4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B195C
+
+ thumb_func_start sub_81B1B00
+sub_81B1B00: @ 81B1B00
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ asrs r6, r1, 24
+_081B1B0A:
+ lsls r0, r5, 24
+ asrs r0, 24
+ adds r0, r6
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, r5, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _081B1B38
+ asrs r4, r1, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B1B0A
+ adds r0, r4, 0
+ b _081B1B3C
+ .pool
+_081B1B38:
+ movs r0, 0x1
+ negs r0, r0
+_081B1B3C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B1B00
+
+ thumb_func_start GetMonNickname
+@ u8 *GetMonNickname(struct pokemon *mon, u8 *dest)
+GetMonNickname: @ 81B1B44
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl GetMonData
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start sub_81B1B5C
+sub_81B1B5C: @ 81B1B5C
+ push {r4,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ bl sub_81B3300
+ ldr r0, =sub_81B1B8C
+ movs r1, 0x1
+ 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]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B1B5C
+
+ thumb_func_start sub_81B1B8C
+sub_81B1B8C: @ 81B1B8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r0, 0x6
+ bl sub_8121F20
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _081B1BC8
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _081B1BC2
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0x6
+ bl ClearWindowTilemap
+_081B1BC2:
+ adds r0, r5, 0
+ bl DestroyTask
+_081B1BC8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1B8C
+
+ thumb_func_start sub_81B1BD4
+sub_81B1BD4: @ 81B1BD4
+ push {lr}
+ ldr r0, =sub_81B1B8C
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B1BD4
+
+ thumb_func_start sub_81B1BE8
+sub_81B1BE8: @ 81B1BE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B1C0E
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+_081B1C0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1BE8
+
+ thumb_func_start sub_81B1C1C
+sub_81B1C1C: @ 81B1C1C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B1C74
+ movs r0, 0x6
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0x6
+ bl ClearWindowTilemap
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B1C60
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1BE8
+ b _081B1C72
+ .pool
+_081B1C60:
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+_081B1C72:
+ str r0, [r1]
+_081B1C74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1C1C
+
+ thumb_func_start sub_81B1C84
+sub_81B1C84: @ 81B1C84
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r1, =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E991B
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1C84
+
+ thumb_func_start sub_81B1CD0
+sub_81B1CD0: @ 81B1CD0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r1, =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E999D
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1CD0
+
+ thumb_func_start sub_81B1D1C
+sub_81B1D1C: @ 81B1D1C
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r1, =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E993A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1D1C
+
+ thumb_func_start sub_81B1D68
+sub_81B1D68: @ 81B1D68
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r1, =gStringVar2
+ adds r0, r4, 0
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E99DB
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1D68
+
+ thumb_func_start sub_81B1DB8
+sub_81B1DB8: @ 81B1DB8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ lsls r5, r1, 16
+ lsrs r4, r5, 16
+ adds r7, r4, 0
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B1DE2
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80D4420
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081B1DF6
+_081B1DE2:
+ mov r0, sp
+ strb r7, [r0]
+ mov r1, sp
+ lsrs r0, r5, 24
+ strb r0, [r1, 0x1]
+ adds r0, r6, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+_081B1DF6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B1DB8
+
+ thumb_func_start sub_81B1E00
+sub_81B1E00: @ 81B1E00
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, sp
+ strh r0, [r1]
+ cmp r0, 0
+ bne _081B1E1C
+ movs r0, 0
+ b _081B1E3E
+_081B1E1C:
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B1E3C
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0x2
+ b _081B1E3E
+_081B1E3C:
+ movs r0, 0x1
+_081B1E3E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B1E00
+
+ thumb_func_start pokemon_item_not_removed
+pokemon_item_not_removed: @ 81B1E48
+ push {lr}
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9A69
+ bl StringExpandPlaceholders
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end pokemon_item_not_removed
+
+ thumb_func_start sub_81B1E60
+sub_81B1E60: @ 81B1E60
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x4]
+ ldrh r1, [r7]
+ adds r0, r1
+ strh r0, [r7]
+ ldrh r0, [r7, 0x6]
+ subs r0, 0x1
+ strh r0, [r7, 0x6]
+ movs r2, 0x8
+ ldrsh r0, [r7, r2]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x39
+ adds r2, r7, 0
+ bl SetMonData
+ movs r3, 0x8
+ ldrsh r2, [r7, r3]
+ adds r0, r2, 0
+ muls r0, r5
+ adds r0, r4
+ ldr r6, =gUnknown_0203CEDC
+ lsls r2, 4
+ ldr r1, [r6]
+ adds r1, r2
+ movs r2, 0x1
+ bl sub_81B2CD4
+ movs r0, 0x8
+ ldrsh r2, [r7, r0]
+ adds r0, r2, 0
+ muls r0, r5
+ adds r0, r4
+ lsls r2, 4
+ ldr r1, [r6]
+ adds r1, r2
+ bl sub_81B2E28
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _081B1EDC
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ cmp r1, 0
+ beq _081B1EDC
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ cmp r1, r0
+ bne _081B1EFE
+_081B1EDC:
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r2, 0xA
+ ldrsh r0, [r7, r2]
+ cmp r1, r0
+ ble _081B1EF8
+ ldr r0, =gStringVar2
+ movs r3, 0xA
+ ldrsh r2, [r7, r3]
+ subs r1, r2
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+_081B1EF8:
+ mov r0, r8
+ bl SwitchTaskToFollowupFunc
+_081B1EFE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1E60
+
+ thumb_func_start sub_81B1F18
+sub_81B1F18: @ 81B1F18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r0
+ mov r9, r1
+ adds r5, r2, 0
+ mov r10, r3
+ ldr r7, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r0, 0x64
+ mov r6, r9
+ muls r6, r0
+ ldr r0, =gPlayerParty
+ adds r6, r0
+ mov r0, r8
+ lsls r4, r0, 2
+ add r4, r8
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4]
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ lsls r5, 24
+ asrs r5, 24
+ strh r5, [r4, 0x4]
+ mov r0, r10
+ strh r0, [r4, 0x6]
+ mov r0, r9
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4]
+ strh r0, [r4, 0xA]
+ ldr r1, =sub_81B1E60
+ mov r0, r8
+ adds r2, r7, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1F18
+
+ thumb_func_start sub_81B1FA8
+sub_81B1FA8: @ 81B1FA8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r3, r0, r1
+ cmp r5, 0x5
+ bhi _081B200A
+ lsls r0, r5, 2
+ ldr r1, =_081B1FD4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B1FD4:
+ .4byte _081B1FEC
+ .4byte _081B1FF2
+ .4byte _081B1FF6
+ .4byte _081B1FFA
+ .4byte _081B1FFE
+ .4byte _081B2002
+_081B1FEC:
+ strh r2, [r3]
+ strh r2, [r3, 0xA]
+ b _081B200A
+_081B1FF2:
+ strh r2, [r3, 0x2]
+ b _081B200A
+_081B1FF6:
+ strh r2, [r3, 0x4]
+ b _081B200A
+_081B1FFA:
+ strh r2, [r3, 0x6]
+ b _081B200A
+_081B1FFE:
+ strh r2, [r3, 0x8]
+ b _081B200A
+_081B2002:
+ ldr r1, =sub_81B1E60
+ adds r0, r4, 0
+ bl SetTaskFuncWithFollowupFunc
+_081B200A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B1FA8
+
+ thumb_func_start pokemon_ailments_get_primary
+pokemon_ailments_get_primary: @ 81B2014
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _081B2024
+ movs r0, 0x1
+ b _081B2056
+_081B2024:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081B2030
+ movs r0, 0x2
+ b _081B2056
+_081B2030:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _081B203C
+ movs r0, 0x3
+ b _081B2056
+_081B203C:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081B2048
+ movs r0, 0x4
+ b _081B2056
+_081B2048:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081B2054
+ movs r0, 0
+ b _081B2056
+_081B2054:
+ movs r0, 0x5
+_081B2056:
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_ailments_get_primary
+
+ thumb_func_start sub_81B205C
+@ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3)
+sub_81B205C: @ 81B205C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081B206E
+ movs r0, 0x7
+ b _081B2096
+_081B206E:
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _081B2096
+ adds r0, r4, 0
+ movs r1, 0
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B2094
+ movs r0, 0
+ b _081B2096
+_081B2094:
+ movs r0, 0x6
+_081B2096:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B205C
+
+ thumb_func_start sub_81B209C
+sub_81B209C: @ 81B209C
+ push {r4,r5,lr}
+ ldr r2, =gUnknown_0203CEC8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0xB
+ bne _081B2126
+ adds r5, r2, 0
+ adds r5, 0xE
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081B20FC
+ movs r4, 0
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _081B2126
+_081B20C4:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_81B2134
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r0, r4
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _081B20C4
+ b _081B2126
+ .pool
+_081B20FC:
+ movs r4, 0
+ b _081B211E
+_081B2100:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_81B2164
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r0, r4
+ ldrh r1, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081B211E:
+ ldr r0, =gPlayerPartyCount
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _081B2100
+_081B2126:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B209C
+
+ thumb_func_start sub_81B2134
+sub_81B2134: @ 81B2134
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _081B215A
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_802C908
+ cmp r0, 0
+ beq _081B215A
+ movs r0, 0x1
+ b _081B215C
+_081B215A:
+ movs r0, 0
+_081B215C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B2134
+
+ thumb_func_start sub_81B2164
+sub_81B2164: @ 81B2164
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _081B2182
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0x55
+ bne _081B2182
+ movs r0, 0x1
+ b _081B2184
+_081B2182:
+ movs r0, 0
+_081B2184:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B2164
+
+ thumb_func_start sub_81B218C
+sub_81B218C: @ 81B218C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CEC8
+ movs r2, 0xE
+ ldrsh r1, [r1, r2]
+ asrs r1, r0
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _081B21A4
+ movs r0, 0
+_081B21A4:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B218C
+
+ thumb_func_start sub_81B21AC
+sub_81B21AC: @ 81B21AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r5, 0
+ bl sub_81B218C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B21DC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gSpecialVar_0x8004
+ strh r5, [r0]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B21FE
+ .pool
+_081B21DC:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r0, =gUnknown_085EA0EE
+ movs r1, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+_081B21FE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B21AC
+
+ thumb_func_start sub_81B2210
+sub_81B2210: @ 81B2210
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_085EA110
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B2248
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2210
+
+ thumb_func_start sub_81B2248
+sub_81B2248: @ 81B2248
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B226C
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B227C
+ str r0, [r1]
+_081B226C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2248
+
+ thumb_func_start sub_81B227C
+sub_81B227C: @ 81B227C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B22A2
+ cmp r1, 0
+ bgt _081B229C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B22B4
+ b _081B22C8
+_081B229C:
+ cmp r1, 0x1
+ beq _081B22BA
+ b _081B22C8
+_081B22A2:
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x7
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B22C8
+ .pool
+_081B22B4:
+ movs r0, 0x5
+ bl PlaySE
+_081B22BA:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1C1C
+ str r0, [r1]
+_081B22C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B227C
+
+ thumb_func_start sub_81B22D8
+sub_81B22D8: @ 81B22D8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r7, r4, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ mov r8, r6
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _081B22FA
+ movs r0, 0x3
+ b _081B2356
+_081B22FA:
+ movs r0, 0x90
+ lsls r0, 1
+ cmp r4, r0
+ bls _081B231C
+ adds r1, r4, 0
+ subs r1, 0x21
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl CanMonLearnTMHM
+ cmp r0, 0
+ beq _081B2334
+ adds r0, r7, 0
+ bl ItemIdToBattleMoveId
+ b _081B233E
+_081B231C:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl sub_81B2370
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B2338
+_081B2334:
+ movs r0, 0x1
+ b _081B2356
+_081B2338:
+ mov r0, r8
+ bl sub_81B2360
+_081B233E:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r5, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B2354
+ movs r0, 0
+ b _081B2356
+_081B2354:
+ movs r0, 0x2
+_081B2356:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B22D8
+
+ thumb_func_start sub_81B2360
+sub_81B2360: @ 81B2360
+ lsls r0, 24
+ ldr r1, =gUnknown_0861500C
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81B2360
+
+ thumb_func_start sub_81B2370
+sub_81B2370: @ 81B2370
+ push {lr}
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gUnknown_08615048
+ lsrs r0, 14
+ adds r0, r2
+ movs r2, 0x1
+ lsls r2, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081B2394
+ movs r0, 0
+ b _081B2396
+ .pool
+_081B2394:
+ movs r0, 0x1
+_081B2396:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B2370
+
+ thumb_func_start sub_81B239C
+sub_81B239C: @ 81B239C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _081B23C4
+ cmp r0, 0x1
+ bgt _081B23B2
+ cmp r0, 0
+ beq _081B23B8
+ b _081B23DC
+_081B23B2:
+ cmp r1, 0x2
+ beq _081B23D0
+ b _081B23DC
+_081B23B8:
+ ldr r0, =gUnknown_08615810
+ bl InitWindows
+ b _081B23E2
+ .pool
+_081B23C4:
+ ldr r0, =gUnknown_08615850
+ bl InitWindows
+ b _081B23E2
+ .pool
+_081B23D0:
+ ldr r0, =gUnknown_08615890
+ bl InitWindows
+ b _081B23E2
+ .pool
+_081B23DC:
+ ldr r0, =gUnknown_086158D0
+ bl InitWindows
+_081B23E2:
+ bl DeactivateAllTextPrinters
+ movs r4, 0
+_081B23E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081B23E8
+ movs r0, 0
+ movs r1, 0x4F
+ movs r2, 0xD0
+ bl sub_809882C
+ bl sub_8098C64
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B239C
+
+ thumb_func_start sub_81B2428
+sub_81B2428: @ 81B2428
+ push {r4-r6,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x5
+ bne _081B243E
+ b _081B2554
+_081B243E:
+ cmp r2, 0x1
+ bne _081B24B4
+ ldr r0, =gUnknown_08615918
+ bl AddWindow
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_085E8CE3
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0x30
+ bl GetStringCenterAlignXOffset
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_086157FC
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0xC]
+ str r5, [sp, 0x10]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl AddTextPrinterParametrized2
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_08615910
+ bl AddWindow
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ b _081B24C0
+ .pool
+_081B24B4:
+ ldr r0, =gUnknown_08615908
+ bl AddWindow
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0x3
+_081B24C0:
+ adds r0, r5, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0xA
+ beq _081B2514
+ ldr r4, =gUnknown_085E8CF0
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x30
+ bl GetStringCenterAlignXOffset
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_086157FC
+ str r0, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl box_print
+ b _081B2540
+ .pool
+_081B2514:
+ ldr r4, =gUnknown_085E8CF7
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0x30
+ bl GetStringCenterAlignXOffset
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_086157FC
+ str r0, [sp]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x4]
+ str r4, [sp, 0x8]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r3, 0x1
+ bl box_print
+_081B2540:
+ adds r0, r5, 0
+ bl PutWindowTilemap
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+_081B2554:
+ add sp, 0x14
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2428
+
+ thumb_func_start sub_81B2564
+sub_81B2564: @ 81B2564
+ lsls r0, 24
+ ldr r1, =gUnknown_0203CEC4
+ lsrs r0, 23
+ adds r0, 0x18
+ ldr r1, [r1]
+ adds r1, r0
+ adds r0, r1, 0
+ bx lr
+ .pool
+ thumb_func_end sub_81B2564
+
+ thumb_func_start sub_81B2578
+sub_81B2578: @ 81B2578
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ str r1, [sp, 0xC]
+ ldr r1, [sp, 0x4C]
+ ldr r4, [sp, 0x50]
+ ldr r5, [sp, 0x54]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x10]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x14]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x18]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r10, r5
+ mov r0, r10
+ muls r0, r6
+ lsls r0, 5
+ bl AllocZeroed
+ mov r9, r0
+ cmp r0, 0
+ beq _081B2646
+ movs r5, 0
+ ldr r0, [sp, 0x14]
+ lsls r0, 19
+ str r0, [sp, 0x1C]
+ ldr r1, [sp, 0x18]
+ lsls r1, 19
+ str r1, [sp, 0x20]
+ lsls r2, r6, 19
+ str r2, [sp, 0x24]
+ mov r0, r10
+ lsls r0, 19
+ str r0, [sp, 0x28]
+ cmp r5, r10
+ bcs _081B2624
+_081B25DA:
+ movs r4, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r4, r6
+ bcs _081B261A
+ ldr r2, [sp, 0x18]
+ adds r0, r2, r5
+ ldr r2, [sp, 0x10]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r7, r1, 0
+_081B25F0:
+ ldr r1, [sp, 0x14]
+ adds r0, r1, r4
+ adds r0, r7
+ ldr r2, [sp, 0xC]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl sub_81B0DD4
+ adds r1, r5, 0
+ muls r1, r6
+ adds r1, r4
+ lsls r1, 5
+ add r1, r9
+ movs r2, 0x10
+ bl CpuSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _081B25F0
+_081B261A:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, r10
+ bcc _081B25DA
+_081B2624:
+ ldr r0, [sp, 0x1C]
+ lsrs r2, r0, 16
+ ldr r1, [sp, 0x20]
+ lsrs r3, r1, 16
+ ldr r1, [sp, 0x24]
+ lsrs r0, r1, 16
+ str r0, [sp]
+ ldr r1, [sp, 0x28]
+ lsrs r0, r1, 16
+ str r0, [sp, 0x4]
+ ldr r0, [sp, 0x8]
+ mov r1, r9
+ bl BlitBitmapToWindow
+ mov r0, r9
+ bl Free
+_081B2646:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2578
+
+ thumb_func_start sub_81B2658
+sub_81B2658: @ 81B2658
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ cmp r3, 0
+ bne _081B2684
+ cmp r4, 0
+ bne _081B2684
+ movs r3, 0xA
+ movs r4, 0x7
+_081B2684:
+ cmp r5, 0
+ bne _081B26A0
+ ldr r1, =gUnknown_08615988
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_81B2578
+ b _081B26B0
+ .pool
+_081B26A0:
+ ldr r1, =gUnknown_086159CE
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0xA
+ adds r3, r6, 0
+ bl sub_81B2578
+_081B26B0:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2658
+
+ thumb_func_start sub_81B26BC
+sub_81B26BC: @ 81B26BC
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r4, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ cmp r3, 0
+ bne _081B26E8
+ cmp r4, 0
+ bne _081B26E8
+ movs r3, 0x12
+ movs r4, 0x3
+_081B26E8:
+ cmp r5, 0
+ bne _081B2704
+ ldr r1, =gUnknown_08615A14
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0x12
+ adds r3, r6, 0
+ bl sub_81B2578
+ b _081B2714
+ .pool
+_081B2704:
+ ldr r1, =gUnknown_08615A4A
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ str r4, [sp, 0x8]
+ movs r2, 0x12
+ adds r3, r6, 0
+ bl sub_81B2578
+_081B2714:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B26BC
+
+ thumb_func_start sub_81B2720
+sub_81B2720: @ 81B2720
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_08615A80
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x12
+ str r2, [sp, 0x4]
+ movs r2, 0x3
+ str r2, [sp, 0x8]
+ movs r2, 0x12
+ movs r3, 0
+ bl sub_81B2578
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2720
+
+ thumb_func_start sub_81B2748
+sub_81B2748: @ 81B2748
+ push {r4-r7,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r5, r4, 0
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x5
+ bl GetWindowAttribute
+ lsls r0, 28
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ beq _081B277C
+ ldr r5, =gUnknown_08615AF1
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615AC0
+ b _081B297E
+ .pool
+_081B277C:
+ movs r0, 0x20
+ ands r0, r4
+ cmp r0, 0
+ beq _081B27D8
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _081B2794
+ ldr r5, =gUnknown_08615ADF
+ b _081B2942
+ .pool
+_081B2794:
+ ldr r5, =gUnknown_08615ADF
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AEE
+ b _081B2976
+ .pool
+_081B27D8:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _081B2824
+ ldr r5, =gUnknown_08615ADF
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AEE
+ b _081B2976
+ .pool
+_081B2824:
+ movs r0, 0x4
+ ands r0, r4
+ cmp r0, 0
+ beq _081B2880
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _081B283C
+ ldr r5, =gUnknown_08615ADF
+ b _081B2942
+ .pool
+_081B283C:
+ ldr r5, =gUnknown_08615ADF
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AEE
+ b _081B2976
+ .pool
+_081B2880:
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _081B28DC
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _081B2898
+ ldr r5, =gUnknown_08615ADC
+ b _081B2942
+ .pool
+_081B2898:
+ ldr r5, =gUnknown_08615AD3
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AE8
+ b _081B2976
+ .pool
+_081B28DC:
+ movs r0, 0x8
+ ands r0, r4
+ cmp r0, 0
+ beq _081B2938
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _081B28F4
+ ldr r5, =gUnknown_08615AD9
+ b _081B2942
+ .pool
+_081B28F4:
+ ldr r5, =gUnknown_08615AD0
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AE5
+ b _081B2976
+ .pool
+_081B2938:
+ movs r0, 0x1
+ ands r5, r0
+ cmp r5, 0
+ beq _081B29BC
+ ldr r5, =gUnknown_08615AD6
+_081B2942:
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AEB
+_081B2976:
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABD
+_081B297E:
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ b _081B2A24
+ .pool
+_081B29BC:
+ ldr r5, =gUnknown_08615ACD
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABA
+ ldrb r1, [r4]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r5, =gUnknown_08615AE2
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615ABD
+ ldrb r1, [r4]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x2]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x2]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+_081B2A24:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2748
+
+ thumb_func_start sub_81B2A3C
+sub_81B2A3C: @ 81B2A3C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r5, [r3]
+ ldrb r3, [r3, 0x1]
+ lsls r4, r2, 1
+ adds r4, r2
+ ldr r2, =gUnknown_086157FC
+ adds r4, r2
+ str r4, [sp]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0
+ adds r2, r5, 0
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2A3C
+
+ thumb_func_start sub_81B2A70
+sub_81B2A70: @ 81B2A70
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B2AC0
+ cmp r4, 0x1
+ bne _081B2AAA
+ ldr r5, [r6]
+ ldrb r0, [r6, 0x8]
+ ldrb r1, [r5, 0x4]
+ lsrs r1, 3
+ ldrb r2, [r5, 0x5]
+ lsrs r2, 3
+ ldrb r3, [r5, 0x6]
+ lsrs r3, 3
+ ldrb r4, [r5, 0x7]
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2AAA:
+ adds r0, r7, 0
+ add r1, sp, 0x8
+ bl GetMonNickname
+ ldrb r0, [r6, 0x8]
+ ldr r3, [r6]
+ adds r3, 0x4
+ add r1, sp, 0x8
+ movs r2, 0
+ bl sub_81B2A3C
+_081B2AC0:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2A70
+
+ thumb_func_start sub_81B2AC8
+sub_81B2AC8: @ 81B2AC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ mov r8, r4
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B2B34
+ adds r0, r6, 0
+ bl sub_81B205C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081B2AF6
+ cmp r0, 0x6
+ bne _081B2B34
+_081B2AF6:
+ cmp r4, 0
+ beq _081B2B1C
+ ldr r5, [r7]
+ ldrb r0, [r7, 0x8]
+ ldrb r1, [r5, 0x8]
+ lsrs r1, 3
+ ldrb r2, [r5, 0x9]
+ lsrs r2, 3
+ adds r2, 0x1
+ ldrb r3, [r5, 0xA]
+ lsrs r3, 3
+ ldrb r4, [r5, 0xB]
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2B1C:
+ mov r0, r8
+ cmp r0, 0x2
+ beq _081B2B34
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r7, 0
+ bl sub_81B2B40
+_081B2B34:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2AC8
+
+ thumb_func_start sub_81B2B40
+sub_81B2B40: @ 81B2B40
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r5, =gStringVar2
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar1
+ ldr r1, =gUnknown_085E8D4D
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ ldrb r0, [r6, 0x8]
+ ldr r3, [r6]
+ adds r3, 0x8
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81B2A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2B40
+
+ thumb_func_start sub_81B2B8C
+sub_81B2B8C: @ 81B2B8C
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0x1
+ bne _081B2BBE
+ ldr r5, [r7]
+ ldrb r0, [r7, 0x8]
+ ldrb r1, [r5, 0xC]
+ lsrs r1, 3
+ ldrb r2, [r5, 0xD]
+ lsrs r2, 3
+ adds r2, 0x1
+ ldrb r3, [r5, 0xE]
+ lsrs r3, 3
+ ldrb r4, [r5, 0xF]
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2BBE:
+ adds r0, r6, 0
+ add r1, sp, 0x8
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl GetMonGender
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ add r2, sp, 0x8
+ adds r3, r7, 0
+ bl sub_81B2BF4
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2B8C
+
+ thumb_func_start sub_81B2BF4
+sub_81B2BF4: @ 81B2BF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ adds r7, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r5, r4, 0
+ ldrb r0, [r7, 0x8]
+ movs r1, 0x5
+ bl GetWindowAttribute
+ lsls r0, 28
+ lsrs r6, r0, 24
+ cmp r4, 0
+ beq _081B2CBA
+ cmp r4, 0x20
+ beq _081B2C24
+ cmp r4, 0x1D
+ bne _081B2C38
+_081B2C24:
+ movs r0, 0xB
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gSpeciesNames
+ adds r1, r0
+ mov r0, r9
+ bl StringCompare
+ cmp r0, 0
+ beq _081B2CBA
+_081B2C38:
+ mov r0, r8
+ cmp r0, 0
+ beq _081B2C48
+ cmp r0, 0xFE
+ beq _081B2C88
+ b _081B2CBA
+ .pool
+_081B2C48:
+ ldr r5, =gUnknown_08615AC3
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615AB6
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r7, 0x8]
+ ldr r1, =gUnknown_085E8D49
+ ldr r3, [r7]
+ adds r3, 0xC
+ movs r2, 0x2
+ bl sub_81B2A3C
+ b _081B2CBA
+ .pool
+_081B2C88:
+ ldr r5, =gUnknown_08615AC5
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615AB6
+ ldrb r1, [r4]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r6
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r7, 0x8]
+ ldr r1, =gUnknown_085E8D4B
+ ldr r3, [r7]
+ adds r3, 0xC
+ movs r2, 0x2
+ bl sub_81B2A3C
+_081B2CBA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2BF4
+
+ thumb_func_start sub_81B2CD4
+sub_81B2CD4: @ 81B2CD4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ mov r8, r4
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B2D2E
+ cmp r4, 0
+ beq _081B2D16
+ ldr r5, [r6]
+ ldrb r0, [r6, 0x8]
+ ldrb r1, [r5, 0x10]
+ lsrs r1, 3
+ ldrb r2, [r5, 0x11]
+ lsrs r2, 3
+ adds r2, 0x1
+ ldrb r3, [r5, 0x12]
+ lsrs r3, 3
+ ldrb r4, [r5, 0x13]
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2D16:
+ mov r0, r8
+ cmp r0, 0x2
+ beq _081B2D2E
+ adds r0, r7, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl sub_81B2D3C
+_081B2D2E:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2CD4
+
+ thumb_func_start sub_81B2D3C
+sub_81B2D3C: @ 81B2D3C
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, =gStringVar1
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r1, 0xBA
+ strb r1, [r0]
+ movs r1, 0xFF
+ strb r1, [r0, 0x1]
+ ldrb r0, [r4, 0x8]
+ ldr r3, [r4]
+ adds r3, 0x10
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_81B2A3C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2D3C
+
+ thumb_func_start sub_81B2D74
+sub_81B2D74: @ 81B2D74
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r4, r2, 24
+ mov r8, r4
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B2DD0
+ cmp r4, 0
+ beq _081B2DB8
+ ldr r5, [r6]
+ ldrb r0, [r6, 0x8]
+ ldrb r1, [r5, 0x14]
+ lsrs r1, 3
+ adds r1, 0x1
+ ldrb r2, [r5, 0x15]
+ lsrs r2, 3
+ adds r2, 0x1
+ ldrb r3, [r5, 0x16]
+ lsrs r3, 3
+ ldrb r4, [r5, 0x17]
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2DB8:
+ mov r0, r8
+ cmp r0, 0x2
+ beq _081B2DD0
+ adds r0, r7, 0
+ movs r1, 0x3A
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl sub_81B2DDC
+_081B2DD0:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2D74
+
+ thumb_func_start sub_81B2DDC
+sub_81B2DDC: @ 81B2DDC
+ push {r4-r6,lr}
+ adds r2, r0, 0
+ adds r6, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, =gStringVar2
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar1
+ ldr r1, =gUnknown_085E8D3E
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl StringAppend
+ ldrb r0, [r6, 0x8]
+ ldr r3, [r6]
+ adds r3, 0x14
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81B2A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2DDC
+
+ thumb_func_start sub_81B2E28
+sub_81B2E28: @ 81B2E28
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B2E5C
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ adds r2, r6, 0
+ bl sub_81B2E64
+_081B2E5C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B2E28
+
+ thumb_func_start sub_81B2E64
+sub_81B2E64: @ 81B2E64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r6, r2, 0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ ldrb r0, [r6, 0x8]
+ movs r1, 0x5
+ bl GetWindowAttribute
+ lsls r0, 28
+ lsrs r7, r0, 24
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ bl sub_8075060
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _081B2EB0
+ cmp r0, 0x2
+ blt _081B2EE0
+ cmp r0, 0x4
+ bgt _081B2EE0
+ ldr r5, =gUnknown_08615AC7
+ b _081B2EB2
+ .pool
+_081B2EB0:
+ ldr r5, =gUnknown_08615AC9
+_081B2EB2:
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615AB8
+ ldrb r1, [r4]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ b _081B2F04
+ .pool
+_081B2EE0:
+ ldr r5, =gUnknown_08615ACB
+ ldrb r0, [r5]
+ bl sub_81B2564
+ ldr r4, =gUnknown_08615AB8
+ ldrb r1, [r4]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+ ldrb r0, [r5, 0x1]
+ bl sub_81B2564
+ ldrb r1, [r4, 0x1]
+ adds r1, r7
+ movs r2, 0x2
+ bl LoadPalette
+_081B2F04:
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ mov r2, r9
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r2, [r6]
+ ldrb r2, [r2, 0x1A]
+ bl sub_8075034
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6, 0x8]
+ ldr r4, =gUnknown_08615AB8
+ ldrb r1, [r4, 0x1]
+ ldr r3, [r6]
+ ldrb r2, [r3, 0x18]
+ ldrb r3, [r3, 0x19]
+ str r5, [sp]
+ movs r7, 0x1
+ str r7, [sp, 0x4]
+ bl FillWindowPixelRect
+ ldrb r0, [r6, 0x8]
+ ldrb r1, [r4]
+ ldr r3, [r6]
+ ldrb r2, [r3, 0x18]
+ ldrb r3, [r3, 0x19]
+ adds r3, 0x1
+ str r5, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ bl FillWindowPixelRect
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1A]
+ cmp r5, r0
+ beq _081B2F88
+ ldrb r0, [r6, 0x8]
+ ldrb r2, [r1, 0x18]
+ adds r2, r5
+ ldrb r3, [r1, 0x19]
+ ldrb r1, [r1, 0x1A]
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ str r7, [sp, 0x4]
+ movs r1, 0xD
+ bl FillWindowPixelRect
+ ldrb r0, [r6, 0x8]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x18]
+ adds r2, r5
+ ldrb r3, [r1, 0x19]
+ adds r3, 0x1
+ ldrb r1, [r1, 0x1A]
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x2
+ bl FillWindowPixelRect
+_081B2F88:
+ ldrb r0, [r6, 0x8]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2E64
+
+ thumb_func_start sub_81B2FA8
+sub_81B2FA8: @ 81B2FA8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ cmp r7, 0
+ beq _081B2FF2
+ ldr r5, [r6]
+ ldrb r1, [r5, 0x1C]
+ movs r4, 0x7
+ adds r0, r1, 0
+ ands r0, r4
+ ldrb r2, [r5, 0x1E]
+ adds r0, r2
+ adds r3, r0, 0x7
+ asrs r3, 3
+ ldrb r2, [r5, 0x1D]
+ adds r0, r2, 0
+ ands r0, r4
+ ldrb r4, [r5, 0x1F]
+ adds r0, r4
+ adds r4, r0, 0x7
+ ldrb r0, [r6, 0x8]
+ lsrs r1, 3
+ lsrs r2, 3
+ lsrs r4, 3
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ ldr r4, [r5]
+ bl _call_via_r4
+_081B2FF2:
+ cmp r7, 0x2
+ beq _081B3018
+ ldrb r0, [r6, 0x8]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x1C]
+ ldrb r3, [r1, 0x1D]
+ ldr r1, =gUnknown_086157FC
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r4, =gUnknown_08615B60
+ mov r5, r8
+ lsls r1, r5, 2
+ adds r1, r4
+ ldr r1, [r1]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ bl box_print
+_081B3018:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B2FA8
+
+ thumb_func_start sub_81B302C
+sub_81B302C: @ 81B302C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0xFF
+ beq _081B304C
+ movs r1, 0
+ bl sub_8198070
+ ldrb r0, [r4]
+ bl RemoveWindow
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+_081B304C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B302C
+
+ thumb_func_start display_pokemon_menu_message
+display_pokemon_menu_message: @ 81B3054
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r0, =gUnknown_0203CEC4
+ ldr r4, [r0]
+ adds r5, r4, 0
+ adds r5, 0xD
+ ldrb r0, [r4, 0xD]
+ cmp r0, 0xFF
+ beq _081B306E
+ adds r0, r5, 0
+ bl sub_81B302C
+_081B306E:
+ cmp r6, 0x7F
+ beq _081B313C
+ adds r0, r6, 0
+ subs r0, 0x15
+ cmp r0, 0x5
+ bhi _081B30D4
+ lsls r0, 2
+ ldr r1, =_081B308C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B308C:
+ .4byte _081B30A4
+ .4byte _081B30BC
+ .4byte _081B30BC
+ .4byte _081B30AC
+ .4byte _081B30B4
+ .4byte _081B30C4
+_081B30A4:
+ ldr r0, =gUnknown_08615928
+ b _081B30C6
+ .pool
+_081B30AC:
+ ldr r0, =gUnknown_08615930
+ b _081B30C6
+ .pool
+_081B30B4:
+ ldr r0, =gUnknown_08615938
+ b _081B30C6
+ .pool
+_081B30BC:
+ ldr r0, =gUnknown_08615940
+ b _081B30C6
+ .pool
+_081B30C4:
+ ldr r0, =gUnknown_08615948
+_081B30C6:
+ bl AddWindow
+ strb r0, [r5]
+ b _081B30DC
+ .pool
+_081B30D4:
+ ldr r0, =gUnknown_08615920
+ bl AddWindow
+ strb r0, [r4, 0xD]
+_081B30DC:
+ cmp r6, 0
+ bne _081B3104
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081B30F8
+ movs r6, 0x2
+ b _081B3104
+ .pool
+_081B30F8:
+ bl sub_81B314C
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B3104
+ movs r6, 0x1
+_081B3104:
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0x4F
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_08615AF4
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldrb r0, [r5]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+_081B313C:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end display_pokemon_menu_message
+
+ thumb_func_start sub_81B314C
+sub_81B314C: @ 81B314C
+ push {r4-r7,lr}
+ ldr r7, =gPlayerParty
+ movs r6, 0
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x1
+ bne _081B3168
+_081B315A:
+ movs r0, 0x1
+ b _081B31AA
+ .pool
+_081B3168:
+ movs r5, 0
+_081B316A:
+ movs r0, 0x64
+ muls r0, r5
+ adds r4, r7, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B319A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081B3194
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _081B319A
+_081B3194:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_081B319A:
+ cmp r6, 0x1
+ bhi _081B315A
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _081B316A
+ movs r0, 0
+_081B31AA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B314C
+
+ thumb_func_start sub_81B31B0
+sub_81B31B0: @ 81B31B0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ beq _081B320C
+ cmp r4, 0x1
+ bgt _081B31CC
+ cmp r4, 0
+ beq _081B31D2
+ b _081B321C
+_081B31CC:
+ cmp r4, 0x2
+ beq _081B3214
+ b _081B321C
+_081B31D2:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x17]
+ lsls r0, 1
+ movs r3, 0x13
+ subs r3, r0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xA
+ str r0, [sp]
+ ldrb r0, [r1, 0x17]
+ lsls r0, 25
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0xE
+ str r0, [sp, 0x8]
+ ldr r0, =0x000002e9
+ str r0, [sp, 0xC]
+ add r0, sp, 0x14
+ movs r1, 0x2
+ movs r2, 0x13
+ bl rbox_template_set
+ b _081B3226
+ .pool
+_081B320C:
+ ldr r0, =gUnknown_08615950
+ b _081B321E
+ .pool
+_081B3214:
+ ldr r0, =gUnknown_08615958
+ b _081B321E
+ .pool
+_081B321C:
+ ldr r0, =gUnknown_08615960
+_081B321E:
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x14]
+ str r1, [sp, 0x18]
+_081B3226:
+ add r0, sp, 0x14
+ bl AddWindow
+ ldr r6, =gUnknown_0203CEC4
+ ldr r1, [r6]
+ strb r0, [r1, 0xC]
+ ldr r0, [r6]
+ ldrb r0, [r0, 0xC]
+ movs r1, 0
+ movs r2, 0x4F
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ cmp r4, 0x3
+ bne _081B3250
+ ldr r0, [r6]
+ b _081B32E2
+ .pool
+_081B3250:
+ movs r0, 0x1
+ movs r1, 0
+ bl GetMenuCursorDimensionByFont
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0x1
+ movs r1, 0x2
+ bl GetFontAttribute
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x17]
+ cmp r5, r0
+ bcs _081B32CA
+ adds r7, r6, 0
+ movs r6, 0
+_081B327A:
+ ldr r1, [r7]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r4, r0, r5
+ ldrb r0, [r4]
+ movs r2, 0x3
+ cmp r0, 0x12
+ bls _081B328C
+ movs r2, 0x4
+_081B328C:
+ ldrb r0, [r1, 0xC]
+ lsls r3, r5, 4
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r8
+ str r1, [sp]
+ str r6, [sp, 0x4]
+ lsls r1, r2, 1
+ adds r1, r2
+ ldr r2, =gUnknown_086157FC
+ adds r1, r2
+ str r1, [sp, 0x8]
+ str r6, [sp, 0xC]
+ ldr r2, =gUnknown_08615C08
+ ldrb r1, [r4]
+ lsls r1, 3
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ mov r2, r9
+ bl AddTextPrinterParametrized2
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x17]
+ cmp r5, r0
+ bcc _081B327A
+_081B32CA:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r1, [r4]
+ ldrb r0, [r1, 0xC]
+ ldrb r1, [r1, 0x17]
+ movs r2, 0
+ movs r3, 0x1
+ bl InitMenuInUpperLeftCorner
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, [r4]
+_081B32E2:
+ ldrb r0, [r0, 0xC]
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B31B0
+
+ thumb_func_start sub_81B3300
+sub_81B3300: @ 81B3300
+ push {r4,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0x4F
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ ldr r2, =gTextFlags
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ bl sav2_get_text_speed
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ str r0, [sp, 0xC]
+ movs r0, 0x6
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl AddTextPrinterParametrized
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3300
+
+ thumb_func_start sub_81B334C
+sub_81B334C: @ 81B334C
+ push {lr}
+ ldr r0, =gUnknown_08615968
+ movs r1, 0x4F
+ movs r2, 0xD
+ movs r3, 0
+ bl CreateYesNoMenu
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B334C
+
+ thumb_func_start sub_81B3364
+sub_81B3364: @ 81B3364
+ push {r4,lr}
+ ldr r0, =gUnknown_08615970
+ bl AddWindow
+ ldr r4, =gUnknown_0203CEC4
+ ldr r1, [r4]
+ strb r0, [r1, 0xC]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ movs r1, 0
+ movs r2, 0x4F
+ movs r3, 0xD
+ bl SetWindowBorderStyle
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B3364
+
+ thumb_func_start sub_81B3394
+sub_81B3394: @ 81B3394
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ bl ClearWindowTilemap
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3394
+
+ thumb_func_start sub_81B33B4
+sub_81B33B4: @ 81B33B4
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ bne _081B33C8
+ bl sub_81B3414
+ b _081B3400
+_081B33C8:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r1, [r4]
+ ldr r0, =gUnknown_08615D70
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r1, 0x17]
+ movs r3, 0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x17]
+ cmp r3, r0
+ bcs _081B3400
+ ldr r1, =gUnknown_08615D38
+ lsls r0, r2, 2
+ adds r2, r0, r1
+_081B33E4:
+ ldr r1, [r4]
+ adds r1, 0xF
+ adds r1, r3
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x17]
+ cmp r3, r0
+ bcc _081B33E4
+_081B3400:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B33B4
+
+ thumb_func_start sub_81B3414
+sub_81B3414: @ 81B3414
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ ldr r2, =gUnknown_0203CEC4
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ movs r2, 0
+ bl AppendToList
+ movs r7, 0
+ ldr r0, =gUnknown_08615D7E
+ ldrh r0, [r0]
+ str r0, [sp]
+_081B3446:
+ movs r4, 0
+ adds r0, r7, 0x1
+ mov r8, r0
+ ldr r1, [sp]
+ cmp r1, 0xE
+ beq _081B34A0
+ movs r0, 0x64
+ mov r6, r10
+ muls r6, r0
+ ldr r5, =gUnknown_08615D7E
+_081B345A:
+ mov r1, r9
+ adds r0, r1, r6
+ adds r1, r7, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _081B3490
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ adds r2, r4, 0
+ adds r2, 0x13
+ lsls r2, 24
+ lsrs r2, 24
+ bl AppendToList
+ b _081B34A0
+ .pool
+_081B3490:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0xE
+ bne _081B345A
+_081B34A0:
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _081B3446
+ bl InBattlePike
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B3518
+ mov r0, r9
+ adds r0, 0x64
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B34D2
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ movs r2, 0x1
+ bl AppendToList
+_081B34D2:
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B3508
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ movs r2, 0x6
+ bl AppendToList
+ b _081B3518
+ .pool
+_081B3508:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ movs r2, 0x3
+ bl AppendToList
+_081B3518:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xF
+ adds r1, 0x17
+ movs r2, 0x2
+ bl AppendToList
+ 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_81B3414
+
+ thumb_func_start sub_81B353C
+sub_81B353C: @ 81B353C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r0, [r1, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r2, r1, 0
+ cmp r0, 0xC
+ bhi _081B35FE
+ lsls r0, 2
+ ldr r1, =_081B3560
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B3560:
+ .4byte _081B3594
+ .4byte _081B35B0
+ .4byte _081B35FE
+ .4byte _081B35FE
+ .4byte _081B35BC
+ .4byte _081B35FE
+ .4byte _081B35DC
+ .4byte _081B35FE
+ .4byte _081B35EE
+ .4byte _081B35F2
+ .4byte _081B35F6
+ .4byte _081B35FE
+ .4byte _081B35FA
+_081B3594:
+ bl InMultiBattleRoom
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B35AC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _081B35FE
+_081B35AC:
+ movs r1, 0x1
+ b _081B3600
+_081B35B0:
+ adds r0, r4, 0
+ bl sub_81B8A2C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ b _081B3600
+_081B35BC:
+ movs r0, 0x9
+ ldrsb r0, [r2, r0]
+ bl sub_81B856C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081B35D4
+ cmp r0, 0x1
+ beq _081B35D8
+ movs r1, 0x7
+ b _081B3600
+_081B35D4:
+ movs r1, 0x4
+ b _081B3600
+_081B35D8:
+ movs r1, 0x5
+ b _081B3600
+_081B35DC:
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ movs r1, 0x6
+ cmp r0, 0
+ beq _081B3600
+ movs r1, 0x7
+ b _081B3600
+_081B35EE:
+ movs r1, 0xA
+ b _081B3600
+_081B35F2:
+ movs r1, 0xB
+ b _081B3600
+_081B35F6:
+ movs r1, 0xC
+ b _081B3600
+_081B35FA:
+ movs r1, 0xD
+ b _081B3600
+_081B35FE:
+ movs r1, 0
+_081B3600:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B353C
+
+ thumb_func_start sub_81B3608
+sub_81B3608: @ 81B3608
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r4, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r4, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r7, =gPlayerParty
+ adds r5, r0, r7
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldrb r1, [r4, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0xC
+ beq _081B3674
+ ldrb r4, [r4, 0x9]
+ adds r0, r5, 0
+ bl sub_81B353C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_81B33B4
+ movs r0, 0
+ bl sub_81B31B0
+ movs r0, 0x15
+ bl display_pokemon_menu_message
+ b _081B36EA
+ .pool
+_081B3674:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ bne _081B36C0
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9980
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ str r1, [r0]
+ movs r0, 0
+ b _081B36EC
+ .pool
+_081B36C0:
+ ldrb r4, [r4, 0x9]
+ adds r0, r5, 0
+ bl sub_81B353C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_81B33B4
+ movs r0, 0x1
+ bl sub_81B31B0
+ ldr r1, =gStringVar2
+ adds r0, r6, 0
+ bl CopyItemName
+ movs r0, 0x1A
+ bl display_pokemon_menu_message
+_081B36EA:
+ movs r0, 0x1
+_081B36EC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B3608
+
+ thumb_func_start sub_81B36FC
+sub_81B36FC: @ 81B36FC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_81B3608
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B3720
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_81B3730
+ str r1, [r0]
+_081B3720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B36FC
+
+ thumb_func_start sub_81B3730
+sub_81B3730: @ 81B3730
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B37EE
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B37EE
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x3
+ bhi _081B3774
+ bl ProcessMenuInputNoWrapAround_other
+ b _081B3778
+ .pool
+_081B3774:
+ bl ProcessMenuInput_other
+_081B3778:
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ lsls r0, r4, 24
+ asrs r5, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r5, r0
+ beq _081B37EE
+ adds r0, 0x1
+ cmp r5, r0
+ bne _081B37CC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xE
+ bl sub_81B302C
+ ldr r2, =gUnknown_08615C08
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x17]
+ adds r0, r1
+ ldrb r0, [r0, 0xE]
+ lsls r0, 3
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+ b _081B37EE
+ .pool
+_081B37CC:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xE
+ bl sub_81B302C
+ ldr r1, =gUnknown_08615C08
+ ldr r0, [r4]
+ adds r0, 0xF
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl _call_via_r1
+_081B37EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3730
+
+ thumb_func_start sub_81B37FC
+sub_81B37FC: @ 81B37FC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B3828
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B37FC
+
+ thumb_func_start sub_81B3828
+sub_81B3828: @ 81B3828
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r1, [r4, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081B3868
+ bl pokemon_change_order
+ ldr r1, =gPlayerParty
+ ldrb r2, [r4, 0x9]
+ ldr r0, =gPlayerPartyCount
+ ldrb r3, [r0]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =sub_81B3894
+ str r0, [sp]
+ movs r0, 0x1
+ bl sub_81BF8EC
+ b _081B3880
+ .pool
+_081B3868:
+ ldr r1, =gPlayerParty
+ ldrb r2, [r4, 0x9]
+ ldr r0, =gPlayerPartyCount
+ ldrb r3, [r0]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =sub_81B3894
+ str r0, [sp]
+ movs r0, 0
+ bl sub_81BF8EC
+_081B3880:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3828
+
+ thumb_func_start sub_81B3894
+sub_81B3894: @ 81B3894
+ push {lr}
+ sub sp, 0xC
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r3, =gUnknown_0203CEC8
+ ldr r0, =gUnknown_0203CF20
+ ldrb r0, [r0]
+ strb r0, [r3, 0x9]
+ ldrb r0, [r3, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r3, 0xB]
+ movs r1, 0x15
+ str r1, [sp]
+ ldr r1, =sub_81B36FC
+ str r1, [sp, 0x4]
+ ldr r1, [r3]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3894
+
+ thumb_func_start brm_switch
+brm_switch: @ 81B38DC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, =gUnknown_0203CEC8
+ movs r0, 0x8
+ strb r0, [r5, 0xB]
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ movs r0, 0x3
+ bl display_pokemon_menu_message
+ ldrb r0, [r5, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ ldrb r0, [r5, 0x9]
+ strb r0, [r5, 0xA]
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1370
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end brm_switch
+
+ thumb_func_start sub_81B3938
+sub_81B3938: @ 81B3938
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ ldr r3, =gUnknown_0203CEC8
+ movs r1, 0xA
+ ldrsb r1, [r3, r1]
+ movs r0, 0x9
+ ldrsb r0, [r3, r0]
+ cmp r1, r0
+ bne _081B3968
+ adds r0, r7, 0
+ bl sub_81B407C
+ b _081B3ABA
+ .pool
+_081B3968:
+ add r2, sp, 0x8
+ movs r0, 0x9
+ ldrsb r0, [r3, r0]
+ ldr r1, =gUnknown_0203CEDC
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r4, 0
+ strb r0, [r2]
+ adds r0, r2, 0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ strh r0, [r6]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl GetWindowAttribute
+ strh r0, [r6, 0x2]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl GetWindowAttribute
+ strh r0, [r6, 0x4]
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ movs r1, 0x4
+ bl GetWindowAttribute
+ strh r0, [r6, 0x6]
+ strh r4, [r6, 0x10]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0xA
+ bne _081B39C4
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r2, 0
+ b _081B39C6
+ .pool
+_081B39C4:
+ movs r0, 0x1
+_081B39C6:
+ strh r0, [r6, 0x14]
+ add r2, sp, 0x8
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xA]
+ lsls r0, 24
+ asrs r0, 24
+ ldr r1, =gUnknown_0203CEDC
+ ldr r1, [r1]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ movs r4, 0
+ strb r0, [r2, 0x1]
+ adds r0, r2, 0
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x1
+ bl GetWindowAttribute
+ strh r0, [r6, 0x8]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x2
+ bl GetWindowAttribute
+ strh r0, [r6, 0xA]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x3
+ bl GetWindowAttribute
+ strh r0, [r6, 0xC]
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ movs r1, 0x4
+ bl GetWindowAttribute
+ strh r0, [r6, 0xE]
+ strh r4, [r6, 0x12]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ cmp r0, 0xA
+ bne _081B3A2C
+ movs r2, 0x1
+ negs r2, r2
+ adds r0, r2, 0
+ b _081B3A2E
+ .pool
+_081B3A2C:
+ movs r0, 0x1
+_081B3A2E:
+ strh r0, [r6, 0x16]
+ ldr r4, =gUnknown_0203CEF0
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ movs r2, 0x6
+ ldrsh r0, [r6, r2]
+ lsls r0, 1
+ muls r0, r1
+ bl Alloc
+ str r0, [r4]
+ ldr r5, =gUnknown_0203CEF4
+ movs r0, 0xC
+ ldrsh r1, [r6, r0]
+ movs r2, 0xE
+ ldrsh r0, [r6, r2]
+ lsls r0, 1
+ muls r0, r1
+ bl Alloc
+ str r0, [r5]
+ ldr r1, [r4]
+ ldrb r2, [r6]
+ ldrb r3, [r6, 0x2]
+ ldrb r0, [r6, 0x4]
+ str r0, [sp]
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl sub_8199CBC
+ ldr r1, [r5]
+ ldrb r2, [r6, 0x8]
+ ldrb r3, [r6, 0xA]
+ ldrb r0, [r6, 0xC]
+ str r0, [sp]
+ ldrb r0, [r6, 0xE]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl sub_8199CBC
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ bl ClearWindowTilemap
+ add r0, sp, 0x8
+ ldrb r0, [r0, 0x1]
+ bl ClearWindowTilemap
+ ldr r4, =gUnknown_0203CEC8
+ movs r0, 0x9
+ strb r0, [r4, 0xB]
+ ldrb r0, [r4, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ ldrb r0, [r4, 0xA]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ adds r0, r7, 0
+ bl sub_81B3CC0
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B3D48
+ str r1, [r0]
+_081B3ABA:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3938
+
+ thumb_func_start sub_81B3AD8
+sub_81B3AD8: @ 81B3AD8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r2, 0
+ mov r12, r3
+ ldr r7, [sp, 0x18]
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r5, r3, 0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ mov r8, r2
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ lsls r0, r2, 16
+ asrs r0, 16
+ adds r4, r1, r0
+ cmp r4, 0
+ blt _081B3B02
+ cmp r1, 0x1F
+ ble _081B3B06
+_081B3B02:
+ movs r0, 0
+ b _081B3B34
+_081B3B06:
+ cmp r1, 0
+ bge _081B3B1A
+ negs r0, r1
+ strb r0, [r6]
+ movs r0, 0
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r2, r3
+ strb r0, [r7]
+ b _081B3B32
+_081B3B1A:
+ movs r0, 0
+ strb r0, [r6]
+ mov r0, r12
+ strb r5, [r0]
+ cmp r4, 0x1F
+ ble _081B3B2E
+ movs r0, 0x20
+ subs r0, r5
+ strb r0, [r7]
+ b _081B3B32
+_081B3B2E:
+ mov r1, r8
+ strb r1, [r7]
+_081B3B32:
+ movs r0, 0x1
+_081B3B34:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B3AD8
+
+ thumb_func_start sub_81B3B40
+sub_81B3B40: @ 81B3B40
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ str r0, [sp, 0x28]
+ ldr r0, [sp, 0x54]
+ ldr r4, [sp, 0x58]
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r4, 16
+ lsrs r4, 16
+ str r4, [sp, 0x30]
+ lsls r1, 16
+ asrs r7, r1, 16
+ lsrs r0, r3, 16
+ str r0, [sp, 0x2C]
+ asrs r3, 16
+ mov r8, r3
+ mov r5, sp
+ adds r5, 0x25
+ mov r6, sp
+ adds r6, 0x26
+ str r6, [sp]
+ adds r0, r7, 0
+ mov r1, r8
+ add r2, sp, 0x24
+ adds r3, r5, 0
+ bl sub_81B3AD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B3BFA
+ ldrb r2, [r5]
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldrb r0, [r6]
+ str r0, [sp]
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0
+ mov r3, r9
+ bl FillBgTilemapBufferRect_Palette0
+ ldr r1, [sp, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ adds r0, r7, r0
+ lsls r0, 16
+ asrs r0, 16
+ str r6, [sp]
+ mov r1, r8
+ add r2, sp, 0x24
+ adds r3, r5, 0
+ bl sub_81B3AD8
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B3BFA
+ add r0, sp, 0x24
+ ldrb r2, [r0]
+ ldr r1, [sp, 0x2C]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ ldrb r0, [r5]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ ldrb r0, [r6]
+ str r0, [sp, 0x10]
+ str r4, [sp, 0x14]
+ movs r0, 0x11
+ str r0, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ str r0, [sp, 0x20]
+ ldr r1, [sp, 0x28]
+ movs r3, 0
+ bl CopyRectToBgTilemapBufferRect
+_081B3BFA:
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B3B40
+
+ thumb_func_start sub_81B3C0C
+sub_81B3C0C: @ 81B3C0C
+ push {r4,lr}
+ ldr r4, =gSprites
+ ldrb r2, [r0, 0xB]
+ lsls r3, r2, 4
+ adds r3, r2
+ lsls r3, 2
+ adds r3, r4
+ lsls r1, 16
+ asrs r1, 13
+ ldrh r2, [r3, 0x24]
+ adds r2, r1
+ strh r2, [r3, 0x24]
+ ldrb r3, [r0, 0xA]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x24]
+ adds r3, r1
+ strh r3, [r2, 0x24]
+ ldrb r3, [r0, 0x9]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x24]
+ adds r3, r1
+ strh r3, [r2, 0x24]
+ ldrb r2, [r0, 0xC]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r2, [r0, 0x24]
+ adds r2, r1
+ strh r2, [r0, 0x24]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3C0C
+
+ thumb_func_start sub_81B3C60
+sub_81B3C60: @ 81B3C60
+ 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, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081B3C8E
+ ldr r2, =gUnknown_0203CEDC
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ lsls r1, 4
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ bl sub_81B3C0C
+_081B3C8E:
+ movs r1, 0x16
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _081B3CAC
+ ldr r2, =gUnknown_0203CEDC
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0xA
+ ldrsb r1, [r0, r1]
+ lsls r1, 4
+ ldr r0, [r2]
+ adds r0, r1
+ movs r2, 0x16
+ ldrsh r1, [r4, r2]
+ bl sub_81B3C0C
+_081B3CAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3C60
+
+ thumb_func_start sub_81B3CC0
+sub_81B3CC0: @ 81B3CC0
+ push {r4-r6,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 r5, r1, r0
+ movs r1, 0x14
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081B3D00
+ ldr r0, =gUnknown_0203CEF0
+ ldr r0, [r0]
+ ldrh r1, [r5, 0x10]
+ ldrh r2, [r5]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r3, 0x2
+ ldrsh r2, [r5, r3]
+ movs r4, 0x4
+ ldrsh r3, [r5, r4]
+ movs r6, 0x6
+ ldrsh r4, [r5, r6]
+ str r4, [sp]
+ movs r6, 0x14
+ ldrsh r4, [r5, r6]
+ str r4, [sp, 0x4]
+ bl sub_81B3B40
+_081B3D00:
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081B3D2E
+ ldr r0, =gUnknown_0203CEF4
+ ldr r0, [r0]
+ ldrh r1, [r5, 0x12]
+ ldrh r2, [r5, 0x8]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r3, 0xA
+ ldrsh r2, [r5, r3]
+ movs r4, 0xC
+ ldrsh r3, [r5, r4]
+ movs r6, 0xE
+ ldrsh r4, [r5, r6]
+ str r4, [sp]
+ movs r6, 0x16
+ ldrsh r4, [r5, r6]
+ str r4, [sp, 0x4]
+ bl sub_81B3B40
+_081B3D2E:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3CC0
+
+ thumb_func_start sub_81B3D48
+sub_81B3D48: @ 81B3D48
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r7, r0, 3
+ ldr r0, =gTasks + 0x8
+ mov r8, r0
+ adds r6, r7, r0
+ adds r0, r4, 0
+ bl sub_81B3CC0
+ adds r0, r4, 0
+ bl sub_81B3C60
+ ldrh r1, [r6, 0x14]
+ ldrh r2, [r6, 0x10]
+ adds r1, r2
+ strh r1, [r6, 0x10]
+ ldrh r0, [r6, 0x16]
+ ldrh r3, [r6, 0x12]
+ adds r0, r3
+ strh r0, [r6, 0x12]
+ add r2, sp, 0x8
+ ldrh r0, [r6]
+ adds r0, r1
+ strh r0, [r2]
+ adds r1, r2, 0
+ ldrh r0, [r6, 0x12]
+ ldrh r3, [r6, 0x8]
+ adds r2, r0, r3
+ strh r2, [r1, 0x2]
+ adds r0, r1, 0
+ ldrh r0, [r0]
+ cmp r0, 0x21
+ bls _081B3E3A
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0x21
+ bls _081B3E3A
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ negs r0, r0
+ strh r0, [r6, 0x14]
+ movs r2, 0x16
+ ldrsh r0, [r6, r2]
+ negs r0, r0
+ strh r0, [r6, 0x16]
+ bl swap_pokemon_and_oams
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r0, [r4, 0x9]
+ bl sub_81B0948
+ ldrb r0, [r4, 0xA]
+ bl sub_81B0948
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ ldr r5, =gUnknown_0203CEDC
+ ldr r1, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ movs r0, 0xA
+ ldrsb r0, [r4, r0]
+ ldr r1, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ ldr r0, =gUnknown_0203CEF0
+ ldr r1, [r0]
+ ldrb r2, [r6]
+ ldrb r3, [r6, 0x2]
+ ldrb r0, [r6, 0x4]
+ str r0, [sp]
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl sub_8199CBC
+ ldr r0, =gUnknown_0203CEF4
+ ldr r1, [r0]
+ ldrb r2, [r6, 0x8]
+ ldrb r3, [r6, 0xA]
+ ldrb r0, [r6, 0xC]
+ str r0, [sp]
+ ldrb r0, [r6, 0xE]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl sub_8199CBC
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ ldr r1, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl ClearWindowTilemap
+ movs r0, 0xA
+ ldrsb r0, [r4, r0]
+ ldr r1, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl ClearWindowTilemap
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, =sub_81B3E60
+ str r1, [r0]
+_081B3E3A:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B3D48
+
+ thumb_func_start sub_81B3E60
+sub_81B3E60: @ 81B3E60
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ adds r0, r6, 0
+ bl sub_81B3CC0
+ adds r0, r6, 0
+ bl sub_81B3C60
+ movs r1, 0x14
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081B3EE4
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081B3EE4
+ ldr r5, =gUnknown_0203CEC8
+ movs r0, 0x9
+ ldrsb r0, [r5, r0]
+ ldr r4, =gUnknown_0203CEDC
+ ldr r1, [r4]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ movs r0, 0xA
+ ldrsb r0, [r5, r0]
+ ldr r1, [r4]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ bl PutWindowTilemap
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gUnknown_0203CEF0
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =gUnknown_0203CEF4
+ ldr r0, [r0]
+ bl Free
+ adds r0, r6, 0
+ bl sub_81B407C
+ b _081B3F08
+ .pool
+_081B3EE4:
+ ldrh r1, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ adds r1, r0
+ strh r1, [r4, 0x10]
+ ldrh r0, [r4, 0x16]
+ ldrh r2, [r4, 0x12]
+ adds r0, r2
+ strh r0, [r4, 0x12]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0
+ bne _081B3EFE
+ strh r1, [r4, 0x14]
+_081B3EFE:
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081B3F08
+ strh r0, [r4, 0x16]
+_081B3F08:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B3E60
+
+ thumb_func_start oamt_swap_pos
+oamt_swap_pos: @ 81B3F10
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ ldrb r3, [r0]
+ ldrb r2, [r1]
+ strb r2, [r0]
+ strb r3, [r1]
+ ldr r5, =gSprites
+ ldrb r2, [r0]
+ lsls r3, r2, 4
+ adds r3, r2
+ lsls r3, 2
+ adds r3, r5
+ ldrh r6, [r3, 0x20]
+ ldrh r2, [r3, 0x22]
+ mov r8, r2
+ ldrh r2, [r3, 0x24]
+ mov r9, r2
+ ldrh r2, [r3, 0x26]
+ mov r10, r2
+ ldrb r4, [r1]
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r5
+ ldrh r2, [r2, 0x20]
+ strh r2, [r3, 0x20]
+ ldrb r2, [r0]
+ lsls r3, r2, 4
+ adds r3, r2
+ lsls r3, 2
+ adds r3, r5
+ ldrb r4, [r1]
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r5
+ ldrh r2, [r2, 0x22]
+ strh r2, [r3, 0x22]
+ ldrb r2, [r0]
+ lsls r3, r2, 4
+ adds r3, r2
+ lsls r3, 2
+ adds r3, r5
+ ldrb r4, [r1]
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r5
+ ldrh r2, [r2, 0x24]
+ strh r2, [r3, 0x24]
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ ldrb r3, [r1]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r5
+ ldrh r0, [r0, 0x26]
+ strh r0, [r2, 0x26]
+ ldrb r2, [r1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x20]
+ ldrb r2, [r1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ mov r2, r8
+ strh r2, [r0, 0x22]
+ ldrb r2, [r1]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ mov r2, r9
+ strh r2, [r0, 0x24]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r10
+ strh r1, [r0, 0x26]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end oamt_swap_pos
+
+ thumb_func_start swap_pokemon_and_oams
+swap_pokemon_and_oams: @ 81B3FDC
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, =gUnknown_0203CEDC
+ ldr r2, =gUnknown_0203CEC8
+ movs r3, 0x9
+ ldrsb r3, [r2, r3]
+ lsls r0, r3, 4
+ ldr r1, [r1]
+ adds r0, r1, r0
+ str r0, [sp]
+ ldrb r2, [r2, 0xA]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r0, r2, 4
+ adds r0, r1, r0
+ str r0, [sp, 0x4]
+ movs r1, 0x64
+ adds r4, r3, 0
+ muls r4, r1
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r5, r2, 0
+ muls r5, r1
+ adds r5, r0
+ movs r0, 0x64
+ bl Alloc
+ adds r6, r0, 0
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r6, 0
+ bl Free
+ ldr r0, [sp]
+ adds r0, 0xB
+ ldr r1, [sp, 0x4]
+ adds r1, 0xB
+ bl oamt_swap_pos
+ ldr r0, [sp]
+ adds r0, 0xA
+ ldr r1, [sp, 0x4]
+ adds r1, 0xA
+ bl oamt_swap_pos
+ ldr r0, [sp]
+ adds r0, 0x9
+ ldr r1, [sp, 0x4]
+ adds r1, 0x9
+ bl oamt_swap_pos
+ ldr r0, [sp]
+ adds r0, 0xC
+ ldr r1, [sp, 0x4]
+ adds r1, 0xC
+ bl oamt_swap_pos
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end swap_pokemon_and_oams
+
+ thumb_func_start sub_81B407C
+sub_81B407C: @ 81B407C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r4, =gUnknown_0203CEC8
+ movs r0, 0
+ strb r0, [r4, 0xB]
+ ldrb r0, [r4, 0x9]
+ movs r1, 0
+ bl sub_81B0FCC
+ ldrb r0, [r4, 0xA]
+ strb r0, [r4, 0x9]
+ ldrb r0, [r4, 0xA]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1370
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B407C
+
+ thumb_func_start brm_cancel_1
+brm_cancel_1: @ 81B40D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x6
+ bne _081B4110
+ movs r0, 0xF
+ bl display_pokemon_menu_message
+ b _081B4116
+ .pool
+_081B4110:
+ movs r0, 0
+ bl display_pokemon_menu_message
+_081B4116:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end brm_cancel_1
+
+ thumb_func_start sub_81B4134
+sub_81B4134: @ 81B4134
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gPlayerParty
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r1, [r1, 0x9]
+ movs r2, 0x8
+ bl sub_81B33B4
+ movs r0, 0x1
+ bl sub_81B31B0
+ movs r0, 0x18
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_81B3730
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4134
+
+ thumb_func_start sub_81B4198
+sub_81B4198: @ 81B4198
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B41C4
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4198
+
+ thumb_func_start sub_81B41C4
+sub_81B41C4: @ 81B41C4
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B41E0
+ ldr r2, =c2_8123744
+ movs r0, 0x2
+ movs r1, 0x5
+ bl GoToBagMenu
+ b _081B41E8
+ .pool
+_081B41E0:
+ ldr r1, =c2_8123744
+ movs r0, 0x2
+ bl sub_81C4F98
+_081B41E8:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B41C4
+
+ thumb_func_start c2_8123744
+c2_8123744: @ 81B41F0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r6, =gUnknown_0203CE7C
+ ldrh r0, [r6]
+ cmp r0, 0
+ bne _081B4224
+ ldr r3, =gUnknown_0203CEC8
+ ldrb r0, [r3, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r3, 0xB]
+ movs r1, 0x7F
+ str r1, [sp]
+ ldr r1, =sub_81B36FC
+ str r1, [sp, 0x4]
+ ldr r1, [r3]
+ b _081B425A
+ .pool
+_081B4224:
+ ldr r4, =gUnknown_0203CEFC
+ ldr r5, =gUnknown_0203CEC8
+ movs r0, 0x9
+ ldrsb r0, [r5, r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r7, =gPlayerParty
+ adds r0, r7
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ beq _081B4278
+ ldrb r0, [r5, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r5, 0xB]
+ movs r1, 0x7F
+ str r1, [sp]
+ ldr r1, =sub_81B4350
+ str r1, [sp, 0x4]
+ ldr r1, [r5]
+_081B425A:
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+ b _081B42C0
+ .pool
+_081B4278:
+ ldrh r0, [r6]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B42A4
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl RemoveBagItem
+ movs r0, 0x9
+ ldrsb r0, [r5, r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ ldrh r1, [r6]
+ bl sub_81B1DB8
+ bl sub_81B452C
+ b _081B42C0
+_081B42A4:
+ ldrb r0, [r5, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r5, 0xB]
+ movs r1, 0x7F
+ str r1, [sp]
+ ldr r1, =sub_81B42D0
+ str r1, [sp, 0x4]
+ ldr r1, [r5]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+_081B42C0:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_8123744
+
+ thumb_func_start sub_81B42D0
+sub_81B42D0: @ 81B42D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B432C
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r4, [r0]
+ ldr r0, =gUnknown_0203CEC8
+ mov r8, r0
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B1C84
+ mov r1, r8
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ muls r0, r6
+ adds r0, r5
+ adds r1, r4, 0
+ bl sub_81B1DB8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ str r1, [r0]
+_081B432C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B42D0
+
+ thumb_func_start sub_81B4350
+sub_81B4350: @ 81B4350
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B4388
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gUnknown_0203CEFC
+ ldrh r1, [r1]
+ movs r2, 0x1
+ bl sub_81B1D1C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B43A8
+ str r1, [r0]
+_081B4388:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4350
+
+ thumb_func_start sub_81B43A8
+sub_81B43A8: @ 81B43A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B43CC
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B43DC
+ str r0, [r1]
+_081B43CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B43A8
+
+ thumb_func_start sub_81B43DC
+sub_81B43DC: @ 81B43DC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B4402
+ cmp r1, 0
+ bgt _081B43FC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B44D8
+ b _081B44EC
+_081B43FC:
+ cmp r1, 0x1
+ beq _081B44DE
+ b _081B44EC
+_081B4402:
+ ldr r5, =gUnknown_0203CE7C
+ ldrh r0, [r5]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r6, =gUnknown_0203CEFC
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B4458
+ ldrh r0, [r5]
+ movs r1, 0x1
+ bl AddBagItem
+ ldrh r0, [r6]
+ bl pokemon_item_not_removed
+ ldr r0, =gStringVar4
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+ b _081B44EC
+ .pool
+_081B4458:
+ ldrh r0, [r5]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B4498
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldrh r1, [r5]
+ bl sub_81B1DB8
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B44FC
+ str r1, [r0]
+ b _081B44EC
+ .pool
+_081B4498:
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldrh r1, [r5]
+ bl sub_81B1DB8
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ movs r2, 0x1
+ bl sub_81B1D68
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ str r1, [r0]
+ b _081B44EC
+ .pool
+_081B44D8:
+ movs r0, 0x5
+ bl PlaySE
+_081B44DE:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1C1C
+ str r0, [r1]
+_081B44EC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B43DC
+
+ thumb_func_start sub_81B44FC
+sub_81B44FC: @ 81B44FC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B451C
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B452C
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+_081B451C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B44FC
+
+ thumb_func_start sub_81B452C
+sub_81B452C: @ 81B452C
+ push {lr}
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSaveBlock1Ptr
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, =0x00002be0
+ adds r2, r0
+ ldr r1, [r1]
+ adds r1, r2
+ ldr r2, =sub_81B4578
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B452C
+
+ thumb_func_start sub_81B4578
+sub_81B4578: @ 81B4578
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r6, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r6, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, =gScriptResult
+ ldrh r7, [r0]
+ cmp r7, 0
+ bne _081B45F8
+ adds r0, r5, 0
+ bl sub_80D4680
+ ldr r4, =gUnknown_0203CEFC
+ adds r0, r5, 0
+ movs r1, 0xC
+ adds r2, r4, 0
+ bl SetMonData
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl RemoveBagItem
+ mov r0, r8
+ movs r1, 0x1
+ bl AddBagItem
+ ldrb r0, [r6, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r6, 0xB]
+ str r7, [sp]
+ ldr r1, =sub_81B36FC
+ str r1, [sp, 0x4]
+ ldr r1, [r6]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+ b _081B4614
+ .pool
+_081B45F8:
+ ldrb r0, [r6, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r6, 0xB]
+ movs r1, 0x7F
+ str r1, [sp]
+ ldr r1, =sub_81B4624
+ str r1, [sp, 0x4]
+ ldr r1, [r6]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+_081B4614:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4578
+
+ thumb_func_start sub_81B4624
+sub_81B4624: @ 81B4624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B468A
+ ldr r1, =gUnknown_0203CEFC
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081B4670
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gUnknown_0203CE7C
+ ldrh r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B1C84
+ b _081B467C
+ .pool
+_081B4670:
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_81B1D68
+_081B467C:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B469C
+ str r0, [r1]
+_081B468A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4624
+
+ thumb_func_start sub_81B469C
+sub_81B469C: @ 81B469C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r4, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r6, r1, r0
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B471C
+ ldr r5, =gUnknown_0203CEDC
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ lsls r0, 4
+ ldr r1, [r5]
+ adds r1, r0
+ adds r0, r6, 0
+ bl sub_81B5C94
+ ldrb r1, [r4, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0xC
+ bne _081B4716
+ adds r0, r6, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ beq _081B4704
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ lsls r0, 4
+ ldr r1, [r5]
+ adds r1, r0
+ movs r0, 0xB
+ movs r2, 0x1
+ bl sub_81B2FA8
+ b _081B4716
+ .pool
+_081B4704:
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ lsls r0, 4
+ ldr r1, [r5]
+ adds r1, r0
+ movs r0, 0xC
+ movs r2, 0x1
+ bl sub_81B2FA8
+_081B4716:
+ adds r0, r7, 0
+ bl sub_81B1C1C
+_081B471C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B469C
+
+ thumb_func_start sub_81B4724
+sub_81B4724: @ 81B4724
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl sub_81B1E00
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081B4788
+ cmp r0, 0x1
+ beq _081B47AC
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ bl sub_81B1CD0
+ b _081B47BA
+ .pool
+_081B4788:
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9980
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ b _081B47B4
+ .pool
+_081B47AC:
+ adds r0, r6, 0
+ bl pokemon_item_not_removed
+ ldr r0, =gStringVar4
+_081B47B4:
+ movs r1, 0x1
+ bl sub_81B1B5C
+_081B47BA:
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gTasks
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B469C
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4724
+
+ thumb_func_start sub_81B47E0
+sub_81B47E0: @ 81B47E0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ cmp r5, 0
+ bne _081B4864
+ ldr r1, =gStringVar1
+ adds r0, r7, 0
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9980
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ b _081B488A
+ .pool
+_081B4864:
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9E00
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B48A8
+_081B488A:
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B47E0
+
+ thumb_func_start sub_81B48A8
+sub_81B48A8: @ 81B48A8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B48CC
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B48DC
+ str r0, [r1]
+_081B48CC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B48A8
+
+ thumb_func_start sub_81B48DC
+sub_81B48DC: @ 81B48DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B491A
+ cmp r1, 0
+ bgt _081B4914
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B4964
+ b _081B4978
+ .pool
+_081B4914:
+ cmp r1, 0x1
+ beq _081B496A
+ b _081B4978
+_081B491A:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9E14
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B4988
+ str r1, [r0]
+ b _081B4978
+ .pool
+_081B4964:
+ movs r0, 0x5
+ bl PlaySE
+_081B496A:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1C1C
+ str r0, [r1]
+_081B4978:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B48DC
+
+ thumb_func_start sub_81B4988
+sub_81B4988: @ 81B4988
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r6, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B49EC
+ movs r1, 0
+ mov r0, sp
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ ldr r4, =gUnknown_0203CEDC
+ movs r0, 0x9
+ ldrsb r0, [r6, r0]
+ lsls r0, 4
+ ldr r1, [r4]
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_81B5C94
+ movs r0, 0x9
+ ldrsb r0, [r6, r0]
+ lsls r0, 4
+ ldr r1, [r4]
+ adds r1, r0
+ movs r0, 0xC
+ movs r2, 0x1
+ bl sub_81B2FA8
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+_081B49EC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4988
+
+ thumb_func_start sub_81B4A08
+sub_81B4A08: @ 81B4A08
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gPlayerParty
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r1, [r1, 0x9]
+ movs r2, 0x9
+ bl sub_81B33B4
+ movs r0, 0x2
+ bl sub_81B31B0
+ movs r0, 0x19
+ bl display_pokemon_menu_message
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_81B3730
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4A08
+
+ thumb_func_start sub_81B4A6C
+sub_81B4A6C: @ 81B4A6C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B4A98
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4A6C
+
+ thumb_func_start sub_81B4A98
+sub_81B4A98: @ 81B4A98
+ push {lr}
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x40
+ bl GetMonData
+ ldr r2, =gSaveBlock1Ptr
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =0x00002be0
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ ldr r1, =sub_81B4AE0
+ movs r2, 0x1
+ bl sub_8121478
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4A98
+
+ thumb_func_start sub_81B4AE0
+sub_81B4AE0: @ 81B4AE0
+ push {lr}
+ sub sp, 0xC
+ ldr r2, =gPaletteFade
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r3, =gUnknown_0203CEC8
+ ldrb r0, [r3, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r3, 0xB]
+ movs r1, 0x15
+ str r1, [sp]
+ ldr r1, =sub_81B36FC
+ str r1, [sp, 0x4]
+ ldr r1, [r3]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4AE0
+
+ thumb_func_start brm_take_2
+brm_take_2: @ 81B4B20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, =gUnknown_0203CEC4
+ ldr r0, [r5]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, [r5]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, =gUnknown_085E9855
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B4B6C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end brm_take_2
+
+ thumb_func_start sub_81B4B6C
+sub_81B4B6C: @ 81B4B6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B4B90
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B4BA0
+ str r0, [r1]
+_081B4B90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4B6C
+
+ thumb_func_start sub_81B4BA0
+sub_81B4BA0: @ 81B4BA0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B4BC6
+ cmp r1, 0
+ bgt _081B4BC0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B4C30
+ b _081B4C4C
+_081B4BC0:
+ cmp r1, 0x1
+ beq _081B4C36
+ b _081B4C4C
+_081B4BC6:
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_80D4700
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081B4C0C
+ ldr r0, =gUnknown_085E9877
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ b _081B4C4A
+ .pool
+_081B4C0C:
+ ldr r0, =gUnknown_085E9897
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ b _081B4C4A
+ .pool
+_081B4C30:
+ movs r0, 0x5
+ bl PlaySE
+_081B4C36:
+ ldr r0, =gUnknown_085E98B4
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B4C60
+_081B4C4A:
+ str r1, [r0]
+_081B4C4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4BA0
+
+ thumb_func_start sub_81B4C60
+sub_81B4C60: @ 81B4C60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B4C84
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B4C94
+ str r0, [r1]
+_081B4C84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4C60
+
+ thumb_func_start sub_81B4C94
+sub_81B4C94: @ 81B4C94
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B4CBE
+ cmp r1, 0
+ bgt _081B4CB8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B4D50
+ b _081B4D64
+_081B4CB8:
+ cmp r1, 0x1
+ beq _081B4D56
+ b _081B4D64
+_081B4CBE:
+ ldr r0, =gUnknown_0203CEC8
+ mov r8, r0
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ movs r7, 0x64
+ muls r0, r7
+ ldr r6, =gPlayerParty
+ adds r0, r6
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B4D24
+ mov r1, r8
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ muls r0, r7
+ adds r0, r6
+ bl sub_80D4680
+ ldr r0, =gUnknown_085E99B8
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B469C
+ str r1, [r0]
+ b _081B4D64
+ .pool
+_081B4D24:
+ adds r0, r4, 0
+ bl pokemon_item_not_removed
+ ldr r0, =gStringVar4
+ movs r1, 0
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+ b _081B4D64
+ .pool
+_081B4D50:
+ movs r0, 0x5
+ bl PlaySE
+_081B4D56:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1C1C
+ str r0, [r1]
+_081B4D64:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4C94
+
+ thumb_func_start sub_81B4D78
+sub_81B4D78: @ 81B4D78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r5, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r5, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r6, =gPlayerParty
+ adds r7, r0, r6
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldrb r4, [r5, 0x9]
+ adds r0, r7, 0
+ bl sub_81B353C
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_81B33B4
+ ldrb r1, [r5, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0xC
+ beq _081B4DE4
+ movs r0, 0
+ bl sub_81B31B0
+ movs r0, 0x15
+ bl display_pokemon_menu_message
+ b _081B4E02
+ .pool
+_081B4DE4:
+ movs r0, 0x1
+ bl sub_81B31B0
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =gStringVar2
+ bl CopyItemName
+ movs r0, 0x1A
+ bl display_pokemon_menu_message
+_081B4E02:
+ ldr r1, =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0, 0x8]
+ ldr r1, =sub_81B3730
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4D78
+
+ thumb_func_start brm_shift_sendout
+brm_shift_sendout: @ 81B4E2C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, =gUnknown_0203CEC4
+ ldr r0, [r5]
+ adds r0, 0xC
+ bl sub_81B302C
+ bl sub_81B8A7C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B4E5C
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B4E7A
+ .pool
+_081B4E5C:
+ ldr r0, [r5]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gStringVar4
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+_081B4E7A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end brm_shift_sendout
+
+ thumb_func_start sub_81B4E8C
+sub_81B4E8C: @ 81B4E8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ bl sub_81B8830
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ cmp r5, r6
+ bcs _081B4F36
+ ldr r2, =gUnknown_0203CEC8
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ mov r8, r0
+_081B4EC6:
+ ldr r0, =gUnknown_0203CEF8
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _081B4F2C
+ movs r0, 0x5
+ str r2, [sp]
+ bl PlaySE
+ ldr r2, [sp]
+ ldrb r0, [r2, 0x9]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r0, r5, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CEDC
+ ldrb r2, [r2, 0x9]
+ lsls r2, 24
+ asrs r2, 24
+ lsls r2, 4
+ ldr r1, [r1]
+ adds r1, r2
+ movs r2, 0x1
+ bl sub_81B2FA8
+ subs r0, r6, 0x1
+ cmp r5, r0
+ bne _081B4F04
+ bl sub_81B4F88
+_081B4F04:
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r0, =sub_81B1370
+ mov r1, r8
+ str r0, [r1]
+ b _081B4F68
+ .pool
+_081B4F2C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _081B4EC6
+_081B4F36:
+ ldr r0, =gStringVar1
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9830
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x20
+ bl PlaySE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+_081B4F68:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4E8C
+
+ thumb_func_start sub_81B4F88
+sub_81B4F88: @ 81B4F88
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r0, [r4, 0x9]
+ movs r1, 0
+ bl sub_81B0FCC
+ movs r0, 0x6
+ strb r0, [r4, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4F88
+
+ thumb_func_start sub_81B4FA8
+sub_81B4FA8: @ 81B4FA8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ bl sub_81B8830
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _081B502A
+ ldr r6, =gUnknown_0203CEF8
+ subs r2, r5, 0x1
+ adds r7, r6, 0
+ ldr r3, =gUnknown_0203CEC8
+_081B4FE2:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x9
+ ldrsb r0, [r3, r0]
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081B5020
+ adds r0, r4, 0
+ adds r4, r2, 0
+ cmp r0, r4
+ bge _081B500C
+ adds r3, r7, 0
+_081B4FFA:
+ adds r2, r0, r3
+ adds r1, r0, 0x1
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, r4
+ blt _081B4FFA
+_081B500C:
+ adds r1, r0, r6
+ movs r0, 0
+ strb r0, [r1]
+ b _081B502A
+ .pool
+_081B5020:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081B4FE2
+_081B502A:
+ ldr r6, =gUnknown_0203CEDC
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 4
+ ldr r1, [r6]
+ adds r1, r0
+ movs r0, 0x1
+ movs r2, 0x1
+ bl sub_81B2FA8
+ movs r4, 0
+ subs r5, 0x1
+ mov r0, r8
+ lsls r7, r0, 2
+ cmp r4, r5
+ bge _081B5078
+_081B504E:
+ ldr r0, =gUnknown_0203CEF8
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081B506E
+ adds r0, r4, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r1]
+ lsls r2, 4
+ subs r2, 0x10
+ ldr r1, [r6]
+ adds r1, r2
+ movs r2, 0x1
+ bl sub_81B2FA8
+_081B506E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ blt _081B504E
+_081B5078:
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ mov r2, r8
+ adds r1, r7, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B4FA8
+
+ thumb_func_start sub_81B50AC
+sub_81B50AC: @ 81B50AC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B12C0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B50AC
+
+ thumb_func_start sub_81B50C8
+sub_81B50C8: @ 81B50C8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ mov r9, r0
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x41
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r9
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r9
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4
+ movs r1, 0x50
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800F7DC
+ ldr r0, [r0]
+ adds r1, r6, 0
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_807A8D0
+ cmp r0, 0x1
+ beq _081B515C
+ cmp r0, 0x2
+ beq _081B5170
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_81B12C0
+ b _081B51B0
+ .pool
+_081B515C:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA210
+ bl StringExpandPlaceholders
+ b _081B5178
+ .pool
+_081B5170:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA234
+ bl StringExpandPlaceholders
+_081B5178:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EA1CA
+ adds r0, r4, 0
+ bl StringAppend
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+_081B51B0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B50C8
+
+ thumb_func_start brm_trade_1
+brm_trade_1: @ 81B51D4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ mov r8, r0
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ movs r6, 0x64
+ muls r0, r6
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x41
+ bl GetMonData
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ mov r1, r8
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r8
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0x50
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_800F7DC
+ ldr r0, [r0]
+ ldr r1, =gUnknown_02022C38
+ ldr r1, [r1]
+ ldr r2, =gUnknown_02022C3C
+ ldrh r3, [r2]
+ ldr r2, =gUnknown_02022C3E
+ ldrb r2, [r2]
+ str r2, [sp]
+ str r5, [sp, 0x4]
+ str r4, [sp, 0x8]
+ mov r2, r9
+ bl sub_807A7E0
+ cmp r0, 0
+ beq _081B52C8
+ ldr r5, =gStringVar4
+ ldr r1, =gUnknown_08615E0C
+ subs r0, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0x20
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r1, =gUnknown_085EA1CA
+ adds r0, r5, 0
+ bl StringAppend
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+ b _081B52D4
+ .pool
+_081B52C8:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r7, 0
+ bl sub_81B12C0
+_081B52D4:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end brm_trade_1
+
+ thumb_func_start sub_81B52E4
+sub_81B52E4: @ 81B52E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r4]
+ adds r0, 0xD
+ bl sub_81B302C
+ ldr r0, =gPlayerParty
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r1, [r1, 0x9]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_807A918
+ cmp r0, 0x2
+ beq _081B5340
+ cmp r0, 0x2
+ bgt _081B5328
+ cmp r0, 0x1
+ beq _081B532E
+ b _081B5368
+ .pool
+_081B5328:
+ cmp r0, 0x3
+ beq _081B5354
+ b _081B5368
+_081B532E:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA1E8
+ bl StringExpandPlaceholders
+ b _081B53C0
+ .pool
+_081B5340:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA210
+ bl StringExpandPlaceholders
+ b _081B53C0
+ .pool
+_081B5354:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA234
+ bl StringExpandPlaceholders
+ b _081B53C0
+ .pool
+_081B5368:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EA1CD
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B53FC
+ b _081B53E4
+ .pool
+_081B53C0:
+ movs r0, 0x20
+ bl PlaySE
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085EA1CA
+ adds r0, r4, 0
+ bl StringAppend
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+_081B53E4:
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B52E4
+
+ thumb_func_start sub_81B53FC
+sub_81B53FC: @ 81B53FC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B5420
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B5430
+ str r0, [r1]
+_081B5420:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B53FC
+
+ thumb_func_start sub_81B5430
+sub_81B5430: @ 81B5430
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B5456
+ cmp r1, 0
+ bgt _081B5450
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B545E
+ b _081B546A
+_081B5450:
+ cmp r1, 0x1
+ beq _081B5464
+ b _081B546A
+_081B5456:
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B546A
+_081B545E:
+ movs r0, 0x5
+ bl PlaySE
+_081B5464:
+ adds r0, r4, 0
+ bl sub_81B1C1C
+_081B546A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5430
+
+ thumb_func_start sub_81B5470
+sub_81B5470: @ 81B5470
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl GetMenuCursorPos
+ ldr r5, =gUnknown_0203CEC4
+ ldr r1, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, 0xF
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x13
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_08615D9C
+ lsls r0, r4, 3
+ adds r7, r0, r1
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _081B54A2
+ b _081B5664
+_081B54A2:
+ ldr r0, [r5]
+ adds r0, 0xC
+ bl sub_81B302C
+ ldr r0, [r5]
+ adds r0, 0xD
+ bl sub_81B302C
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B54C6
+ bl InUnionRoom
+ cmp r0, 0x1
+ bne _081B54E8
+_081B54C6:
+ adds r0, r4, 0
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081B54E4
+ movs r0, 0xD
+ bl display_pokemon_menu_message
+ b _081B5656
+ .pool
+_081B54E4:
+ ldrb r0, [r7, 0x4]
+ b _081B5652
+_081B54E8:
+ cmp r4, 0x7
+ bhi _081B5524
+ ldr r1, =0x00000867
+ adds r0, r4, r1
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B5524
+ ldr r0, =gUnknown_085E97FC
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B1C1C
+ str r1, [r0]
+ b _081B5664
+ .pool
+_081B5524:
+ ldr r1, =gUnknown_08615D9C
+ lsls r0, r4, 3
+ adds r5, r0, r1
+ ldr r0, [r5]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B553A
+ b _081B563C
+_081B553A:
+ subs r0, r4, 0x5
+ cmp r0, 0x7
+ bhi _081B5624
+ lsls r0, 2
+ ldr r1, =_081B5554
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B5554:
+ .4byte _081B5614
+ .4byte _081B5624
+ .4byte _081B5624
+ .4byte _081B557C
+ .4byte _081B55B8
+ .4byte _081B5624
+ .4byte _081B5574
+ .4byte _081B5574
+_081B5574:
+ adds r0, r6, 0
+ bl sub_8161560
+ b _081B5664
+_081B557C:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1, 0x1D]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r1, r0, 0
+ ldr r0, =gStringVar1
+ ldrb r1, [r1, 0x14]
+ bl sub_81245DC
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA196
+ b _081B55E8
+ .pool
+_081B55B8:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x25
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r1, r0, 0
+ ldr r0, =gStringVar1
+ ldrb r1, [r1, 0x14]
+ bl sub_81245DC
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085EA16B
+_081B55E8:
+ bl StringExpandPlaceholders
+ adds r0, r6, 0
+ bl sub_81B5674
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r0, r1
+ strh r4, [r0]
+ b _081B5664
+ .pool
+_081B5614:
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, =sub_8124690
+ b _081B5628
+ .pool
+_081B5624:
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, =c2_exit_to_overworld_2_switch
+_081B5628:
+ str r0, [r1]
+ adds r0, r6, 0
+ bl sub_81B12C0
+ b _081B5664
+ .pool
+_081B563C:
+ cmp r4, 0x1
+ beq _081B564A
+ cmp r4, 0x4
+ bne _081B5650
+ bl sub_81B5864
+ b _081B5656
+_081B564A:
+ bl sub_81B57DC
+ b _081B5656
+_081B5650:
+ ldrb r0, [r5, 0x4]
+_081B5652:
+ bl display_pokemon_menu_message
+_081B5656:
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =task_brm_cancel_1_on_keypad_a_or_b
+ str r0, [r1]
+_081B5664:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5470
+
+ thumb_func_start sub_81B5674
+sub_81B5674: @ 81B5674
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gStringVar4
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B56A4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5674
+
+ thumb_func_start sub_81B56A4
+sub_81B56A4: @ 81B56A4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B56C8
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B56D8
+ str r0, [r1]
+_081B56C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B56A4
+
+ thumb_func_start sub_81B56D8
+sub_81B56D8: @ 81B56D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B56FE
+ cmp r1, 0
+ bgt _081B56F8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B5714
+ b _081B572A
+_081B56F8:
+ cmp r1, 0x1
+ beq _081B571A
+ b _081B572A
+_081B56FE:
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, =c2_exit_to_overworld_2_switch
+ str r0, [r1]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B572A
+ .pool
+_081B5714:
+ movs r0, 0x5
+ bl PlaySE
+_081B571A:
+ ldr r0, =gFieldCallback
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, =gUnknown_0203CEEC
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_81B1C1C
+_081B572A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B56D8
+
+ thumb_func_start hm_add_c3_launch_phase_2
+hm_add_c3_launch_phase_2: @ 81B5738
+ push {lr}
+ bl pal_fill_black
+ ldr r0, =task_launch_hm_phase_2
+ movs r1, 0x8
+ bl CreateTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end hm_add_c3_launch_phase_2
+
+ thumb_func_start task_launch_hm_phase_2
+task_launch_hm_phase_2: @ 81B5750
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80ABDFC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B577C
+ bl brm_get_selected_species
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [r1]
+ ldr r0, =gUnknown_0203CEEC
+ ldr r0, [r0]
+ bl _call_via_r0
+ adds r0, r4, 0
+ bl DestroyTask
+_081B577C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_launch_hm_phase_2
+
+ thumb_func_start brm_get_selected_species
+brm_get_selected_species: @ 81B578C
+ push {lr}
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end brm_get_selected_species
+
+ thumb_func_start task_brm_cancel_1_on_keypad_a_or_b
+task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081B57CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B57D4
+_081B57CE:
+ adds r0, r2, 0
+ bl brm_cancel_1
+_081B57D4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_brm_cancel_1_on_keypad_a_or_b
+
+ thumb_func_start sub_81B57DC
+sub_81B57DC: @ 81B57DC
+ push {lr}
+ ldr r0, =0x00000888
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B57F8
+ movs r0, 0xC
+ bl display_pokemon_menu_message
+ b _081B57FE
+ .pool
+_081B57F8:
+ movs r0, 0xD
+ bl display_pokemon_menu_message
+_081B57FE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B57DC
+
+ thumb_func_start hm_surf_run_dp02scr
+hm_surf_run_dp02scr: @ 81B5804
+ push {lr}
+ bl brm_get_pokemon_selection
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ movs r0, 0x9
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end hm_surf_run_dp02scr
+
+ thumb_func_start sub_81B5820
+sub_81B5820: @ 81B5820
+ push {lr}
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B585C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B585C
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =hm_surf_run_dp02scr
+ str r0, [r1]
+ movs r0, 0x1
+ b _081B585E
+ .pool
+_081B585C:
+ movs r0, 0
+_081B585E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B5820
+
+ thumb_func_start sub_81B5864
+sub_81B5864: @ 81B5864
+ push {lr}
+ movs r0, 0x8
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B587A
+ movs r0, 0x9
+ bl display_pokemon_menu_message
+ b _081B5880
+_081B587A:
+ movs r0, 0x8
+ bl display_pokemon_menu_message
+_081B5880:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5864
+
+ thumb_func_start sub_81B5884
+sub_81B5884: @ 81B5884
+ push {lr}
+ ldr r0, =gUnknown_02037318
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B58A0
+ movs r0, 0
+ b _081B58A2
+ .pool
+_081B58A0:
+ movs r0, 0x1
+_081B58A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B5884
+
+ thumb_func_start sub_81B58A8
+sub_81B58A8: @ 81B58A8
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_8086194
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B58A8
+
+ thumb_func_start hm2_waterfall
+hm2_waterfall: @ 81B58D4
+ push {lr}
+ bl brm_get_pokemon_selection
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ movs r0, 0x2B
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end hm2_waterfall
+
+ thumb_func_start hm_prepare_waterfall
+hm_prepare_waterfall: @ 81B58F0
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B594C
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B594C
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =hm2_waterfall
+ str r0, [r1]
+ movs r0, 0x1
+ b _081B594E
+ .pool
+_081B594C:
+ movs r0, 0
+_081B594E:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end hm_prepare_waterfall
+
+ thumb_func_start sub_81B5958
+sub_81B5958: @ 81B5958
+ push {lr}
+ bl brm_get_pokemon_selection
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ movs r0, 0x2C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5958
+
+ thumb_func_start sub_81B5974
+sub_81B5974: @ 81B5974
+ push {lr}
+ bl sub_809D1E8
+ ldr r1, =gUnknown_02038C08
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x4]
+ cmp r0, 0
+ bne _081B5990
+ movs r0, 0
+ b _081B599E
+ .pool
+_081B5990:
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =sub_81B5958
+ str r0, [r1]
+ movs r0, 0x1
+_081B599E:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B5974
+
+ thumb_func_start party_menu_icon_anim
+@ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3)
+party_menu_icon_anim: @ 81B59B4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r7, r1, 0
+ adds r4, r2, 0
+ movs r6, 0x1
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B59EA
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B59EA
+ ldr r0, =gUnknown_08616020
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ eors r1, r6
+ negs r0, r1
+ orrs r0, r1
+ lsrs r6, r0, 31
+_081B59EA:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ adds r1, r0, 0
+ str r6, [sp]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ movs r3, 0x1
+ bl party_menu_link_mon_icon_anim
+ ldrb r0, [r7, 0x9]
+ adds r1, r5, 0
+ bl sub_81B5B38
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_icon_anim
+
+ thumb_func_start party_menu_link_mon_icon_anim
+@ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5)
+party_menu_link_mon_icon_anim: @ 81B5A2C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r6, r1, 0
+ adds r4, r2, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r3, 24
+ lsrs r7, r3, 24
+ cmp r5, 0
+ beq _081B5A7A
+ ldr r1, =sub_80D3014
+ ldr r0, [r4, 0x4]
+ ldrb r2, [r0]
+ ldrb r3, [r0, 0x1]
+ movs r0, 0x4
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ ldr r0, [sp, 0x20]
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ bl sub_80D2CC4
+ strb r0, [r4, 0x9]
+ ldr r2, =gSprites
+ ldrb r0, [r4, 0x9]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x3
+ adds r2, r7, 0
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_081B5A7A:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_link_mon_icon_anim
+
+ thumb_func_start sub_81B5A8C
+sub_81B5A8C: @ 81B5A8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_8075060
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _081B5AEC
+ cmp r0, 0x2
+ bgt _081B5AB4
+ cmp r0, 0x1
+ beq _081B5B04
+ b _081B5B1C
+_081B5AB4:
+ cmp r0, 0x3
+ beq _081B5AD4
+ cmp r0, 0x4
+ bne _081B5B1C
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl sub_80D32C8
+ b _081B5B2C
+ .pool
+_081B5AD4:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl sub_80D32C8
+ b _081B5B2C
+ .pool
+_081B5AEC:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x2
+ bl sub_80D32C8
+ b _081B5B2C
+ .pool
+_081B5B04:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x3
+ bl sub_80D32C8
+ b _081B5B2C
+ .pool
+_081B5B1C:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x4
+ bl sub_80D32C8
+_081B5B2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5A8C
+
+ thumb_func_start sub_81B5B38
+sub_81B5B38: @ 81B5B38
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81B5A8C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5B38
+
+ thumb_func_start sub_81B5B6C
+sub_81B5B6C: @ 81B5B6C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ ldr r5, =gSprites
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r6, r0, 2
+ adds r2, r6, r5
+ movs r7, 0
+ movs r3, 0
+ strh r3, [r2, 0x2E]
+ mov r12, r5
+ cmp r1, 0
+ bne _081B5BC4
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x10
+ bne _081B5BA4
+ strh r3, [r2, 0x24]
+ ldr r0, =0x0000fffc
+ strh r0, [r2, 0x26]
+ b _081B5BAA
+ .pool
+_081B5BA4:
+ ldr r0, =0x0000fffc
+ strh r0, [r2, 0x24]
+ strh r3, [r2, 0x26]
+_081B5BAA:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ mov r1, r12
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_81B5C08
+ b _081B5BD0
+ .pool
+_081B5BC4:
+ strh r3, [r2, 0x24]
+ strh r3, [r2, 0x26]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, =sub_81B5BDC
+_081B5BD0:
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5B6C
+
+ thumb_func_start sub_81B5BDC
+sub_81B5BDC: @ 81B5BDC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D30DC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081B5C02
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081B5C00
+ ldr r0, =0x0000fffd
+ strh r0, [r4, 0x26]
+ b _081B5C02
+ .pool
+_081B5C00:
+ strh r1, [r4, 0x26]
+_081B5C02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5BDC
+
+ thumb_func_start sub_81B5C08
+sub_81B5C08: @ 81B5C08
+ push {lr}
+ bl sub_80D30DC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5C08
+
+ thumb_func_start party_menu_held_item_object
+party_menu_held_item_object: @ 81B5C14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B5C3C
+ ldr r0, =gUnknown_08615EC0
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x3]
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4, 0xA]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81B5C94
+_081B5C3C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_held_item_object
+
+ thumb_func_start party_menu_link_mon_held_item_object
+party_menu_link_mon_held_item_object: @ 81B5C48
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r0, 0
+ beq _081B5C84
+ ldr r0, =gUnknown_08615EC0
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x2]
+ ldrb r2, [r2, 0x3]
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4, 0xA]
+ ldr r2, =gSprites
+ ldrb r0, [r4, 0xA]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81B5CB0
+_081B5C84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_link_mon_held_item_object
+
+ thumb_func_start sub_81B5C94
+sub_81B5C94: @ 81B5C94
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl sub_81B5CB0
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5C94
+
+ thumb_func_start sub_81B5CB0
+sub_81B5CB0: @ 81B5CB0
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _081B5CD8
+ ldr r2, =gSprites
+ ldrb r1, [r4, 0xA]
+ 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
+ b _081B5D24
+ .pool
+_081B5CD8:
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B5CFC
+ ldrb r1, [r4, 0xA]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _081B5D0E
+ .pool
+_081B5CFC:
+ ldrb r1, [r4, 0xA]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+_081B5D0E:
+ ldr r2, =gSprites
+ ldrb r1, [r4, 0xA]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_081B5D24:
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5CB0
+
+ thumb_func_start sub_81B5D30
+sub_81B5D30: @ 81B5D30
+ push {lr}
+ ldr r0, =gUnknown_08615EB0
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_08615EB8
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5D30
+
+ thumb_func_start sub_81B5D4C
+sub_81B5D4C: @ 81B5D4C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _081B5D60
+ cmp r2, 0x1
+ beq _081B5DA8
+ b _081B5DE4
+_081B5D60:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _081B5DE4
+_081B5D68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _081B5D94
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_81B5DF0
+_081B5D94:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _081B5D68
+ b _081B5DE4
+ .pool
+_081B5DA8:
+ movs r5, 0
+ b _081B5DDE
+_081B5DAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _081B5DD8
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_81B5DF0
+_081B5DD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_081B5DDE:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _081B5DAC
+_081B5DE4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5D4C
+
+ thumb_func_start sub_81B5DF0
+sub_81B5DF0: @ 81B5DF0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, =gSprites
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, =gUnknown_08615EC0
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, =sub_81B5E74
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5DF0
+
+ thumb_func_start sub_81B5E74
+sub_81B5E74: @ 81B5E74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _081B5EA8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _081B5EC6
+ .pool
+_081B5EA8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_081B5EC6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B5E74
+
+ thumb_func_start party_menu_pokeball_object
+party_menu_pokeball_object: @ 81B5ECC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B5EEA
+ ldr r0, =gUnknown_08615F08
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x6]
+ ldrb r2, [r2, 0x7]
+ movs r3, 0x8
+ bl CreateSprite
+ strb r0, [r4, 0xB]
+_081B5EEA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_pokeball_object
+
+ thumb_func_start party_menu_link_mon_pokeball_object
+party_menu_link_mon_pokeball_object: @ 81B5EF4
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _081B5F24
+ ldr r0, =gUnknown_08615F08
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x6]
+ ldrb r2, [r2, 0x7]
+ movs r3, 0x8
+ bl CreateSprite
+ strb r0, [r4, 0xB]
+ ldr r2, =gSprites
+ ldrb r0, [r4, 0xB]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081B5F24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_link_mon_pokeball_object
+
+ thumb_func_start sub_81B5F34
+sub_81B5F34: @ 81B5F34
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08615F08
+ adds r1, r3, 0
+ movs r3, 0x8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ ands r2, r3
+ movs r3, 0x8
+ orrs r2, r3
+ strb r2, [r1, 0x5]
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B5F34
+
+ thumb_func_start sub_81B5F74
+sub_81B5F74: @ 81B5F74
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, =gUnknown_08615F78
+ adds r1, r3, 0
+ movs r3, 0x8
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B5F74
+
+ thumb_func_start sub_81B5F98
+sub_81B5F98: @ 81B5F98
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ ldr r2, =gSprites
+ adds r0, r2
+ bl StartSpriteAnim
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5F98
+
+ thumb_func_start sub_81B5FBC
+sub_81B5FBC: @ 81B5FBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ cmp r6, 0
+ bne _081B6000
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, =gSprites
+ mov r8, r0
+ add r4, r8
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ lsls r5, r7, 4
+ adds r5, r7
+ lsls r5, 2
+ add r5, r8
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl StartSpriteAnim
+ strh r6, [r4, 0x26]
+ strh r6, [r5, 0x26]
+ b _081B602C
+ .pool
+_081B6000:
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, =gSprites
+ mov r8, r0
+ add r5, r8
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ add r4, r8
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl StartSpriteAnim
+ ldr r0, =0x0000fffc
+ strh r0, [r5, 0x26]
+ movs r0, 0x4
+ strh r0, [r4, 0x26]
+_081B602C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B5FBC
+
+ thumb_func_start sub_81B6040
+sub_81B6040: @ 81B6040
+ push {lr}
+ ldr r0, =gUnknown_08615EF8
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08615F70
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08615F00
+ bl LoadCompressedObjectPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6040
+
+ thumb_func_start party_menu_status_condition_object
+party_menu_status_condition_object: @ 81B6064
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B608C
+ ldr r0, =gUnknown_08616008
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x4]
+ ldrb r2, [r2, 0x5]
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl party_menu_get_status_condition_and_update_object
+_081B608C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_status_condition_object
+
+ thumb_func_start party_menu_link_mon_status_condition_object
+party_menu_link_mon_status_condition_object: @ 81B6098
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r0, 0
+ beq _081B60D4
+ ldr r0, =gUnknown_08616008
+ ldr r2, [r4, 0x4]
+ ldrb r1, [r2, 0x4]
+ ldrb r2, [r2, 0x5]
+ movs r3, 0
+ bl CreateSprite
+ strb r0, [r4, 0xC]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl party_menu_update_status_condition_object
+ ldr r2, =gSprites
+ ldrb r0, [r4, 0xC]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081B60D4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_link_mon_status_condition_object
+
+ thumb_func_start party_menu_get_status_condition_and_update_object
+@ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3)
+party_menu_get_status_condition_and_update_object: @ 81B60E4
+ push {r4,lr}
+ adds r4, r1, 0
+ bl sub_81B205C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl party_menu_update_status_condition_object
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end party_menu_get_status_condition_and_update_object
+
+ thumb_func_start party_menu_update_status_condition_object
+@ void party_menu_update_status_condition_object(u8 a1, void *a2)
+party_menu_update_status_condition_object: @ 81B60FC
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _081B610C
+ cmp r2, 0x6
+ bne _081B6128
+_081B610C:
+ ldr r2, =gSprites
+ ldrb r1, [r5, 0xC]
+ 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
+ b _081B6152
+ .pool
+_081B6128:
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, =gSprites
+ adds r0, r4
+ subs r1, r2, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldrb r1, [r5, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+_081B6152:
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end party_menu_update_status_condition_object
+
+ thumb_func_start sub_81B6160
+sub_81B6160: @ 81B6160
+ push {lr}
+ ldr r0, =gUnknown_08615FF8
+ bl LoadCompressedObjectPic
+ ldr r0, =gUnknown_08616000
+ bl LoadCompressedObjectPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6160
+
+ thumb_func_start sub_81B617C
+sub_81B617C: @ 81B617C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r0, =c2_815ABFC
+ mov r8, r0
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B61BC
+ movs r7, 0x1
+ bl sub_81B8984
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _081B61C0
+ .pool
+_081B61B0:
+ ldr r0, =gUnknown_0203CEC8
+ strb r5, [r0, 0x9]
+ b _081B6204
+ .pool
+_081B61BC:
+ movs r7, 0
+ movs r6, 0
+_081B61C0:
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r0, [r4]
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _081B621C
+ ldr r1, =gUnknown_0203CEC8
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ movs r5, 0
+_081B61D8:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B61FA
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _081B61B0
+_081B61FA:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _081B61D8
+_081B6204:
+ ldr r0, =sub_81B6280
+ movs r1, 0x7F
+ b _081B6230
+ .pool
+_081B621C:
+ ldrh r0, [r4]
+ bl GetPocketByItemId
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ cmp r0, 0x3
+ bne _081B622E
+ movs r1, 0x4
+_081B622E:
+ ldr r0, =sub_81B1370
+_081B6230:
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B617C
+
+ thumb_func_start c2_815ABFC
+c2_815ABFC: @ 81B6254
+ push {lr}
+ bl InBattlePyramid
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B626C
+ movs r0, 0xC
+ movs r1, 0x5
+ movs r2, 0
+ bl GoToBagMenu
+ b _081B6276
+_081B626C:
+ ldr r0, =gUnknown_0203CF30
+ ldr r1, [r0]
+ movs r0, 0x4
+ bl sub_81C4F98
+_081B6276:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_815ABFC
+
+ thumb_func_start sub_81B6280
+sub_81B6280: @ 81B6280
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B62B2
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r1, [r0, 0x8]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081B62A6
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B9140
+ str r0, [r1, 0x4]
+_081B62A6:
+ ldr r0, =gUnknown_03006328
+ ldr r1, =sub_81B6794
+ ldr r2, [r0]
+ adds r0, r3, 0
+ bl _call_via_r2
+_081B62B2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6280
+
+ thumb_func_start IsHPRecoveryItem
+@ bool8 IsHPRecoveryItem(u16 itemId)
+IsHPRecoveryItem: @ 81B62D0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _081B62EC
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003214
+ adds r0, r1
+ b _081B62F6
+ .pool
+_081B62EC:
+ ldr r1, =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_081B62F6:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _081B6308
+ movs r0, 0
+ b _081B630A
+ .pool
+_081B6308:
+ movs r0, 0x1
+_081B630A:
+ pop {r1}
+ bx r1
+ thumb_func_end IsHPRecoveryItem
+
+ thumb_func_start GetMedicineItemEffectMessage
+@ void GetMedicineItemEffectMessage(u16 itemId)
+GetMedicineItemEffectMessage: @ 81B6310
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _081B6326
+ b _081B64BC
+_081B6326:
+ lsls r0, 2
+ ldr r1, =_081B6334
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B6334:
+ .4byte _081B6380
+ .4byte _081B6394
+ .4byte _081B63A8
+ .4byte _081B63BC
+ .4byte _081B63D0
+ .4byte _081B63E4
+ .4byte _081B63F8
+ .4byte _081B64BC
+ .4byte _081B640C
+ .4byte _081B6430
+ .4byte _081B6420
+ .4byte _081B6460
+ .4byte _081B6470
+ .4byte _081B6450
+ .4byte _081B6440
+ .4byte _081B64BC
+ .4byte _081B6494
+ .4byte _081B6494
+ .4byte _081B64A8
+_081B6380:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9C3E
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B6394:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9C7C
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B63A8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9C8A
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B63BC:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9CA2
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B63D0:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9C5F
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B63E4:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9DBE
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B63F8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9DE1
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B640C:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9CE0
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B6420:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085E96E3
+ b _081B6474
+ .pool
+_081B6430:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085EA33C
+ b _081B6474
+ .pool
+_081B6440:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085EA343
+ b _081B6474
+ .pool
+_081B6450:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085EA35B
+ b _081B6474
+ .pool
+_081B6460:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085E96E6
+ b _081B6474
+ .pool
+_081B6470:
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_085E96EE
+_081B6474:
+ bl StringCopy
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9D25
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B6494:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9CF5
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B64A8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9CB7
+ bl StringExpandPlaceholders
+ b _081B64C4
+ .pool
+_081B64BC:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E96F6
+ bl StringExpandPlaceholders
+_081B64C4:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start UsingHPEVItemOnShedinja
+@ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId)
+UsingHPEVItemOnShedinja: @ 81B64D0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _081B64FC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, =0x0000012f
+ cmp r0, r1
+ bne _081B64FC
+ movs r0, 0
+ b _081B64FE
+ .pool
+_081B64FC:
+ movs r0, 0x1
+_081B64FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end UsingHPEVItemOnShedinja
+
+ thumb_func_start IsBlueYellowRedFlute
+@ bool8 IsBlueYellowRedFlute(u16 itemId)
+IsBlueYellowRedFlute: @ 81B6504
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ beq _081B6516
+ cmp r0, 0x29
+ beq _081B6516
+ cmp r0, 0x28
+ bne _081B651A
+_081B6516:
+ movs r0, 0x1
+ b _081B651C
+_081B651A:
+ movs r0, 0
+_081B651C:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBlueYellowRedFlute
+
+ thumb_func_start ExecuteTableBasedItemEffect__
+@ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex)
+ExecuteTableBasedItemEffect__: @ 81B6520
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, =gMain
+ ldr r1, =0x00000439
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081B6558
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r3, 0
+ b _081B6572
+ .pool
+_081B6558:
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ adds r0, r3, 0
+ bl sub_81B8F38
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+_081B6572:
+ adds r3, r6, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end ExecuteTableBasedItemEffect__
+
+ thumb_func_start ItemUseCB_Medicine
+ItemUseCB_Medicine: @ 81B6588
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ str r1, [sp, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r0, 0
+ mov r10, r0
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl UsingHPEVItemOnShedinja
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B6600
+ adds r0, r6, 0
+ bl IsHPRecoveryItem
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bne _081B65EE
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ cmp r10, r0
+ bne _081B65EE
+ movs r1, 0
+ mov r8, r1
+_081B65EE:
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r0, [r4, 0x9]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B6624
+_081B6600:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_085E96F6
+ b _081B66F4
+ .pool
+_081B6624:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B6650
+ movs r0, 0x1
+ bl PlaySE
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0xE
+ beq _081B6656
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ b _081B6656
+ .pool
+_081B6650:
+ movs r0, 0x75
+ bl PlaySE
+_081B6656:
+ ldr r4, =gUnknown_0203CEDC
+ ldr r7, =gUnknown_0203CEC8
+ movs r0, 0x9
+ ldrsb r0, [r7, r0]
+ lsls r0, 4
+ ldr r1, [r4]
+ adds r1, r0
+ adds r0, r5, 0
+ bl party_menu_get_status_condition_and_update_object
+ ldr r2, =gSprites
+ movs r0, 0x9
+ ldrsb r0, [r7, r0]
+ ldr r1, [r4]
+ lsls r0, 4
+ adds r3, r0, r1
+ ldrb r1, [r3, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _081B6694
+ adds r0, r5, 0
+ adds r1, r3, 0
+ movs r2, 0x1
+ bl sub_81B2AC8
+_081B6694:
+ mov r2, r8
+ cmp r2, 0x1
+ bne _081B66E4
+ mov r0, r10
+ cmp r0, 0
+ bne _081B66A8
+ ldrb r0, [r7, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+_081B66A8:
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r10
+ subs r3, r1
+ lsls r3, 16
+ asrs r3, 16
+ ldrb r1, [r7, 0x9]
+ ldr r0, =sub_81B672C
+ str r0, [sp]
+ mov r0, r9
+ movs r2, 0x1
+ bl sub_81B1F18
+ mov r0, r9
+ movs r1, 0
+ mov r2, r10
+ bl sub_81B1FA8
+ b _081B6710
+ .pool
+_081B66E4:
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldr r0, =gStringVar4
+_081B66F4:
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [sp, 0x4]
+ str r1, [r0]
+_081B6710:
+ 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 ItemUseCB_Medicine
+
+ thumb_func_start sub_81B672C
+sub_81B672C: @ 81B672C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9C17
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ bl sub_805EAE8
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6794
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B672C
+
+ thumb_func_start sub_81B6794
+sub_81B6794: @ 81B6794
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B67BA
+ ldr r0, =gUnknown_0203CEE8
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081B67B4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ str r1, [r0, 0x4]
+_081B67B4:
+ adds r0, r4, 0
+ bl sub_81B12C0
+_081B67BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6794
+
+ thumb_func_start sub_81B67C8
+sub_81B67C8: @ 81B67C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r4, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r6, [r0]
+ adds r0, r6, 0
+ bl GetItemEffectType
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_81B691C
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ ldrb r0, [r4, 0x9]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x20
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_81B691C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r4, 0
+ bne _081B6850
+ ldr r0, [sp, 0x4]
+ cmp r0, r9
+ bne _081B6874
+ ldr r1, [sp, 0x8]
+ cmp r1, r8
+ bne _081B6874
+_081B6850:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_085E96F6
+ b _081B68E2
+ .pool
+_081B6874:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl PlaySE
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r1, =gStringVar2
+ adds r0, r7, 0
+ bl option_menu_get_string
+ ldr r2, [sp, 0x4]
+ cmp r2, r9
+ beq _081B68D8
+ ldr r0, [sp, 0x8]
+ cmp r0, r8
+ beq _081B68C4
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9D45
+ bl StringExpandPlaceholders
+ b _081B68E0
+ .pool
+_081B68C4:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9D90
+ bl StringExpandPlaceholders
+ b _081B68E0
+ .pool
+_081B68D8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9D6D
+ bl StringExpandPlaceholders
+_081B68E0:
+ ldr r0, =gStringVar4
+_081B68E2:
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [sp]
+ str r1, [r0]
+ 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_81B67C8
+
+ thumb_func_start sub_81B691C
+sub_81B691C: @ 81B691C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ subs r0, 0xC
+ cmp r0, 0x5
+ bhi _081B6992
+ lsls r0, 2
+ ldr r1, =_081B693C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B693C:
+ .4byte _081B696C
+ .4byte _081B6954
+ .4byte _081B697E
+ .4byte _081B6984
+ .4byte _081B6978
+ .4byte _081B6972
+_081B6954:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, =0x0000012f
+ cmp r0, r1
+ beq _081B6992
+ adds r0, r4, 0
+ movs r1, 0x1A
+ b _081B6988
+ .pool
+_081B696C:
+ adds r0, r4, 0
+ movs r1, 0x1B
+ b _081B6988
+_081B6972:
+ adds r0, r4, 0
+ movs r1, 0x1C
+ b _081B6988
+_081B6978:
+ adds r0, r4, 0
+ movs r1, 0x1D
+ b _081B6988
+_081B697E:
+ adds r0, r4, 0
+ movs r1, 0x1E
+ b _081B6988
+_081B6984:
+ adds r0, r4, 0
+ movs r1, 0x1F
+_081B6988:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ b _081B6994
+_081B6992:
+ movs r0, 0
+_081B6994:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B691C
+
+ thumb_func_start option_menu_get_string
+option_menu_get_string: @ 81B699C
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0xC
+ cmp r0, 0x5
+ bhi _081B6A08
+ lsls r0, 2
+ ldr r1, =_081B69B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081B69B8:
+ .4byte _081B69D8
+ .4byte _081B69D0
+ .4byte _081B69F0
+ .4byte _081B6A00
+ .4byte _081B69E8
+ .4byte _081B69E0
+_081B69D0:
+ ldr r1, =gUnknown_085E96E3
+ b _081B69F2
+ .pool
+_081B69D8:
+ ldr r1, =gUnknown_085EA33C
+ b _081B69F2
+ .pool
+_081B69E0:
+ ldr r1, =gUnknown_085EA343
+ b _081B69F2
+ .pool
+_081B69E8:
+ ldr r1, =gUnknown_085EA35B
+ b _081B69F2
+ .pool
+_081B69F0:
+ ldr r1, =gUnknown_085E96E6
+_081B69F2:
+ adds r0, r2, 0
+ bl StringCopy
+ b _081B6A08
+ .pool
+_081B6A00:
+ ldr r1, =gUnknown_085E96EE
+ adds r0, r2, 0
+ bl StringCopy
+_081B6A08:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end option_menu_get_string
+
+ thumb_func_start sub_81B6A10
+sub_81B6A10: @ 81B6A10
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r7, 0
+ movs r0, 0x1
+ mov r10, r0
+ movs r0, 0x3
+ bl sub_81B31B0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ mov r8, r1
+ ldr r0, =gPlayerParty
+ mov r9, r0
+_081B6A40:
+ adds r1, r5, 0
+ adds r1, 0xD
+ mov r0, r8
+ add r0, r9
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xD
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, =gMoveNames
+ adds r2, r0
+ lsls r0, r5, 4
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r6, 0
+ mov r1, r10
+ movs r3, 0x8
+ bl PrintTextOnWindow
+ cmp r4, 0
+ beq _081B6A82
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_081B6A82:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081B6A40
+ adds r0, r6, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ 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_81B6A10
+
+ thumb_func_start ether_effect_related_3
+ether_effect_related_3: @ 81B6AB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl ProcessMenuInput
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _081B6AF0
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081B6AE0
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B6BB4
+ b _081B6AF0
+_081B6AE0:
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xD
+ bl sub_81B302C
+ adds r0, r5, 0
+ bl ether_effect_related_2
+_081B6AF0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ether_effect_related_3
+
+ thumb_func_start dp05_ether
+dp05_ether: @ 81B6AFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ cmp r0, 0xAF
+ bne _081B6B20
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003214
+ adds r0, r1
+ b _081B6B2A
+ .pool
+_081B6B20:
+ ldr r1, =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_081B6B2A:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081B6B4C
+ ldr r0, =gUnknown_0203CEC8
+ strh r1, [r0, 0xE]
+ adds r0, r4, 0
+ bl ether_effect_related
+ b _081B6B6E
+ .pool
+_081B6B4C:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x16
+ bl display_pokemon_menu_message
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ bl sub_81B6A10
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =ether_effect_related_3
+ str r1, [r0]
+_081B6B6E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp05_ether
+
+ thumb_func_start ether_effect_related_2
+ether_effect_related_2: @ 81B6B80
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ adds r0, 0xC
+ bl sub_81B302C
+ bl GetMenuCursorPos
+ ldr r1, =gUnknown_0203CEC8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl ether_effect_related
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ether_effect_related_2
+
+ thumb_func_start sub_81B6BB4
+sub_81B6BB4: @ 81B6BB4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+ ldr r0, =gUnknown_0203CEC4
+ ldr r0, [r0]
+ movs r1, 0
+ str r1, [r0, 0x4]
+ adds r0, 0xC
+ bl sub_81B302C
+ movs r0, 0x5
+ bl display_pokemon_menu_message
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6BB4
+
+ thumb_func_start ether_effect_related
+ether_effect_related: @ 81B6BEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r7, =gUnknown_0203CED6
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r5, [r0]
+ movs r0, 0xE
+ negs r0, r0
+ adds r0, r7
+ mov r8, r0
+ ldrb r0, [r0, 0x9]
+ ldrb r2, [r7]
+ adds r1, r5, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B6C34
+ ldr r0, =gUnknown_0203CEE8
+ strb r4, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_085E96F6
+ b _081B6C7E
+ .pool
+_081B6C34:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r0, r8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ movs r0, 0x1
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =gStringVar1
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ adds r0, r5, 0
+ bl GetMedicineItemEffectMessage
+ ldr r0, =gStringVar4
+_081B6C7E:
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6794
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end ether_effect_related
+
+ thumb_func_start dp05_pp_up
+dp05_pp_up: @ 81B6CC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x17
+ bl display_pokemon_menu_message
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ bl sub_81B6A10
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =ether_effect_related_3
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp05_pp_up
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 81B6CFC
+ lsls r0, 16
+ ldr r1, =0xfedf0000
+ adds r0, r1
+ ldr r1, =gUnknown_08616040
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end ItemIdToBattleMoveId
+
+ thumb_func_start sub_81B6D14
+sub_81B6D14: @ 81B6D14
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, =gUnknown_08616040
+_081B6D1E:
+ adds r0, r1, 0
+ adds r0, 0x32
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _081B6D34
+ movs r0, 0x1
+ b _081B6D40
+ .pool
+_081B6D34:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _081B6D1E
+ movs r0, 0
+_081B6D40:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B6D14
+
+ thumb_func_start pokemon_has_move
+pokemon_has_move: @ 81B6D44
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+_081B6D4E:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl GetMonData
+ cmp r0, r5
+ bne _081B6D60
+ movs r0, 0x1
+ b _081B6D6C
+_081B6D60:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081B6D4E
+ movs r0, 0
+_081B6D6C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_has_move
+
+ thumb_func_start sub_81B6D74
+sub_81B6D74: @ 81B6D74
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6D74
+
+ thumb_func_start sub_81B6D98
+sub_81B6D98: @ 81B6D98
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_81B6D74
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6794
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6D98
+
+ thumb_func_start sub_81B6DC4
+sub_81B6DC4: @ 81B6DC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r7, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r7, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ movs r0, 0xE
+ adds r0, r7
+ mov r8, r0
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r4, [r0]
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl ItemIdToBattleMoveId
+ strh r0, [r7, 0xE]
+ ldr r0, =gStringVar2
+ movs r1, 0xE
+ ldrsh r2, [r7, r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0
+ mov r1, r8
+ strh r0, [r1, 0x2]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_81B22D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B6E70
+ cmp r0, 0x2
+ beq _081B6E78
+ ldrh r1, [r7, 0xE]
+ adds r0, r5, 0
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ cmp r0, r1
+ beq _081B6E88
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B6EB4
+ str r0, [r1]
+ b _081B6E9C
+ .pool
+_081B6E70:
+ ldr r1, =gUnknown_085E9AB4
+ b _081B6E7A
+ .pool
+_081B6E78:
+ ldr r1, =gUnknown_085E9C00
+_081B6E7A:
+ adds r0, r6, 0
+ bl sub_81B6D98
+ b _081B6E9C
+ .pool
+_081B6E88:
+ ldr r0, =gUnknown_085E9AE9
+ bl sub_81B6D74
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6FF4
+ str r1, [r0]
+_081B6E9C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6DC4
+
+ thumb_func_start sub_81B6EB4
+sub_81B6EB4: @ 81B6EB4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r2, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r6, r2, 0
+ adds r6, 0xE
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r4, [r0]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _081B6EF0
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl AdjustFriendship
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r4, r0
+ bhi _081B6EF0
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_081B6EF0:
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ movs r1, 0
+ ldrsh r2, [r6, r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9AA5
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6F60
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6EB4
+
+ thumb_func_start sub_81B6F60
+sub_81B6F60: @ 81B6F60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B6F86
+ ldr r0, =0x0000016f
+ bl PlayFanfare
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6F98
+ str r1, [r0]
+_081B6F86:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6F60
+
+ thumb_func_start sub_81B6F98
+sub_81B6F98: @ 81B6F98
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B6FEA
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081B6FC0
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B6FEA
+_081B6FC0:
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x10
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _081B6FDC
+ adds r0, r4, 0
+ bl sub_81B77AC
+ b _081B6FEA
+ .pool
+_081B6FDC:
+ cmp r0, 0x2
+ bne _081B6FE4
+ ldr r0, =gScriptResult
+ strh r2, [r0]
+_081B6FE4:
+ adds r0, r5, 0
+ bl sub_81B12C0
+_081B6FEA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6F98
+
+ thumb_func_start sub_81B6FF4
+sub_81B6FF4: @ 81B6FF4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B7018
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B7028
+ str r0, [r1]
+_081B7018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B6FF4
+
+ thumb_func_start sub_81B7028
+sub_81B7028: @ 81B7028
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B704E
+ cmp r1, 0
+ bgt _081B7048
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B7074
+ b _081B7080
+_081B7048:
+ cmp r1, 0x1
+ beq _081B707A
+ b _081B7080
+_081B704E:
+ ldr r0, =gUnknown_085E9B96
+ movs r1, 0x1
+ bl sub_81B1B5C
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B7088
+ str r1, [r0]
+ b _081B7080
+ .pool
+_081B7074:
+ movs r0, 0x5
+ bl PlaySE
+_081B707A:
+ adds r0, r4, 0
+ bl sub_81B7230
+_081B7080:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B7028
+
+ thumb_func_start sub_81B7088
+sub_81B7088: @ 81B7088
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B70A8
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B70B8
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+_081B70A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7088
+
+ thumb_func_start sub_81B70B8
+sub_81B70B8: @ 81B70B8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gPlayerParty
+ ldr r4, =gUnknown_0203CEC8
+ ldrb r1, [r4, 0x9]
+ ldr r2, =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, =sub_81B70F0
+ ldrh r4, [r4, 0xE]
+ str r4, [sp]
+ bl sub_81BFA38
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B70B8
+
+ thumb_func_start sub_81B70F0
+sub_81B70F0: @ 81B70F0
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x7F
+ str r0, [sp]
+ ldr r0, =sub_81B711C
+ str r0, [sp, 0x4]
+ ldr r0, =gUnknown_0203CEC8
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B70F0
+
+ thumb_func_start sub_81B711C
+sub_81B711C: @ 81B711C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B714E
+ bl sub_81C1B94
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ beq _081B7148
+ adds r0, r4, 0
+ bl sub_81B7154
+ b _081B714E
+ .pool
+_081B7148:
+ adds r0, r5, 0
+ bl sub_81B7230
+_081B714E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B711C
+
+ thumb_func_start sub_81B7154
+sub_81B7154: @ 81B7154
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, =gPlayerParty
+ adds r5, r0
+ bl sub_81C1B94
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, =gUnknown_085E9BB8
+ bl sub_81B6D74
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B71D4
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7154
+
+ thumb_func_start sub_81B71D4
+sub_81B71D4: @ 81B71D4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B7220
+ ldr r5, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r5, r1]
+ movs r0, 0x64
+ adds r4, r1, 0
+ muls r4, r0
+ ldr r0, =gPlayerParty
+ adds r4, r0
+ bl sub_81C1B94
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl RemoveMonPPBonus
+ ldrh r5, [r5, 0xE]
+ bl sub_81C1B94
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl SetMonMoveSlot
+ adds r0, r6, 0
+ bl sub_81B6EB4
+_081B7220:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B71D4
+
+ thumb_func_start sub_81B7230
+sub_81B7230: @ 81B7230
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_0203CEC8
+ movs r3, 0xE
+ ldrsh r2, [r1, r3]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9B5D
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B7294
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7230
+
+ thumb_func_start sub_81B7294
+sub_81B7294: @ 81B7294
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B72B8
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B72C8
+ str r0, [r1]
+_081B72B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7294
+
+ thumb_func_start sub_81B72C8
+sub_81B72C8: @ 81B72C8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r7, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r5, r0, 24
+ cmp r5, 0
+ beq _081B7306
+ cmp r5, 0
+ bgt _081B7300
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _081B738C
+ b _081B73C2
+ .pool
+_081B7300:
+ cmp r5, 0x1
+ beq _081B7392
+ b _081B73C2
+_081B7306:
+ ldr r1, =gStringVar1
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ movs r1, 0xE
+ ldrsh r2, [r7, r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9B76
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r3, 0x10
+ ldrsh r0, [r7, r3]
+ cmp r0, 0x1
+ bne _081B7368
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B73E4
+ str r0, [r1]
+ b _081B73C2
+ .pool
+_081B7368:
+ cmp r0, 0x2
+ bne _081B7370
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+_081B7370:
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B6794
+ str r0, [r1]
+ b _081B73C2
+ .pool
+_081B738C:
+ movs r0, 0x5
+ bl PlaySE
+_081B7392:
+ ldr r1, =gStringVar1
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ ldr r1, =gUnknown_0203CEC8
+ movs r3, 0xE
+ ldrsh r2, [r1, r3]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r0, =gUnknown_085E9AE9
+ bl sub_81B6D74
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6FF4
+ str r1, [r0]
+_081B73C2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B72C8
+
+ thumb_func_start sub_81B73E4
+sub_81B73E4: @ 81B73E4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B73FC
+ adds r0, r4, 0
+ bl sub_81B77AC
+_081B73FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B73E4
+
+ thumb_func_start dp05_rare_candy
+dp05_rare_candy: @ 81B7404
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ mov r9, r0
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ ldr r0, =gUnknown_0203CEC4
+ ldr r6, [r0]
+ movs r1, 0x86
+ lsls r1, 2
+ adds r4, r6, r1
+ ldr r2, =gUnknown_0203CE7C
+ mov r8, r2
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _081B7478
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81B79A0
+ mov r1, r9
+ ldrb r0, [r1, 0x9]
+ mov r2, r8
+ ldrh r1, [r2]
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x89
+ lsls r0, 2
+ adds r1, r6, r0
+ adds r0, r5, 0
+ bl sub_81B79A0
+ b _081B747A
+ .pool
+_081B7478:
+ movs r4, 0x1
+_081B747A:
+ movs r0, 0x5
+ bl PlaySE
+ cmp r4, 0
+ beq _081B74B4
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, =gUnknown_085E96F6
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r10
+ b _081B7516
+ .pool
+_081B74B4:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl PlayFanfareByFanfareNum
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0x9]
+ adds r1, r5, 0
+ bl sub_81B754C
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r4, =gStringVar2
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9D0A
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B75D4
+_081B7516:
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end dp05_rare_candy
+
+ thumb_func_start sub_81B754C
+sub_81B754C: @ 81B754C
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r6, =gUnknown_0203CEDC
+ lsls r4, r7, 4
+ ldr r1, [r6]
+ adds r1, r4
+ adds r0, r5, 0
+ bl party_menu_get_status_condition_and_update_object
+ ldr r2, =gSprites
+ ldr r0, [r6]
+ adds r3, r4, r0
+ ldrb r1, [r3, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _081B7588
+ adds r0, r5, 0
+ adds r1, r3, 0
+ movs r2, 0x1
+ bl sub_81B2AC8
+_081B7588:
+ ldr r1, [r6]
+ adds r1, r4
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_81B2CD4
+ ldr r1, [r6]
+ adds r1, r4
+ adds r0, r5, 0
+ movs r2, 0x1
+ bl sub_81B2D74
+ ldr r1, [r6]
+ adds r1, r4
+ adds r0, r5, 0
+ bl sub_81B2E28
+ ldr r0, [r6]
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x9]
+ adds r1, r5, 0
+ bl sub_81B5B38
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_81B0FCC
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B754C
+
+ thumb_func_start sub_81B75D4
+sub_81B75D4: @ 81B75D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B7620
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B7620
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081B7606
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7620
+_081B7606:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B767C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B7634
+ str r0, [r1]
+_081B7620:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B75D4
+
+ thumb_func_start sub_81B7634
+sub_81B7634: @ 81B7634
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081B764E
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7668
+_081B764E:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81B76C8
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B7704
+ str r0, [r1]
+_081B7668:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7634
+
+ thumb_func_start sub_81B767C
+sub_81B767C: @ 81B767C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203CEC4
+ ldr r5, [r0]
+ movs r0, 0x86
+ lsls r0, 2
+ adds r4, r5, r0
+ bl sub_81B3364
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x18]
+ ldrh r0, [r4, 0x18]
+ movs r1, 0x89
+ lsls r1, 2
+ adds r2, r5, r1
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x3
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_81D3640
+ ldrb r0, [r4, 0x18]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B767C
+
+ thumb_func_start sub_81B76C8
+sub_81B76C8: @ 81B76C8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ movs r0, 0x86
+ lsls r0, 2
+ adds r4, r1, r0
+ ldrh r0, [r4, 0x18]
+ movs r2, 0x89
+ lsls r2, 2
+ adds r1, r2
+ movs r2, 0x3
+ str r2, [sp]
+ movs r2, 0x1
+ movs r3, 0x2
+ bl sub_81D3784
+ ldrb r0, [r4, 0x18]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B76C8
+
+ thumb_func_start sub_81B7704
+sub_81B7704: @ 81B7704
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl WaitFanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B77A6
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r6, 0x1
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081B772C
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B77A6
+_081B772C:
+ bl sub_81B3394
+ ldr r4, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r4, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ bl MonTryLearningNewMove
+ lsls r0, 16
+ lsrs r1, r0, 16
+ strh r6, [r4, 0x10]
+ ldr r0, =0x0000fffe
+ cmp r1, r0
+ beq _081B7788
+ cmp r1, r0
+ bgt _081B776C
+ cmp r1, 0
+ beq _081B7778
+ b _081B77A0
+ .pool
+_081B776C:
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081B7780
+ b _081B77A0
+ .pool
+_081B7778:
+ adds r0, r5, 0
+ bl sub_81B7810
+ b _081B77A6
+_081B7780:
+ adds r0, r5, 0
+ bl sub_81B787C
+ b _081B77A6
+_081B7788:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B77AC
+ str r0, [r1]
+ b _081B77A6
+ .pool
+_081B77A0:
+ adds r0, r5, 0
+ bl sub_81B7910
+_081B77A6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B7704
+
+ thumb_func_start sub_81B77AC
+sub_81B77AC: @ 81B77AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl MonTryLearningNewMove
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =0x0000fffe
+ cmp r1, r0
+ beq _081B780A
+ cmp r1, r0
+ bgt _081B77E8
+ cmp r1, 0
+ beq _081B77F4
+ b _081B7804
+ .pool
+_081B77E8:
+ ldr r0, =0x0000ffff
+ cmp r1, r0
+ beq _081B77FC
+ b _081B7804
+ .pool
+_081B77F4:
+ adds r0, r4, 0
+ bl sub_81B7810
+ b _081B780A
+_081B77FC:
+ adds r0, r4, 0
+ bl sub_81B787C
+ b _081B780A
+_081B7804:
+ adds r0, r4, 0
+ bl sub_81B7910
+_081B780A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B77AC
+
+ thumb_func_start sub_81B7810
+sub_81B7810: @ 81B7810
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r6, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _081B7860
+ bl sub_81B06F4
+ ldr r0, =gUnknown_030061E8
+ ldr r1, [r6]
+ str r1, [r0]
+ ldrb r3, [r6, 0x9]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl sub_813DA40
+ adds r0, r5, 0
+ bl DestroyTask
+ b _081B786E
+ .pool
+_081B7860:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B6794
+ str r0, [r1]
+_081B786E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7810
+
+ thumb_func_start sub_81B787C
+sub_81B787C: @ 81B787C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CEC8
+ mov r8, r0
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ ldr r6, =gMoveToLearn
+ ldrh r2, [r6]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9AE9
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldrh r0, [r6]
+ mov r1, r8
+ strh r0, [r1, 0xE]
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6FF4
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B787C
+
+ thumb_func_start sub_81B7910
+sub_81B7910: @ 81B7910
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, =gUnknown_0203CEC8
+ mov r8, r0
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9AA5
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ mov r0, r8
+ strh r5, [r0, 0xE]
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6F60
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7910
+
+ thumb_func_start sub_81B79A0
+sub_81B79A0: @ 81B79A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r5, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r5, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r5, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r5, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r5, 0x6]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B79A0
+
+ thumb_func_start sub_81B79E8
+sub_81B79E8: @ 81B79E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203CEC4
+ ldr r2, [r1]
+ movs r3, 0x86
+ lsls r3, 2
+ adds r1, r2, r3
+ movs r3, 0
+ strh r3, [r1]
+ ldr r4, =0x0000021a
+ adds r1, r2, r4
+ strh r3, [r1]
+ ldr r1, =gUnknown_0203CEC8
+ ldrb r1, [r1, 0x9]
+ lsls r1, 24
+ asrs r1, 24
+ movs r3, 0x87
+ lsls r3, 2
+ adds r2, r3
+ strh r1, [r2]
+ bl sub_81B7A28
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B79E8
+
+ thumb_func_start sub_81B7A28
+sub_81B7A28: @ 81B7A28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ ldr r6, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r6, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B7A6E
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r0, [r6, 0x9]
+ ldr r1, =gUnknown_0203CE7C
+ ldrh r1, [r1]
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B7A94
+_081B7A6E:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =task_intro_gamefreak
+ str r0, [r1]
+ b _081B7B2A
+ .pool
+_081B7A94:
+ movs r0, 0x1
+ bl PlaySE
+ ldr r4, =gUnknown_0203CEDC
+ movs r0, 0x9
+ ldrsb r0, [r6, r0]
+ lsls r0, 4
+ ldr r1, [r4]
+ adds r1, r0
+ adds r0, r5, 0
+ bl party_menu_get_status_condition_and_update_object
+ ldr r2, =gSprites
+ movs r0, 0x9
+ ldrsb r0, [r6, r0]
+ ldr r1, [r4]
+ lsls r0, 4
+ adds r3, r0, r1
+ ldrb r1, [r3, 0xC]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _081B7AD6
+ adds r0, r5, 0
+ adds r1, r3, 0
+ movs r2, 0x1
+ bl sub_81B2AC8
+_081B7AD6:
+ ldr r4, =gUnknown_0203CEC4
+ ldr r0, [r4]
+ movs r1, 0x87
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_81B0FCC
+ ldrb r0, [r6, 0x9]
+ movs r1, 0x1
+ bl sub_81B0FCC
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ subs r3, r7
+ lsls r3, 16
+ asrs r3, 16
+ ldrb r1, [r6, 0x9]
+ ldr r0, =sub_81B7C10
+ str r0, [sp]
+ mov r0, r8
+ movs r2, 0x1
+ bl sub_81B1F18
+ mov r0, r8
+ movs r1, 0
+ adds r2, r7, 0
+ bl sub_81B1FA8
+ ldr r0, [r4]
+ movs r2, 0x86
+ lsls r2, 2
+ adds r1, r0, r2
+ movs r2, 0x1
+ strh r2, [r1]
+ ldr r1, =0x0000021a
+ adds r0, r1
+ strh r2, [r0]
+_081B7B2A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7A28
+
+ thumb_func_start task_intro_gamefreak
+task_intro_gamefreak: @ 81B7B4C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B7C0A
+ ldr r5, =gUnknown_0203CEC4
+ ldr r2, [r5]
+ movs r0, 0x86
+ lsls r0, 2
+ adds r1, r2, r0
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ ldr r3, =gUnknown_0203CEC8
+ cmp r0, 0x1
+ bne _081B7B82
+ movs r0, 0
+ strh r0, [r1]
+ movs r1, 0x9
+ ldrsb r1, [r3, r1]
+ movs r6, 0x87
+ lsls r6, 2
+ adds r0, r2, r6
+ strh r1, [r0]
+_081B7B82:
+ ldrb r0, [r3, 0x9]
+ adds r0, 0x1
+ strb r0, [r3, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x6
+ bne _081B7C04
+ ldr r0, [r5]
+ ldr r1, =0x0000021a
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ bne _081B7BC8
+ ldr r0, =gUnknown_0203CEE8
+ strb r1, [r0]
+ ldr r0, =gUnknown_085E96F6
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ b _081B7BD8
+ .pool
+_081B7BC8:
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl RemoveBagItem
+_081B7BD8:
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6794
+ str r1, [r0]
+ ldr r1, =gUnknown_0203CEC8
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ b _081B7C0A
+ .pool
+_081B7C04:
+ adds r0, r4, 0
+ bl sub_81B7A28
+_081B7C0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end task_intro_gamefreak
+
+ thumb_func_start sub_81B7C10
+sub_81B7C10: @ 81B7C10
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r4, =gStringVar4
+ ldr r1, =gUnknown_085E9C17
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =task_intro_gamefreak
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7C10
+
+ thumb_func_start sub_81B7C74
+sub_81B7C74: @ 81B7C74
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gUnknown_030061E8
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, [r1]
+ str r0, [r2]
+ ldrb r0, [r1, 0x9]
+ ldr r4, =gUnknown_0203CE7C
+ ldrh r1, [r4]
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B7CD8
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, =gUnknown_085E96F6
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ str r6, [r0]
+ b _081B7CE4
+ .pool
+_081B7CD8:
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl RemoveBagItem
+ bl sub_81B06F4
+_081B7CE4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B7C74
+
+ thumb_func_start GetItemEffectType
+@ u8 GetItemEffectType(u16 itemId)
+GetItemEffectType: @ 81B7CEC
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ subs r2, 0xD
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r0, 0xA5
+ bls _081B7D00
+ b _081B7E40
+_081B7D00:
+ cmp r1, 0xAF
+ bne _081B7D18
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003214
+ adds r4, r0, r1
+ b _081B7D20
+ .pool
+_081B7D18:
+ ldr r1, =gItemEffectTable
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r4, [r0]
+_081B7D20:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081B7D42
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _081B7D42
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _081B7D42
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _081B7D4C
+_081B7D42:
+ movs r0, 0
+ b _081B7E46
+ .pool
+_081B7D4C:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7D5A
+ movs r0, 0xA
+ b _081B7E46
+_081B7D5A:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _081B7D66
+ movs r0, 0x1
+ b _081B7E46
+_081B7D66:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _081B7D74
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _081B7DB6
+_081B7D74:
+ cmp r2, 0x20
+ bne _081B7D7C
+ movs r0, 0x4
+ b _081B7E46
+_081B7D7C:
+ cmp r2, 0x10
+ bne _081B7D84
+ movs r0, 0x3
+ b _081B7E46
+_081B7D84:
+ cmp r2, 0x8
+ bne _081B7D8C
+ movs r0, 0x5
+ b _081B7E46
+_081B7D8C:
+ cmp r2, 0x4
+ bne _081B7D94
+ movs r0, 0x6
+ b _081B7E46
+_081B7D94:
+ cmp r2, 0x2
+ bne _081B7D9C
+ movs r0, 0x7
+ b _081B7E46
+_081B7D9C:
+ cmp r2, 0x1
+ bne _081B7DA4
+ movs r0, 0x8
+ b _081B7E46
+_081B7DA4:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _081B7DB2
+ cmp r2, 0
+ bne _081B7DB2
+ movs r0, 0x9
+ b _081B7E46
+_081B7DB2:
+ movs r0, 0xB
+ b _081B7E46
+_081B7DB6:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _081B7DC6
+ movs r0, 0x2
+ b _081B7E46
+_081B7DC6:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _081B7DD4
+ movs r0, 0xC
+ b _081B7E46
+_081B7DD4:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _081B7DE2
+ movs r0, 0xD
+ b _081B7E46
+_081B7DE2:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7DF0
+ movs r0, 0xE
+ b _081B7E46
+_081B7DF0:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7DFC
+ movs r0, 0xF
+ b _081B7E46
+_081B7DFC:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7E08
+ movs r0, 0x10
+ b _081B7E46
+_081B7E08:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7E14
+ movs r0, 0x11
+ b _081B7E46
+_081B7E14:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _081B7E20
+ movs r0, 0x12
+ b _081B7E46
+_081B7E20:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _081B7E2C
+ movs r0, 0x13
+ b _081B7E46
+_081B7E2C:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081B7E38
+ movs r0, 0x14
+ b _081B7E46
+_081B7E38:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _081B7E44
+_081B7E40:
+ movs r0, 0x16
+ b _081B7E46
+_081B7E44:
+ movs r0, 0x15
+_081B7E46:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetItemEffectType
+
+ thumb_func_start sub_81B7E4C
+sub_81B7E4C: @ 81B7E4C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B7F1C
+ ldr r7, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r7, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ movs r0, 0xE
+ adds r0, r7
+ mov r8, r0
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r4, =gSpecialVar_0x8005
+ ldrb r0, [r4]
+ bl sub_81B2360
+ strh r0, [r7, 0xE]
+ ldr r0, =gStringVar2
+ movs r1, 0xE
+ ldrsh r2, [r7, r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0x2
+ mov r1, r8
+ strh r0, [r1, 0x2]
+ ldrb r2, [r4]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_81B22D8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B7EF0
+ cmp r0, 0x2
+ beq _081B7EF8
+ ldrh r1, [r7, 0xE]
+ adds r0, r5, 0
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, =0xffff0000
+ cmp r0, r1
+ beq _081B7F08
+ adds r0, r6, 0
+ bl sub_81B6EB4
+ b _081B7F1C
+ .pool
+_081B7EF0:
+ ldr r1, =gUnknown_085E9AB4
+ b _081B7EFA
+ .pool
+_081B7EF8:
+ ldr r1, =gUnknown_085E9C00
+_081B7EFA:
+ adds r0, r6, 0
+ bl sub_81B6D98
+ b _081B7F1C
+ .pool
+_081B7F08:
+ ldr r0, =gUnknown_085E9AE9
+ bl sub_81B6D74
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B6FF4
+ str r1, [r0]
+_081B7F1C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7E4C
+
+ thumb_func_start CB2_PartyMenuFromStartMenu
+CB2_PartyMenuFromStartMenu: @ 81B7F34
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_8086194
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end CB2_PartyMenuFromStartMenu
+
+ thumb_func_start sub_81B7F60
+sub_81B7F60: @ 81B7F60
+ push {lr}
+ sub sp, 0xC
+ bl InBattlePyramid
+ lsls r0, 24
+ ldr r1, =sub_81C4F84
+ cmp r0, 0
+ bne _081B7F72
+ ldr r1, =c2_815ABFC
+_081B7F72:
+ movs r0, 0x6
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_81B0038
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, =gUnknown_0203CE7C
+ ldrh r0, [r0]
+ strh r0, [r1, 0xC]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7F60
+
+ thumb_func_start sub_81B7FAC
+sub_81B7FAC: @ 81B7FAC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r5, =gUnknown_0203CEFC
+ ldr r0, =gUnknown_0203CEC8
+ mov r9, r0
+ ldrb r0, [r0, 0x9]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r7, =gPlayerParty
+ adds r0, r7
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ bne _081B7FF8
+ adds r0, r4, 0
+ bl sub_81B8044
+ b _081B8030
+ .pool
+_081B7FF8:
+ ldrh r0, [r5]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B800C
+ adds r0, r4, 0
+ bl sub_81B83B8
+ b _081B8030
+_081B800C:
+ mov r1, r9
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ ldrh r1, [r5]
+ movs r2, 0x1
+ bl sub_81B1D1C
+ ldr r1, =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B82A0
+ str r1, [r0]
+_081B8030:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B7FAC
+
+ thumb_func_start sub_81B8044
+sub_81B8044: @ 81B8044
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, =gUnknown_0203CEC8
+ ldrh r0, [r5, 0xC]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B807C
+ ldrh r0, [r5, 0xC]
+ bl sub_81B83F0
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B814C
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_81B12C0
+ b _081B8082
+ .pool
+_081B807C:
+ adds r0, r4, 0
+ bl sub_81B8088
+_081B8082:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B8044
+
+ thumb_func_start sub_81B8088
+sub_81B8088: @ 81B8088
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B80E4
+ ldr r4, =gUnknown_0203CEC8
+ ldrh r5, [r4, 0xC]
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, =gPlayerParty
+ adds r0, r6
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81B1C84
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r1, r5, 0
+ bl sub_81B1DB8
+ adds r0, r5, 0
+ bl sub_81B83F0
+ ldr r1, =gTasks
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B8104
+ str r1, [r0]
+_081B80E4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8088
+
+ thumb_func_start sub_81B8104
+sub_81B8104: @ 81B8104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r4, [r0, 0x9]
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B8138
+ lsls r2, r4, 24
+ asrs r2, 24
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gUnknown_0203CEDC
+ lsls r2, 4
+ ldr r1, [r1]
+ adds r1, r2
+ bl sub_81B5C94
+ adds r0, r5, 0
+ bl sub_81B12C0
+_081B8138:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8104
+
+ thumb_func_start sub_81B814C
+sub_81B814C: @ 81B814C
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203CEC8
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ ldrh r1, [r4, 0xC]
+ bl sub_81B1DB8
+ movs r0, 0x9
+ ldrsb r0, [r4, r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x40
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSaveBlock1Ptr
+ lsls r2, r0, 3
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, =0x00002be0
+ adds r2, r0
+ ldr r1, [r1]
+ adds r1, r2
+ ldr r2, =sub_81B81A8
+ movs r0, 0x4
+ movs r3, 0x3
+ bl sub_811A20C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B814C
+
+ thumb_func_start sub_81B81A8
+sub_81B81A8: @ 81B81A8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ ldr r6, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r6, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =gScriptResult
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081B8208
+ adds r0, r5, 0
+ bl sub_80D4680
+ ldr r4, =gUnknown_0203CEFC
+ adds r0, r5, 0
+ movs r1, 0xC
+ adds r2, r4, 0
+ bl SetMonData
+ ldrh r0, [r4]
+ movs r1, 0x1
+ bl RemoveBagItem
+ adds r0, r7, 0
+ bl sub_81B841C
+ ldr r0, [r6]
+ bl SetMainCallback2
+ b _081B8224
+ .pool
+_081B8208:
+ ldrb r0, [r6, 0x8]
+ lsls r0, 28
+ lsrs r0, 28
+ ldrb r2, [r6, 0xB]
+ movs r1, 0x7F
+ str r1, [sp]
+ ldr r1, =sub_81B8230
+ str r1, [sp, 0x4]
+ ldr r1, [r6]
+ str r1, [sp, 0x8]
+ movs r1, 0xFF
+ movs r3, 0x1
+ bl sub_81B0038
+_081B8224:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B81A8
+
+ thumb_func_start sub_81B8230
+sub_81B8230: @ 81B8230
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B828A
+ ldr r1, =gUnknown_0203CEFC
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081B8264
+ ldr r0, =gUnknown_0203CEC8
+ ldrh r0, [r0, 0xC]
+ ldrh r1, [r1]
+ movs r2, 0
+ bl sub_81B1D68
+ b _081B827C
+ .pool
+_081B8264:
+ ldr r2, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r2, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldrh r1, [r2, 0xC]
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_81B1C84
+_081B827C:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B8104
+ str r0, [r1]
+_081B828A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8230
+
+ thumb_func_start sub_81B82A0
+sub_81B82A0: @ 81B82A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_81B1BD4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B82C4
+ bl sub_81B334C
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B82D4
+ str r0, [r1]
+_081B82C4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B82A0
+
+ thumb_func_start sub_81B82D4
+sub_81B82D4: @ 81B82D4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8198C58
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081B82FA
+ cmp r1, 0
+ bgt _081B82F4
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081B8394
+ b _081B83A8
+_081B82F4:
+ cmp r1, 0x1
+ beq _081B839A
+ b _081B83A8
+_081B82FA:
+ ldr r7, =gUnknown_0203CEC8
+ ldrh r4, [r7, 0xC]
+ adds r0, r4, 0
+ bl sub_81B83F0
+ ldr r6, =gUnknown_0203CEFC
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8338
+ adds r0, r4, 0
+ bl sub_81B841C
+ ldrh r0, [r6]
+ bl pokemon_item_not_removed
+ ldr r0, =gStringVar4
+ movs r1, 0
+ bl sub_81B1B5C
+ b _081B8378
+ .pool
+_081B8338:
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B835C
+ ldr r0, =gUnknown_0203CEC4
+ ldr r1, [r0]
+ ldr r0, =sub_81B814C
+ str r0, [r1, 0x4]
+ adds r0, r5, 0
+ bl sub_81B12C0
+ b _081B83A8
+ .pool
+_081B835C:
+ movs r1, 0x9
+ ldrsb r1, [r7, r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_81B1DB8
+ ldrh r1, [r6]
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_81B1D68
+_081B8378:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B8104
+ str r1, [r0]
+ b _081B83A8
+ .pool
+_081B8394:
+ movs r0, 0x5
+ bl PlaySE
+_081B839A:
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B8104
+ str r0, [r1]
+_081B83A8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B82D4
+
+ thumb_func_start sub_81B83B8
+sub_81B83B8: @ 81B83B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_085E98EC
+ movs r1, 0x1
+ bl sub_81B1B5C
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81B8104
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B83B8
+
+ thumb_func_start sub_81B83F0
+sub_81B83F0: @ 81B83F0
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x6
+ bne _081B8410
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_80D6E48
+ b _081B8418
+ .pool
+_081B8410:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl RemoveBagItem
+_081B8418:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B83F0
+
+ thumb_func_start sub_81B841C
+sub_81B841C: @ 81B841C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x5
+ beq _081B8438
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_80D6D70
+ b _081B8440
+ .pool
+_081B8438:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl AddBagItem
+_081B8440:
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B841C
+
+ thumb_func_start sub_81B8448
+sub_81B8448: @ 81B8448
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x6
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_816BB28
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8448
+
+ thumb_func_start sub_81B8474
+sub_81B8474: @ 81B8474
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_0203CEC8
+ movs r1, 0x9
+ ldrsb r1, [r0, r1]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r5, r1, r0
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, =gUnknown_0203BCB8
+ ldrh r1, [r0]
+ adds r1, 0x6
+ ldrh r0, [r0, 0x2]
+ adds r1, r0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =0x00002be0
+ adds r0, r1
+ ldr r1, [r2]
+ adds r4, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ beq _081B84DC
+ ldr r0, =gUnknown_085E9A08
+ movs r1, 0x1
+ bl sub_81B1B5C
+ b _081B84F2
+ .pool
+_081B84DC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80D460C
+ adds r0, r4, 0
+ bl sub_80D439C
+ ldr r0, =gUnknown_085E9A40
+ movs r1, 0x1
+ bl sub_81B1B5C
+_081B84F2:
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B8104
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8474
+
+ thumb_func_start sub_81B8518
+sub_81B8518: @ 81B8518
+ push {lr}
+ sub sp, 0xC
+ bl sub_81B8558
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =gMain
+ ldr r0, [r0, 0x8]
+ str r0, [sp, 0x8]
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ ldr r1, =gUnknown_0203CEC8
+ ldr r0, =sub_81B879C
+ str r0, [r1, 0x4]
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8518
+
+ thumb_func_start sub_81B8558
+sub_81B8558: @ 81B8558
+ push {lr}
+ ldr r0, =gUnknown_0203CEF8
+ movs r1, 0
+ movs r2, 0x4
+ bl memset
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8558
+
+ thumb_func_start sub_81B856C
+sub_81B856C: @ 81B856C
+ push {r4,lr}
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl sub_81B85AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B858C
+ movs r0, 0x2
+ b _081B85A4
+ .pool
+_081B858C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81B8770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B85A2
+ movs r0, 0
+ b _081B85A4
+_081B85A2:
+ movs r0, 0x1
+_081B85A4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B856C
+
+ thumb_func_start sub_81B85AC
+sub_81B85AC: @ 81B85AC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081B8608
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ bl sub_81B8888
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bhi _081B8608
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x0000191a
+ cmp r1, r0
+ bne _081B85EA
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ bne _081B8608
+_081B85EA:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ beq _081B864A
+ cmp r0, 0x9
+ bne _081B8618
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081B864A
+_081B8608:
+ movs r0, 0
+ b _081B864C
+ .pool
+_081B8618:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r3, =gUnknown_08611C9A
+ lsls r1, r6, 1
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ ldr r2, =0x0000ffff
+ cmp r0, r2
+ beq _081B864A
+_081B8632:
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r4
+ beq _081B8608
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, r6, 1
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _081B8632
+_081B864A:
+ movs r0, 0x1
+_081B864C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B85AC
+
+ thumb_func_start sub_81B865C
+sub_81B865C: @ 81B865C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl sub_81B885C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r2, 0
+ ldr r3, =gUnknown_0203CEF8
+ adds r0, r2, r3
+ subs r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081B869C
+ cmp r2, 0x1
+ bne _081B8688
+ movs r0, 0xE
+ b _081B8758
+ .pool
+_081B8688:
+ ldr r0, =gStringVar1
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x11
+ b _081B8758
+ .pool
+_081B869C:
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 24
+ movs r1, 0xF8
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081B86C0
+ b _081B8756
+ .pool
+_081B86B8:
+ movs r0, 0x12
+ b _081B8758
+_081B86BC:
+ movs r0, 0x13
+ b _081B8758
+_081B86C0:
+ bl sub_81B8830
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ b _081B8750
+_081B86CE:
+ ldr r3, =gUnknown_0203CEF8
+ adds r4, r3, r5
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ subs r0, 0x64
+ ldr r3, =gPlayerParty
+ adds r0, r3, r0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ subs r0, 0x64
+ ldr r3, =gPlayerParty
+ adds r0, r3, r0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r1, r5, 0x1
+ lsls r0, r1, 24
+ lsrs r4, r0, 24
+ mov r9, r1
+ cmp r4, r8
+ bcs _081B8748
+ movs r7, 0x64
+_081B870E:
+ ldr r0, =gUnknown_0203CEF8
+ adds r5, r0, r4
+ ldrb r0, [r5]
+ muls r0, r7
+ subs r0, 0x64
+ ldr r1, =gPlayerParty
+ adds r0, r1, r0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r10, r0
+ beq _081B86B8
+ cmp r6, 0
+ beq _081B873E
+ ldrb r0, [r5]
+ muls r0, r7
+ subs r0, 0x64
+ ldr r3, =gPlayerParty
+ adds r0, r3, r0
+ movs r1, 0xC
+ bl GetMonData
+ cmp r6, r0
+ beq _081B86BC
+_081B873E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r8
+ bcc _081B870E
+_081B8748:
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+_081B8750:
+ subs r0, 0x1
+ cmp r5, r0
+ blt _081B86CE
+_081B8756:
+ movs r0, 0xFF
+_081B8758:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B865C
+
+ thumb_func_start sub_81B8770
+sub_81B8770: @ 81B8770
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, =gUnknown_0203CEF8
+_081B877A:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081B878C
+ movs r0, 0x1
+ b _081B8798
+ .pool
+_081B878C:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x3
+ bls _081B877A
+ movs r0, 0
+_081B8798:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B8770
+
+ thumb_func_start sub_81B879C
+sub_81B879C: @ 81B879C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81B865C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xFF
+ beq _081B87D4
+ movs r0, 0x20
+ bl PlaySE
+ adds r0, r4, 0
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B87E8
+ str r0, [r1]
+ b _081B87E0
+ .pool
+_081B87D4:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_81B12C0
+_081B87E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B879C
+
+ thumb_func_start sub_81B87E8
+sub_81B87E8: @ 81B87E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081B8802
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081B881C
+_081B8802:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl display_pokemon_menu_message
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B1370
+ str r0, [r1]
+_081B881C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B87E8
+
+ thumb_func_start sub_81B8830
+sub_81B8830: @ 81B8830
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ beq _081B884C
+ cmp r0, 0x9
+ bne _081B8850
+ movs r0, 0x3
+ b _081B8854
+ .pool
+_081B884C:
+ movs r0, 0x2
+ b _081B8854
+_081B8850:
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r0, [r0]
+_081B8854:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B8830
+
+ thumb_func_start sub_81B885C
+sub_81B885C: @ 81B885C
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ beq _081B8878
+ cmp r0, 0x9
+ bne _081B887C
+ movs r0, 0x1
+ b _081B8880
+ .pool
+_081B8878:
+ movs r0, 0x2
+ b _081B8880
+_081B887C:
+ ldr r0, =gSpecialVar_0x8005
+ ldrb r0, [r0]
+_081B8880:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B885C
+
+ thumb_func_start sub_81B8888
+sub_81B8888: @ 81B8888
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ beq _081B88A4
+ cmp r0, 0x9
+ bne _081B88A8
+_081B889C:
+ movs r0, 0x64
+ b _081B88B2
+ .pool
+_081B88A4:
+ movs r0, 0x1E
+ b _081B88B2
+_081B88A8:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081B889C
+ movs r0, 0x32
+_081B88B2:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B8888
+
+ thumb_func_start sub_81B88BC
+sub_81B88BC: @ 81B88BC
+ push {lr}
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xF8
+ lsls r2, 24
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _081B88E0
+ ldr r0, =gUnknown_085EA126
+ b _081B88FA
+ .pool
+_081B88E0:
+ cmp r1, 0x1
+ bne _081B88F8
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bne _081B88F8
+ ldr r0, =gUnknown_085EA139
+ b _081B88FA
+ .pool
+_081B88F8:
+ ldr r0, =gUnknown_085EA155
+_081B88FA:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B88BC
+
+ thumb_func_start sub_81B8904
+sub_81B8904: @ 81B8904
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, =sub_81B1370
+ str r2, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8904
+
+ thumb_func_start sub_81B892C
+sub_81B892C: @ 81B892C
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B892C
+
+ thumb_func_start sub_81B8958
+sub_81B8958: @ 81B8958
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ str r0, [sp, 0x8]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8958
+
+ thumb_func_start sub_81B8984
+sub_81B8984: @ 81B8984
+ push {lr}
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8994
+ movs r0, 0
+ b _081B89A6
+_081B8994:
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081B89A4
+ movs r0, 0x1
+ b _081B89A6
+_081B89A4:
+ movs r0, 0x2
+_081B89A6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B8984
+
+ thumb_func_start sub_81B89AC
+sub_81B89AC: @ 81B89AC
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_81B8984
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_8059D40
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_81B0038
+ bl nullsub_35
+ bl pokemon_change_order
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B89AC
+
+ thumb_func_start sub_81B89F0
+sub_81B89F0: @ 81B89F0
+ push {lr}
+ sub sp, 0xC
+ bl sub_81B8984
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x5
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =c2_815ABFC
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_81B0038
+ bl nullsub_35
+ bl pokemon_change_order
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B89F0
+
+ thumb_func_start sub_81B8A2C
+sub_81B8A2C: @ 81B8A2C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gPlayerParty + 0x64
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B8A74
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081B8A74
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x1
+ bne _081B8A5C
+ movs r0, 0x3
+ b _081B8A76
+ .pool
+_081B8A5C:
+ ldr r0, =gBattleTypeFlags
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ bne _081B8A74
+ movs r0, 0x2
+ b _081B8A76
+ .pool
+_081B8A74:
+ movs r0, 0x7
+_081B8A76:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81B8A2C
+
+ thumb_func_start sub_81B8A7C
+sub_81B8A7C: @ 81B8A7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B8AC4
+ cmp r5, 0x1
+ beq _081B8AA2
+ cmp r5, 0x4
+ beq _081B8AA2
+ cmp r5, 0x5
+ bne _081B8AC4
+_081B8AA2:
+ ldr r4, =gStringVar1
+ bl sub_806EBF8
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E97B2
+ b _081B8C42
+ .pool
+_081B8AC4:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _081B8AF8
+ ldr r1, =gStringVar1
+ adds r0, r4, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E978F
+ b _081B8C42
+ .pool
+_081B8AF8:
+ movs r4, 0
+ b _081B8B24
+_081B8AFC:
+ adds r0, r4, 0
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8B1E
+ adds r0, r5, 0
+ bl sub_81B8F38
+ lsls r0, 24
+ ldr r2, =gBattlePartyID
+ lsls r1, r4, 1
+ adds r1, r2
+ lsrs r0, 24
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _081B8BFC
+_081B8B1E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081B8B24:
+ ldr r0, =gNoOfAllBanks
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _081B8AFC
+ movs r7, 0x64
+ adds r0, r5, 0
+ muls r0, r7
+ ldr r1, =gPlayerParty
+ mov r8, r1
+ adds r6, r0, r1
+ adds r0, r6, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _081B8B60
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E97E5
+ b _081B8C42
+ .pool
+_081B8B60:
+ adds r0, r5, 0
+ bl sub_81B8F38
+ ldr r1, =gBattleStruct
+ ldr r1, [r1]
+ adds r1, 0x8B
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _081B8B94
+ ldr r1, =gStringVar1
+ adds r0, r6, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E976F
+ b _081B8C42
+ .pool
+_081B8B94:
+ ldr r0, =gUnknown_0203CEC8
+ ldrb r0, [r0, 0xB]
+ cmp r0, 0x4
+ bne _081B8BA8
+ bl sub_806E994
+ b _081B8C46
+ .pool
+_081B8BA8:
+ cmp r0, 0x2
+ beq _081B8C20
+ adds r0, r5, 0
+ bl sub_81B8F38
+ ldr r1, =gUnknown_0203CEE9
+ strb r0, [r1]
+ ldr r1, =gUnknown_0203CEE8
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, =gBattlePartyID
+ ldr r0, =gUnknown_020244B8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_81B8FB0
+ adds r0, r4, 0
+ muls r0, r7
+ add r0, r8
+ adds r1, r6, 0
+ bl sub_81B1288
+ movs r0, 0x1
+ b _081B8C48
+ .pool
+_081B8BFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9754
+ b _081B8C42
+ .pool
+_081B8C20:
+ ldr r0, =gUnknown_020244B8
+ ldrb r0, [r0]
+ ldr r1, =gBattlePartyID
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r7
+ add r0, r8
+ ldr r1, =gStringVar1
+ bl GetMonNickname
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_085E9738
+_081B8C42:
+ bl StringExpandPlaceholders
+_081B8C46:
+ movs r0, 0
+_081B8C48:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B8A7C
+
+ thumb_func_start sub_81B8C68
+sub_81B8C68: @ 81B8C68
+ push {r4,lr}
+ ldr r4, =gUnknown_0203CF00
+ bl sub_806D7EC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_81B8C88
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8C68
+
+ thumb_func_start sub_81B8C88
+sub_81B8C88: @ 81B8C88
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B8CBE
+ cmp r4, 0
+ beq _081B8CB0
+ movs r0, 0x30
+ strb r0, [r6]
+ movs r0, 0x45
+ strb r0, [r6, 0x1]
+ movs r0, 0x12
+ strb r0, [r6, 0x2]
+ b _081B8D58
+_081B8CB0:
+ movs r0, 0x3
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x45
+ strb r0, [r6, 0x2]
+ b _081B8D58
+_081B8CBE:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8CFC
+ movs r5, 0x1
+ movs r0, 0
+ bl GetBankByPlayerAI
+ mov r2, sp
+ ldr r1, =gBattlePartyID
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r4, 0
+ mov r1, sp
+_081B8CE2:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _081B8CF0
+ mov r2, sp
+ adds r0, r2, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_081B8CF0:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _081B8CE2
+ b _081B8D40
+ .pool
+_081B8CFC:
+ movs r5, 0x2
+ movs r0, 0
+ bl GetBankByPlayerAI
+ mov r1, sp
+ ldr r4, =gBattlePartyID
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1]
+ movs r0, 0x2
+ bl GetBankByPlayerAI
+ mov r1, sp
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1, 0x1]
+ movs r4, 0
+_081B8D26:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _081B8D3A
+ ldrb r0, [r1, 0x1]
+ cmp r4, r0
+ beq _081B8D3A
+ mov r2, sp
+ adds r0, r2, r5
+ strb r4, [r0]
+ adds r5, 0x1
+_081B8D3A:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _081B8D26
+_081B8D40:
+ movs r4, 0
+ mov r3, sp
+_081B8D44:
+ adds r0, r6, r4
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r2, [r3, 0x1]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _081B8D44
+_081B8D58:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8C88
+
+ thumb_func_start sub_81B8D64
+sub_81B8D64: @ 81B8D64
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, =gBattleStruct
+ lsls r3, r2, 1
+ adds r3, r2
+ adds r3, 0x60
+ ldr r0, [r0]
+ adds r0, r3
+ bl sub_81B8D88
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8D64
+
+ thumb_func_start sub_81B8D88
+sub_81B8D88: @ 81B8D88
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r0, r2, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8DB0
+ movs r0, 0
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x2
+ b _081B8DBC
+_081B8DB0:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x3
+_081B8DBC:
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_81B1250
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081B8DF0
+ cmp r7, 0
+ beq _081B8DE2
+ movs r0, 0x30
+ strb r0, [r5]
+ movs r0, 0x45
+ strb r0, [r5, 0x1]
+ movs r0, 0x12
+ strb r0, [r5, 0x2]
+ b _081B8E72
+_081B8DE2:
+ movs r0, 0x3
+ strb r0, [r5]
+ movs r0, 0x12
+ strb r0, [r5, 0x1]
+ movs r0, 0x45
+ strb r0, [r5, 0x2]
+ b _081B8E72
+_081B8DF0:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _081B8E28
+ movs r3, 0x1
+ mov r2, sp
+ ldr r1, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strb r0, [r2]
+ movs r4, 0
+ mov r1, sp
+_081B8E0C:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _081B8E1A
+ mov r2, sp
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r3, 0x1
+_081B8E1A:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _081B8E0C
+ b _081B8E5A
+ .pool
+_081B8E28:
+ movs r3, 0x2
+ mov r1, sp
+ ldr r2, =gBattlePartyID
+ lsls r0, r4, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ lsls r0, r6, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x1]
+ movs r4, 0
+_081B8E40:
+ ldrb r0, [r1]
+ cmp r4, r0
+ beq _081B8E54
+ ldrb r0, [r1, 0x1]
+ cmp r4, r0
+ beq _081B8E54
+ mov r2, sp
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r3, 0x1
+_081B8E54:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _081B8E40
+_081B8E5A:
+ movs r4, 0
+ mov r3, sp
+_081B8E5E:
+ adds r0, r5, r4
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r2, [r3, 0x1]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _081B8E5E
+_081B8E72:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8D88
+
+ thumb_func_start sub_81B8E80
+sub_81B8E80: @ 81B8E80
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r7, 0
+ bl sub_81B1250
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B8F2E
+ ldr r0, =gBattleStruct
+ lsls r1, r4, 1
+ adds r1, r4
+ adds r1, 0x60
+ ldr r0, [r0]
+ adds r4, r0, r1
+ movs r2, 0
+ add r6, sp
+ mov r12, r6
+ movs r6, 0xF
+ mov r3, sp
+_081B8EB2:
+ adds r1, r4, r2
+ ldrb r0, [r1]
+ lsrs r0, 4
+ strb r0, [r3]
+ adds r3, 0x1
+ ldrb r1, [r1]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _081B8EB2
+ mov r0, r12
+ ldrb r3, [r0]
+ movs r2, 0
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _081B8EE8
+ mov r0, sp
+ ldrb r7, [r0]
+ strb r3, [r0]
+ b _081B8EFC
+ .pool
+_081B8EE8:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _081B8EFC
+ mov r0, sp
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, r5
+ bne _081B8EE8
+ adds r7, r0, 0
+ strb r3, [r1]
+_081B8EFC:
+ cmp r2, 0x6
+ beq _081B8F2E
+ mov r0, r12
+ strb r7, [r0]
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x1]
+ orrs r0, r1
+ strb r0, [r4]
+ mov r0, sp
+ ldrb r0, [r0, 0x2]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x3]
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ lsls r0, 4
+ mov r1, sp
+ ldrb r1, [r1, 0x5]
+ orrs r0, r1
+ strb r0, [r4, 0x2]
+_081B8F2E:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B8E80
+
+ thumb_func_start sub_81B8F38
+sub_81B8F38: @ 81B8F38
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1
+ ands r1, r2
+ lsrs r2, r0, 25
+ cmp r1, 0
+ beq _081B8F58
+ ldr r0, =gUnknown_0203CF00
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ b _081B8F60
+ .pool
+_081B8F58:
+ ldr r0, =gUnknown_0203CF00
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsrs r1, r0, 4
+_081B8F60:
+ adds r0, r1, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B8F38
+
+ thumb_func_start sub_81B8F6C
+sub_81B8F6C: @ 81B8F6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ movs r1, 0x1
+ ands r1, r3
+ lsrs r3, r0, 25
+ cmp r1, 0
+ beq _081B8F94
+ ldr r0, =gUnknown_0203CF00
+ adds r0, r3, r0
+ ldrb r2, [r0]
+ movs r1, 0xF0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r0]
+ b _081B8FA4
+ .pool
+_081B8F94:
+ ldr r2, =gUnknown_0203CF00
+ adds r2, r3, r2
+ ldrb r1, [r2]
+ movs r0, 0xF
+ ands r0, r1
+ lsls r1, r4, 4
+ orrs r0, r1
+ strb r0, [r2]
+_081B8FA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B8F6C
+
+ thumb_func_start sub_81B8FB0
+sub_81B8FB0: @ 81B8FB0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ adds r0, r5, 0
+ bl sub_81B8F38
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_81B8F38
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_81B8F6C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_81B8F6C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B8FB0
+
+ thumb_func_start pokemon_order_func
+pokemon_order_func: @ 81B8FEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r3, 0
+ movs r2, 0
+ ldr r5, =gUnknown_0203CF00
+_081B8FF8:
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsrs r0, r1, 4
+ cmp r0, r4
+ beq _081B9010
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, r4
+ bne _081B9018
+_081B9010:
+ adds r0, r2, 0
+ b _081B902A
+ .pool
+_081B9018:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _081B8FF8
+ movs r0, 0
+_081B902A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_order_func
+
+ thumb_func_start pokemon_change_order
+pokemon_change_order: @ 81B9030
+ push {r4-r6,lr}
+ movs r4, 0x96
+ lsls r4, 2
+ adds r0, r4, 0
+ bl Alloc
+ adds r5, r0, 0
+ ldr r1, =gPlayerParty
+ adds r2, r4, 0
+ bl memcpy
+ movs r4, 0
+ movs r6, 0x64
+_081B904A:
+ adds r0, r4, 0
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081B904A
+ adds r0, r5, 0
+ bl Free
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end pokemon_change_order
+
+ thumb_func_start sub_81B9080
+sub_81B9080: @ 81B9080
+ push {r4-r6,lr}
+ movs r4, 0x96
+ lsls r4, 2
+ adds r0, r4, 0
+ bl Alloc
+ adds r5, r0, 0
+ ldr r1, =gPlayerParty
+ adds r2, r4, 0
+ bl memcpy
+ movs r4, 0
+ movs r6, 0x64
+_081B909A:
+ adds r0, r4, 0
+ bl sub_81B8F38
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r6
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081B909A
+ adds r0, r5, 0
+ bl Free
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9080
+
+ thumb_func_start sub_81B90D0
+sub_81B90D0: @ 81B90D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0x1
+ movs r7, 0x64
+ ldr r0, =gPlayerParty
+ mov r8, r0
+_081B90DE:
+ adds r0, r6, 0
+ bl sub_81B8F38
+ lsls r0, 24
+ lsrs r0, 24
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _081B912C
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _081B912C
+ movs r0, 0
+ bl sub_81B8F38
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ adds r1, r6, 0
+ bl sub_81B8FB0
+ adds r0, r4, 0
+ muls r0, r7
+ add r0, r8
+ adds r1, r5, 0
+ bl sub_81B1288
+ b _081B9136
+ .pool
+_081B912C:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _081B90DE
+_081B9136:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B90D0
+
+ thumb_func_start sub_81B9140
+sub_81B9140: @ 81B9140
+ push {lr}
+ ldr r0, =sub_8059D40
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9140
+
+ thumb_func_start sub_81B9150
+sub_81B9150: @ 81B9150
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x7F
+ str r0, [sp]
+ ldr r0, =sub_81B917C
+ str r0, [sp, 0x4]
+ ldr r0, =gMain
+ ldr r0, [r0, 0x8]
+ str r0, [sp, 0x8]
+ movs r0, 0x5
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9150
+
+ thumb_func_start sub_81B917C
+sub_81B917C: @ 81B917C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gTasks
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r4, 0x8]
+ bl sub_81B9294
+ movs r1, 0x80
+ lsls r1, 9
+ movs r0, 0x2
+ movs r2, 0
+ bl ChangeBgX
+ ldr r0, =sub_81B91B4
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B917C
+
+ thumb_func_start sub_81B91B4
+sub_81B91B4: @ 81B91B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r6, r5, 2
+ adds r0, r6, r5
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r4, r0, r1
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081B9220
+ ldrh r0, [r4]
+ subs r0, 0x8
+ strh r0, [r4]
+ adds r0, r5, 0
+ bl sub_81B9294
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081B9220
+ movs r4, 0x3
+ ldr r7, =gUnknown_02022FF8
+_081B91E8:
+ subs r0, r4, 0x3
+ lsls r0, 5
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081B9204
+ ldr r0, =gUnknown_0203CEDC
+ ldr r1, [r0]
+ lsls r0, r4, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x9]
+ movs r1, 0
+ bl sub_81B5B6C
+_081B9204:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081B91E8
+ movs r0, 0x78
+ bl PlaySE
+ ldr r0, =gTasks
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, =sub_81B9240
+ str r0, [r1]
+_081B9220:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B91B4
+
+ thumb_func_start sub_81B9240
+sub_81B9240: @ 81B9240
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ movs r0, 0x80
+ lsls r0, 17
+ cmp r1, r0
+ bne _081B9266
+ adds r0, r2, 0
+ bl sub_81B12C0
+_081B9266:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9240
+
+ thumb_func_start sub_81B9270
+sub_81B9270: @ 81B9270
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 16
+ lsrs r3, r1, 16
+ cmp r1, 0
+ blt _081B928A
+ ldr r1, =gSprites
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ strh r3, [r0, 0x24]
+_081B928A:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9270
+
+ thumb_func_start sub_81B9294
+sub_81B9294: @ 81B9294
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r5, r1, r0
+ movs r6, 0x3
+ ldr r7, =gUnknown_0203CEDC
+_081B92A8:
+ ldr r0, =gUnknown_02022FF8
+ subs r1, r6, 0x3
+ lsls r1, 5
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081B9300
+ ldr r0, [r7]
+ lsls r4, r6, 4
+ adds r0, r4, r0
+ ldrb r0, [r0, 0x9]
+ ldrh r1, [r5]
+ subs r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81B9270
+ ldr r0, [r7]
+ adds r0, r4, r0
+ ldrb r0, [r0, 0xA]
+ ldrh r1, [r5]
+ subs r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81B9270
+ ldr r0, [r7]
+ adds r0, r4, r0
+ ldrb r0, [r0, 0xB]
+ ldrh r1, [r5]
+ subs r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81B9270
+ ldr r0, [r7]
+ adds r4, r0
+ ldrb r0, [r4, 0xC]
+ ldrh r1, [r5]
+ subs r1, 0x8
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_81B9270
+_081B9300:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _081B92A8
+ movs r1, 0x80
+ lsls r1, 4
+ movs r0, 0x2
+ movs r2, 0x1
+ bl ChangeBgX
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9294
+
+ thumb_func_start sub_81B9328
+sub_81B9328: @ 81B9328
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0xF
+ str r0, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_81B9390
+ str r0, [sp, 0x8]
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9328
+
+ thumb_func_start sub_81B9354
+sub_81B9354: @ 81B9354
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gFieldCallback
+ ldr r1, =hm_add_c3_without_phase_2
+ str r1, [r2]
+ movs r1, 0
+ str r1, [sp]
+ ldr r1, =sub_81B1370
+ str r1, [sp, 0x4]
+ ldr r1, =c2_exit_to_overworld_2_switch
+ str r1, [sp, 0x8]
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81B0038
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9354
+
+ thumb_func_start sub_81B9390
+sub_81B9390: @ 81B9390
+ push {r4,lr}
+ ldr r4, =gSpecialVar_0x8004
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ cmp r0, 0x5
+ bls _081B93A6
+ movs r0, 0xFF
+ strh r0, [r4]
+_081B93A6:
+ ldr r0, =gFieldCallback
+ ldr r1, =hm_add_c3_without_phase_2
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9390
+
+ thumb_func_start hm_add_c3_without_phase_2
+hm_add_c3_without_phase_2: @ 81B93C8
+ push {lr}
+ bl pal_fill_black
+ ldr r0, =task_hm_without_phase_2
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end hm_add_c3_without_phase_2
+
+ thumb_func_start task_hm_without_phase_2
+task_hm_without_phase_2: @ 81B93E0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80ABDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081B93FE
+ adds r0, r4, 0
+ bl DestroyTask
+ bl script_env_2_disable
+ bl script_env_2_enable_and_set_ctx_running
+_081B93FE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end task_hm_without_phase_2
+
+ thumb_func_start sub_81B9404
+sub_81B9404: @ 81B9404
+ push {lr}
+ bl script_env_2_enable
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, =sub_81B9424
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9404
+
+ thumb_func_start sub_81B9424
+sub_81B9424: @ 81B9424
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081B945C
+ bl overworld_free_bg_tilemaps
+ str r4, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_81B9470
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81B0038
+ adds r0, r5, 0
+ bl DestroyTask
+_081B945C:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9424
+
+ thumb_func_start sub_81B9470
+sub_81B9470: @ 81B9470
+ push {lr}
+ bl brm_get_pokemon_selection
+ ldr r2, =gUnknown_02039F24
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _081B9486
+ movs r0, 0xFF
+ strb r0, [r2]
+_081B9486:
+ ldr r1, =gSpecialVar_0x8004
+ ldrb r0, [r2]
+ strh r0, [r1]
+ ldr r1, =gFieldCallback
+ ldr r0, =hm_add_c3_without_phase_2
+ str r0, [r1]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9470
+
+ thumb_func_start sub_81B94B0
+sub_81B94B0: @ 81B94B0
+ push {lr}
+ bl script_env_2_enable
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, =sub_81B94D0
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B94B0
+
+ thumb_func_start sub_81B94D0
+sub_81B94D0: @ 81B94D0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081B9508
+ bl overworld_free_bg_tilemaps
+ str r4, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_81B9390
+ str r0, [sp, 0x8]
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81B0038
+ adds r0, r5, 0
+ bl DestroyTask
+_081B9508:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B94D0
+
+ thumb_func_start sub_81B951C
+sub_81B951C: @ 81B951C
+ push {lr}
+ bl script_env_2_enable
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, =sub_81B953C
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B951C
+
+ thumb_func_start sub_81B953C
+sub_81B953C: @ 81B953C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081B9574
+ bl overworld_free_bg_tilemaps
+ str r4, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_81B9588
+ str r0, [sp, 0x8]
+ movs r0, 0x7
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0
+ bl sub_81B0038
+ adds r0, r5, 0
+ bl DestroyTask
+_081B9574:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B953C
+
+ thumb_func_start sub_81B9588
+sub_81B9588: @ 81B9588
+ push {r4,r5,lr}
+ ldr r5, =gSpecialVar_0x8004
+ bl brm_get_pokemon_selection
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ cmp r0, 0x5
+ bls _081B95A4
+ movs r0, 0xFF
+ strh r0, [r5]
+ b _081B95BA
+ .pool
+_081B95A4:
+ ldr r4, =gSpecialVar_0x8005
+ ldrh r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNumberOfRelearnableMoves
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_081B95BA:
+ ldr r0, =gFieldCallback
+ ldr r1, =hm_add_c3_without_phase_2
+ str r1, [r0]
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9588
+
+ thumb_func_start sub_81B95E0
+sub_81B95E0: @ 81B95E0
+ push {r4,r5,lr}
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r5, r1, 0
+ b _081B95FA
+ .pool
+_081B95F4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081B95FA:
+ cmp r4, 0x2
+ bhi _081B9614
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ cmp r0, 0
+ beq _081B95F4
+ movs r0, 0x1
+ strh r0, [r5]
+_081B9614:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B95E0
+
+ thumb_func_start sub_81B9620
+sub_81B9620: @ 81B9620
+ push {lr}
+ bl script_env_2_enable
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, =sub_81B9640
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9620
+
+ thumb_func_start sub_81B9640
+sub_81B9640: @ 81B9640
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081B9678
+ bl overworld_free_bg_tilemaps
+ str r4, [sp]
+ ldr r0, =sub_81B1370
+ str r0, [sp, 0x4]
+ ldr r0, =sub_81B9390
+ str r0, [sp, 0x8]
+ movs r0, 0xC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_81B0038
+ adds r0, r5, 0
+ bl DestroyTask
+_081B9678:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9640
+
+ thumb_func_start sub_81B968C
+sub_81B968C: @ 81B968C
+ push {lr}
+ sub sp, 0x4
+ ldr r1, =gPlayerParty
+ ldr r0, =gSpecialVar_0x8004
+ ldrb r2, [r0]
+ ldr r0, =gPlayerPartyCount
+ ldrb r3, [r0]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =c2_exit_to_overworld_2_switch
+ str r0, [sp]
+ movs r0, 0x3
+ bl sub_81BF8EC
+ ldr r1, =gUnknown_03005DAC
+ ldr r0, =sub_80AF168
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B968C
+
+ thumb_func_start sub_81B96D0
+sub_81B96D0: @ 81B96D0
+ push {r4,r5,lr}
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r5, r1, 0
+_081B96DC:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ adds r1, 0xD
+ bl GetMonData
+ cmp r0, 0
+ beq _081B96FA
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_081B96FA:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081B96DC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B96D0
+
+ thumb_func_start sub_81B9718
+sub_81B9718: @ 81B9718
+ push {r4,r5,lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, =gPlayerParty
+ adds r5, r0
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r1, [r0]
+ adds r1, 0xD
+ adds r0, r5, 0
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, =gStringVar1
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r0, =gStringVar2
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9718
+
+ thumb_func_start sub_81B9770
+sub_81B9770: @ 81B9770
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, =gSpecialVar_0x8004
+ mov r8, r0
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, =gPlayerParty
+ adds r0, r5
+ ldr r4, =gSpecialVar_0x8005
+ ldrb r2, [r4]
+ movs r1, 0
+ bl SetMonMoveSlot
+ mov r1, r8
+ ldrh r0, [r1]
+ muls r0, r6
+ adds r0, r5
+ ldrb r1, [r4]
+ bl RemoveMonPPBonus
+ ldrh r4, [r4]
+ cmp r4, 0x2
+ bhi _081B97C4
+_081B97A2:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl sub_81B97DC
+ lsls r4, 16
+ lsrs r4, 16
+ cmp r4, 0x2
+ bls _081B97A2
+_081B97C4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9770
+
+ thumb_func_start sub_81B97DC
+sub_81B97DC: @ 81B97DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ mov r8, r0
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r0, 0xD
+ str r0, [sp, 0x8]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x2
+ str r1, [sp, 0x14]
+ strh r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0xD
+ str r3, [sp, 0xC]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r7, r5, 0
+ adds r7, 0x11
+ str r7, [sp, 0x10]
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetMonData
+ mov r1, sp
+ adds r1, 0x5
+ str r1, [sp, 0x18]
+ strb r0, [r1]
+ adds r3, r4, 0
+ adds r3, 0x11
+ str r3, [sp, 0x1C]
+ mov r0, r8
+ adds r1, r3, 0
+ bl GetMonData
+ add r7, sp, 0x4
+ mov r10, r7
+ strb r0, [r7]
+ mov r0, r8
+ movs r1, 0x15
+ bl GetMonData
+ mov r6, sp
+ adds r6, 0x6
+ strb r0, [r6]
+ ldr r1, =gUnknown_08329D22
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ mov r3, r9
+ ands r2, r3
+ lsls r5, 1
+ asrs r2, r5
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r4, r1
+ ldrb r3, [r1]
+ adds r1, r0, 0
+ ands r1, r3
+ lsls r4, 1
+ asrs r1, r4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r7, r9
+ bics r0, r7
+ strb r0, [r6]
+ ldrb r0, [r6]
+ bics r0, r3
+ strb r0, [r6]
+ lsls r2, r4
+ lsls r1, r5
+ adds r2, r1
+ ldrb r0, [r6]
+ orrs r0, r2
+ strb r0, [r6]
+ mov r0, r8
+ ldr r1, [sp, 0x8]
+ mov r2, sp
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x10]
+ mov r2, r10
+ bl SetMonData
+ mov r0, r8
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r6, 0
+ bl SetMonData
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B97DC
+
+ thumb_func_start sub_81B98DC
+sub_81B98DC: @ 81B98DC
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081B990C
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+ b _081B9910
+ .pool
+_081B990C:
+ ldr r0, =gScriptResult
+ strh r1, [r0]
+_081B9910:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B98DC
+
+ thumb_func_start sub_81B9918
+sub_81B9918: @ 81B9918
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r1, [r1]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r0, 0x39
+ bne _081B999C
+ movs r6, 0
+ b _081B9980
+ .pool
+_081B9958:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _081B997E
+ movs r4, 0
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ ldr r7, =gPlayerParty
+_081B996A:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r5, r7
+ bl GetMonData
+ cmp r0, 0x39
+ beq _081B999C
+ adds r4, 0x1
+ cmp r4, 0x3
+ bls _081B996A
+_081B997E:
+ adds r6, 0x1
+_081B9980:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ bcc _081B9958
+ mov r0, r8
+ bl sub_80D23A8
+ cmp r0, 0x1
+ beq _081B999C
+ ldr r1, =gScriptResult
+ movs r0, 0x1
+ strh r0, [r1]
+_081B999C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9918
+
+ thumb_func_start sub_81B99B4
+sub_81B99B4: @ 81B99B4
+ push {lr}
+ ldr r1, =gUnknown_086160B4
+ 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_81B99B4
+
+ thumb_func_start sub_81B99D4
+sub_81B99D4: @ 81B99D4
+ push {lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r1]
+ ldr r3, =0x00000cb2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ 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
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B99D4
+
+ thumb_func_start sub_81B9A28
+sub_81B9A28: @ 81B9A28
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000e6a
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9A28
+
+ thumb_func_start sub_81B9A44
+sub_81B9A44: @ 81B9A44
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000e6a
+ adds r0, r2
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9A44
+
+ thumb_func_start sub_81B9A60
+sub_81B9A60: @ 81B9A60
+ 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_81B9A60
+
+ thumb_func_start sub_81B9A90
+sub_81B9A90: @ 81B9A90
+ push {lr}
+ ldr r3, =gTrainerBattleOpponent_A
+ ldrh r1, [r3]
+ ldr r0, =0x0000012b
+ cmp r1, r0
+ bhi _081B9AAC
+ ldr r2, =gUnknown_0203BC88
+ movs r0, 0x34
+ muls r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ adds r0, 0xC
+ bl ConvertBattleFrontierTrainerSpeechToString
+_081B9AAC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9A90
+
+ thumb_func_start sub_81B9ABC
+sub_81B9ABC: @ 81B9ABC
+ 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_81B9ABC
+
+ thumb_func_start sub_81B9B00
+sub_81B9B00: @ 81B9B00
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r5, =gUnknown_086160D4
+ bl Random
+ ldrh r0, [r5]
+ ldr r1, =0x00000e6a
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9B00
+
+ thumb_func_start sub_81B9B28
+sub_81B9B28: @ 81B9B28
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000e6a
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _081B9B70
+ ldr r0, [r4]
+ ldr r1, =0x00000e6a
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000e6a
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081B9B76
+ .pool
+_081B9B70:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_081B9B76:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9B28
+
+ thumb_func_start sub_81B9B80
+sub_81B9B80: @ 81B9B80
+ push {lr}
+ ldr r1, =gUnknown_086160D8
+ 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_81B9B80
+
+ thumb_func_start sub_81B9BA0
+sub_81B9BA0: @ 81B9BA0
+ push {lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r1]
+ ldr r3, =0x00000cb2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ 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
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9BA0
+
+ thumb_func_start sub_81B9BF4
+sub_81B9BF4: @ 81B9BF4
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000e6c
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9BF4
+
+ thumb_func_start sub_81B9C10
+sub_81B9C10: @ 81B9C10
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000e6c
+ adds r0, r2
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9C10
+
+ thumb_func_start sub_81B9C2C
+sub_81B9C2C: @ 81B9C2C
+ 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_81B9C2C
+
+ thumb_func_start sub_81B9C70
+sub_81B9C70: @ 81B9C70
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r5, =gUnknown_086160F4
+ bl Random
+ ldrh r0, [r5]
+ ldr r1, =0x00000e6c
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9C70
+
+ thumb_func_start sub_81B9C98
+sub_81B9C98: @ 81B9C98
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000e6c
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _081B9CE0
+ ldr r0, [r4]
+ ldr r1, =0x00000e6c
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000e6c
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081B9CE6
+ .pool
+_081B9CE0:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_081B9CE6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9C98
+
+ thumb_func_start sub_81B9CF0
+sub_81B9CF0: @ 81B9CF0
+ push {lr}
+ ldr r0, =gStringVar1
+ ldr r1, =gTrainerBattleOpponent_A
+ ldrh r1, [r1]
+ bl sub_8162E20
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9CF0
+
+ thumb_func_start sub_81B9D08
+sub_81B9D08: @ 81B9D08
+ push {lr}
+ ldr r1, =gUnknown_086160F8
+ 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_81B9D08
+
+ thumb_func_start sub_81B9D28
+sub_81B9D28: @ 81B9D28
+ push {lr}
+ ldr r1, =gSaveBlock2Ptr
+ ldr r0, [r1]
+ ldr r2, =0x00000ca8
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r1]
+ ldr r3, =0x00000cb2
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r0, =0x00000ca9
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ 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
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9D28
+
+ thumb_func_start sub_81B9D7C
+sub_81B9D7C: @ 81B9D7C
+ ldr r1, =gScriptResult
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000e6e
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9D7C
+
+ thumb_func_start sub_81B9D98
+sub_81B9D98: @ 81B9D98
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r1, [r1]
+ ldr r2, =0x00000e6e
+ adds r0, r2
+ strh r1, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_81B9D98
+
+ thumb_func_start sub_81B9DB4
+sub_81B9DB4: @ 81B9DB4
+ 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_81B9DB4
+
+ thumb_func_start sub_81B9DF8
+sub_81B9DF8: @ 81B9DF8
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r4, [r0]
+ ldr r5, =gUnknown_08616120
+ bl Random
+ ldrh r0, [r5]
+ ldr r1, =0x00000e6e
+ adds r4, r1
+ strh r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9DF8
+
+ thumb_func_start sub_81B9E20
+sub_81B9E20: @ 81B9E20
+ push {r4,r5,lr}
+ ldr r4, =gSaveBlock2Ptr
+ ldr r0, [r4]
+ ldr r1, =0x00000e6e
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x1
+ bl AddBagItem
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bne _081B9E68
+ ldr r0, [r4]
+ ldr r1, =0x00000e6e
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gStringVar1
+ bl CopyItemName
+ ldr r0, [r4]
+ ldr r1, =0x00000e6e
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, =gScriptResult
+ strh r5, [r0]
+ b _081B9E6E
+ .pool
+_081B9E68:
+ ldr r1, =gScriptResult
+ movs r0, 0
+ strh r0, [r1]
+_081B9E6E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B9E20
+
+ thumb_func_start sub_81B9E78
+sub_81B9E78: @ 81B9E78
+ push {lr}
+ bl ZeroPlayerPartyMons
+ bl sub_819A4F8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B9E78
+
+ thumb_func_start sub_81B9E88
+sub_81B9E88: @ 81B9E88
+ push {lr}
+ bl sub_819DC00
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81B9E88
+
+ thumb_func_start sub_81B9E94
+sub_81B9E94: @ 81B9E94
+ push {lr}
+ movs r2, 0
+ ldr r1, =gUnknown_02037318
+ ldrb r0, [r1, 0x14]
+ cmp r0, 0x8
+ bne _081B9EB2
+ ldr r3, =0xfffffe7f
+ adds r0, r3, 0
+ ldrh r1, [r1, 0x12]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _081B9EB2
+ movs r2, 0x1
+_081B9EB2:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81B9E94
+
+ thumb_func_start sub_81B9EC0
+sub_81B9EC0: @ 81B9EC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gSlateportBattleTentTrainers
+ str r0, [r1]
+ add r0, sp, 0xC
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x18
+ str r1, [sp, 0x2C]
+ ldr r5, =gUnknown_0203BC8C
+ ldr r4, =gSlateportBattleTentMons
+ movs r2, 0
+ adds r3, r1, 0
+ mov r1, r9
+ mov r0, sp
+ movs r6, 0x5
+ mov r8, r6
+_081B9EEC:
+ strh r2, [r0]
+ strh r2, [r1]
+ strh r2, [r3]
+ adds r3, 0x2
+ adds r1, 0x2
+ adds r0, 0x2
+ movs r7, 0x1
+ negs r7, r7
+ add r8, r7
+ mov r6, r8
+ cmp r6, 0
+ bge _081B9EEC
+ str r4, [r5]
+ movs r7, 0
+ mov r10, r7
+ movs r0, 0
+ mov r8, r0
+ ldr r1, [sp, 0x2C]
+ str r1, [sp, 0x30]
+ mov r2, sp
+ str r2, [sp, 0x34]
+ lsls r6, r0, 1
+ str r6, [sp, 0x24]
+ add r6, r9
+ str r6, [sp, 0x28]
+_081B9F1E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x46
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r2, 0
+ mov r7, r8
+ adds r6, r2, r7
+ cmp r2, r6
+ bge _081B9F7C
+ ldr r1, [sp, 0x28]
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _081B9F7C
+ ldr r0, =gUnknown_0203BC8C
+ ldr r1, [r0]
+ lsls r0, r5, 4
+ adds r4, r0, r1
+ ldrh r7, [r4]
+ mov r12, r7
+ lsls r3, r2, 1
+ ldr r1, [sp, 0x24]
+ add r1, sp
+ str r6, [sp, 0x38]
+_081B9F56:
+ ldrh r0, [r1]
+ cmp r0, r12
+ bne _081B9F66
+ mov r0, r10
+ cmp r0, 0
+ bne _081B9F7C
+ ldrh r7, [r4]
+ mov r10, r7
+_081B9F66:
+ adds r3, 0x2
+ adds r1, 0x2
+ adds r2, 0x1
+ ldr r0, [sp, 0x38]
+ cmp r2, r0
+ bge _081B9F7C
+ mov r7, r9
+ adds r0, r7, r3
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _081B9F56
+_081B9F7C:
+ cmp r2, r6
+ bne _081BA01C
+ movs r2, 0
+ cmp r2, r6
+ bge _081B9FD4
+ ldr r0, =gBattleFrontierHeldItems
+ mov r12, r0
+ ldr r7, =gUnknown_0203BC8C
+ ldr r1, [sp, 0x24]
+ ldr r0, [sp, 0x2C]
+ adds r4, r1, r0
+_081B9F92:
+ ldrh r3, [r4]
+ cmp r3, 0
+ beq _081B9FCC
+ ldr r1, [r7]
+ lsls r0, r5, 4
+ adds r1, r0, r1
+ ldrb r0, [r1, 0xA]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r3, r0
+ bne _081B9FCC
+ ldrh r0, [r1]
+ cmp r0, r10
+ bne _081B9FD4
+ movs r1, 0
+ mov r10, r1
+ b _081B9FD4
+ .pool
+_081B9FCC:
+ adds r4, 0x2
+ adds r2, 0x1
+ cmp r2, r6
+ blt _081B9F92
+_081B9FD4:
+ cmp r2, r6
+ bne _081BA01C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ mov r2, r8
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r1, r0
+ movs r6, 0xE7
+ lsls r6, 4
+ adds r1, r6
+ strh r5, [r1]
+ ldr r0, =gUnknown_0203BC8C
+ ldr r0, [r0]
+ lsls r1, r5, 4
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r7, [sp, 0x34]
+ strh r0, [r7]
+ ldr r2, =gBattleFrontierHeldItems
+ ldrb r0, [r1, 0xA]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r1, [sp, 0x30]
+ strh r0, [r1]
+ add r3, r9
+ strh r5, [r3]
+ adds r1, 0x2
+ str r1, [sp, 0x30]
+ adds r2, r7, 0
+ adds r2, 0x2
+ str r2, [sp, 0x34]
+ movs r6, 0x1
+ add r8, r6
+_081BA01C:
+ mov r7, r8
+ cmp r7, 0x6
+ beq _081BA024
+ b _081B9F1E
+_081BA024:
+ 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_81B9EC0
+
+ thumb_func_start sub_81BA040
+sub_81BA040: @ 81BA040
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r10, r0
+ ldr r1, =gUnknown_0203BC88
+ ldr r0, =gSlateportBattleTentTrainers
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r0, =gSlateportBattleTentMons
+ str r0, [r1]
+ ldr r7, =gSaveBlock2Ptr
+ ldr r1, =0x0000ffff
+ mov r8, r1
+_081BA062:
+ mov r2, r10
+ lsls r6, r2, 1
+_081BA066:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1E
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r5, 0
+ ldr r1, [r7]
+ ldr r4, =0x00000cb2
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ cmp r5, r0
+ bge _081BA0AA
+ ldr r2, =0x00000cb4
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r3
+ beq _081BA0AA
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ adds r0, r1, r4
+ ldrh r2, [r0]
+ adds r4, 0x2
+ adds r1, r4
+_081BA09C:
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, r2
+ bge _081BA0AA
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081BA09C
+_081BA0AA:
+ ldr r0, [r7]
+ ldr r1, =0x00000cb2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _081BA066
+ ldr r2, =gTrainerBattleOpponent_A
+ strh r3, [r2]
+ ldrh r3, [r2]
+ ldr r4, =gUnknown_0203BC88
+ ldr r1, [r4]
+ movs r0, 0x34
+ muls r0, r3
+ adds r0, r1
+ ldr r0, [r0, 0x30]
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ cmp r0, r8
+ beq _081BA0DE
+ ldr r3, =0x0000ffff
+_081BA0D2:
+ adds r1, 0x2
+ movs r6, 0x1
+ add r10, r6
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _081BA0D2
+_081BA0DE:
+ mov r0, r10
+ cmp r0, 0x8
+ bgt _081BA110
+ movs r1, 0
+ mov r10, r1
+ b _081BA062
+ .pool
+_081BA110:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r1, [r0]
+ ldr r6, =0x00000cb2
+ adds r3, r1, r6
+ ldrh r0, [r3]
+ cmp r0, 0x1
+ bhi _081BA12A
+ lsls r0, 1
+ ldr r3, =0x00000cb4
+ adds r1, r3
+ adds r1, r0
+ ldrh r0, [r2]
+ strh r0, [r1]
+_081BA12A:
+ ldrh r1, [r2]
+ ldr r2, [r4]
+ movs r0, 0x34
+ muls r0, r1
+ adds r0, r2
+ ldr r0, [r0, 0x30]
+ mov r9, r0
+ movs r5, 0
+ ldr r7, =gUnknown_03001298
+ mov r8, sp
+_081BA13E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r10
+ bl __modsi3
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r7]
+ movs r2, 0
+ ldrh r0, [r7]
+ ldr r4, =gUnknown_0203BC8C
+ ldr r3, [r4]
+ lsls r0, 4
+ adds r0, r3
+ ldr r1, =gSaveBlock2Ptr
+ ldrh r6, [r0]
+ ldr r1, [r1]
+_081BA166:
+ movs r4, 0xE7
+ lsls r4, 4
+ adds r0, r1, r4
+ ldrh r0, [r0]
+ lsls r0, 4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _081BA180
+ adds r1, 0xC
+ adds r2, 0x1
+ cmp r2, 0x5
+ ble _081BA166
+_081BA180:
+ cmp r2, 0x6
+ bne _081BA220
+ movs r4, 0
+ cmp r4, r5
+ bge _081BA1B0
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _081BA1B0
+ ldr r6, =gUnknown_03001298
+ ldr r3, =gUnknown_0203BC8C
+ mov r2, sp
+_081BA198:
+ adds r2, 0x2
+ adds r4, 0x1
+ cmp r4, r5
+ bge _081BA1B0
+ ldrh r0, [r6]
+ ldr r1, [r3]
+ lsls r0, 4
+ adds r0, r1
+ ldrh r1, [r2]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _081BA198
+_081BA1B0:
+ cmp r4, r5
+ bne _081BA220
+ movs r4, 0
+ cmp r4, r5
+ bge _081BA1E6
+ ldr r6, =gBattleFrontierHeldItems
+ mov r12, r6
+ add r3, sp, 0x8
+_081BA1C0:
+ ldrh r2, [r3]
+ cmp r2, 0
+ beq _081BA1DE
+ ldr r1, =gUnknown_03001298
+ ldrh r0, [r1]
+ ldr r6, =gUnknown_0203BC8C
+ ldr r1, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xA]
+ lsls r0, 1
+ add r0, r12
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _081BA1E6
+_081BA1DE:
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, r5
+ blt _081BA1C0
+_081BA1E6:
+ cmp r4, r5
+ bne _081BA220
+ lsls r2, r5, 1
+ ldrh r0, [r7]
+ ldr r1, =gUnknown_0203BC8C
+ ldr r4, [r1]
+ lsls r0, 4
+ adds r0, r4
+ ldrh r0, [r0]
+ mov r3, r8
+ strh r0, [r3]
+ add r1, sp, 0x8
+ adds r1, r2
+ ldr r3, =gBattleFrontierHeldItems
+ ldrh r0, [r7]
+ lsls r0, 4
+ adds r0, r4
+ ldrb r0, [r0, 0xA]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, =gUnknown_03006298
+ adds r2, r0
+ ldrh r0, [r7]
+ strh r0, [r2]
+ movs r4, 0x2
+ add r8, r4
+ adds r5, 0x1
+_081BA220:
+ cmp r5, 0x3
+ bne _081BA13E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81BA040
+
+ thumb_func_start Font6Func
+@ int Font6Func(struct TextPrinter *x)
+Font6Func: @ 81BA250
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r6, 0
+ adds r4, 0x14
+ ldrb r0, [r6, 0x1C]
+ cmp r0, 0x6
+ bls _081BA260
+ b _081BA660
+_081BA260:
+ lsls r0, 2
+ ldr r1, =_081BA270
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081BA270:
+ .4byte _081BA28C
+ .4byte _081BA554
+ .4byte _081BA566
+ .4byte _081BA590
+ .4byte _081BA5C8
+ .4byte _081BA63C
+ .4byte _081BA64E
+_081BA28C:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081BA2A6
+ ldrb r1, [r4]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081BA2A6
+ movs r0, 0
+ strb r0, [r6, 0x1E]
+_081BA2A6:
+ ldrb r1, [r6, 0x1E]
+ cmp r1, 0
+ beq _081BA2E8
+ ldrb r0, [r6, 0x1D]
+ cmp r0, 0
+ beq _081BA2E8
+ subs r0, r1, 0x1
+ strb r0, [r6, 0x1E]
+ ldr r0, =gTextFlags
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081BA2C4
+ b _081BA50E
+_081BA2C4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081BA2D0
+ b _081BA50E
+_081BA2D0:
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0
+ strb r0, [r6, 0x1E]
+ b _081BA50E
+ .pool
+_081BA2E8:
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081BA2FC
+ movs r0, 0x3
+ b _081BA2FE
+ .pool
+_081BA2FC:
+ ldrb r0, [r6, 0x1D]
+_081BA2FE:
+ strb r0, [r6, 0x1E]
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ adds r0, r3, 0
+ subs r0, 0xF8
+ cmp r0, 0x7
+ bls _081BA312
+ b _081BA52E
+_081BA312:
+ lsls r0, 2
+ ldr r1, =_081BA320
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081BA320:
+ .4byte _081BA524
+ .4byte _081BA512
+ .4byte _081BA504
+ .4byte _081BA500
+ .4byte _081BA36E
+ .4byte _081BA368
+ .4byte _081BA340
+ .4byte _081BA660
+_081BA340:
+ ldrb r0, [r6, 0x6]
+ strb r0, [r6, 0x8]
+ ldrb r1, [r6, 0x5]
+ ldr r0, =gFonts
+ ldr r2, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r6, 0xB]
+ ldrb r0, [r0, 0x5]
+ adds r1, r0
+ ldrb r0, [r6, 0x9]
+ adds r0, r1
+ strb r0, [r6, 0x9]
+_081BA35E:
+ movs r0, 0x2
+ b _081BA662
+ .pool
+_081BA368:
+ ldr r0, [r6]
+ adds r0, 0x1
+ b _081BA4C4
+_081BA36E:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ adds r0, 0x1
+ str r0, [r6]
+ subs r0, r3, 0x1
+ cmp r0, 0xF
+ bls _081BA37E
+ b _081BA52E
+_081BA37E:
+ lsls r0, 2
+ ldr r1, =_081BA38C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081BA38C:
+ .4byte _081BA3CC
+ .4byte _081BA3EE
+ .4byte _081BA412
+ .4byte _081BA42C
+ .4byte _081BA478
+ .4byte _081BA47E
+ .4byte _081BA35E
+ .4byte _081BA498
+ .4byte _081BA4A8
+ .4byte _081BA4BC
+ .4byte _081BA4C0
+ .4byte _081BA4C8
+ .4byte _081BA4D2
+ .4byte _081BA4DE
+ .4byte _081BA4EE
+ .4byte _081BA4C0
+_081BA3CC:
+ ldr r2, [r6]
+ ldrb r1, [r2]
+ lsls r1, 4
+ ldrb r3, [r6, 0xC]
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r6, 0xC]
+ adds r2, 0x1
+ str r2, [r6]
+ lsls r0, 24
+ lsrs r0, 28
+ ldrb r2, [r6, 0xD]
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsrs r2, 4
+ b _081BA472
+_081BA3EE:
+ ldr r1, [r6]
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ ldrb r3, [r6, 0xD]
+ movs r2, 0x10
+ negs r2, r2
+ ands r2, r3
+ orrs r2, r0
+ strb r2, [r6, 0xD]
+ adds r1, 0x1
+ str r1, [r6]
+ ldrb r0, [r6, 0xC]
+ lsrs r0, 4
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsrs r2, 4
+ b _081BA472
+_081BA412:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ lsls r0, 4
+ ldrb r3, [r6, 0xD]
+ movs r2, 0xF
+ ands r2, r3
+ orrs r2, r0
+ strb r2, [r6, 0xD]
+ adds r1, 0x1
+ str r1, [r6]
+ ldrb r0, [r6, 0xC]
+ lsrs r0, 4
+ b _081BA46A
+_081BA42C:
+ ldr r3, [r6]
+ ldrb r1, [r3]
+ lsls r1, 4
+ ldrb r4, [r6, 0xC]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r6, 0xC]
+ adds r5, r3, 0x1
+ str r5, [r6]
+ ldrb r3, [r3, 0x1]
+ adds r1, r2, 0
+ ands r1, r3
+ ldrb r4, [r6, 0xD]
+ movs r3, 0x10
+ negs r3, r3
+ ands r3, r4
+ orrs r3, r1
+ strb r3, [r6, 0xD]
+ adds r4, r5, 0x1
+ str r4, [r6]
+ ldrb r1, [r5, 0x1]
+ lsls r1, 4
+ ands r2, r3
+ orrs r2, r1
+ strb r2, [r6, 0xD]
+ adds r4, 0x1
+ str r4, [r6]
+ lsls r0, 24
+ lsrs r0, 28
+_081BA46A:
+ lsls r1, r2, 28
+ lsrs r1, 28
+ lsls r2, 24
+ lsrs r2, 28
+_081BA472:
+ bl GenerateFontHalfRowLookupTable
+ b _081BA35E
+_081BA478:
+ ldr r0, [r6]
+ adds r0, 0x1
+ b _081BA4C4
+_081BA47E:
+ ldr r0, [r6]
+ ldrb r0, [r0]
+ movs r1, 0xF
+ ands r1, r0
+ ldrb r2, [r4]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldr r0, [r6]
+ adds r0, 0x1
+ b _081BA4C4
+_081BA498:
+ ldr r0, [r6]
+ ldrb r1, [r0]
+ strb r1, [r6, 0x1E]
+ adds r0, 0x1
+ str r0, [r6]
+ movs r0, 0x6
+ strb r0, [r6, 0x1C]
+ b _081BA35E
+_081BA4A8:
+ movs r0, 0x1
+ strb r0, [r6, 0x1C]
+ ldrb r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081BA50E
+ movs r0, 0
+ strb r0, [r4, 0x2]
+ b _081BA50E
+_081BA4BC:
+ movs r0, 0x5
+ b _081BA64A
+_081BA4C0:
+ ldr r0, [r6]
+ adds r0, 0x2
+_081BA4C4:
+ str r0, [r6]
+ b _081BA35E
+_081BA4C8:
+ ldr r1, [r6]
+ adds r0, r1, 0x1
+ str r0, [r6]
+ ldrb r3, [r1, 0x1]
+ b _081BA52E
+_081BA4D2:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ ldrb r2, [r6, 0x6]
+ adds r0, r2
+ strb r0, [r6, 0x8]
+ b _081BA4E8
+_081BA4DE:
+ ldr r1, [r6]
+ ldrb r0, [r1]
+ ldrb r2, [r6, 0x7]
+ adds r0, r2
+ strb r0, [r6, 0x9]
+_081BA4E8:
+ adds r1, 0x1
+ str r1, [r6]
+ b _081BA35E
+_081BA4EE:
+ ldrb r0, [r6, 0x4]
+ ldrb r2, [r6, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl FillWindowPixelBuffer
+ b _081BA35E
+_081BA500:
+ movs r0, 0x2
+ b _081BA506
+_081BA504:
+ movs r0, 0x3
+_081BA506:
+ strb r0, [r6, 0x1C]
+ adds r0, r6, 0
+ bl TextPrinterInitDownArrowCounters
+_081BA50E:
+ movs r0, 0x3
+ b _081BA662
+_081BA512:
+ ldr r0, [r6]
+ ldrb r3, [r0]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r3, r1
+ adds r0, 0x1
+ str r0, [r6]
+ b _081BA52E
+_081BA524:
+ ldr r0, [r6]
+ adds r0, 0x1
+ str r0, [r6]
+ movs r0, 0
+ b _081BA662
+_081BA52E:
+ adds r0, r3, 0
+ bl DecompressGlyphFont6
+ adds r0, r6, 0
+ bl CopyGlyphToWindow
+ ldr r0, =gUnknown_03002F90
+ adds r0, 0x80
+ ldrb r1, [r6, 0xA]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r6, 0x8]
+ adds r0, r1
+ strb r0, [r6, 0x8]
+ movs r0, 0
+ b _081BA662
+ .pool
+_081BA554:
+ adds r0, r6, 0
+ bl TextPrinterWait
+ lsls r0, 16
+ cmp r0, 0
+ beq _081BA50E
+ movs r0, 0
+ strb r0, [r6, 0x1C]
+ b _081BA50E
+_081BA566:
+ adds r0, r6, 0
+ bl TextPrinterWaitWithDownArrow
+ lsls r0, 16
+ cmp r0, 0
+ beq _081BA50E
+ ldrb r0, [r6, 0x4]
+ ldrb r2, [r6, 0xD]
+ lsls r2, 28
+ lsrs r1, r2, 4
+ orrs r1, r2
+ lsrs r1, 24
+ bl FillWindowPixelBuffer
+ ldrb r0, [r6, 0x6]
+ movs r1, 0
+ strb r0, [r6, 0x8]
+ ldrb r0, [r6, 0x7]
+ strb r0, [r6, 0x9]
+ strb r1, [r6, 0x1C]
+ b _081BA50E
+_081BA590:
+ adds r0, r6, 0
+ bl TextPrinterWaitWithDownArrow
+ lsls r0, 16
+ cmp r0, 0
+ beq _081BA50E
+ adds r0, r6, 0
+ bl TextPrinterClearDownArrow
+ ldrb r1, [r6, 0x5]
+ ldr r0, =gFonts
+ ldr r2, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r6, 0xB]
+ ldrb r0, [r0, 0x5]
+ adds r1, r0
+ strb r1, [r6, 0x1F]
+ ldrb r0, [r6, 0x6]
+ strb r0, [r6, 0x8]
+ movs r0, 0x4
+ strb r0, [r6, 0x1C]
+ b _081BA50E
+ .pool
+_081BA5C8:
+ ldrb r2, [r6, 0x1F]
+ cmp r2, 0
+ beq _081BA638
+ ldr r4, =gUnknown_08616124
+ ldr r5, =gSaveBlock2Ptr
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x14]
+ lsls r1, r0, 29
+ lsrs r0, r1, 29
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _081BA604
+ ldrb r0, [r6, 0x4]
+ ldrb r1, [r6, 0xD]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0
+ bl ScrollWindow
+ movs r0, 0
+ strb r0, [r6, 0x1F]
+ b _081BA62E
+ .pool
+_081BA604:
+ ldrb r0, [r6, 0x4]
+ lsrs r1, 29
+ adds r1, r4
+ ldrb r2, [r1]
+ ldrb r1, [r6, 0xD]
+ lsls r1, 28
+ lsrs r3, r1, 4
+ orrs r3, r1
+ lsrs r3, 24
+ movs r1, 0
+ bl ScrollWindow
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x14]
+ lsls r0, 29
+ lsrs r0, 29
+ adds r0, r4
+ ldrb r1, [r6, 0x1F]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r6, 0x1F]
+_081BA62E:
+ ldrb r0, [r6, 0x4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ b _081BA50E
+_081BA638:
+ strb r2, [r6, 0x1C]
+ b _081BA50E
+_081BA63C:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081BA64A
+ b _081BA50E
+_081BA64A:
+ strb r0, [r6, 0x1C]
+ b _081BA50E
+_081BA64E:
+ ldrb r0, [r6, 0x1E]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _081BA65C
+ subs r0, 0x1
+ strb r0, [r6, 0x1E]
+ b _081BA50E
+_081BA65C:
+ strb r1, [r6, 0x1C]
+ b _081BA50E
+_081BA660:
+ movs r0, 0x1
+_081BA662:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end Font6Func
+
+ thumb_func_start DecompressGlyphFont6
+DecompressGlyphFont6: @ 81BA668
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 19
+ lsls r2, 9
+ movs r1, 0xE0
+ lsls r1, 11
+ ands r1, r0
+ lsrs r1, 11
+ ldr r0, =gFont6BrailleGlyphs
+ adds r1, r0
+ adds r5, r2, r1
+ ldr r4, =gUnknown_03002F90
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl DecompressGlyphTile
+ adds r0, r5, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x20
+ bl DecompressGlyphTile
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x40
+ bl DecompressGlyphTile
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r5, r1
+ adds r1, r4, 0
+ adds r1, 0x60
+ bl DecompressGlyphTile
+ adds r0, r4, 0
+ adds r0, 0x80
+ movs r1, 0x10
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end DecompressGlyphFont6
+
+ thumb_func_start GetGlyphWidthFont6
+GetGlyphWidthFont6: @ 81BA6CC
+ movs r0, 0x10
+ bx lr
+ thumb_func_end GetGlyphWidthFont6
+
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 8b686dc50..d94b7440c 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -227,6 +227,8 @@ SECTIONS {
asm/battle_controller_recorded_opponent.o(.text);
asm/battle_controller_recorded_player.o(.text);
asm/rom_818CFC8.o(.text);
+ asm/lilycove_lady.o(.text);
+ asm/rom_818E9AC.o(.text);
src/multiboot.o(.text);
asm/rom_81BAD84.o(.text);
asm/battle_controller_player_partner.o(.text);