summaryrefslogtreecommitdiff
path: root/asm/use_pokeblock.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/use_pokeblock.s')
-rwxr-xr-xasm/use_pokeblock.s3771
1 files changed, 3771 insertions, 0 deletions
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
new file mode 100755
index 000000000..67441ee8b
--- /dev/null
+++ b/asm/use_pokeblock.s
@@ -0,0 +1,3771 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8166204
+sub_8166204: @ 8166204
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, =0x0000806c
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r1, =gUnknown_0203BC90
+ ldr r2, =0x00007fd0
+ adds r0, r2
+ str r0, [r1]
+ str r5, [r0, 0x8]
+ str r6, [r0, 0x4]
+ ldr r0, =sub_8166380
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_816631C
+ bl SetMainCallback2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166204
+
+ thumb_func_start sub_816624C
+sub_816624C: @ 816624C
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, =0x0000806c
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r5, =gUnknown_0203BC90
+ ldr r1, =0x00007fd0
+ adds r0, r1
+ str r0, [r5]
+ ldr r1, =gUnknown_0203BC98
+ ldr r1, [r1]
+ str r1, [r0, 0x8]
+ ldr r1, =gUnknown_0203BC94
+ ldr r1, [r1]
+ str r1, [r0, 0x4]
+ ldr r4, =gUnknown_0203BC9C
+ ldrb r0, [r4]
+ bl sub_81672E4
+ strb r0, [r4]
+ ldr r5, [r5]
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08166284
+ movs r1, 0x1
+_08166284:
+ adds r0, r5, 0
+ adds r0, 0x56
+ strb r1, [r0]
+ ldr r0, =sub_8166380
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_81662C0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816624C
+
+ thumb_func_start sub_81662C0
+sub_81662C0: @ 81662C0
+ push {r4,lr}
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r4, [r4]
+ ldr r1, [r4]
+ ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
+ cmp r1, r0
+ bne _081662F0
+ adds r0, r4, 0
+ adds r0, 0x50
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =sub_8166304
+ bl SetMainCallback2
+_081662F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81662C0
+
+ thumb_func_start sub_8166304
+sub_8166304: @ 8166304
+ push {lr}
+ bl sub_81668F8
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8166304
+
+ thumb_func_start sub_816631C
+sub_816631C: @ 816631C
+ push {lr}
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTextPrinters
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816631C
+
+ thumb_func_start sub_8166340
+sub_8166340: @ 8166340
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D2108
+ bl sub_80BA0A8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166340
+
+ thumb_func_start launch_c3_walk_stairs_and_run_once
+launch_c3_walk_stairs_and_run_once: @ 816636C
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ str r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end launch_c3_walk_stairs_and_run_once
+
+ thumb_func_start sub_8166380
+sub_8166380: @ 8166380
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xF
+ bls _08166394
+ b _08166556
+_08166394:
+ lsls r0, 2
+ ldr r1, =_081663A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081663A8:
+ .4byte _081663E8
+ .4byte _0816640C
+ .4byte _08166416
+ .4byte _08166434
+ .4byte _08166464
+ .4byte _08166468
+ .4byte _08166474
+ .4byte _08166484
+ .4byte _08166490
+ .4byte _0816649C
+ .4byte _081664B8
+ .4byte _081664BC
+ .4byte _081664E4
+ .4byte _08166510
+ .4byte _08166528
+ .4byte _08166550
+_081663E8:
+ ldr r2, =gUnknown_0203BCAC
+ ldr r0, [r2]
+ ldr r1, =0x00007b10
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, =0x00007c58
+ adds r0, r2
+ bl sub_81D1ED4
+ b _0816653C
+ .pool
+_0816640C:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _0816653C
+_08166416:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ str r0, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, =0x05006000
+ mov r0, sp
+ bl CpuSet
+ b _0816653C
+ .pool
+_08166434:
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_085DFCCC
+ movs r0, 0
+ movs r2, 0x4
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_085DFCDC
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ movs r1, 0x97
+ movs r2, 0xE0
+ bl sub_809882C
+ b _0816653C
+ .pool
+_08166464:
+ ldr r1, [r2]
+ b _08166540
+_08166468:
+ bl sub_8168328
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+_08166474:
+ ldr r1, =gKeyRepeatStartDelay
+ movs r0, 0x14
+ strh r0, [r1]
+ bl sub_8167420
+ b _0816653C
+ .pool
+_08166484:
+ bl sub_8167930
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+_08166490:
+ movs r0, 0
+ bl sub_8167608
+ bl sub_8167760
+ b _0816653C
+_0816649C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b0e
+ adds r0, r1
+ bl sub_81D312C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ b _0816653C
+ .pool
+_081664B8:
+ ldr r1, [r2]
+ b _08166540
+_081664BC:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r1, [r5]
+ ldr r4, =0x00007c58
+ adds r0, r1, r4
+ ldr r2, =0x00007c6c
+ adds r1, r2
+ bl sub_81D2754
+ ldr r0, [r5]
+ adds r0, r4
+ bl sub_81D20AC
+ b _0816653C
+ .pool
+_081664E4:
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D20BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166556
+ ldr r2, [r4]
+ ldr r1, =0x00007c58
+ adds r0, r2, r1
+ adds r1, 0x14
+ adds r2, r1
+ adds r1, r2, 0
+ bl sub_81D1F84
+ b _0816653C
+ .pool
+_08166510:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007c58
+ adds r0, r2
+ bl sub_81D2230
+ b _0816653C
+ .pool
+_08166528:
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8167BA0
+_0816653C:
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+_08166540:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166556
+ .pool
+_08166550:
+ ldr r0, =map_warp_consider_1_to_outside_or_stair_or_dive
+ bl launch_c3_walk_stairs_and_run_once
+_08166556:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166380
+
+ thumb_func_start map_warp_consider_1_to_outside_or_stair_or_dive
+map_warp_consider_1_to_outside_or_stair_or_dive: @ 8166564
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08166580
+ cmp r1, 0x1
+ beq _081665C0
+ b _08166610
+ .pool
+_08166580:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_8166340
+ bl SetVBlankCallback
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166610
+ .pool
+_081665C0:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166610
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3464
+ ldr r4, [r4]
+ ldr r2, =0x00008041
+ adds r0, r4, r2
+ ldrb r1, [r0]
+ ldr r3, =0x00008040
+ adds r0, r4, r3
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0816660A
+ ldr r1, =0x00007fb3
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x91
+ adds r0, r4, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r3, =0x00007b1c
+ adds r0, r4, r3
+ subs r3, 0xC
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ bl sub_81D3480
+_0816660A:
+ ldr r0, =sub_8166634
+ bl launch_c3_walk_stairs_and_run_once
+_08166610:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end map_warp_consider_1_to_outside_or_stair_or_dive
+
+ thumb_func_start sub_8166634
+sub_8166634: @ 8166634
+ push {lr}
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08166644
+ b _0816680E
+_08166644:
+ lsls r0, 2
+ ldr r1, =_08166658
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166658:
+ .4byte _08166678
+ .4byte _0816675C
+ .4byte _0816680E
+ .4byte _08166788
+ .4byte _0816680E
+ .4byte _08166794
+ .4byte _081667AC
+ .4byte _081667F4
+_08166678:
+ ldr r2, =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081666B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_8167CA0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3520
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _0816680C
+ .pool
+_081666B8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081666F0
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_8167CA0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007b1c
+ adds r0, r2
+ bl sub_81D3520
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _0816680C
+ .pool
+_081666F0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08166710
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _0816680C
+ .pool
+_08166710:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0816671A
+ b _0816680E
+_0816671A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0816674C
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _0816680C
+ .pool
+_0816674C:
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x5
+ b _0816680C
+ .pool
+_0816675C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0816680E
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ b _0816680C
+ .pool
+_08166788:
+ ldr r0, =sub_8166BEC
+ bl launch_c3_walk_stairs_and_run_once
+ b _0816680E
+ .pool
+_08166794:
+ bl sub_8166D44
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0816680E
+ .pool
+_081667AC:
+ bl sub_8166DE4
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081667CC
+ cmp r1, 0
+ bgt _081667C6
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08166804
+ b _0816680E
+_081667C6:
+ cmp r1, 0x1
+ bne _0816680E
+ b _08166804
+_081667CC:
+ bl sub_8167268
+ lsls r0, 24
+ cmp r0, 0
+ beq _081667E8
+ bl sub_8166F50
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x7
+ b _0816680C
+ .pool
+_081667E8:
+ ldr r0, =sub_816681C
+ bl launch_c3_walk_stairs_and_run_once
+ b _0816680E
+ .pool
+_081667F4:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0816680E
+ bl sub_8166F94
+_08166804:
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0
+_0816680C:
+ strb r1, [r0]
+_0816680E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166634
+
+ thumb_func_start sub_816681C
+sub_816681C: @ 816681C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, =gUnknown_0203BC90
+ ldr r0, [r5]
+ adds r0, 0x50
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08166838
+ cmp r4, 0x1
+ beq _08166888
+ b _081668D4
+ .pool
+_08166838:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ ldr r1, =gUnknown_0203BC9C
+ strb r0, [r1]
+ ldr r1, =gUnknown_0203BC94
+ ldr r2, [r5]
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, =gUnknown_0203BC98
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081668D4
+ .pool
+_08166888:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _081668D4
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, =gUnknown_0203BCA0
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA4
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA8
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ bl FreeAllWindowBuffers
+ ldr r1, =gMain
+ ldr r0, =sub_816624C
+ str r0, [r1, 0x8]
+ bl sub_8179D70
+_081668D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_816681C
+
+ thumb_func_start sub_81668F8
+sub_81668F8: @ 81668F8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _0816690C
+ b _08166A18
+_0816690C:
+ lsls r0, 2
+ ldr r1, =_08166920
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166920:
+ .4byte _0816693C
+ .4byte _08166972
+ .4byte _08166A18
+ .4byte _081669A0
+ .4byte _081669AE
+ .4byte _081669C8
+ .4byte _081669F4
+_0816693C:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldr r1, =gUnknown_0203BC9C
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08166968
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrb r0, [r0]
+ bl sub_8167CA0
+ ldr r1, [r4]
+ b _081669E2
+ .pool
+_08166968:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08166A18
+_08166972:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08166A18
+ ldr r0, =gUnknown_0203BC90
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r1, [r0]
+ b _08166A18
+ .pool
+_081669A0:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ b _081669DE
+_081669AE:
+ movs r0, 0
+ bl ShowBg
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0x3
+ bl ShowBg
+ movs r0, 0x2
+ bl ShowBg
+ b _081669DE
+_081669C8:
+ ldr r0, =sub_8166340
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081669DE:
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+_081669E2:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166A18
+ .pool
+_081669F4:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166A18
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3464
+ ldr r0, =sub_8166A34
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, =sub_816631C
+ bl SetMainCallback2
+_08166A18:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81668F8
+
+ thumb_func_start sub_8166A34
+sub_8166A34: @ 8166A34
+ push {r4-r6,lr}
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _08166A46
+ b _08166BDA
+_08166A46:
+ lsls r0, 2
+ ldr r1, =_08166A58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08166A58:
+ .4byte _08166A70
+ .4byte _08166AAC
+ .4byte _08166AC0
+ .4byte _08166B14
+ .4byte _08166B94
+ .4byte _08166BB6
+_08166A70:
+ ldr r4, [r5]
+ ldr r3, =gPlayerParty
+ str r3, [r4, 0xC]
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0, r1
+ subs r2, 0x88
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ adds r1, r3
+ str r1, [r4, 0xC]
+ ldr r3, =0x00007b1c
+ adds r0, r3
+ bl sub_81D3520
+ b _08166BAA
+ .pool
+_08166AAC:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08166ABA
+ b _08166BDA
+_08166ABA:
+ b _08166BAA
+ .pool
+_08166AC0:
+ bl sub_8167104
+ ldr r6, =gUnknown_0203BC90
+ ldr r0, [r6]
+ adds r0, 0x5C
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00007ca8
+ adds r1, r5
+ bl sub_81D2754
+ ldr r2, [r4]
+ ldr r4, =0x00007c58
+ adds r0, r2, r4
+ ldr r3, =0x00007fb3
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r4, 0x14
+ adds r1, r4
+ adds r1, r2, r1
+ adds r2, r5
+ bl sub_81D1F84
+ bl sub_8167338
+ ldr r1, [r6]
+ b _08166BAC
+ .pool
+_08166B14:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r0, [r5]
+ ldr r1, =0x00007c58
+ adds r0, r1
+ bl sub_81D2074
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ bne _08166BDA
+ ldr r0, [r5]
+ ldr r4, =0x00008041
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81681F4
+ ldr r3, [r5]
+ adds r4, r3, r4
+ ldrb r1, [r4]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08166B6C
+ ldr r4, =0x00007fb3
+ adds r0, r3, r4
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r4, =0x00007b1c
+ adds r0, r3, r4
+ subs r4, 0xC
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08166B6C:
+ ldr r1, =gUnknown_0203BC90
+ ldr r0, [r1]
+ adds r0, 0x52
+ strb r6, [r0]
+ ldr r1, [r1]
+ b _08166BAC
+ .pool
+_08166B94:
+ ldr r1, [r5]
+ adds r1, 0x52
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bls _08166BDA
+ bl sub_8166E24
+_08166BAA:
+ ldr r1, [r5]
+_08166BAC:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166BDA
+_08166BB6:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08166BDA
+ bl sub_8166EDC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08166BDA
+ ldr r0, =gScriptItemId
+ ldrb r0, [r0]
+ bl sub_8136F68
+ ldr r0, =sub_8166BEC
+ bl launch_c3_walk_stairs_and_run_once
+_08166BDA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166A34
+
+ thumb_func_start sub_8166BEC
+sub_8166BEC: @ 8166BEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r4, =gUnknown_0203BC90
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ beq _08166C28
+ cmp r1, 0x1
+ bgt _08166C0C
+ cmp r1, 0
+ beq _08166C16
+ b _08166D18
+ .pool
+_08166C0C:
+ cmp r1, 0x2
+ beq _08166C40
+ cmp r1, 0x3
+ beq _08166C5C
+ b _08166D18
+_08166C16:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08166C4A
+_08166C28:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08166D18
+ movs r0, 0x2
+ strb r0, [r2]
+ b _08166D18
+ .pool
+_08166C40:
+ ldr r1, =gUnknown_02039B28
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ bl sub_80BA0A8
+_08166C4A:
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08166D18
+ .pool
+_08166C5C:
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D354C
+ movs r4, 0
+_08166C70:
+ ldr r5, =gUnknown_0203BCAC
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ 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, 0x6
+ bls _08166C70
+ movs r0, 0
+ bl FreeSpriteTilesByTag
+ movs r0, 0x1
+ bl FreeSpriteTilesByTag
+ movs r0, 0
+ bl FreeSpritePaletteByTag
+ movs r0, 0x1
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+_08166CAE:
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, =0x00007b44
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08166CAE
+ ldr r6, =gUnknown_0203BCAC
+ ldr r0, [r6]
+ ldr r2, =0x00007b10
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08166CE6
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySprite
+_08166CE6:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, =gUnknown_0203BCA0
+ ldr r0, [r4]
+ bl Free
+ movs r5, 0
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA4
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r4, =gUnknown_0203BCA8
+ ldr r0, [r4]
+ bl Free
+ str r5, [r4]
+ ldr r0, [r6]
+ bl Free
+ str r5, [r6]
+ bl FreeAllWindowBuffers
+_08166D18:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166BEC
+
+ thumb_func_start sub_8166D44
+sub_8166D44: @ 8166D44
+ push {r4,lr}
+ sub sp, 0x4C
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2
+ add r2, sp, 0xC
+ bl GetMonData
+ add r0, sp, 0xC
+ bl StringGetEnd10
+ ldr r1, =gUnknown_085EC7A0
+ add r0, sp, 0xC
+ bl StringAppend
+ ldr r4, =gStringVar4
+ adds r0, r4, 0
+ add r1, sp, 0xC
+ bl StringCopy
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x1
+ 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, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldr r0, =gUnknown_085DFCFC
+ movs r1, 0x97
+ movs r2, 0xE
+ movs r3, 0
+ bl CreateYesNoMenu
+ add sp, 0x4C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166D44
+
+ thumb_func_start sub_8166DE4
+sub_8166DE4: @ 8166DE4
+ push {r4,lr}
+ bl sub_8198C58
+ lsls r0, 24
+ lsrs r4, r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _08166E18
+ cmp r1, 0
+ bgt _08166E02
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08166E06
+ b _08166E18
+_08166E02:
+ cmp r1, 0x1
+ bne _08166E18
+_08166E06:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ bl rbox_fill_rectangle
+ movs r0, 0x2
+ bl ClearWindowTilemap
+_08166E18:
+ lsls r0, r4, 24
+ asrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8166DE4
+
+ thumb_func_start sub_8166E24
+sub_8166E24: @ 8166E24
+ push {r4,lr}
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r3, =gUnknown_0203BC90
+ ldr r0, [r3]
+ adds r0, 0x53
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r4, r3, 0
+ cmp r0, 0
+ bne _08166E84
+ adds r2, r4, 0
+_08166E60:
+ ldr r0, [r2]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r3, [r2]
+ adds r1, r3, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ adds r0, r3, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08166E60
+_08166E84:
+ ldr r2, [r4]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166EA8
+ ldr r0, =gStringVar4
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8166FD4
+ b _08166EB8
+ .pool
+_08166EA8:
+ ldr r0, =gStringVar4
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ adds r1, 0x53
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8166FD4
+_08166EB8:
+ ldr r0, =gStringVar4
+ bl sub_8166FB0
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166E24
+
+ thumb_func_start sub_8166EDC
+sub_8166EDC: @ 8166EDC
+ push {r4,r5,lr}
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_0203BC90
+ adds r3, r5, 0
+ movs r4, 0x5
+_08166EEC:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08166F18
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08166F1E
+ b _08166EEC
+ .pool
+_08166F18:
+ strb r4, [r1]
+ movs r0, 0
+ b _08166F44
+_08166F1E:
+ ldr r4, =gStringVar4
+ ldr r0, [r5]
+ adds r1, r0, 0
+ adds r1, 0x53
+ ldrb r1, [r1]
+ adds r0, 0x61
+ adds r0, r1
+ ldrb r2, [r0]
+ adds r0, r4, 0
+ bl sub_8166FD4
+ adds r0, r4, 0
+ bl sub_8166FB0
+ movs r0, 0x2
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+_08166F44:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8166EDC
+
+ thumb_func_start sub_8166F50
+sub_8166F50: @ 8166F50
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x2
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0x97
+ movs r2, 0xE
+ bl sub_8098858
+ ldr r2, =gUnknown_085EC800
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166F50
+
+ thumb_func_start sub_8166F94
+sub_8166F94: @ 8166F94
+ push {lr}
+ movs r0, 0x2
+ bl rbox_fill_rectangle
+ movs r0, 0x2
+ bl ClearWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8166F94
+
+ thumb_func_start sub_8166FB0
+sub_8166FB0: @ 8166FB0
+ push {lr}
+ sub sp, 0xC
+ ldr r2, =gStringVar4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166FB0
+
+ thumb_func_start sub_8166FD4
+sub_8166FD4: @ 8166FD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08167010
+ cmp r2, 0
+ ble _08166FEC
+ movs r0, 0
+_08166FEC:
+ lsls r0, 16
+ ldr r1, =gUnknown_085DFD04
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, =gUnknown_085EC7E1
+ adds r0, r4, 0
+ bl StringAppend
+ b _08167018
+ .pool
+_08167010:
+ ldr r1, =gUnknown_085EC7EF
+ adds r0, r4, 0
+ bl StringCopy
+_08167018:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8166FD4
+
+ thumb_func_start sub_8167024
+sub_8167024: @ 8167024
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r7, =gUnknown_085DFCB0
+_0816702E:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl GetMonData
+ adds r1, r5, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _0816702E
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167024
+
+ thumb_func_start sub_8167054
+sub_8167054: @ 8167054
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _081670F0
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8167184
+ movs r4, 0
+ mov r7, sp
+_08167078:
+ ldr r1, =gUnknown_085DFCB0
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ ldr r1, =gUnknown_0203BC90
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x66
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _081670A6
+ movs r1, 0
+_081670A6:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081670B0
+ movs r1, 0xFF
+_081670B0:
+ strb r1, [r7]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08167078
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldrb r2, [r2, 0x6]
+ adds r1, r0, r2
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _081670E2
+ movs r1, 0xFF
+_081670E2:
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x30
+ mov r2, sp
+ bl SetMonData
+_081670F0:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167054
+
+ thumb_func_start sub_8167104
+sub_8167104: @ 8167104
+ push {r4,r5,lr}
+ ldr r5, =gPlayerParty
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008041
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, =0x00007fb9
+ adds r1, r0
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ adds r5, r0, r5
+ ldr r4, =gUnknown_0203BC90
+ ldr r1, [r4]
+ adds r1, 0x57
+ adds r0, r5, 0
+ bl sub_8167024
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ adds r1, r5, 0
+ bl sub_8167054
+ ldr r1, [r4]
+ adds r1, 0x5C
+ adds r0, r5, 0
+ bl sub_8167024
+ movs r3, 0
+_08167144:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x61
+ adds r2, r3
+ adds r1, r0, 0
+ adds r1, 0x5C
+ adds r1, r3
+ adds r0, 0x57
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _08167144
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167104
+
+ thumb_func_start sub_8167184
+sub_8167184: @ 8167184
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ ldr r1, =gUnknown_0203BC90
+ ldr r3, [r1]
+ ldrb r1, [r0, 0x1]
+ adds r2, r3, 0
+ adds r2, 0x66
+ strh r1, [r2]
+ ldrb r2, [r0, 0x5]
+ adds r1, r3, 0
+ adds r1, 0x68
+ strh r2, [r1]
+ ldrb r1, [r0, 0x4]
+ adds r2, r3, 0
+ adds r2, 0x6A
+ strh r1, [r2]
+ ldrb r2, [r0, 0x3]
+ adds r1, r3, 0
+ adds r1, 0x6C
+ strh r2, [r1]
+ ldrb r1, [r0, 0x2]
+ adds r0, r3, 0
+ adds r0, 0x6E
+ strh r1, [r0]
+ ldr r0, =gUnknown_0203BC9E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _081671D4
+ movs r0, 0x1
+ b _081671DA
+ .pool
+_081671D4:
+ cmp r0, 0
+ bge _08167250
+ movs r0, 0xFF
+_081671DA:
+ movs r2, 0
+ lsls r0, 24
+ mov r9, r0
+ ldr r0, =gUnknown_0203BC90
+ mov r8, r0
+_081671E4:
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ lsls r7, r6, 1
+ adds r1, 0x66
+ adds r1, r7
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0816721C
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+_0816721C:
+ ldr r0, =gUnknown_085DFCC4
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ bl GetMonFlavourRelation
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r0, r9
+ bne _08167244
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x66
+ adds r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ muls r1, r2
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+_08167244:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _081671E4
+_08167250:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167184
+
+ thumb_func_start sub_8167268
+sub_8167268: @ 8167268
+ push {lr}
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008041
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0
+ subs r2, 0x89
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x30
+ movs r3, 0
+ bl sub_81D2C68
+ cmp r0, 0xFF
+ beq _0816729C
+ movs r0, 0
+ b _0816729E
+ .pool
+_0816729C:
+ movs r0, 0x1
+_0816729E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167268
+
+ thumb_func_start sub_81672A4
+sub_81672A4: @ 81672A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081672AC:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081672D2
+ cmp r5, 0
+ bne _081672CC
+ adds r0, r4, 0
+ b _081672DE
+ .pool
+_081672CC:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081672D2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081672AC
+ movs r0, 0
+_081672DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81672A4
+
+ thumb_func_start sub_81672E4
+sub_81672E4: @ 81672E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r6, 0
+ cmp r6, r5
+ bcs _08167314
+_081672F2:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0816730A
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0816730A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081672F2
+_08167314:
+ subs r0, r5, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81672E4
+
+ thumb_func_start sub_8167324
+sub_8167324: @ 8167324
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167324
+
+ thumb_func_start sub_8167338
+sub_8167338: @ 8167338
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, =gUnknown_085DFD18
+ bl LoadSpriteSheet
+ ldr r0, =gUnknown_085DFD20
+ bl LoadSpritePalette
+ ldr r2, =gUnknown_0203BC90
+ ldr r0, [r2]
+ adds r0, 0x54
+ movs r1, 0
+ strb r1, [r0]
+ movs r4, 0
+ adds r5, r2, 0
+ ldr r6, =gUnknown_085DFD28
+ adds r0, r6, 0x2
+ mov r8, r0
+ ldr r7, =gSprites + 0x1C
+_08167360:
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081673AC
+ lsls r2, r4, 2
+ adds r0, r2, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r8
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ ldr r0, =gUnknown_085DFD5C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081673AC
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081673A2
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, =sub_81673DC
+ str r1, [r0]
+_081673A2:
+ ldr r1, [r5]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081673AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08167360
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167338
+
+ thumb_func_start sub_81673DC
+sub_81673DC: @ 81673DC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bgt _081673EE
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ b _081673F6
+_081673EE:
+ cmp r0, 0xB
+ bgt _081673F8
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x2
+_081673F6:
+ strh r0, [r1, 0x26]
+_081673F8:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _08167418
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r0, =gUnknown_0203BC90
+ ldr r1, [r0]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08167418:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81673DC
+
+ thumb_func_start sub_8167420
+sub_8167420: @ 8167420
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r5, 0
+ ldr r6, =gUnknown_0203BCAC
+ b _08167472
+ .pool
+_08167430:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ bne _0816746C
+ ldr r1, [r6]
+ lsls r2, r5, 2
+ adds r1, r2
+ ldr r0, =0x00007fb8
+ adds r1, r0
+ movs r0, 0xE
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, r2
+ ldr r1, =0x00007fb9
+ adds r0, r1
+ strb r4, [r0]
+ ldr r0, [r6]
+ adds r0, r2
+ ldr r2, =0x00007fba
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0816746C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08167472:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _08167430
+ ldr r2, =gUnknown_0203BCAC
+ ldr r0, [r2]
+ ldr r1, =0x00008041
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r1, r5, 0x1
+ ldr r2, =0x00008040
+ adds r0, r2
+ strb r1, [r0]
+ bl sub_81674BC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167420
+
+ thumb_func_start sub_81674BC
+sub_81674BC: @ 81674BC
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r5, =0x00008041
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_816753C
+ ldr r0, [r4]
+ ldr r1, =0x00007fb3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r2, =0x00007fb4
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, =0x00007fb5
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r5, r0, r5
+ ldrb r3, [r5]
+ adds r1, r3, 0x1
+ adds r2, 0x8C
+ adds r0, r2
+ ldrb r2, [r0]
+ cmp r1, r2
+ blt _08167500
+ movs r1, 0
+_08167500:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r0, 0
+ bge _08167510
+ subs r0, r2, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08167510:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_816753C
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r1, 0x2
+ bl sub_816753C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81674BC
+
+ thumb_func_start sub_816753C
+sub_816753C: @ 816753C
+ 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, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_0203BCAC
+ mov r9, r0
+ ldr r1, [r0]
+ lsls r5, 16
+ asrs r0, r5, 14
+ adds r0, r1, r0
+ ldr r3, =0x00007fb8
+ adds r2, r0, r3
+ ldrb r7, [r2]
+ ldr r2, =0x00007fb9
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r10, r0
+ adds r3, 0x88
+ adds r0, r1, r3
+ ldrb r6, [r0]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, =0x00007b4d
+ adds r0, r2
+ adds r0, r1, r0
+ lsls r2, r4, 6
+ ldr r3, =0x00007b95
+ adds r2, r3
+ adds r1, r2
+ lsrs r5, 16
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D2ED4
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r3, =0x00007fb0
+ adds r1, r3
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ str r6, [sp, 0x8]
+ mov r2, r8
+ str r2, [sp, 0xC]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D2F78
+ lsls r0, r4, 13
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ mov r3, r9
+ ldr r1, [r3]
+ adds r0, r1, r0
+ lsls r4, 7
+ adds r4, 0x4
+ adds r1, r4
+ str r5, [sp]
+ str r6, [sp, 0x4]
+ mov r2, r8
+ str r2, [sp, 0x8]
+ adds r2, r7, 0
+ mov r3, r10
+ bl sub_81D3094
+ 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_816753C
+
+ thumb_func_start sub_8167608
+sub_8167608: @ 8167608
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, =gUnknown_0203BCAC
+ ldr r3, [r1]
+ ldr r0, =0x00007b10
+ mov r8, r0
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0xFF
+ bne _08167714
+ add r5, sp, 0x18
+ add r4, sp, 0x20
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_81D31D0
+ lsls r0, r6, 13
+ movs r1, 0xC1
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r7]
+ adds r0, r1, r0
+ str r0, [sp, 0x18]
+ lsls r0, r6, 7
+ adds r0, 0x4
+ adds r1, r0
+ str r1, [sp, 0x20]
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ ldr r1, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =0x00007b12
+ adds r1, r2
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ ldr r1, [r7]
+ ldr r3, =0x00007b14
+ adds r1, r3
+ strh r0, [r1]
+ mov r0, sp
+ movs r1, 0x26
+ movs r2, 0x68
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, [r7]
+ ldr r2, =0x00007b10
+ adds r0, r2
+ strb r1, [r0]
+ cmp r1, 0x40
+ bne _081676AC
+ movs r0, 0x64
+ bl FreeSpriteTilesByTag
+ movs r0, 0x64
+ bl FreeSpritePaletteByTag
+ ldr r0, [r7]
+ add r0, r8
+ movs r1, 0xFF
+ strb r1, [r0]
+ b _08167742
+ .pool
+_081676AC:
+ ldr r0, [r7]
+ add r0, r8
+ strb r1, [r0]
+ ldr r4, =gSprites
+ ldr r2, [r7]
+ mov r0, r8
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, =sub_8168168
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x26]
+ subs r1, 0x22
+ strh r1, [r0, 0x26]
+ ldr r3, =0x00007b18
+ adds r1, r2, r3
+ subs r3, 0x4
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 5
+ ldr r3, =0x06010000
+ adds r0, r3
+ str r0, [r1]
+ ldr r0, =0x00007b12
+ adds r2, r0
+ ldrh r0, [r2]
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r2]
+ b _08167742
+ .pool
+_08167714:
+ lsls r1, r6, 13
+ movs r0, 0xC1
+ lsls r0, 2
+ adds r1, r0
+ adds r1, r3, r1
+ ldr r2, =0x00007b18
+ adds r0, r3, r2
+ ldr r2, [r0]
+ ldr r0, =0x040000d4
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, =0x80000400
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ lsls r0, r6, 7
+ adds r0, 0x4
+ adds r0, r3, r0
+ ldr r2, =0x00007b12
+ adds r1, r3, r2
+ ldrh r1, [r1]
+ movs r2, 0x20
+ bl LoadPalette
+_08167742:
+ add sp, 0x28
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167608
+
+ thumb_func_start sub_8167760
+sub_8167760: @ 8167760
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x60
+ add r5, sp, 0x20
+ add r4, sp, 0x38
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_81D321C
+ mov r0, sp
+ bl LoadSpriteSheets
+ adds r0, r4, 0
+ bl LoadSpritePalettes
+ movs r4, 0
+ ldr r1, =gUnknown_0203BCAC
+ ldr r0, [r1]
+ ldr r2, =0x00008040
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r5, 0
+ add r2, sp, 0x50
+ mov r9, r2
+ add r2, sp, 0x58
+ mov r10, r2
+ cmp r4, r0
+ bge _0816781C
+ adds r5, r1, 0
+ ldr r7, =gSprites
+ movs r0, 0x1C
+ adds r0, r7
+ mov r8, r0
+_081677AC:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r1, 0x80
+ lsls r1, 12
+ adds r2, r1
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xE2
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081677FC
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ strb r3, [r0]
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r1, r0, r7
+ strh r4, [r1, 0x2E]
+ add r0, r8
+ ldr r1, =sub_8168180
+ str r1, [r0]
+ b _08167808
+ .pool
+_081677FC:
+ ldr r0, [r5]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167808:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, [r5]
+ ldr r2, =0x00008040
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r4, r0
+ blt _081677AC
+_0816781C:
+ movs r0, 0x67
+ strh r0, [r6]
+ cmp r4, 0x5
+ bhi _0816788A
+ ldr r5, =gUnknown_0203BCAC
+ ldr r7, =gSprites
+_08167828:
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r0, 0x80
+ lsls r0, 12
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xE6
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _08167874
+ ldr r0, [r5]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ strb r3, [r0]
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x3F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ b _08167880
+ .pool
+_08167874:
+ ldr r0, [r5]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167880:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x5
+ bls _08167828
+_0816788A:
+ movs r0, 0x66
+ strh r0, [r6]
+ ldr r0, =sub_81681B4
+ str r0, [r6, 0x14]
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 18
+ movs r0, 0x80
+ lsls r0, 12
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r1, 0xDE
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081678F4
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b06
+ adds r0, r1
+ adds r0, r4
+ strb r3, [r0]
+ ldr r0, =gSprites
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ adds r2, r0
+ ldrb r3, [r2, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r3
+ movs r3, 0x40
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+ b _08167902
+ .pool
+_081678F4:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007b06
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0xFF
+ strb r1, [r0]
+_08167902:
+ mov r0, r9
+ mov r1, r10
+ bl sub_81D32B0
+ mov r0, r9
+ bl LoadSpriteSheet
+ mov r0, r10
+ bl LoadSpritePalette
+ add sp, 0x60
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167760
+
+ thumb_func_start sub_8167930
+sub_8167930: @ 8167930
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008048
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ bls _08167944
+ b _08167B78
+_08167944:
+ lsls r0, 2
+ ldr r1, =_0816795C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0816795C:
+ .4byte _0816798C
+ .4byte _08167A04
+ .4byte _08167A38
+ .4byte _08167A48
+ .4byte _08167A5C
+ .4byte _08167A74
+ .4byte _08167A9C
+ .4byte _08167AB0
+ .4byte _08167AD4
+ .4byte _08167AEC
+ .4byte _08167B1C
+ .4byte _08167B38
+_0816798C:
+ 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 r1, 0x88
+ lsls r1, 6
+ movs r0, 0x3
+ movs r2, 0
+ bl ChangeBgY
+ ldr r1, =0x00007040
+ movs r0, 0
+ bl SetGpuReg
+ movs r1, 0x91
+ lsls r1, 2
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r1, =0x0000040b
+ movs r0, 0x52
+ bl SetGpuReg
+ b _08167B7E
+ .pool
+_08167A04:
+ ldr r4, =gUnknown_0203BCA4
+ movs r0, 0xD0
+ lsls r0, 5
+ bl Alloc
+ str r0, [r4]
+ ldr r5, =gUnknown_0203BCA0
+ movs r4, 0xA0
+ lsls r4, 3
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ ldr r5, =gUnknown_0203BCA8
+ adds r0, r4, 0
+ bl Alloc
+ str r0, [r5]
+ b _08167B7E
+ .pool
+_08167A38:
+ ldr r0, =gUnknown_085DFB60
+ ldr r1, =gUnknown_0203BCA8
+ b _08167AA0
+ .pool
+_08167A48:
+ ldr r1, =gUnknown_085DFA80
+ movs r0, 0x3
+ movs r2, 0xE0
+ movs r3, 0
+ bl LoadBgTiles
+ b _08167B7E
+ .pool
+_08167A5C:
+ ldr r0, =gUnknown_0203BCA8
+ ldr r1, [r0]
+ movs r2, 0xA0
+ lsls r2, 3
+ movs r0, 0x3
+ movs r3, 0
+ bl LoadBgTilemap
+ b _08167B7E
+ .pool
+_08167A74:
+ ldr r0, =gUnknown_085DFA60
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b0e
+ adds r0, r1
+ ldr r1, =0x0000ffb0
+ strh r1, [r0]
+ b _08167B7E
+ .pool
+_08167A9C:
+ ldr r0, =gUnknown_08DCCF7C
+ ldr r1, =gUnknown_0203BCA4
+_08167AA0:
+ ldr r1, [r1]
+ bl LZ77UnCompVram
+ b _08167B7E
+ .pool
+_08167AB0:
+ ldr r0, =gUnknown_08DCD81C
+ ldr r1, =gUnknown_0203BCA0
+ ldr r1, [r1]
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_08DCCF5C
+ movs r1, 0x20
+ movs r2, 0x20
+ bl LoadPalette
+ b _08167B7E
+ .pool
+_08167AD4:
+ ldr r0, =gUnknown_0203BCA4
+ ldr r1, [r0]
+ movs r2, 0xD0
+ lsls r2, 5
+ movs r3, 0xA0
+ lsls r3, 2
+ movs r0, 0x1
+ bl LoadBgTiles
+ b _08167B7E
+ .pool
+_08167AEC:
+ ldr r0, =gUnknown_0203BCA0
+ ldr r1, [r0]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r1, =gUnknown_08DCDA30
+ movs r0, 0xC
+ str r0, [sp]
+ movs r0, 0x4
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0xD
+ bl CopyToBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ b _08167B7E
+ .pool
+_08167B1C:
+ ldr r0, =gUnknown_085DFC0C
+ ldr r1, =gUnknown_0203BCAC
+ ldr r1, [r1]
+ ldr r2, =0x00007304
+ adds r1, r2
+ bl LZ77UnCompVram
+ b _08167B7E
+ .pool
+_08167B38:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r0, =0x00007304
+ adds r1, r0
+ movs r2, 0xA0
+ lsls r2, 3
+ movs r0, 0x2
+ movs r3, 0
+ bl LoadBgTilemap
+ ldr r0, =gUnknown_086231E8
+ movs r1, 0x30
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_08623208
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x2
+ bl sub_81D21DC
+ b _08167B7E
+ .pool
+_08167B78:
+ movs r0, 0
+ strb r0, [r1]
+ b _08167B8E
+_08167B7E:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r1, [r0]
+ ldr r2, =0x00008048
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_08167B8E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8167930
+
+ thumb_func_start sub_8167BA0
+sub_8167BA0: @ 8167BA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r7, =gUnknown_0203BCAC
+ ldr r3, [r7]
+ ldr r1, =0x00008041
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08167C46
+ lsls r2, r4, 6
+ ldr r0, =0x00007b95
+ adds r2, r0
+ adds r2, r3, r2
+ movs r0, 0x1
+ str r0, [sp]
+ movs r5, 0
+ str r5, [sp, 0x4]
+ str r5, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldr r0, [r7]
+ ldr r1, =0x00008041
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81672A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, [r7]
+ ldr r6, =0x0000804a
+ adds r0, r6
+ ldr r1, =gUnknown_085EBF8D
+ bl StringCopy
+ ldr r1, =gNatureNamePointers
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ bl StringCopy
+ ldr r0, =gUnknown_085DFCC9
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ ldr r0, [r7]
+ adds r0, r6
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x2
+ movs r3, 0x1
+ bl box_print
+_08167C46:
+ mov r2, r8
+ cmp r2, 0
+ beq _08167C84
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ movs r0, 0x1
+ movs r1, 0x3
+ bl CopyWindowToVram
+ b _08167C94
+ .pool
+_08167C84:
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+_08167C94:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8167BA0
+
+ thumb_func_start sub_8167CA0
+sub_8167CA0: @ 8167CA0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _08167CC0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007fb5
+ adds r0, r1
+ b _08167CC8
+ .pool
+_08167CC0:
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00007fb4
+ adds r0, r2
+_08167CC8:
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r5, =gUnknown_0203BCAC
+ ldr r2, [r5]
+ ldr r3, =0x00007c58
+ adds r0, r2, r3
+ ldr r4, =0x00007fb3
+ adds r1, r2, r4
+ movs r3, 0
+ ldrsb r3, [r1, r3]
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ ldr r4, =0x00007c6c
+ adds r1, r4
+ adds r1, r2, r1
+ lsls r3, r6, 2
+ adds r3, r6
+ lsls r3, 2
+ adds r3, r4
+ adds r2, r3
+ bl sub_81D1F84
+ ldr r4, [r5]
+ ldr r1, =0x00008041
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ mov r12, r2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ mov r8, r0
+ cmp r7, 0
+ beq _08167D98
+ ldr r3, =0x00007fb4
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ subs r2, 0x8B
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r4, =0x00007fb3
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r4
+ strb r6, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, =0x00007fb6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, [r5]
+ adds r3, 0x8D
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08167D58
+ mov r4, r12
+ adds r0, r1, r4
+ ldrb r0, [r0]
+_08167D58:
+ subs r2, r0, 0x1
+ ldr r0, =0x00008041
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, =gUnknown_0203BCAC
+ ldr r3, [r1]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ cmp r0, 0
+ bne _08167D74
+ ldr r1, =0x00008040
+ adds r0, r3, r1
+ ldrb r0, [r0]
+_08167D74:
+ subs r1, r0, 0x1
+ b _08167E1E
+ .pool
+_08167D98:
+ ldr r3, =0x00007fb5
+ adds r0, r4, r3
+ ldrb r1, [r0]
+ ldr r2, =0x00007fb4
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r4, =0x00007fb3
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r5]
+ adds r0, r4
+ strb r6, [r0]
+ ldr r0, [r5]
+ adds r2, r0, r2
+ ldrb r1, [r2]
+ ldr r2, =0x00007fb6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r5]
+ adds r3, 0x8C
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ adds r4, 0x8D
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08167DEC
+ adds r3, r1, 0x1
+ b _08167DEE
+ .pool
+_08167DEC:
+ movs r3, 0
+_08167DEE:
+ ldr r1, =0x00008041
+ adds r0, r2, r1
+ strb r3, [r0]
+ ldr r2, =gUnknown_0203BCAC
+ ldr r3, [r2]
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ ldr r4, =0x00008040
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0
+ cmp r1, r0
+ bge _08167E1C
+ adds r1, 0x1
+ b _08167E1E
+ .pool
+_08167E1C:
+ movs r1, 0
+_08167E1E:
+ ldr r2, =0x00007b4c
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r5, r6, 0
+ ldr r0, [r5]
+ ldr r3, =0x00008041
+ adds r1, r0, r3
+ ldrb r2, [r1]
+ ldr r4, =0x00008040
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ subs r1, 0x1
+ eors r2, r1
+ negs r1, r2
+ orrs r1, r2
+ lsrs r4, r1, 31
+ ldr r1, =0x00007b1c
+ adds r0, r1
+ bl sub_81D3520
+ mov r2, r8
+ cmp r2, 0
+ bne _08167E70
+ ldr r0, [r5]
+ ldr r3, =0x00008044
+ adds r0, r3
+ ldr r1, =sub_8167EA4
+ b _08167E90
+ .pool
+_08167E70:
+ cmp r4, 0
+ bne _08167E88
+ ldr r0, [r5]
+ ldr r4, =0x00008044
+ adds r0, r4
+ ldr r1, =sub_8167FA4
+ b _08167E90
+ .pool
+_08167E88:
+ ldr r0, [r6]
+ ldr r1, =0x00008044
+ adds r0, r1
+ ldr r1, =sub_8168048
+_08167E90:
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8167CA0
+
+ thumb_func_start sub_8167EA4
+sub_8167EA4: @ 8167EA4
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08167EE4
+ cmp r0, 0x1
+ bgt _08167EC8
+ cmp r0, 0
+ beq _08167ED2
+ b _08167F9C
+ .pool
+_08167EC8:
+ cmp r0, 0x2
+ beq _08167F08
+ cmp r0, 0x3
+ beq _08167F48
+ b _08167F9C
+_08167ED2:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ bl sub_8167608
+ b _08167F2C
+ .pool
+_08167EE4:
+ ldr r6, =0x00007fb3
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ b _08167F30
+ .pool
+_08167F08:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r6, =0x00007b0e
+ adds r1, r6
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _08167F9C
+ ldr r1, [r4]
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r6, =0x00007fb6
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_816753C
+_08167F2C:
+ ldr r1, [r4]
+ adds r1, r5
+_08167F30:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08167F9C
+ .pool
+_08167F48:
+ ldr r2, =0x00007b1c
+ adds r0, r1, r2
+ bl sub_81D3464
+ ldr r3, [r4]
+ ldr r6, =0x00008041
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08167F82
+ subs r6, 0x8E
+ adds r0, r3, r6
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r6, =0x00007b1c
+ adds r0, r3, r6
+ subs r6, 0xC
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08167F82:
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ b _08167F9E
+ .pool
+_08167F9C:
+ movs r0, 0x1
+_08167F9E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167EA4
+
+ thumb_func_start sub_8167FA4
+sub_8167FA4: @ 8167FA4
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r2, r1, r5
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ beq _08167FF0
+ cmp r0, 0x1
+ bgt _08167FC8
+ cmp r0, 0
+ beq _08167FD2
+ b _0816803E
+ .pool
+_08167FC8:
+ cmp r0, 0x2
+ beq _08168014
+ cmp r0, 0x3
+ beq _08168038
+ b _0816803E
+_08167FD2:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r2, =0x00007b0e
+ adds r1, r2
+ bl sub_81D31A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0816803E
+ b _08168024
+ .pool
+_08167FF0:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ b _08168028
+ .pool
+_08168014:
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r2, =0x00007fb6
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_816753C
+_08168024:
+ ldr r1, [r4]
+ adds r1, r5
+_08168028:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0816803E
+ .pool
+_08168038:
+ movs r0, 0
+ strb r0, [r2]
+ b _08168040
+_0816803E:
+ movs r0, 0x1
+_08168040:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8167FA4
+
+ thumb_func_start sub_8168048
+sub_8168048: @ 8168048
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r1, [r4]
+ ldr r5, =0x00008048
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _081680A8
+ cmp r0, 0x1
+ bgt _0816806C
+ cmp r0, 0
+ beq _08168076
+ b _08168160
+ .pool
+_0816806C:
+ cmp r0, 0x2
+ beq _081680CC
+ cmp r0, 0x3
+ beq _0816810C
+ b _08168160
+_08168076:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ bl sub_81D2074
+ ldr r0, [r4]
+ ldr r6, =0x00007b0e
+ adds r0, r6
+ bl sub_81D3150
+ lsls r0, 24
+ cmp r0, 0
+ bne _08168160
+ ldr r0, [r4]
+ ldr r1, =0x00007fb3
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8167608
+ b _081680F0
+ .pool
+_081680A8:
+ ldr r2, =0x00007fb3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl sub_8167BA0
+ ldr r1, [r4]
+ ldr r6, =0x00008048
+ adds r1, r6
+ b _081680F4
+ .pool
+_081680CC:
+ ldr r2, =0x00007c58
+ adds r0, r1, r2
+ ldr r6, =0x00007b0e
+ adds r1, r6
+ bl sub_81D3178
+ lsls r0, 24
+ cmp r0, 0
+ bne _08168160
+ ldr r1, [r4]
+ ldr r2, =0x00007b4c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r6, =0x00007fb6
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_816753C
+_081680F0:
+ ldr r1, [r4]
+ adds r1, r5
+_081680F4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08168160
+ .pool
+_0816810C:
+ ldr r2, =0x00007b1c
+ adds r0, r1, r2
+ bl sub_81D3464
+ ldr r3, [r4]
+ ldr r6, =0x00008041
+ adds r0, r3, r6
+ ldrb r1, [r0]
+ ldr r2, =0x00008040
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08168146
+ subs r6, 0x8E
+ adds r0, r3, r6
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ subs r2, 0x90
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r6, =0x00007b1c
+ adds r0, r3, r6
+ subs r6, 0xC
+ adds r1, r3, r6
+ ldrb r1, [r1]
+ bl sub_81D3480
+_08168146:
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0
+ b _08168162
+ .pool
+_08168160:
+ movs r0, 0x1
+_08168162:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8168048
+
+ thumb_func_start sub_8168168
+sub_8168168: @ 8168168
+ ldr r1, =gUnknown_0203BCAC
+ ldr r1, [r1]
+ ldr r2, =0x00007b0e
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r1, 0x26
+ strh r1, [r0, 0x20]
+ bx lr
+ .pool
+ thumb_func_end sub_8168168
+
+ thumb_func_start sub_8168180
+sub_8168180: @ 8168180
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r3, =0x00008041
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081681A8
+ adds r0, r2, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ b _081681B0
+ .pool
+_081681A8:
+ adds r0, r2, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_081681B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8168180
+
+ thumb_func_start sub_81681B4
+sub_81681B4: @ 81681B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r2, =0x00008041
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ subs r2, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _081681DC
+ movs r0, 0x65
+ b _081681DE
+ .pool
+_081681DC:
+ movs r0, 0x66
+_081681DE:
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81681B4
+
+ thumb_func_start sub_81681F4
+sub_81681F4: @ 81681F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r3, =0x00007fb3
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ subs r3, 0x3
+ adds r0, r3
+ adds r4, r0, r1
+ cmp r2, 0xFF
+ beq _0816823C
+ adds r0, r2, 0
+ movs r1, 0x1D
+ bl __udivsi3
+ b _0816823E
+ .pool
+_0816823C:
+ movs r0, 0x9
+_0816823E:
+ strb r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81681F4
+
+ thumb_func_start sub_8168248
+sub_8168248: @ 8168248
+ push {lr}
+ sub sp, 0x10
+ ldr r0, =gUnknown_085DFDB8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ ldr r0, =gUnknown_08DCCBB8
+ str r0, [sp]
+ ldr r1, =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, =0x0000ffff
+ ands r0, r1
+ adds r1, 0x1
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadCompressedObjectPic
+ add r0, sp, 0x8
+ bl LoadSpritePalette
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168248
+
+ thumb_func_start sub_8168294
+sub_8168294: @ 8168294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, =gUnknown_0203BCAC
+ ldr r0, [r0]
+ ldr r1, =0x00007b44
+ adds r7, r0, r1
+ ldr r0, =gUnknown_085DFDA0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0x40
+ mov r9, r1
+ movs r0, 0x60
+ negs r0, r0
+ mov r8, r0
+_081682B6:
+ mov r5, r9
+ muls r5, r6
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x11
+ lsls r2, r0, 16
+ mov r0, r10
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081682FE
+ ldr r0, =gSprites
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ movs r1, 0x8
+ strh r1, [r4, 0x2E]
+ movs r0, 0x20
+ orrs r5, r0
+ strh r5, [r4, 0x30]
+ strh r6, [r4, 0x32]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ lsls r0, r6, 2
+ adds r0, r7
+ str r4, [r0]
+_081682FE:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1
+ bls _081682B6
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168294
+
+ thumb_func_start sub_8168328
+sub_8168328: @ 8168328
+ push {r4,r5,lr}
+ ldr r4, =gUnknown_0203BCAC
+ ldr r0, [r4]
+ ldr r5, =0x00008048
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08168348
+ cmp r0, 0x1
+ beq _08168360
+ b _0816836C
+ .pool
+_08168348:
+ bl sub_8168248
+ ldr r1, [r4]
+ ldr r0, =0x00008048
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ b _0816836E
+ .pool
+_08168360:
+ bl sub_8168294
+ ldr r0, [r4]
+ adds r0, r5
+ movs r1, 0
+ strb r1, [r0]
+_0816836C:
+ movs r0, 0
+_0816836E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8168328
+
+ thumb_func_start sub_8168374
+sub_8168374: @ 8168374
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x2E]
+ adds r3, r0, r1
+ strh r3, [r2, 0x20]
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r4, r1
+ bgt _08168398
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bge _081683A0
+ cmp r4, r1
+ blt _081683A8
+_08168398:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, r1
+ bgt _081683A8
+_081683A0:
+ ldrh r0, [r2, 0x30]
+ strh r0, [r2, 0x20]
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_081683A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8168374
+
+ .align 2, 0 @ Don't pad with nop.