summaryrefslogtreecommitdiff
path: root/asm/pokeblock.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/pokeblock.s')
-rw-r--r--asm/pokeblock.s12329
1 files changed, 12329 insertions, 0 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
new file mode 100644
index 000000000..3b5e50ac3
--- /dev/null
+++ b/asm/pokeblock.s
@@ -0,0 +1,12329 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81357FC
+sub_81357FC: @ 81357FC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gUnknown_0203AB50
+ ldr r0, =0x00000e88
+ bl Alloc
+ str r0, [r5]
+ ldr r2, =0x00000809
+ adds r0, r2
+ movs r3, 0
+ strb r4, [r0]
+ ldr r0, [r5]
+ movs r4, 0x80
+ lsls r4, 4
+ adds r1, r0, r4
+ str r3, [r1]
+ ldr r1, =0x00000e7c
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, [r5]
+ ldr r4, =0x00000e7d
+ adds r0, r4
+ strb r3, [r0]
+ ldr r0, =gUnknown_0203AB48
+ str r6, [r0]
+ ldr r5, [r5]
+ adds r2, r5, r2
+ ldrb r2, [r2]
+ cmp r2, 0x2
+ beq _08135888
+ cmp r2, 0x2
+ bgt _08135864
+ cmp r2, 0x1
+ beq _0813586A
+ b _081358C0
+ .pool
+_08135864:
+ cmp r2, 0x3
+ beq _081358A4
+ b _081358C0
+_0813586A:
+ ldr r0, =0x00000804
+ adds r1, r5, r0
+ ldr r0, =gUnknown_085B269B
+ str r0, [r1]
+ ldr r4, =0x00000808
+ adds r1, r5, r4
+ movs r0, 0x2
+ b _081358D2
+ .pool
+_08135888:
+ ldr r1, =0x00000804
+ adds r0, r5, r1
+ ldr r1, =gUnknown_085B269D
+ str r1, [r0]
+ ldr r4, =0x00000808
+ adds r0, r5, r4
+ strb r2, [r0]
+ b _081358D4
+ .pool
+_081358A4:
+ ldr r0, =0x00000804
+ adds r1, r5, r0
+ ldr r0, =gUnknown_085B269F
+ str r0, [r1]
+ ldr r4, =0x00000808
+ adds r1, r5, r4
+ movs r0, 0x2
+ b _081358D2
+ .pool
+_081358C0:
+ ldr r0, =gUnknown_0203AB50
+ ldr r1, [r0]
+ ldr r0, =0x00000804
+ adds r2, r1, r0
+ ldr r0, =gUnknown_085B2698
+ str r0, [r2]
+ ldr r4, =0x00000808
+ adds r1, r4
+ movs r0, 0x3
+_081358D2:
+ strb r0, [r1]
+_081358D4:
+ ldr r0, =sub_813594C
+ bl SetMainCallback2
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81357FC
+
+ thumb_func_start sub_81358F4
+sub_81358F4: @ 81358F4
+ push {lr}
+ ldr r1, =SetCB2ToReshowScreenAfterMenu2
+ movs r0, 0x1
+ bl sub_81357FC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81358F4
+
+ thumb_func_start sub_8135908
+sub_8135908: @ 8135908
+ push {lr}
+ ldr r1, =c2_exit_to_overworld_2_switch
+ movs r0, 0x2
+ bl sub_81357FC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135908
+
+ thumb_func_start sub_813591C
+sub_813591C: @ 813591C
+ 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_813591C
+
+ thumb_func_start sub_8135938
+sub_8135938: @ 8135938
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135938
+
+ thumb_func_start sub_813594C
+sub_813594C: @ 813594C
+ push {lr}
+_0813594E:
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08135972
+ bl sub_8135978
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08135972
+ bl sub_81221AC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813594E
+_08135972:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813594C
+
+ thumb_func_start sub_8135978
+sub_8135978: @ 8135978
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _0813598C
+ b _08135BB8
+_0813598C:
+ lsls r0, 2
+ ldr r1, =_081359A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081359A0:
+ .4byte _081359EC
+ .4byte _081359F6
+ .4byte _08135A08
+ .4byte _08135A0E
+ .4byte _08135A30
+ .4byte _08135A36
+ .4byte _08135A54
+ .4byte _08135A70
+ .4byte _08135A8C
+ .4byte _08135A9A
+ .4byte _08135AC4
+ .4byte _08135ADC
+ .4byte _08135AFC
+ .4byte _08135B02
+ .4byte _08135B14
+ .4byte _08135B1A
+ .4byte _08135B64
+ .4byte _08135B6A
+ .4byte _08135B84
+_081359EC:
+ bl SetVBlankHBlankCallbacksToNull
+ bl clear_scheduled_bg_copies_to_vram
+ b _08135B9E
+_081359F6:
+ bl remove_some_task
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135A08:
+ bl FreeAllSpritePalettes
+ b _08135B9E
+_08135A0E:
+ 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 _08135BA6
+ .pool
+_08135A30:
+ bl ResetSpriteData
+ b _08135B9E
+_08135A36:
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000809
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08135A46
+ b _08135B9E
+_08135A46:
+ bl ResetTasks
+ b _08135B9E
+ .pool
+_08135A54:
+ bl sub_8135BDC
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e7e
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ b _08135B9E
+ .pool
+_08135A70:
+ bl sub_8135C38
+ lsls r0, 24
+ cmp r0, 0
+ bne _08135A7C
+ b _08135BD0
+_08135A7C:
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135A8C:
+ bl sub_813625C
+ bl sub_81362E0
+ bl sub_8136344
+ b _08135B9E
+_08135A9A:
+ movs r0, 0x38
+ movs r1, 0x40
+ movs r2, 0
+ bl CreatePokeblockCaseSprite
+ ldr r1, =gUnknown_0203AB50
+ ldr r1, [r1]
+ ldr r2, =0x00000e74
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135AC4:
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e75
+ adds r0, r1
+ movs r1, 0x7
+ bl sub_8122344
+ b _08135B9E
+ .pool
+_08135ADC:
+ ldr r0, =gUnknown_0203AB48
+ ldrh r0, [r0, 0x4]
+ ldr r1, =0x00001005
+ bl sub_8136110
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135AFC:
+ bl sub_8135D24
+ b _08135B9E
+_08135B02:
+ bl sub_8135E2C
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135B14:
+ bl sub_81363BC
+ b _08135B9E
+_08135B1A:
+ ldr r0, =sub_81365C8
+ movs r1, 0
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =gUnknown_03006310
+ ldr r2, =gUnknown_0203AB48
+ ldrh r1, [r2, 0x6]
+ ldrh r2, [r2, 0x4]
+ bl ListMenuInit
+ ldr r2, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x8]
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135B64:
+ bl sub_8135DAC
+ b _08135B9E
+_08135B6A:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _08135BA6
+ .pool
+_08135B84:
+ 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]
+_08135B9E:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+_08135BA6:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08135BD0
+ .pool
+_08135BB8:
+ ldr r0, =sub_8135938
+ bl SetVBlankCallback
+ ldr r0, =sub_813591C
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08135BD2
+ .pool
+_08135BD0:
+ movs r0, 0
+_08135BD2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8135978
+
+ thumb_func_start sub_8135BDC
+sub_8135BDC: @ 8135BDC
+ push {lr}
+ bl ResetVramOamAndBgCntRegs
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_085B2620
+ movs r0, 0
+ movs r2, 0x3
+ bl InitBgsFromTemplates
+ ldr r0, =gUnknown_0203AB50
+ ldr r1, [r0]
+ movs r0, 0x2
+ bl SetBgTilemapBuffer
+ bl ResetAllBgsCoordinates
+ 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 {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135BDC
+
+ thumb_func_start sub_8135C38
+sub_8135C38: @ 8135C38
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e7e
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ bhi _08135D18
+ lsls r0, 2
+ ldr r1, =_08135C64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08135C64:
+ .4byte _08135C7C
+ .4byte _08135C98
+ .4byte _08135CBC
+ .4byte _08135CCC
+ .4byte _08135CD8
+ .4byte _08135CFC
+_08135C7C:
+ bl reset_temp_tile_data_buffers
+ ldr r1, =gMenuPokeblock_Gfx
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl decompress_and_copy_tile_data_to_vram
+ b _08135CDE
+ .pool
+_08135C98:
+ bl free_temp_tile_data_buffers_if_possible
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08135D18
+ ldr r0, =gMenuPokeblockDevice_Gfx
+ ldr r4, =gUnknown_0203AB50
+ ldr r1, [r4]
+ bl LZDecompressWram
+ ldr r1, [r4]
+ b _08135CE2
+ .pool
+_08135CBC:
+ ldr r0, =gMenuPokeblock_Pal
+ movs r1, 0
+ movs r2, 0xC0
+ bl LoadCompressedPalette
+ b _08135CDE
+ .pool
+_08135CCC:
+ ldr r0, =gPokeblockCase_SpriteSheet
+ bl LoadCompressedObjectPic
+ b _08135CDE
+ .pool
+_08135CD8:
+ ldr r0, =gPokeblockCase_SpritePal
+ bl LoadCompressedObjectPalette
+_08135CDE:
+ ldr r0, =gUnknown_0203AB50
+ ldr r1, [r0]
+_08135CE2:
+ ldr r0, =0x00000e7e
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08135D18
+ .pool
+_08135CFC:
+ bl sub_8122328
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e7e
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08135D1A
+ .pool
+_08135D18:
+ movs r0, 0
+_08135D1A:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8135C38
+
+ thumb_func_start sub_8135D24
+sub_8135D24: @ 8135D24
+ push {r4,lr}
+ ldr r0, =gUnknown_085B2748
+ 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
+ ldr r0, =gUnknown_0860F074
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r4, 0
+_08135D50:
+ adds r0, r4, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xA
+ bls _08135D50
+ 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 sub_8135D24
+
+ thumb_func_start sub_8135D7C
+sub_8135D7C: @ 8135D7C
+ push {r4,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldr r3, =gUnknown_085B271C
+ str r3, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r1, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0x1
+ bl AddTextPrinterParametrized2
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135D7C
+
+ thumb_func_start sub_8135DAC
+sub_8135DAC: @ 8135DAC
+ push {r4,lr}
+ ldr r0, =0x00000111
+ bl ItemId_GetItem
+ adds r4, r0, 0
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x48
+ bl GetStringCenterAlignXOffset
+ adds r2, r0, 0
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_8135D7C
+ ldr r1, =gText_Spicy
+ movs r0, 0x2
+ movs r2, 0
+ bl sub_8135D7C
+ ldr r1, =gText_Dry
+ movs r0, 0x3
+ movs r2, 0
+ bl sub_8135D7C
+ ldr r1, =gText_Sweet
+ movs r0, 0x4
+ movs r2, 0
+ bl sub_8135D7C
+ ldr r1, =gText_Bitter
+ movs r0, 0x5
+ movs r2, 0
+ bl sub_8135D7C
+ ldr r1, =gText_Sour
+ movs r0, 0x6
+ movs r2, 0
+ bl sub_8135D7C
+ movs r4, 0
+_08135DFE:
+ adds r0, r4, 0
+ bl PutWindowTilemap
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08135DFE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135DAC
+
+ thumb_func_start sub_8135E2C
+sub_8135E2C: @ 8135E2C
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r1, =gUnknown_0203AB50
+ ldr r0, [r1]
+ ldr r2, =0x0000080a
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _08135E7C
+ adds r5, r1, 0
+_08135E42:
+ lsls r4, r6, 5
+ ldr r3, =0x00000954
+ adds r4, r3
+ ldr r0, [r5]
+ adds r0, r4
+ adds r1, r6, 0
+ bl sub_8135F04
+ ldr r1, [r5]
+ lsls r2, r6, 3
+ ldr r7, =0x0000080c
+ adds r0, r1, r7
+ adds r0, r2
+ adds r4, r1, r4
+ str r4, [r0]
+ movs r3, 0x81
+ lsls r3, 4
+ adds r0, r1, r3
+ adds r0, r2
+ str r6, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, =0x0000080a
+ adds r1, r4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _08135E42
+_08135E7C:
+ ldr r5, =gUnknown_0203AB50
+ lsls r4, r6, 5
+ ldr r7, =0x00000954
+ adds r4, r7
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =gText_StowCase
+ bl StringCopy
+ ldr r1, [r5]
+ lsls r2, r6, 3
+ ldr r3, =0x0000080c
+ adds r0, r1, r3
+ adds r0, r2
+ adds r4, r1, r4
+ str r4, [r0]
+ movs r0, 0x81
+ lsls r0, 4
+ adds r1, r0
+ adds r1, r2
+ movs r0, 0x2
+ negs r0, r0
+ str r0, [r1]
+ ldr r2, =gUnknown_03006310
+ adds r1, r2, 0
+ ldr r0, =gUnknown_085B27B0
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ ldrb r1, [r2, 0x17]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x7
+ orrs r0, r1
+ strb r0, [r2, 0x17]
+ ldr r1, [r5]
+ ldr r4, =0x0000080a
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ strh r0, [r2, 0xC]
+ adds r3, r1, r3
+ str r3, [r2]
+ ldr r6, =0x0000080b
+ adds r1, r6
+ ldrb r0, [r1]
+ strh r0, [r2, 0xE]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135E2C
+
+ thumb_func_start sub_8135F04
+sub_8135F04: @ 8135F04
+ push {r4-r6,lr}
+ lsls r1, 16
+ ldr r2, =gSaveBlock1Ptr
+ lsrs r1, 13
+ ldr r3, =0x00000848
+ adds r1, r3
+ ldr r5, [r2]
+ adds r5, r1
+ ldr r2, =gPokeblockNames
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ adds r4, r0, 0
+ movs r0, 0xFC
+ strb r0, [r4]
+ adds r4, 0x1
+ movs r0, 0x12
+ strb r0, [r4]
+ adds r4, 0x1
+ movs r0, 0x57
+ strb r0, [r4]
+ adds r4, 0x1
+ ldr r6, =gStringVar1
+ adds r0, r5, 0
+ bl GetHighestPokeblocksFlavorLevel
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_LvVar1
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135F04
+
+ thumb_func_start sub_8135F70
+sub_8135F70: @ 8135F70
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ beq _08135F9C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gSprites
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e74
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, =sub_8136470
+ str r1, [r0]
+_08135F9C:
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e7d
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08135FB0
+ adds r0, r4, 0
+ bl sub_8135FCC
+_08135FB0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8135F70
+
+ thumb_func_start sub_8135FCC
+sub_8135FCC: @ 8135FCC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r4, r0, 0
+ movs r0, 0x7
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081360A0
+ ldr r1, =gSaveBlock1Ptr
+ lsls r0, r4, 3
+ ldr r2, =0x00000848
+ adds r0, r2
+ ldr r1, [r1]
+ adds r1, r0
+ mov r8, r1
+ add r1, sp, 0x8
+ movs r0, 0x17
+ strh r0, [r1]
+ movs r0, 0x18
+ strh r0, [r1, 0x2]
+ movs r5, 0
+ adds r6, r1, 0
+_08136002:
+ adds r4, r5, 0x1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetPokeblockData
+ lsls r0, 16
+ adds r7, r4, 0
+ cmp r0, 0
+ ble _0813602C
+ lsls r1, r5, 12
+ adds r0, r1, 0
+ adds r0, 0x17
+ strh r0, [r6]
+ adds r1, 0x18
+ strh r1, [r6, 0x2]
+ b _08136032
+ .pool
+_0813602C:
+ movs r0, 0xF
+ strh r0, [r6]
+ strh r0, [r6, 0x2]
+_08136032:
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r3, r0, 0
+ lsls r3, 25
+ movs r0, 0xD0
+ lsls r0, 20
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ add r1, sp, 0x8
+ adds r2, r4, 0
+ bl CopyToBgTilemapBufferRect
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08136002
+ ldr r4, =gStringVar1
+ mov r0, r8
+ bl GetPokeblocksFeel
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0x7
+ adds r1, r4, 0
+ movs r2, 0x4
+ bl sub_8135D7C
+ b _081360F8
+ .pool
+_081360A0:
+ add r0, sp, 0x8
+ movs r1, 0xF
+ strh r1, [r0]
+ strh r1, [r0, 0x2]
+ movs r5, 0
+_081360AA:
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 1
+ adds r4, r0
+ lsls r4, 1
+ adds r4, 0x1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r3, r0, 0
+ lsls r3, 25
+ movs r2, 0xD0
+ lsls r2, 20
+ adds r3, r2
+ lsrs r3, 24
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ add r1, sp, 0x8
+ adds r2, r4, 0
+ bl CopyToBgTilemapBufferRect
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _081360AA
+ movs r0, 0x7
+ movs r1, 0x2
+ bl CopyWindowToVram
+_081360F8:
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135FCC
+
+ thumb_func_start sub_8136110
+sub_8136110: @ 8136110
+ push {lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ lsls r3, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r3, 15
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0xE
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r2, 0xF
+ bl FillBgTilemapBufferRect_Palette0
+ movs r0, 0x2
+ bl schedule_bg_copy_tilemap_to_vram
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136110
+
+ thumb_func_start sub_8136140
+sub_8136140: @ 8136140
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+_0813614A:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ mov r12, r1
+ cmp r6, 0x27
+ bhi _08136192
+ ldr r0, =gSaveBlock1Ptr
+ mov r9, r0
+ lsls r7, r2, 3
+ ldr r1, =0x00000848
+ mov r8, r1
+_08136160:
+ mov r0, r9
+ ldr r2, [r0]
+ adds r0, r2, r7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08136188
+ ldr r1, =0x00000848
+ adds r2, r1
+ adds r3, r2, r7
+ ldr r4, [r3]
+ ldr r5, [r3, 0x4]
+ lsls r0, r6, 3
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+ str r4, [r2]
+ str r5, [r2, 0x4]
+_08136188:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x27
+ bls _08136160
+_08136192:
+ mov r1, r12
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x26
+ bls _0813614A
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136140
+
+ thumb_func_start sub_81361B0
+sub_81361B0: @ 81361B0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000848
+ adds r6, r0, r1
+ cmp r4, r5
+ beq _08136246
+ movs r0, 0x8
+ bl Alloc
+ adds r7, r0, 0
+ lsls r0, r4, 3
+ adds r0, r6
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r7]
+ str r1, [r7, 0x4]
+ cmp r5, r4
+ bls _0813620C
+ subs r5, 0x1
+ lsls r3, r4, 16
+ lsls r0, r5, 16
+ asrs r1, r0, 16
+ cmp r3, r0
+ bge _08136234
+ adds r4, r1, 0
+_081361E8:
+ asrs r3, 16
+ lsls r2, r3, 3
+ adds r2, r6
+ ldr r0, [r2, 0x8]
+ ldr r1, [r2, 0xC]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r0, r3, 16
+ cmp r0, r4
+ blt _081361E8
+ b _08136234
+ .pool
+_0813620C:
+ lsls r3, r4, 16
+ lsls r0, r5, 16
+ asrs r1, r0, 16
+ cmp r3, r0
+ ble _08136234
+ adds r4, r1, 0
+_08136218:
+ asrs r3, 16
+ lsls r2, r3, 3
+ adds r2, r6
+ adds r0, r2, 0
+ subs r0, 0x8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ subs r3, 0x1
+ lsls r3, 16
+ asrs r0, r3, 16
+ cmp r0, r4
+ bgt _08136218
+_08136234:
+ lsls r2, r5, 3
+ adds r2, r6
+ ldr r0, [r7]
+ ldr r1, [r7, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ adds r0, r7, 0
+ bl Free
+_08136246:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81361B0
+
+ thumb_func_start sub_813624C
+sub_813624C: @ 813624C
+ ldr r1, =gUnknown_0203AB48
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ strh r0, [r1, 0x6]
+ bx lr
+ .pool
+ thumb_func_end sub_813624C
+
+ thumb_func_start sub_813625C
+sub_813625C: @ 813625C
+ push {r4,r5,lr}
+ bl sub_8136140
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x0000080a
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r2, 0
+ ldr r5, =gSaveBlock1Ptr
+ ldr r4, =0x00000848
+_08136274:
+ ldr r0, [r5]
+ lsls r1, r2, 3
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ ldr r3, =gUnknown_0203AB50
+ cmp r0, 0
+ beq _08136290
+ ldr r1, [r3]
+ ldr r0, =0x0000080a
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08136290:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x27
+ bls _08136274
+ ldr r0, [r3]
+ ldr r2, =0x0000080a
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r2, r0, r2
+ ldrb r2, [r2]
+ cmp r2, 0x9
+ bls _081362D0
+ ldr r2, =0x0000080b
+ adds r1, r0, r2
+ movs r0, 0x9
+ strb r0, [r1]
+ b _081362D6
+ .pool
+_081362D0:
+ ldr r1, =0x0000080b
+ adds r0, r1
+ strb r2, [r0]
+_081362D6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813625C
+
+ thumb_func_start sub_81362E0
+sub_81362E0: @ 81362E0
+ push {r4,r5,lr}
+ ldr r0, =gUnknown_0203AB48
+ ldrh r1, [r0, 0x6]
+ adds r3, r0, 0
+ ldr r4, =gUnknown_0203AB50
+ cmp r1, 0
+ beq _08136308
+ ldrh r0, [r3, 0x6]
+ ldr r1, [r4]
+ ldr r5, =0x0000080b
+ adds r2, r1, r5
+ ldrb r2, [r2]
+ adds r0, r2
+ subs r5, 0x1
+ adds r1, r5
+ ldrb r1, [r1]
+ cmp r0, r1
+ ble _08136308
+ subs r0, r1, r2
+ strh r0, [r3, 0x6]
+_08136308:
+ adds r2, r3, 0
+ ldrh r1, [r2, 0x6]
+ ldrh r0, [r2, 0x4]
+ adds r1, r0
+ ldr r0, [r4]
+ ldr r4, =0x0000080a
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _0813633C
+ adds r1, r0, 0
+ cmp r1, 0
+ bne _08136338
+ strh r1, [r2, 0x4]
+ b _0813633C
+ .pool
+_08136338:
+ subs r0, 0x1
+ strh r0, [r3, 0x4]
+_0813633C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81362E0
+
+ thumb_func_start sub_8136344
+sub_8136344: @ 8136344
+ push {r4-r7,lr}
+ ldr r0, =gUnknown_0203AB48
+ ldrh r1, [r0, 0x4]
+ adds r5, r0, 0
+ cmp r1, 0x4
+ bls _081363A4
+ movs r4, 0
+ ldrh r0, [r5, 0x4]
+ subs r0, 0x4
+ cmp r4, r0
+ bge _081363A4
+ ldrh r2, [r5, 0x6]
+ ldr r6, =gUnknown_0203AB50
+ ldr r0, [r6]
+ ldr r3, =0x0000080b
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ adds r2, r1
+ ldr r7, =0x0000080a
+ adds r0, r7
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _081363A4
+ adds r3, r5, 0
+_08136374:
+ ldrh r0, [r3, 0x4]
+ subs r0, 0x1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r3, 0x6]
+ adds r0, 0x1
+ strh r0, [r3, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r3, 0x4]
+ subs r0, 0x4
+ cmp r4, r0
+ bge _081363A4
+ ldrh r2, [r5, 0x6]
+ ldr r1, [r6]
+ ldr r7, =0x0000080b
+ adds r0, r1, r7
+ ldrb r0, [r0]
+ adds r2, r0
+ ldr r0, =0x0000080a
+ adds r1, r0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _08136374
+_081363A4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136344
+
+ thumb_func_start sub_81363BC
+sub_81363BC: @ 81363BC
+ push {r4,lr}
+ sub sp, 0x10
+ ldr r4, =gUnknown_0203AB50
+ ldr r1, [r4]
+ ldr r2, =0x00000e7c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081363FC
+ ldr r2, =0x0000080a
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ subs r0, r1
+ str r0, [sp]
+ ldr r0, =0x00000456
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ ldr r0, =gUnknown_0203AB4E
+ str r0, [sp, 0xC]
+ movs r0, 0x2
+ movs r1, 0xB0
+ movs r2, 0x8
+ movs r3, 0x98
+ bl AddScrollIndicatorArrowPairParametrized
+ ldr r1, [r4]
+ ldr r2, =0x00000e7c
+ adds r1, r2
+ strb r0, [r1]
+_081363FC:
+ add sp, 0x10
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81363BC
+
+ thumb_func_start sub_8136418
+sub_8136418: @ 8136418
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB50
+ ldr r0, [r4]
+ ldr r2, =0x00000e7c
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08136436
+ bl RemoveScrollIndicatorArrowPair
+ ldr r0, [r4]
+ ldr r1, =0x00000e7c
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+_08136436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136418
+
+ thumb_func_start CreatePokeblockCaseSprite
+CreatePokeblockCaseSprite: @ 8136444
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, =gUnknown_085B2704
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end CreatePokeblockCaseSprite
+
+ thumb_func_start sub_8136470
+sub_8136470: @ 8136470
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _08136480
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_08136480:
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _0813648E
+ cmp r5, 0x1
+ beq _081364B4
+ b _081364E0
+_0813648E:
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, =gUnknown_085B26F0
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ b _081364E0
+ .pool
+_081364B4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _081364E0
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ strh r2, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+_081364E0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136470
+
+ thumb_func_start sub_81364EC
+sub_81364EC: @ 81364EC
+ 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, =sub_8136524
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81364EC
+
+ thumb_func_start sub_8136524
+sub_8136524: @ 8136524
+ push {r4-r6,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 _081365BE
+ ldr r6, =gUnknown_0203AB50
+ ldr r0, [r6]
+ ldr r1, =0x00000809
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0813655A
+ ldr r1, =gFieldCallback
+ ldr r0, =sub_80AF168
+ str r0, [r1]
+_0813655A:
+ ldrb r0, [r2]
+ ldr r4, =gUnknown_0203AB4E
+ subs r2, r4, 0x2
+ adds r1, r4, 0
+ bl sub_81AE6C8
+ bl sub_8136418
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, [r6]
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081365A4
+ bl SetMainCallback2
+ b _081365AC
+ .pool
+_081365A4:
+ subs r0, r4, 0x6
+ ldr r0, [r0]
+ bl SetMainCallback2
+_081365AC:
+ bl FreeAllWindowBuffers
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ bl Free
+ adds r0, r5, 0
+ bl DestroyTask
+_081365BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136524
+
+ thumb_func_start sub_81365C8
+sub_81365C8: @ 81365C8
+ 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
+ mov r8, r0
+ ldr r0, =gTasks + 0x8
+ mov r10, r0
+ mov r6, r8
+ add r6, r10
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081365F4
+ b _08136708
+_081365F4:
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08136602
+ b _08136708
+_08136602:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0
+ beq _08136688
+ ldrb r0, [r6]
+ ldr r4, =gUnknown_0203AB4E
+ subs r2, r4, 0x2
+ adds r1, r4, 0
+ bl get_coro_args_x18_x1A
+ subs r4, 0x6
+ ldrh r1, [r4, 0x6]
+ ldrh r0, [r4, 0x4]
+ adds r1, r0
+ ldr r5, =gUnknown_0203AB50
+ ldr r0, [r5]
+ ldr r2, =0x0000080a
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08136708
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x4]
+ ldr r1, =0x00002005
+ bl sub_8136110
+ ldrh r0, [r4, 0x4]
+ ldrh r4, [r4, 0x6]
+ adds r0, r4
+ strh r0, [r6, 0x4]
+ ldr r0, [r5]
+ ldr r1, =0x00000e7d
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ mov r0, r10
+ subs r0, 0x8
+ add r0, r8
+ ldr r1, =sub_813671C
+ str r1, [r0]
+ b _08136708
+ .pool
+_08136688:
+ ldr r5, =gUnknown_0203AB48
+ ldrh r2, [r5, 0x4]
+ mov r8, r2
+ ldrb r0, [r6]
+ bl ListMenuHandleInput
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ adds r1, r5, 0x6
+ adds r2, r5, 0x4
+ bl get_coro_args_x18_x1A
+ ldrh r0, [r5, 0x4]
+ cmp r8, r0
+ beq _081366B6
+ mov r0, r8
+ movs r1, 0x5
+ bl sub_8136110
+ ldrh r0, [r5, 0x4]
+ ldr r1, =0x00001005
+ bl sub_8136110
+_081366B6:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _081366D0
+ adds r0, 0x1
+ cmp r4, r0
+ bne _081366F8
+ b _08136708
+ .pool
+_081366D0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gSpecialVar_Result
+ ldr r2, =0x0000ffff
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, =gSpecialVar_ItemId
+ mov r1, r9
+ strh r1, [r0]
+ adds r0, r7, 0
+ bl sub_81364EC
+ b _08136708
+ .pool
+_081366F8:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gSpecialVar_ItemId
+ strh r4, [r0]
+ adds r0, r7, 0
+ bl sub_8136938
+_08136708:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81365C8
+
+ thumb_func_start sub_813671C
+sub_813671C: @ 813671C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,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
+ bl sub_81221EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08136742
+ b _08136848
+_08136742:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0813676C
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r7]
+ ldr r1, =gUnknown_0203AB4E
+ subs r2, r1, 0x2
+ bl get_coro_args_x18_x1A
+ b _08136822
+ .pool
+_0813676C:
+ ldr r6, =gUnknown_0203AB48
+ ldrh r4, [r6, 0x6]
+ ldrh r5, [r6, 0x4]
+ ldrb r0, [r7]
+ bl ListMenuHandleInput
+ mov r9, r0
+ ldrb r0, [r7]
+ adds r1, r6, 0x6
+ adds r2, r6, 0x4
+ bl get_coro_args_x18_x1A
+ ldrh r0, [r6, 0x6]
+ cmp r4, r0
+ bne _08136790
+ ldrh r6, [r6, 0x4]
+ cmp r5, r6
+ beq _081367CA
+_08136790:
+ movs r4, 0
+_08136792:
+ ldr r0, =gUnknown_0203AB48
+ ldrh r0, [r0, 0x6]
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r5, r0
+ bne _081367B8
+ adds r0, r4, 0
+ ldr r1, =0x00002005
+ bl sub_8136110
+ b _081367C0
+ .pool
+_081367B8:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_8136110
+_081367C0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x8
+ bls _08136792
+_081367CA:
+ ldr r5, =gUnknown_0203AB50
+ ldr r0, [r5]
+ ldr r4, =0x00000e75
+ adds r0, r4
+ movs r1, 0x7
+ movs r2, 0
+ bl sub_81223FC
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, =gUnknown_0203AB48
+ ldrh r3, [r1, 0x4]
+ lsls r3, 4
+ adds r3, 0x8
+ lsls r3, 16
+ lsrs r3, 16
+ movs r1, 0x7
+ movs r2, 0x80
+ bl sub_8122448
+ movs r0, 0x2
+ negs r0, r0
+ cmp r9, r0
+ beq _08136810
+ adds r0, 0x1
+ cmp r9, r0
+ bne _0813683A
+ b _08136848
+ .pool
+_08136810:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08136830
+_08136822:
+ mov r0, r8
+ movs r1, 0
+ bl sub_8136854
+ b _08136848
+ .pool
+_08136830:
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8136854
+ b _08136848
+_0813683A:
+ movs r0, 0x5
+ bl PlaySE
+ mov r0, r8
+ movs r1, 0
+ bl sub_8136854
+_08136848:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813671C
+
+ thumb_func_start sub_8136854
+sub_8136854: @ 8136854
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ ldr r2, =gUnknown_0203AB48
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r2, 0x6]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e7d
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r6]
+ adds r1, r2, 0x6
+ adds r2, 0x4
+ bl sub_81AE6C8
+ cmp r4, 0
+ bne _081368AA
+ movs r0, 0x4
+ ldrsh r1, [r6, r0]
+ cmp r1, r5
+ beq _081368BA
+ subs r0, r5, 0x1
+ cmp r1, r0
+ beq _081368AA
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl sub_81361B0
+ bl sub_8135E2C
+_081368AA:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, r5
+ bge _081368BA
+ ldr r1, =gUnknown_0203AB48
+ ldrh r0, [r1, 0x4]
+ subs r0, 0x1
+ strh r0, [r1, 0x4]
+_081368BA:
+ ldr r0, =gUnknown_03006310
+ ldr r2, =gUnknown_0203AB48
+ ldrh r1, [r2, 0x6]
+ ldrh r2, [r2, 0x4]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000e75
+ adds r0, r1
+ movs r1, 0x7
+ movs r2, 0x1
+ bl sub_81223FC
+ movs r4, 0
+ lsls r5, r7, 2
+_081368E6:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_8136110
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _081368E6
+ ldr r0, =gUnknown_0203AB48
+ ldrh r0, [r0, 0x4]
+ ldr r1, =0x00001005
+ bl sub_8136110
+ ldr r1, =gTasks
+ adds r0, r5, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81365C8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136854
+
+ thumb_func_start sub_8136938
+sub_8136938: @ 8136938
+ 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
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r1, =0x00000808
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08136968
+ movs r0, 0x8
+ b _0813696A
+ .pool
+_08136968:
+ movs r0, 0x9
+_0813696A:
+ strh r0, [r6, 0x2]
+ bl sub_8136418
+ ldrb r0, [r6, 0x2]
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xE
+ bl SetWindowBorderStyle
+ ldrb r0, [r6, 0x2]
+ ldr r5, =gUnknown_0203AB50
+ ldr r3, [r5]
+ ldr r4, =0x00000808
+ adds r1, r3, r4
+ ldrb r1, [r1]
+ ldr r2, =gUnknown_085B2668
+ mov r12, r2
+ ldr r2, =0x00000804
+ adds r3, r2
+ ldr r3, [r3]
+ mov r2, r12
+ bl sub_81995E4
+ ldrb r0, [r6, 0x2]
+ ldr r1, [r5]
+ adds r1, r4
+ ldrb r1, [r1]
+ movs r2, 0
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ ldrb r0, [r6, 0x2]
+ bl PutWindowTilemap
+ movs r0, 0x1
+ 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_81369E0
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136938
+
+ thumb_func_start sub_81369E0
+sub_81369E0: @ 81369E0
+ 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 _08136A3C
+ bl ProcessMenuInputNoWrapAround
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _08136A3C
+ adds r0, 0x1
+ cmp r4, r0
+ bne _08136A18
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_8136DE8
+ b _08136A3C
+_08136A18:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, =gUnknown_085B2668
+ ldr r0, =gUnknown_0203AB50
+ ldr r0, [r0]
+ ldr r2, =0x00000804
+ 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
+_08136A3C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81369E0
+
+ thumb_func_start sub_8136A50
+sub_8136A50: @ 8136A50
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_0203AB50
+ ldr r1, [r1]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r1, r2
+ ldr r2, =sub_8136A74
+ str r2, [r1]
+ bl sub_81364EC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136A50
+
+ thumb_func_start sub_8136A74
+sub_8136A74: @ 8136A74
+ push {lr}
+ ldr r2, =gSaveBlock1Ptr
+ ldr r0, =gSpecialVar_ItemId
+ ldrh r1, [r0]
+ lsls r1, 3
+ ldr r0, =0x00000848
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ ldr r1, =sub_8136AA0
+ bl ChooseMonToGivePokeblock
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136A74
+
+ thumb_func_start sub_8136AA0
+sub_8136AA0: @ 8136AA0
+ push {lr}
+ ldr r0, =gUnknown_0203AB48
+ ldr r1, [r0]
+ movs r0, 0
+ bl sub_81357FC
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136AA0
+
+ thumb_func_start sub_8136AB4
+sub_8136AB4: @ 8136AB4
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ movs r1, 0
+ bl sub_8198070
+ ldr r0, =gStringVar1
+ ldr r3, =gPokeblockNames
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldr r1, =gSpecialVar_ItemId
+ ldrh r1, [r1]
+ lsls r1, 3
+ adds r2, r1
+ ldr r1, =0x00000848
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r5, =gStringVar4
+ ldr r1, =gText_ThrowAwayVar1
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ bl GetPlayerTextSpeed
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ ldr r0, =sub_8136B48
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xA
+ movs r3, 0xD
+ bl DisplayMessageAndContinueTask
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136AB4
+
+ thumb_func_start sub_8136B48
+sub_8136B48: @ 8136B48
+ push {lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gUnknown_085B27A8
+ movs r2, 0x2
+ str r2, [sp]
+ movs r2, 0x1
+ str r2, [sp, 0x4]
+ movs r2, 0xE
+ str r2, [sp, 0x8]
+ ldr r2, =gUnknown_085B26A4
+ str r2, [sp, 0xC]
+ movs r2, 0x1
+ movs r3, 0
+ bl CreateYesNoMenuWithCallbacks
+ add sp, 0x10
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136B48
+
+ thumb_func_start sub_8136B78
+sub_8136B78: @ 8136B78
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gStringVar4
+ ldr r1, =gText_Var1ThrownAway
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ bl GetPlayerTextSpeed
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ str r1, [sp]
+ str r0, [sp, 0x4]
+ str r5, [sp, 0x8]
+ ldr r0, =sub_8136BC0
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0xA
+ movs r3, 0xD
+ bl DisplayMessageAndContinueTask
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136B78
+
+ thumb_func_start sub_8136BC0
+sub_8136BC0: @ 8136BC0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136C36
+ ldr r0, =gSpecialVar_ItemId
+ ldrb r0, [r0]
+ bl sub_8136F68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, =gUnknown_0203AB4E
+ subs r6, r5, 0x2
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ ldr r0, =gTasks + 0x8
+ adds r4, r0
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_81AE6C8
+ ldrh r0, [r6]
+ movs r1, 0x5
+ bl sub_8136110
+ bl sub_813625C
+ bl sub_81362E0
+ bl sub_8135E2C
+ ldr r0, =gUnknown_03006310
+ ldrh r1, [r5]
+ ldrh r2, [r6]
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r0, [r6]
+ ldr r1, =0x00001005
+ bl sub_8136110
+ movs r0, 0
+ bl schedule_bg_copy_tilemap_to_vram
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ adds r0, r7, 0
+ bl sub_8136C54
+_08136C36:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136BC0
+
+ thumb_func_start sub_8136C54
+sub_8136C54: @ 8136C54
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0xA
+ movs r1, 0
+ bl sub_8197DF8
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ bl sub_81363BC
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81365C8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136C54
+
+ thumb_func_start sub_8136C8C
+sub_8136C8C: @ 8136C8C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =gEnemyParty
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, =gSaveBlock1Ptr
+ ldr r7, =gSpecialVar_ItemId
+ ldrh r2, [r7]
+ lsls r2, 3
+ ldr r6, =0x00000848
+ adds r2, r6
+ ldr r1, [r5]
+ adds r1, r2
+ bl PokeblockGetGain
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =gBattleTextBuff1
+ ldr r3, =gPokeblockNames
+ ldr r2, [r5]
+ ldrh r1, [r7]
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldrb r0, [r7]
+ bl sub_8136F68
+ ldr r1, [r5]
+ ldrh r0, [r7]
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 8
+ strh r0, [r7]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0
+ bne _08136D10
+ adds r0, 0x1
+ b _08136D1A
+ .pool
+_08136D10:
+ cmp r4, 0
+ ble _08136D18
+ adds r0, 0x2
+ b _08136D1A
+_08136D18:
+ adds r0, 0x3
+_08136D1A:
+ strh r0, [r7]
+ mov r0, r8
+ bl sub_81364EC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136C8C
+
+ thumb_func_start sub_8136D2C
+sub_8136D2C: @ 8136D2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, =gSpecialVar_ItemId
+ ldrb r0, [r5]
+ bl SafariZoneActivatePokeblockFeeder
+ ldr r0, =gStringVar1
+ ldr r3, =gPokeblockNames
+ ldr r1, =gSaveBlock1Ptr
+ ldr r2, [r1]
+ ldrh r1, [r5]
+ lsls r1, 3
+ adds r2, r1
+ ldr r1, =0x00000848
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, =gSpecialVar_Result
+ ldrh r0, [r5]
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8136F68
+ movs r0, 0
+ strh r0, [r5]
+ adds r0, r4, 0
+ bl sub_81364EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136D2C
+
+ thumb_func_start sub_8136D90
+sub_8136D90: @ 8136D90
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, =gSpecialVar_0x8004
+ ldr r0, =gSaveBlock1Ptr
+ ldr r5, =gSpecialVar_ItemId
+ ldrh r1, [r5]
+ lsls r1, 3
+ ldr r2, =0x00000848
+ adds r1, r2
+ ldr r0, [r0]
+ adds r0, r1
+ bl sub_818E704
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6]
+ ldr r1, =gSpecialVar_Result
+ ldrh r0, [r5]
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8136F68
+ movs r0, 0
+ strh r0, [r5]
+ adds r0, r4, 0
+ bl sub_81364EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136D90
+
+ thumb_func_start sub_8136DE8
+sub_8136DE8: @ 8136DE8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r5, =gTasks + 0x8
+ adds r0, r4, r5
+ ldrb r0, [r0, 0x2]
+ movs r1, 0
+ bl sub_8198070
+ movs r0, 0x1
+ bl schedule_bg_copy_tilemap_to_vram
+ bl sub_81363BC
+ subs r5, 0x8
+ adds r4, r5
+ ldr r0, =sub_81365C8
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136DE8
+
+ thumb_func_start sub_8136E20
+sub_8136E20: @ 8136E20
+ push {r4,lr}
+ lsls r0, 24
+ ldr r3, =gSaveBlock1Ptr
+ ldr r1, [r3]
+ lsrs r0, 21
+ adds r1, r0
+ ldr r2, =0x00000848
+ adds r1, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r4, =0x00000849
+ adds r1, r4
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ adds r4, 0x1
+ adds r1, r4
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ adds r4, 0x1
+ adds r1, r4
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ adds r4, 0x1
+ adds r1, r4
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ adds r4, 0x1
+ adds r1, r4
+ strb r2, [r1]
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, =0x0000084e
+ adds r1, r0
+ strb r2, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8136E20
+
+ thumb_func_start ClearPokeblocks
+ClearPokeblocks: @ 8136E88
+ push {r4,lr}
+ movs r4, 0
+_08136E8C:
+ adds r0, r4, 0
+ bl sub_8136E20
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x27
+ bls _08136E8C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ClearPokeblocks
+
+ thumb_func_start GetHighestPokeblocksFlavorLevel
+GetHighestPokeblocksFlavorLevel: @ 8136EA4
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl GetPokeblockData
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x1
+_08136EB4:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl GetPokeblockData
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _08136ECC
+ adds r5, r0, 0
+_08136ECC:
+ adds r1, r4, 0
+ cmp r1, 0x4
+ bls _08136EB4
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetHighestPokeblocksFlavorLevel
+
+ thumb_func_start GetPokeblocksFeel
+GetPokeblocksFeel: @ 8136EDC
+ push {lr}
+ movs r1, 0x6
+ bl GetPokeblockData
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x63
+ bls _08136EEE
+ movs r0, 0x63
+_08136EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end GetPokeblocksFeel
+
+ thumb_func_start GetFirstFreePokeblockSlot
+GetFirstFreePokeblockSlot: @ 8136EF4
+ push {lr}
+ movs r1, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r3, =0x00000848
+_08136EFE:
+ lsls r0, r1, 3
+ adds r0, r2, r0
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08136F18
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _08136F26
+ .pool
+_08136F18:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x27
+ bls _08136EFE
+ movs r0, 0x1
+ negs r0, r0
+_08136F26:
+ pop {r1}
+ bx r1
+ thumb_func_end GetFirstFreePokeblockSlot
+
+ thumb_func_start AddPokeblock
+AddPokeblock: @ 8136F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl GetFirstFreePokeblockSlot
+ lsls r0, 24
+ asrs r1, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08136F60
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ ldr r1, =0x00000848
+ adds r2, r1
+ adds r2, r0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x1
+ b _08136F62
+ .pool
+_08136F60:
+ movs r0, 0
+_08136F62:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end AddPokeblock
+
+ thumb_func_start sub_8136F68
+sub_8136F68: @ 8136F68
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ lsls r1, r2, 3
+ adds r0, r1
+ ldr r1, =0x00000848
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08136F94
+ adds r0, r2, 0
+ bl sub_8136E20
+ movs r0, 0x1
+ b _08136F96
+ .pool
+_08136F94:
+ movs r0, 0
+_08136F96:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8136F68
+
+ thumb_func_start GetPokeblockData
+GetPokeblockData: @ 8136F9C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _08136FAC
+ ldrb r0, [r0]
+ b _08136FDE
+_08136FAC:
+ cmp r1, 0x1
+ bne _08136FB4
+ ldrb r0, [r0, 0x1]
+ b _08136FDE
+_08136FB4:
+ cmp r1, 0x2
+ bne _08136FBC
+ ldrb r0, [r0, 0x2]
+ b _08136FDE
+_08136FBC:
+ cmp r1, 0x3
+ bne _08136FC4
+ ldrb r0, [r0, 0x3]
+ b _08136FDE
+_08136FC4:
+ cmp r1, 0x4
+ bne _08136FCC
+ ldrb r0, [r0, 0x4]
+ b _08136FDE
+_08136FCC:
+ cmp r1, 0x5
+ bne _08136FD4
+ ldrb r0, [r0, 0x5]
+ b _08136FDE
+_08136FD4:
+ cmp r2, 0x6
+ beq _08136FDC
+ movs r0, 0
+ b _08136FDE
+_08136FDC:
+ ldrb r0, [r0, 0x6]
+_08136FDE:
+ pop {r1}
+ bx r1
+ thumb_func_end GetPokeblockData
+
+ thumb_func_start PokeblockGetGain
+PokeblockGetGain: @ 8136FE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ movs r4, 0
+ ldr r1, =gPokeblockFlavorCompatibilityTable
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r7, r1, r0
+_08136FFE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r1, r5, 0
+ bl GetPokeblockData
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ ble _0813702A
+ adds r0, r7, r4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r1, r0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0813702A:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ bls _08136FFE
+ lsls r0, r6, 16
+ asrs r0, 16
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end PokeblockGetGain
+
+ thumb_func_start PokeblockCopyName
+PokeblockCopyName: @ 8137044
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0
+ bl GetPokeblockData
+ lsls r0, 24
+ ldr r1, =gPokeblockNames
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end PokeblockCopyName
+
+ thumb_func_start sub_8137068
+sub_8137068: @ 8137068
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, =gPokeblockNames
+_08137074:
+ lsls r1, r4, 3
+ ldr r0, =gUnknown_085B2720
+ adds r1, r0
+ adds r0, r5, 0
+ bl PokeblockGetGain
+ lsls r0, 16
+ cmp r0, 0
+ ble _081370A0
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ movs r0, 0x1
+ b _081370AC
+ .pool
+_081370A0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08137074
+ movs r0, 0
+_081370AC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137068
+
+ thumb_func_start GetPokeblocksFlavor
+GetPokeblocksFlavor: @ 81370B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r7, 0
+ movs r6, 0
+_081370BC:
+ adds r1, r7, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl GetPokeblockData
+ adds r4, r0, 0
+ adds r1, r6, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl GetPokeblockData
+ lsls r4, 16
+ lsls r0, 16
+ lsls r1, r6, 16
+ cmp r4, r0
+ bge _081370E2
+ lsrs r7, r1, 16
+_081370E2:
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r1, r2
+ lsrs r6, r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _081370BC
+ lsls r0, r7, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end GetPokeblocksFlavor
+
+ thumb_func_start sub_81370FC
+sub_81370FC: @ 81370FC
+ push {r4,lr}
+ bl ShouldDoBrailleFlyEffect
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137134
+ ldr r4, =gSpecialVar_Result
+ bl GetCursorSelectionMonId
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldr r1, =gUnknown_03005DB0
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =sub_8179918
+ b _08137152
+ .pool
+_08137134:
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _08137170
+ ldr r0, =0x00000888
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137170
+ ldr r1, =gUnknown_03005DB0
+ ldr r0, =hm_add_c3_launch_phase_2
+ str r0, [r1]
+ ldr r1, =gUnknown_0203CEEC
+ ldr r0, =hm2_flash
+_08137152:
+ str r0, [r1]
+ movs r0, 0x1
+ b _08137172
+ .pool
+_08137170:
+ movs r0, 0
+_08137172:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81370FC
+
+ thumb_func_start hm2_flash
+hm2_flash: @ 8137178
+ push {r4,lr}
+ bl oei_task_add
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl GetCursorSelectionMonId
+ ldr r1, =gFieldEffectArguments
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1]
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, =sub_81371B4
+ lsrs r1, r2, 16
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end hm2_flash
+
+ thumb_func_start sub_81371B4
+sub_81371B4: @ 81371B4
+ push {lr}
+ movs r0, 0xCF
+ bl PlaySE
+ ldr r0, =0x00000888
+ bl FlagSet
+ ldr r0, =EventScript_2926F8
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81371B4
+
+ thumb_func_start sub_81371D4
+sub_81371D4: @ 81371D4
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81371D4
+
+ thumb_func_start sub_81371EC
+sub_81371EC: @ 81371EC
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81371EC
+
+ thumb_func_start c2_change_map
+c2_change_map: @ 8137200
+ push {r4,lr}
+ sub sp, 0x8
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0xC
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0xA
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x8
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x18
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x1A
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x14
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x16
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x10
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x12
+ movs r1, 0
+ bl SetGpuReg
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, =0x040000d4
+ mov r0, sp
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r3, =0x04000208
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, =sub_81371EC
+ bl SetVBlankCallback
+ ldr r0, =sub_81371D4
+ bl SetMainCallback2
+ bl sub_8137304
+ lsls r0, 24
+ cmp r0, 0
+ bne _081372D2
+ ldr r0, =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_081372D2:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end c2_change_map
+
+ thumb_func_start sub_8137304
+sub_8137304: @ 8137304
+ push {r4-r7,lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r4, =gUnknown_085B27C8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08137358
+ adds r7, r4, 0
+ adds r0, r4, 0x4
+ mov r12, r0
+_08137326:
+ lsls r2, r3, 3
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _08137348
+ ldrb r0, [r1, 0x1]
+ cmp r0, r5
+ bne _08137348
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0x1
+ b _0813735A
+ .pool
+_08137348:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08137326
+_08137358:
+ movs r0, 0
+_0813735A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137304
+
+ thumb_func_start sub_8137360
+sub_8137360: @ 8137360
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, =gUnknown_085B27C8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081373A0
+ adds r6, r1, 0
+_08137376:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _08137390
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _08137390
+ ldrb r0, [r2, 0x2]
+ b _081373A2
+ .pool
+_08137390:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08137376
+_081373A0:
+ movs r0, 0
+_081373A2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137360
+
+ thumb_func_start fade_type_for_given_maplight_pair
+fade_type_for_given_maplight_pair: @ 81373A8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, =gUnknown_085B27C8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _081373E8
+ adds r6, r1, 0
+_081373BE:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _081373D8
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _081373D8
+ ldrb r0, [r2, 0x3]
+ b _081373EA
+ .pool
+_081373D8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081373BE
+_081373E8:
+ movs r0, 0
+_081373EA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end fade_type_for_given_maplight_pair
+
+ thumb_func_start sub_81373F0
+sub_81373F0: @ 81373F0
+ push {lr}
+ ldr r0, =sub_8137404
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81373F0
+
+ thumb_func_start sub_8137404
+sub_8137404: @ 8137404
+ 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_8137420
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8137404
+
+ thumb_func_start sub_8137420
+sub_8137420: @ 8137420
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gUnknown_085B2A90
+ ldr r1, =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_085B28B0
+ ldr r1, =0x0600f800
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_085B2850
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_085B28A0
+ movs r1, 0xE0
+ movs r2, 0x10
+ bl LoadPalette
+ ldr r1, =0x00003e41
+ movs r0, 0x50
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00001f0c
+ movs r0, 0x8
+ bl SetGpuReg
+ movs r1, 0x8A
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_81374C4
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137420
+
+ thumb_func_start sub_81374C4
+sub_81374C4: @ 81374C4
+ 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
+ ldrh r4, [r5, 0xA]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r4, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ cmp r4, 0x10
+ bhi _081374F8
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ b _08137500
+ .pool
+_081374F8:
+ movs r0, 0
+ strh r0, [r5, 0xC]
+ ldr r0, =sub_813750C
+ str r0, [r5]
+_08137500:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81374C4
+
+ thumb_func_start sub_813750C
+sub_813750C: @ 813750C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, =0x00001010
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0x7
+ bhi _08137554
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 1
+ ldr r0, =gUnknown_085B28A0
+ adds r0, r1, r0
+ movs r2, 0x10
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _08137566
+ .pool
+_08137554:
+ ldr r0, =gUnknown_085B2850
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =sub_8137574
+ str r0, [r4]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_08137566:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813750C
+
+ thumb_func_start sub_8137574
+sub_8137574: @ 8137574
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08137598
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _081375A0
+ .pool
+_08137598:
+ ldr r0, =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_081375A0:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137574
+
+ thumb_func_start sub_81375A8
+sub_81375A8: @ 81375A8
+ push {lr}
+ ldr r0, =sub_81375BC
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81375A8
+
+ thumb_func_start sub_81375BC
+sub_81375BC: @ 81375BC
+ 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_81375D8
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_81375BC
+
+ thumb_func_start sub_81375D8
+sub_81375D8: @ 81375D8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r0, =gUnknown_085B2A90
+ ldr r1, =0x0600c000
+ bl LZ77UnCompVram
+ ldr r0, =gUnknown_085B28B0
+ ldr r1, =0x0600f800
+ bl LZ77UnCompVram
+ movs r0, 0x50
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x52
+ movs r1, 0
+ bl SetGpuReg
+ movs r0, 0x54
+ movs r1, 0
+ bl SetGpuReg
+ ldr r1, =0x00001f0c
+ movs r0, 0x8
+ bl SetGpuReg
+ movs r1, 0x8A
+ lsls r1, 5
+ movs r0, 0
+ bl SetGpuReg
+ ldr r0, =gUnknown_085B2850
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gUnknown_085B2870
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_8137678
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81375D8
+
+ thumb_func_start sub_8137678
+sub_8137678: @ 8137678
+ 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
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0xF
+ bhi _081376B4
+ adds r2, r1, 0x1
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xC]
+ movs r0, 0xF
+ subs r0, r1
+ lsls r0, 1
+ ldr r1, =gUnknown_085B2890
+ adds r0, r1
+ lsls r2, 17
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _081376C8
+ .pool
+_081376B4:
+ ldr r1, =0x00001010
+ movs r0, 0x52
+ bl SetGpuReg
+ ldr r1, =0x00003e41
+ movs r0, 0x50
+ bl SetGpuReg
+ ldr r0, =sub_81376DC
+ str r0, [r4]
+_081376C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137678
+
+ thumb_func_start sub_81376DC
+sub_81376DC: @ 81376DC
+ 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
+ ldrh r0, [r5, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ movs r0, 0x80
+ lsls r0, 21
+ adds r1, r0
+ lsrs r1, 16
+ movs r0, 0x52
+ bl SetGpuReg
+ cmp r4, 0
+ beq _08137714
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ b _08137726
+ .pool
+_08137714:
+ ldr r0, =gUnknown_085B2870
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08137726:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81376DC
+
+ thumb_func_start sub_8137734
+sub_8137734: @ 8137734
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x1C
+ bl sp000_heal_pokemon
+ ldr r4, =0x00000864
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _08137760
+ ldr r0, =gHasHallOfFameRecords
+ strb r1, [r0]
+ b _0813776C
+ .pool
+_08137760:
+ ldr r1, =gHasHallOfFameRecords
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl FlagSet
+_0813776C:
+ movs r0, 0x1
+ bl GetGameStat
+ cmp r0, 0
+ bne _0813778E
+ ldr r0, =gSaveBlock2Ptr
+ ldr r2, [r0]
+ ldrh r1, [r2, 0xE]
+ lsls r1, 16
+ ldrb r0, [r2, 0x10]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x11]
+ orrs r1, r0
+ movs r0, 0x1
+ bl sav12_xor_set
+_0813778E:
+ bl sub_8076D48
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _081377AC
+ movs r0, 0x1
+ bl sub_8084F6C
+ b _081377B2
+ .pool
+_081377AC:
+ movs r0, 0x2
+ bl sub_8084F6C
+_081377B2:
+ movs r7, 0
+ movs r6, 0
+ add r0, sp, 0x18
+ mov r8, r0
+ mov r5, sp
+_081377BC:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ movs r0, 0
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0813780A
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _0813780A
+ adds r0, r4, 0
+ movs r1, 0x43
+ bl GetMonData
+ cmp r0, 0
+ bne _0813780A
+ movs r0, 0x1
+ mov r1, r8
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x43
+ add r2, sp, 0x18
+ bl SetMonData
+ adds r0, r4, 0
+ bl GetRibbonCount
+ strb r0, [r5, 0x1]
+ movs r7, 0x1
+_0813780A:
+ adds r5, 0x4
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _081377BC
+ cmp r7, 0x1
+ bne _0813785A
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, =0x0000089b
+ bl FlagSet
+ mov r3, sp
+ add r2, sp, 0x4
+ movs r6, 0x4
+_08137828:
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r2, 0x1]
+ cmp r0, r1
+ bls _08137838
+ ldr r1, [sp]
+ ldr r0, [r2]
+ str r0, [sp]
+ str r1, [r2]
+_08137838:
+ adds r2, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08137828
+ mov r0, sp
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x4
+ bls _0813785A
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x43
+ bl sub_80EE4DC
+_0813785A:
+ ldr r0, =CB2_DoHallOfFameScreen
+ bl SetMainCallback2
+ movs r0, 0
+ add sp, 0x1C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8137734
+
+ thumb_func_start sp0C8_whiteout_maybe
+sp0C8_whiteout_maybe: @ 813787C
+ push {lr}
+ ldr r0, =c2_whiteout
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sp0C8_whiteout_maybe
+
+ thumb_func_start sub_8137890
+sub_8137890: @ 8137890
+ push {r4,lr}
+ ldr r0, =0x00004024
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x00004025
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8137890
+
+ thumb_func_start sub_81378BC
+sub_81378BC: @ 81378BC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, =0x00004024
+ lsrs r1, r4, 16
+ bl VarSet
+ ldr r0, =0x00004025
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81378BC
+
+ thumb_func_start sub_81378E4
+sub_81378E4: @ 81378E4
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ bl sub_81378BC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81378E4
+
+ thumb_func_start sub_8137904
+sub_8137904: @ 8137904
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8137890
+ adds r1, r0, 0
+ cmp r4, 0
+ beq _08137928
+ ldr r3, =0x41c64e6d
+ ldr r2, =0x00003039
+_08137918:
+ adds r0, r1, 0
+ muls r0, r3
+ adds r1, r0, r2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _08137918
+_08137928:
+ adds r0, r1, 0
+ bl sub_81378BC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137904
+
+ thumb_func_start sub_813793C
+sub_813793C: @ 813793C
+ push {r4-r6,lr}
+ bl sub_8137890
+ lsrs r6, r0, 16
+ movs r5, 0
+_08137946:
+ 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 _08137978
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, =0x0000ffff
+ ands r1, r0
+ cmp r1, r6
+ bne _08137978
+ movs r0, 0x1
+ b _08137980
+ .pool
+_08137978:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08137946
+ movs r0, 0
+_08137980:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813793C
+
+ thumb_func_start sub_8137988
+sub_8137988: @ 8137988
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ cmp r0, 0
+ beq _081379CE
+ bl RtcCalcLocalTime
+ ldr r1, =gUnknown_085B2B44
+ ldr r0, =gLocalTime
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081379C8
+ ldr r0, =0x0000089a
+ bl FlagSet
+ b _081379CE
+ .pool
+_081379C8:
+ ldr r0, =0x0000089a
+ bl FlagClear
+_081379CE:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137988
+
+ thumb_func_start sub_81379D8
+sub_81379D8: @ 81379D8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80AC3BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081379F2
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_081379F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81379D8
+
+ thumb_func_start sub_81379F8
+sub_81379F8: @ 81379F8
+ push {lr}
+ ldr r0, =sub_81379D8
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81379F8
+
+ thumb_func_start sub_8137A0C
+sub_8137A0C: @ 8137A0C
+ push {lr}
+ ldr r0, =0x00004049
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137A0C
+
+ thumb_func_start sub_8137A20
+sub_8137A20: @ 8137A20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x00004049
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0x7
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137A20
+
+ thumb_func_start sub_8137A4C
+sub_8137A4C: @ 8137A4C
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08137A70
+ movs r0, 0
+ bl sub_80C0844
+ ldr r1, =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_80C0844
+ b _08137A80
+ .pool
+_08137A70:
+ movs r0, 0
+ bl pokedex_count
+ ldr r1, =gSpecialVar_0x8005
+ strh r0, [r1]
+ movs r0, 0x1
+ bl pokedex_count
+_08137A80:
+ ldr r1, =gSpecialVar_0x8006
+ strh r0, [r1]
+ bl IsNationalPokedexEnabled
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8137A4C
+
+ thumb_func_start sub_8137A98
+sub_8137A98: @ 8137A98
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _08137AA4
+ b _08137BFC
+_08137AA4:
+ cmp r0, 0x13
+ bhi _08137AB0
+ ldr r0, =gUnknown_082A5DAB
+ b _08137C06
+ .pool
+_08137AB0:
+ cmp r0, 0x1D
+ bhi _08137ABC
+ ldr r0, =gUnknown_082A5DF1
+ b _08137C06
+ .pool
+_08137ABC:
+ cmp r0, 0x27
+ bhi _08137AC8
+ ldr r0, =gUnknown_082A5E34
+ b _08137C06
+ .pool
+_08137AC8:
+ cmp r0, 0x31
+ bhi _08137AD4
+ ldr r0, =gUnknown_082A5E83
+ b _08137C06
+ .pool
+_08137AD4:
+ cmp r0, 0x3B
+ bhi _08137AE0
+ ldr r0, =gUnknown_082A5EB9
+ b _08137C06
+ .pool
+_08137AE0:
+ cmp r0, 0x45
+ bhi _08137AEC
+ ldr r0, =gUnknown_082A5EF4
+ b _08137C06
+ .pool
+_08137AEC:
+ cmp r0, 0x4F
+ bhi _08137AF8
+ ldr r0, =gUnknown_082A5F39
+ b _08137C06
+ .pool
+_08137AF8:
+ cmp r0, 0x59
+ bhi _08137B04
+ ldr r0, =gUnknown_082A5F82
+ b _08137C06
+ .pool
+_08137B04:
+ cmp r0, 0x63
+ bhi _08137B10
+ ldr r0, =gUnknown_082A5FB9
+ b _08137C06
+ .pool
+_08137B10:
+ cmp r0, 0x6D
+ bhi _08137B1C
+ ldr r0, =gUnknown_082A6018
+ b _08137C06
+ .pool
+_08137B1C:
+ cmp r0, 0x77
+ bhi _08137B28
+ ldr r0, =gUnknown_082A6061
+ b _08137C06
+ .pool
+_08137B28:
+ cmp r0, 0x81
+ bhi _08137B34
+ ldr r0, =gUnknown_082A609C
+ b _08137C06
+ .pool
+_08137B34:
+ cmp r0, 0x8B
+ bhi _08137B40
+ ldr r0, =gUnknown_082A60D5
+ b _08137C06
+ .pool
+_08137B40:
+ cmp r0, 0x95
+ bhi _08137B4C
+ ldr r0, =gUnknown_082A6124
+ b _08137C06
+ .pool
+_08137B4C:
+ cmp r0, 0x9F
+ bhi _08137B58
+ ldr r0, =gUnknown_082A616F
+ b _08137C06
+ .pool
+_08137B58:
+ cmp r0, 0xA9
+ bhi _08137B64
+ ldr r0, =gUnknown_082A61D6
+ b _08137C06
+ .pool
+_08137B64:
+ cmp r0, 0xB3
+ bhi _08137B70
+ ldr r0, =gUnknown_082A623A
+ b _08137C06
+ .pool
+_08137B70:
+ cmp r0, 0xBD
+ bhi _08137B7C
+ ldr r0, =gUnknown_082A6287
+ b _08137C06
+ .pool
+_08137B7C:
+ cmp r0, 0xC7
+ bls _08137BEA
+ cmp r0, 0xC8
+ bne _08137BB8
+ ldr r0, =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137BEA
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137BEA
+ b _08137C04
+ .pool
+_08137BB8:
+ cmp r0, 0xC9
+ bne _08137BF8
+ ldr r0, =0x00000199
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137C04
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl GetSetPokedexFlag
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137C04
+_08137BEA:
+ ldr r0, =gUnknown_082A62C9
+ b _08137C06
+ .pool
+_08137BF8:
+ cmp r0, 0xCA
+ beq _08137C04
+_08137BFC:
+ ldr r0, =gUnknown_082A5D6C
+ b _08137C06
+ .pool
+_08137C04:
+ ldr r0, =gUnknown_082A6312
+_08137C06:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8137A98
+
+ thumb_func_start sub_8137C10
+sub_8137C10: @ 8137C10
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl sub_8137A98
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137C10
+
+ thumb_func_start sub_8137C28
+sub_8137C28: @ 8137C28
+ push {lr}
+ ldr r0, =CB2_DoHallOfFamePC
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137C28
+
+ thumb_func_start sub_8137C3C
+sub_8137C3C: @ 8137C3C
+ push {lr}
+ ldr r0, =c2_exit_to_overworld_2_switch
+ bl SetMainCallback2
+ ldr r1, =gFieldCallback
+ ldr r0, =mapldr_080CA5C0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137C3C
+
+ thumb_func_start mapldr_080CA5C0
+mapldr_080CA5C0: @ 8137C5C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl sub_8085784
+ bl sp109_CreatePCMenu
+ bl sub_80E2514
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, =sub_8137C94
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end mapldr_080CA5C0
+
+ thumb_func_start sub_8137C94
+sub_8137C94: @ 8137C94
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08137CAC
+ adds r0, r2, 0
+ bl DestroyTask
+_08137CAC:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137C94
+
+ thumb_func_start sub_8137CB4
+sub_8137CB4: @ 8137CB4
+ push {lr}
+ ldr r0, =CB2_ShowDiploma
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137CB4
+
+ thumb_func_start Special_ViewWallClock
+Special_ViewWallClock: @ 8137CC8
+ push {lr}
+ ldr r0, =gMain
+ ldr r1, =c2_exit_to_overworld_2_switch
+ str r1, [r0, 0x8]
+ ldr r0, =Cb2_ViewWallClock
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end Special_ViewWallClock
+
+ thumb_func_start wild_pokemon_reroll
+wild_pokemon_reroll: @ 8137CEC
+ ldr r0, =gUnknown_0203AB54
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =gUnknown_0203AB55
+ strb r1, [r0]
+ ldr r1, =gUnknown_0203AB58
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end wild_pokemon_reroll
+
+ thumb_func_start sub_8137D0C
+sub_8137D0C: @ 8137D0C
+ ldr r1, =gUnknown_0203AB54
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, =gUnknown_0203AB55
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, =gUnknown_0203AB58
+ ldr r0, =gMain
+ ldr r0, [r0, 0x20]
+ str r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8137D0C
+
+ thumb_func_start sp0E3_walkrun_bitfield_interpretation
+sp0E3_walkrun_bitfield_interpretation: @ 8137D34
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137D46
+ movs r0, 0x1
+ b _08137D58
+_08137D46:
+ movs r0, 0x2
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137D56
+ movs r0, 0
+ b _08137D58
+_08137D56:
+ movs r0, 0x2
+_08137D58:
+ pop {r1}
+ bx r1
+ thumb_func_end sp0E3_walkrun_bitfield_interpretation
+
+ thumb_func_start sub_8137D5C
+sub_8137D5C: @ 8137D5C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0x63
+ bhi _08137D88
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_SpaceTimes
+ adds r0, r4, 0
+ bl StringAppend
+ b _08137D90
+ .pool
+_08137D88:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_99TimesPlus
+ bl StringCopy
+_08137D90:
+ ldr r0, =0x00000e0f
+ cmp r7, r0
+ bhi _08137DF0
+ ldr r4, =gStringVar2
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0xAD
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ movs r1, 0x64
+ muls r0, r1
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_SpaceSeconds
+ adds r0, r4, 0
+ bl StringAppend
+ b _08137DF8
+ .pool
+_08137DF0:
+ ldr r0, =gStringVar2
+ ldr r1, =gText_1MinutePlus
+ bl StringCopy
+_08137DF8:
+ movs r4, 0
+ cmp r6, 0
+ bne _08137E0C
+ movs r4, 0x5
+ b _08137E2A
+ .pool
+_08137E0C:
+ cmp r6, 0x3
+ bhi _08137E14
+ movs r4, 0x4
+ b _08137E2A
+_08137E14:
+ cmp r6, 0x9
+ bhi _08137E1C
+ movs r4, 0x3
+ b _08137E2A
+_08137E1C:
+ cmp r6, 0x13
+ bhi _08137E24
+ movs r4, 0x2
+ b _08137E2A
+_08137E24:
+ cmp r6, 0x63
+ bhi _08137E2A
+ movs r4, 0x1
+_08137E2A:
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ cmp r0, 0xA
+ bhi _08137E3A
+ adds r0, r4, 0x5
+ b _08137E58
+_08137E3A:
+ cmp r0, 0xF
+ bhi _08137E42
+ adds r0, r4, 0x4
+ b _08137E58
+_08137E42:
+ cmp r0, 0x14
+ bhi _08137E4A
+ adds r0, r4, 0x3
+ b _08137E58
+_08137E4A:
+ cmp r0, 0x28
+ bhi _08137E52
+ adds r0, r4, 0x2
+ b _08137E58
+_08137E52:
+ cmp r0, 0x3B
+ bhi _08137E5C
+ adds r0, r4, 0x1
+_08137E58:
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08137E5C:
+ ldr r0, =gSpecialVar_Result
+ strh r4, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137D5C
+
+ thumb_func_start sub_8137E6C
+sub_8137E6C: @ 8137E6C
+ push {r4,r5,lr}
+ ldr r0, =gMain
+ ldr r1, =gUnknown_0203AB58
+ ldr r4, [r0, 0x20]
+ ldr r0, [r1]
+ subs r4, r0
+ ldr r5, =gUnknown_0203AB55
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_8137D5C
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_8137E9C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137E6C
+
+ thumb_func_start sub_8137E9C
+sub_8137E9C: @ 8137E9C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r6, =0x00004028
+ adds r0, r6, 0
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r7, =0x00004029
+ adds r0, r7, 0
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, r5
+ bhi _08137ECC
+ cmp r4, 0
+ bne _08137EE6
+_08137ECC:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl VarSet
+ lsrs r1, r5, 16
+ adds r0, r7, 0
+ bl VarSet
+ ldr r0, =0x00004027
+ mov r1, r8
+ bl VarSet
+_08137EE6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137E9C
+
+ thumb_func_start sub_8137EFC
+sub_8137EFC: @ 8137EFC
+ push {r4,lr}
+ ldr r0, =0x00004028
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x00004029
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, 0
+ beq _08137F3C
+ ldr r0, =0x00004027
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8137D5C
+ movs r0, 0x1
+ b _08137F3E
+ .pool
+_08137F3C:
+ movs r0, 0
+_08137F3E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137EFC
+
+ thumb_func_start sub_8137F44
+sub_8137F44: @ 8137F44
+ push {r4,lr}
+ ldr r0, =gUnknown_020322DC
+ ldrh r1, [r0]
+ ldr r0, =0x00000c1d
+ cmp r1, r0
+ beq _08137F7C
+ ldr r4, =0x000040a9
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _08137F6E
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bne _08137F7C
+_08137F6E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ movs r0, 0
+ bl Overworld_SetSavedMusic
+_08137F7C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137F44
+
+ thumb_func_start sub_8137F90
+sub_8137F90: @ 8137F90
+ push {lr}
+ ldr r0, =0x0000088d
+ bl FlagSet
+ ldr r0, =0x0000404a
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137F90
+
+ thumb_func_start sub_8137FB0
+sub_8137FB0: @ 8137FB0
+ push {lr}
+ ldr r0, =0x0000088d
+ bl FlagClear
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8137FB0
+
+ thumb_func_start CountSSTidalStep
+CountSSTidalStep: @ 8137FC0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x0000088d
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137FE6
+ ldr r0, =0x0000404a
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, r4, r1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xCC
+ bhi _08137FF4
+_08137FE6:
+ movs r0, 0
+ b _08137FF6
+ .pool
+_08137FF4:
+ movs r0, 0x1
+_08137FF6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end CountSSTidalStep
+
+ thumb_func_start GetSSTidalLocation
+GetSSTidalLocation: @ 8137FFC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, =0x0000404a
+ bl GetVarPointer
+ adds r4, r0, 0
+ ldr r0, =0x000040b4
+ bl GetVarPointer
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x9
+ bhi _081380C2
+ lsls r0, 2
+ ldr r1, =_08138038
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08138038:
+ .4byte _08138060
+ .4byte _08138070
+ .4byte _08138064
+ .4byte _08138068
+ .4byte _08138068
+ .4byte _0813806C
+ .4byte _08138098
+ .4byte _08138060
+ .4byte _08138064
+ .4byte _0813806C
+_08138060:
+ movs r0, 0x1
+ b _081380CE
+_08138064:
+ movs r0, 0x4
+ b _081380CE
+_08138068:
+ movs r0, 0x2
+ b _081380CE
+_0813806C:
+ movs r0, 0x3
+ b _081380CE
+_08138070:
+ ldrh r0, [r4]
+ cmp r0, 0x3B
+ bhi _08138080
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r0, [r4]
+ adds r0, 0x13
+ b _081380C0
+_08138080:
+ cmp r0, 0x8B
+ bhi _0813808E
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x3C
+ b _081380C0
+_0813808E:
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x8C
+ b _081380C0
+_08138098:
+ ldrh r0, [r4]
+ cmp r0, 0x41
+ bhi _081380A8
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x41
+ b _081380BE
+_081380A8:
+ cmp r0, 0x91
+ bhi _081380B6
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x91
+ b _081380BE
+_081380B6:
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0xE0
+_081380BE:
+ subs r0, r1
+_081380C0:
+ strh r0, [r6]
+_081380C2:
+ movs r0, 0
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strh r0, [r7]
+ movs r0, 0
+_081380CE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end GetSSTidalLocation
+
+ thumb_func_start is_tile_that_overrides_player_control
+is_tile_that_overrides_player_control: @ 81380D8
+ push {lr}
+ movs r0, 0x88
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813810A
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x1
+ blt _0813810A
+ cmp r0, 0x3
+ ble _081380F6
+ cmp r0, 0x6
+ bne _0813810A
+_081380F6:
+ ldr r0, =0x000040f2
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xF9
+ bhi _08138118
+_0813810A:
+ movs r0, 0
+ b _0813811A
+ .pool
+_08138118:
+ movs r0, 0x1
+_0813811A:
+ pop {r1}
+ bx r1
+ thumb_func_end is_tile_that_overrides_player_control
+
+ thumb_func_start sub_8138120
+sub_8138120: @ 8138120
+ push {lr}
+ movs r0, 0x8A
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08138152
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x1
+ blt _08138152
+ cmp r0, 0x3
+ ble _0813813E
+ cmp r0, 0x6
+ bne _08138152
+_0813813E:
+ ldr r0, =0x000040f3
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x9
+ bhi _08138160
+_08138152:
+ movs r0, 0
+ b _08138162
+ .pool
+_08138160:
+ movs r0, 0x1
+_08138162:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8138120
+
+ thumb_func_start sub_8138168
+sub_8138168: @ 8138168
+ push {lr}
+ movs r0, 0x72
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813819A
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x1
+ blt _0813819A
+ cmp r0, 0x3
+ ble _08138186
+ cmp r0, 0x6
+ bne _0813819A
+_08138186:
+ ldr r0, =0x000040f5
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x9
+ bhi _081381A8
+_0813819A:
+ movs r0, 0
+ b _081381AA
+ .pool
+_081381A8:
+ movs r0, 0x1
+_081381AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8138168
+
+ thumb_func_start sub_81381B0
+sub_81381B0: @ 81381B0
+ push {lr}
+ movs r0, 0x80
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081381E2
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x1
+ blt _081381E2
+ cmp r0, 0x3
+ ble _081381CE
+ cmp r0, 0x6
+ bne _081381E2
+_081381CE:
+ ldr r0, =0x000040f4
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xF9
+ bhi _081381F0
+_081381E2:
+ movs r0, 0
+ b _081381F2
+ .pool
+_081381F0:
+ movs r0, 0x1
+_081381F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81381B0
+
+ thumb_func_start sub_81381F8
+sub_81381F8: @ 81381F8
+ push {lr}
+ movs r0, 0x75
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813822A
+ ldr r0, =gMapHeader
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x1
+ blt _0813822A
+ cmp r0, 0x3
+ ble _08138216
+ cmp r0, 0x6
+ bne _0813822A
+_08138216:
+ ldr r0, =0x000040f6
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xF9
+ bhi _08138238
+_0813822A:
+ movs r0, 0
+ b _0813823A
+ .pool
+_08138238:
+ movs r0, 0x1
+_0813823A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81381F8
+
+ thumb_func_start sub_8138240
+sub_8138240: @ 8138240
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0813828A
+ ldr r0, =gTVStringVarPtrs
+ mov r8, r0
+_08138262:
+ cmp r7, r4
+ beq _08138280
+ lsls r0, r6, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, =gLinkPlayers + 8
+ adds r1, r2
+ bl StringCopy
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08138280:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08138262
+_0813828A:
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8138240
+
+ thumb_func_start SpawnLinkPartnerFieldObject
+SpawnLinkPartnerFieldObject: @ 81382A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ mov r8, r0
+ ldr r1, =gUnknown_085B2B5C
+ add r0, sp, 0x8
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0xC
+ ldr r1, =gUnknown_085B2B60
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl memcpy
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _08138310
+ cmp r0, 0x2
+ bgt _081382F4
+ cmp r0, 0x1
+ beq _0813833C
+ b _08138350
+ .pool
+_081382F4:
+ cmp r1, 0x3
+ beq _081382FE
+ cmp r1, 0x4
+ beq _08138324
+ b _08138350
+_081382FE:
+ movs r7, 0x2
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ subs r0, 0x1
+ b _0813832C
+ .pool
+_08138310:
+ movs r7, 0x1
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ mov r9, r1
+ ldrh r0, [r0, 0x2]
+ subs r0, 0x1
+ b _0813834A
+ .pool
+_08138324:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+_0813832C:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldrh r1, [r1, 0x2]
+ mov r8, r1
+ b _08138350
+ .pool
+_0813833C:
+ movs r7, 0x3
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r3, [r0]
+ mov r9, r3
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+_0813834A:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_08138350:
+ movs r6, 0
+ b _08138410
+ .pool
+_08138358:
+ cmp r10, r6
+ beq _0813840A
+ ldr r0, =gLinkPlayers
+ lsls r2, r6, 3
+ subs r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r3, [r1]
+ adds r4, r0, 0
+ cmp r3, 0x1
+ blt _0813838C
+ cmp r3, 0x2
+ ble _0813837C
+ cmp r3, 0x3
+ beq _08138388
+ b _0813838C
+ .pool
+_0813837C:
+ ldrb r0, [r1, 0x13]
+ movs r5, 0xEC
+ cmp r0, 0
+ bne _0813839C
+ movs r5, 0xEB
+ b _0813839C
+_08138388:
+ ldrb r0, [r1, 0x13]
+ b _08138394
+_0813838C:
+ subs r0, r2, r6
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x13]
+_08138394:
+ movs r5, 0x69
+ cmp r0, 0
+ bne _0813839C
+ movs r5, 0x64
+_0813839C:
+ mov r0, sp
+ adds r0, r7
+ adds r0, 0x8
+ ldrb r1, [r0]
+ movs r4, 0xF0
+ subs r4, r6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r2, r7, 1
+ mov r0, sp
+ adds r0, r2
+ adds r0, 0xC
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ mov r3, r9
+ lsls r3, 16
+ asrs r3, 16
+ mov r12, r3
+ add r0, r12
+ adds r3, r0, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ mov r12, r3
+ mov r0, sp
+ adds r0, 0xD
+ adds r0, r2
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ mov r3, r8
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r0, r2
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ adds r2, r4, 0
+ mov r3, r12
+ bl SpawnSpecialFieldObjectParametrized
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_813842C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x4
+ bne _0813840A
+ movs r7, 0
+_0813840A:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08138410:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcc _08138358
+ 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 SpawnLinkPartnerFieldObject
+
+ thumb_func_start sub_813842C
+sub_813842C: @ 813842C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r2, r1
+ lsrs r5, r2, 24
+ lsrs r4, r0, 24
+ movs r2, 0xA8
+ lsls r2, 21
+ adds r0, r2
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08138454
+ cmp r4, 0x64
+ beq _08138454
+ cmp r4, 0x69
+ bne _081384E6
+_08138454:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ adds r0, r3, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x10
+ beq _081384E6
+ ldr r1, =gMapObjects
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, =gSprites
+ adds r1, r0
+ lsls r3, r5, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ cmp r4, 0x69
+ beq _081384D8
+ cmp r4, 0x69
+ bgt _081384A8
+ cmp r4, 0x64
+ beq _081384C4
+ b _081384E6
+ .pool
+_081384A8:
+ cmp r4, 0xEB
+ beq _081384B2
+ cmp r4, 0xEC
+ beq _081384BC
+ b _081384E6
+_081384B2:
+ ldr r0, =gFieldObjectPalette33
+ b _081384C6
+ .pool
+_081384BC:
+ ldr r0, =gFieldObjectPalette34
+ b _081384C6
+ .pool
+_081384C4:
+ ldr r0, =gFieldObjectPalette8
+_081384C6:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r2, 0x20
+ bl LoadPalette
+ b _081384E6
+ .pool
+_081384D8:
+ ldr r0, =gFieldObjectPalette17
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r3, r2
+ movs r2, 0x20
+ bl LoadPalette
+_081384E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813842C
+
+ thumb_func_start sub_81384F0
+sub_81384F0: @ 81384F0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, =gUnknown_085B2B68
+_081384F6:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0813851C
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, =0x00000206
+ bl MapGridSetMetatileIdAt
+ b _0813852A
+ .pool
+_0813851C:
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, =0x00000205
+ bl MapGridSetMetatileIdAt
+_0813852A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081384F6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81384F0
+
+ thumb_func_start sub_8138540
+sub_8138540: @ 8138540
+ push {r4-r6,lr}
+ movs r5, 0xC
+_08138544:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_08138548:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, =0xfffffde6
+ adds r0, r1
+ cmp r0, 0x37
+ bls _0813855A
+ b _08138734
+_0813855A:
+ lsls r0, 2
+ ldr r1, =_0813856C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813856C:
+ .4byte _081386F2
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _0813864C
+ .4byte _08138652
+ .4byte _0813868C
+ .4byte _08138694
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _0813865C
+ .4byte _08138662
+ .4byte _0813869C
+ .4byte _081386A4
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _0813866C
+ .4byte _08138672
+ .4byte _081386AC
+ .4byte _081386B4
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _0813867C
+ .4byte _08138684
+ .4byte _081386BC
+ .4byte _081386C4
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _081386CC
+ .4byte _081386DC
+ .4byte _081386EC
+ .4byte _08138714
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _081386D4
+ .4byte _081386E4
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _08138734
+ .4byte _0813872A
+ .4byte _0813871C
+_0813864C:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _08138720
+_08138652:
+ ldr r2, =0x00000231
+ b _08138720
+ .pool
+_0813865C:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _08138720
+_08138662:
+ ldr r2, =0x00000239
+ b _08138720
+ .pool
+_0813866C:
+ movs r2, 0x88
+ lsls r2, 2
+ b _08138720
+_08138672:
+ ldr r2, =0x00000221
+ b _08138720
+ .pool
+_0813867C:
+ ldr r2, =0x00000e28
+ b _08138720
+ .pool
+_08138684:
+ ldr r2, =0x00000e29
+ b _08138720
+ .pool
+_0813868C:
+ ldr r2, =0x00000232
+ b _08138720
+ .pool
+_08138694:
+ ldr r2, =0x00000233
+ b _08138720
+ .pool
+_0813869C:
+ ldr r2, =0x0000023a
+ b _08138720
+ .pool
+_081386A4:
+ ldr r2, =0x0000023b
+ b _08138720
+ .pool
+_081386AC:
+ ldr r2, =0x00000222
+ b _08138720
+ .pool
+_081386B4:
+ ldr r2, =0x00000223
+ b _08138720
+ .pool
+_081386BC:
+ ldr r2, =0x00000e2a
+ b _08138720
+ .pool
+_081386C4:
+ ldr r2, =0x00000e2b
+ b _08138720
+ .pool
+_081386CC:
+ ldr r2, =0x00000e42
+ b _08138720
+ .pool
+_081386D4:
+ ldr r2, =0x0000021a
+ b _08138720
+ .pool
+_081386DC:
+ ldr r2, =0x00000e43
+ b _08138720
+ .pool
+_081386E4:
+ ldr r2, =0x0000021a
+ b _08138720
+ .pool
+_081386EC:
+ movs r2, 0xE4
+ lsls r2, 4
+ b _08138720
+_081386F2:
+ subs r1, r5, 0x1
+ adds r0, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x90
+ lsls r1, 2
+ cmp r0, r1
+ bne _0813870C
+ ldr r2, =0x00000e48
+ b _08138720
+ .pool
+_0813870C:
+ ldr r2, =0x00000e49
+ b _08138720
+ .pool
+_08138714:
+ ldr r2, =0x00000e41
+ b _08138720
+ .pool
+_0813871C:
+ movs r2, 0xE5
+ lsls r2, 4
+_08138720:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _08138734
+_0813872A:
+ ldr r2, =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_08138734:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0813873C
+ b _08138548
+_0813873C:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _08138744
+ b _08138544
+_08138744:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138540
+
+ thumb_func_start sub_8138750
+sub_8138750: @ 8138750
+ push {r4-r6,lr}
+ ldr r4, =gUnknown_085B2B68
+ movs r5, 0x3
+_08138756:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ ldr r2, =0x00000206
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08138756
+ movs r5, 0xC
+_0813876A:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0813876E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, =0xfffffde0
+ adds r0, r1
+ cmp r0, 0x30
+ bls _08138780
+ b _081388CA
+_08138780:
+ lsls r0, 2
+ ldr r1, =_0813879C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813879C:
+ .4byte _08138860
+ .4byte _08138866
+ .4byte _08138880
+ .4byte _08138888
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _08138870
+ .4byte _08138876
+ .4byte _08138890
+ .4byte _08138898
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388A0
+ .4byte _081388A8
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388B0
+ .4byte _081388B0
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388CA
+ .4byte _081388C0
+_08138860:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _081388B2
+_08138866:
+ ldr r2, =0x00000231
+ b _081388B2
+ .pool
+_08138870:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _081388B2
+_08138876:
+ ldr r2, =0x00000239
+ b _081388B2
+ .pool
+_08138880:
+ ldr r2, =0x00000232
+ b _081388B2
+ .pool
+_08138888:
+ ldr r2, =0x00000233
+ b _081388B2
+ .pool
+_08138890:
+ ldr r2, =0x0000023a
+ b _081388B2
+ .pool
+_08138898:
+ ldr r2, =0x0000023b
+ b _081388B2
+ .pool
+_081388A0:
+ ldr r2, =0x00000e42
+ b _081388B2
+ .pool
+_081388A8:
+ ldr r2, =0x00000e43
+ b _081388B2
+ .pool
+_081388B0:
+ ldr r2, =0x0000021a
+_081388B2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _081388CA
+ .pool
+_081388C0:
+ ldr r2, =0x00000251
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_081388CA:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _081388D2
+ b _0813876E
+_081388D2:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _081388DA
+ b _0813876A
+_081388DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138750
+
+ thumb_func_start sub_81388E4
+sub_81388E4: @ 81388E4
+ push {lr}
+ ldr r0, =gUnknown_0203AB5C
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, =gUnknown_0203AB5D
+ strb r1, [r0]
+ movs r0, 0x2C
+ bl PlaySE
+ ldr r0, =sub_8138910
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81388E4
+
+ thumb_func_start sub_8138910
+sub_8138910: @ 8138910
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =gUnknown_085B2B78
+ ldr r5, =gUnknown_0203AB5D
+ ldrb r1, [r5]
+ adds r0, r1, r0
+ ldr r4, =gUnknown_0203AB5C
+ ldrb r2, [r4]
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0813896C
+ ldr r0, =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r2, =gUnknown_085B2B7E
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_8138978
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08138970
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ b _08138970
+ .pool
+_0813896C:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+_08138970:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138910
+
+ thumb_func_start sub_8138978
+sub_8138978: @ 8138978
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r2, r1, 16
+ movs r7, 0
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _08138A40
+ lsls r0, 2
+ ldr r1, =_081389A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081389A0:
+ .4byte _081389C0
+ .4byte _081389D2
+ .4byte _081389E4
+ .4byte _081389F6
+ .4byte _08138A04
+ .4byte _08138A1A
+ .4byte _08138A26
+ .4byte _08138A34
+_081389C0:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x68
+ b _08138A14
+_081389D2:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x4E
+ b _08138A14
+_081389E4:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x5B
+ b _08138A14
+_081389F6:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0x27
+ b _08138A3E
+_08138A04:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x34
+_08138A14:
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ b _08138A40
+_08138A1A:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x41
+ b _08138A3E
+_08138A26:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0xD
+ b _08138A3E
+_08138A34:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x1A
+_08138A3E:
+ strh r0, [r1]
+_08138A40:
+ movs r6, 0
+ cmp r6, r7
+ bcs _08138A92
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ adds r1, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ mov r9, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ orrs r1, r0
+ lsls r1, 16
+ mov r8, r1
+_08138A5E:
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r5, r3, r1
+ ldrh r0, [r5]
+ adds r0, 0x7
+ add r4, sp, 0x8
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x7
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ ldrh r0, [r5]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x8
+ mov r3, r8
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _08138A5E
+_08138A92:
+ bl DrawWholeMapView
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138978
+
+ thumb_func_start sub_8138AA4
+sub_8138AA4: @ 8138AA4
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ ldr r1, =gUnknown_085B2B7E
+ ldrh r1, [r1, 0x8]
+ bl sub_8138978
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138AA4
+
+ thumb_func_start sub_8138AC0
+sub_8138AC0: @ 8138AC0
+ push {lr}
+ ldr r0, =gStringVar4
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138AC0
+
+ thumb_func_start sub_8138AD0
+sub_8138AD0: @ 8138AD0
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, =gSpecialVar_0x8005
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_8138AD0
+
+ thumb_func_start sub_8138AF0
+sub_8138AF0: @ 8138AF0
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8138AF0
+
+ thumb_func_start sub_8138B10
+sub_8138B10: @ 8138B10
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08138B34
+ ldr r0, =gStringVar1
+ ldr r1, =gText_BigGuy
+ bl StringCopy
+ b _08138B3C
+ .pool
+_08138B34:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_BigGirl
+ bl StringCopy
+_08138B3C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138B10
+
+ thumb_func_start sub_8138B48
+sub_8138B48: @ 8138B48
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08138B6C
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Daughter
+ bl StringCopy
+ b _08138B74
+ .pool
+_08138B6C:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Son
+ bl StringCopy
+_08138B74:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138B48
+
+ thumb_func_start sub_8138B80
+sub_8138B80: @ 8138B80
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_8138B80
+
+ thumb_func_start sub_8138B8C
+sub_8138B8C: @ 8138B8C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08138BB0
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0x6
+ bl Overworld_SetWarpDestination
+ b _08138BC2
+ .pool
+_08138BB0:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0x1
+ movs r3, 0x6
+ bl Overworld_SetWarpDestination
+_08138BC2:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138B8C
+
+ thumb_func_start sub_8138BC8
+sub_8138BC8: @ 8138BC8
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138BC8
+
+ thumb_func_start sub_8138BDC
+sub_8138BDC: @ 8138BDC
+ push {lr}
+ ldr r0, =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, =0x0000270f
+ cmp r0, r1
+ bls _08138BF6
+ adds r0, r1, 0
+_08138BF6:
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8138BDC
+
+ thumb_func_start sub_8138C04
+sub_8138C04: @ 8138C04
+ push {r4,lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xFF
+ bne _08138C2C
+ movs r0, 0x6
+ b _08138C7E
+ .pool
+_08138C2C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _08138C3C
+ movs r0, 0x5
+ b _08138C7E
+_08138C3C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x95
+ bls _08138C4C
+ movs r0, 0x4
+ b _08138C7E
+_08138C4C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x63
+ bls _08138C5C
+ movs r0, 0x3
+ b _08138C7E
+_08138C5C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x31
+ bls _08138C6C
+ movs r0, 0x2
+ b _08138C7E
+_08138C6C:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0
+ bne _08138C7C
+ movs r0, 0
+ b _08138C7E
+_08138C7C:
+ movs r0, 0x1
+_08138C7E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8138C04
+
+ thumb_func_start sub_8138C84
+sub_8138C84: @ 8138C84
+ push {lr}
+ ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ bl sub_817018C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138C84
+
+ thumb_func_start sub_8138C94
+sub_8138C94: @ 8138C94
+ push {lr}
+ ldr r0, =sub_8138C84
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138C94
+
+ thumb_func_start sp0D9_ComputerRelated
+sp0D9_ComputerRelated: @ 8138CA4
+ push {r4,lr}
+ ldr r4, =sub_8138CE8
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08138CD8
+ adds r0, r4, 0
+ 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
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_08138CD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sp0D9_ComputerRelated
+
+ thumb_func_start sub_8138CE8
+sub_8138CE8: @ 8138CE8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08138D06
+ adds r0, r1, 0
+ bl sub_8138D10
+_08138D06:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138CE8
+
+ thumb_func_start sub_8138D10
+sub_8138D10: @ 8138D10
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r6, 0
+ movs r5, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _08138D7C
+ strh r5, [r4, 0xE]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _08138D44
+ cmp r0, 0x3
+ bgt _08138D3A
+ cmp r0, 0x2
+ beq _08138D40
+ b _08138D4C
+_08138D3A:
+ cmp r1, 0x4
+ beq _08138D48
+ b _08138D4C
+_08138D40:
+ movs r6, 0
+ b _08138D4A
+_08138D44:
+ movs r6, 0xFF
+ b _08138D4A
+_08138D48:
+ movs r6, 0x1
+_08138D4A:
+ movs r5, 0xFF
+_08138D4C:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, r5, 24
+ asrs r2, 24
+ bl sub_8138D88
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08138D7C
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_08138D7C:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138D10
+
+ thumb_func_start sub_8138D88
+sub_8138D88: @ 8138D88
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r3, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _08138DC4
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08138DAC
+ movs r3, 0x4
+ b _08138DE6
+ .pool
+_08138DAC:
+ cmp r0, 0x1
+ bne _08138DB8
+ ldr r3, =0x0000025a
+ b _08138DE6
+ .pool
+_08138DB8:
+ cmp r0, 0x2
+ bne _08138DE6
+ ldr r3, =0x00000259
+ b _08138DE6
+ .pool
+_08138DC4:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08138DD4
+ movs r3, 0x5
+ b _08138DE6
+ .pool
+_08138DD4:
+ cmp r0, 0x1
+ bne _08138DE0
+ ldr r3, =0x0000027f
+ b _08138DE6
+ .pool
+_08138DE0:
+ cmp r0, 0x2
+ bne _08138DE6
+ ldr r3, =0x0000027e
+_08138DE6:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r5, 0x2
+ ldrsh r1, [r2, r5]
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r3, r2
+ adds r2, r3, 0
+ bl MapGridSetMetatileIdAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138D88
+
+ thumb_func_start sub_8138E20
+sub_8138E20: @ 8138E20
+ push {lr}
+ bl sub_8138E2C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138E20
+
+ thumb_func_start sub_8138E2C
+sub_8138E2C: @ 8138E2C
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _08138E56
+ cmp r0, 0x3
+ bgt _08138E4C
+ cmp r0, 0x2
+ beq _08138E52
+ b _08138E5E
+_08138E4C:
+ cmp r1, 0x4
+ beq _08138E5A
+ b _08138E5E
+_08138E52:
+ movs r6, 0
+ b _08138E5C
+_08138E56:
+ movs r6, 0xFF
+ b _08138E5C
+_08138E5A:
+ movs r6, 0x1
+_08138E5C:
+ movs r5, 0xFF
+_08138E5E:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08138E70
+ movs r4, 0x4
+ b _08138E82
+ .pool
+_08138E70:
+ cmp r0, 0x1
+ bne _08138E7C
+ ldr r4, =0x0000025a
+ b _08138E82
+ .pool
+_08138E7C:
+ cmp r0, 0x2
+ bne _08138E82
+ ldr r4, =0x00000259
+_08138E82:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ lsls r2, r5, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r2, r3, 0
+ orrs r4, r2
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138E2C
+
+ thumb_func_start sub_8138EC0
+sub_8138EC0: @ 8138EC0
+ push {r4,lr}
+ ldr r4, =sub_8138F04
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08138EF4
+ adds r0, r4, 0
+ 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
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_08138EF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138EC0
+
+ thumb_func_start sub_8138F04
+sub_8138F04: @ 8138F04
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08138F22
+ adds r0, r1, 0
+ bl sub_8138F2C
+_08138F22:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138F04
+
+ thumb_func_start sub_8138F2C
+sub_8138F2C: @ 8138F2C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _08138F9A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08138F64
+ ldr r2, =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _08138F7A
+ .pool
+_08138F64:
+ ldr r2, =0x00000e58
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE6
+ lsls r2, 4
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_08138F7A:
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08138F9A
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_08138F9A:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138F2C
+
+ thumb_func_start sub_8138FAC
+sub_8138FAC: @ 8138FAC
+ push {lr}
+ ldr r2, =0x00000e9d
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, =0x00000ea5
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138FAC
+
+ thumb_func_start sub_8138FD4
+sub_8138FD4: @ 8138FD4
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =0x000001f5
+ strh r0, [r1]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138FD4
+
+ thumb_func_start sub_8138FEC
+sub_8138FEC: @ 8138FEC
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =0x000001f5
+ strh r0, [r1]
+ bl FlagClear
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8138FEC
+
+ thumb_func_start sub_8139004
+sub_8139004: @ 8139004
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _08139028
+ movs r0, 0x1
+ b _0813902A
+ .pool
+_08139028:
+ movs r0, 0
+_0813902A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139004
+
+ thumb_func_start sub_8139030
+sub_8139030: @ 8139030
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _08139054
+ movs r0, 0x1
+ b _08139056
+ .pool
+_08139054:
+ movs r0, 0
+_08139056:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139030
+
+ thumb_func_start sub_813905C
+sub_813905C: @ 813905C
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _08139080
+ movs r0, 0x1
+ b _08139082
+ .pool
+_08139080:
+ movs r0, 0
+_08139082:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813905C
+
+ thumb_func_start sub_8139088
+sub_8139088: @ 8139088
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _081390AC
+ movs r0, 0x1
+ b _081390AE
+ .pool
+_081390AC:
+ movs r0, 0
+_081390AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139088
+
+ thumb_func_start sub_81390B4
+sub_81390B4: @ 81390B4
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _081390D8
+ movs r0, 0x1
+ b _081390DA
+ .pool
+_081390D8:
+ movs r0, 0
+_081390DA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81390B4
+
+ thumb_func_start sub_81390E0
+sub_81390E0: @ 81390E0
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, =gBaseStats
+_081390E6:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0813913C
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0813913C
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xC
+ beq _08139128
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xC
+ bne _0813913C
+_08139128:
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x1
+ b _0813914A
+ .pool
+_0813913C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _081390E6
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+_0813914A:
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81390E0
+
+ thumb_func_start SpawnScriptFieldObject
+SpawnScriptFieldObject: @ 8139158
+ push {lr}
+ sub sp, 0x8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r3, [r0]
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x7F
+ bl SpawnSpecialFieldObjectParametrized
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gMapObjects
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r1, 0x4]
+ bl CameraObjectSetFollowedObjectId
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end SpawnScriptFieldObject
+
+ thumb_func_start RemoveScriptFieldObject
+RemoveScriptFieldObject: @ 81391AC
+ push {lr}
+ bl GetPlayerAvatarObjectId
+ lsls r0, 24
+ lsrs r0, 24
+ bl CameraObjectSetFollowedObjectId
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x7F
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end RemoveScriptFieldObject
+
+ thumb_func_start sub_81391D0
+sub_81391D0: @ 81391D0
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gStringVar1
+ bl sub_8137068
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81391D0
+
+ thumb_func_start sub_8139200
+sub_8139200: @ 8139200
+ push {r4,lr}
+ ldr r4, =gStringVar1
+ ldr r0, =0x00004026
+ bl VarGet
+ 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
+ .pool
+ thumb_func_end sub_8139200
+
+ thumb_func_start sub_8139228
+sub_8139228: @ 8139228
+ push {lr}
+ movs r0, 0x20
+ bl GetGameStat
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139228
+
+ thumb_func_start sub_8139238
+sub_8139238: @ 8139238
+ push {lr}
+ ldr r0, =gStringVar1
+ bl GetEreaderTrainerName
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139238
+
+ thumb_func_start sub_8139248
+sub_8139248: @ 8139248
+ push {r4,r5,lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r1, =0x00002e68
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ ldr r0, =0x00002e6a
+ adds r2, r0
+ lsrs r1, 25
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, =gUnknown_085B2B88
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r5, r1, r0
+ movs r0, 0x2
+ bl GetPriceReduction
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139294
+ ldr r4, =gUnknown_085B2B94
+ b _08139296
+ .pool
+_08139294:
+ ldr r4, =gUnknown_085B2BA0
+_08139296:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8139248
+
+ thumb_func_start sub_81392AC
+sub_81392AC: @ 81392AC
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =0x00000213
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081392CC
+ movs r0, 0x1
+ b _081392CE
+ .pool
+_081392CC:
+ movs r0, 0
+_081392CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81392AC
+
+ thumb_func_start sub_81392D4
+sub_81392D4: @ 81392D4
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ movs r0, 0x85
+ lsls r0, 2
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _081392F0
+ movs r0, 0x1
+ b _081392F2
+ .pool
+_081392F0:
+ movs r0, 0
+_081392F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81392D4
+
+ thumb_func_start sub_81392F8
+sub_81392F8: @ 81392F8
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =0x00000215
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139318
+ movs r0, 0x1
+ b _0813931A
+ .pool
+_08139318:
+ movs r0, 0
+_0813931A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81392F8
+
+ thumb_func_start sub_8139320
+sub_8139320: @ 8139320
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r0, =0x00000216
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139340
+ movs r0, 0x1
+ b _08139342
+ .pool
+_08139340:
+ movs r0, 0
+_08139342:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139320
+
+ thumb_func_start sub_8139348
+sub_8139348: @ 8139348
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x47
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8139348
+
+ thumb_func_start sub_8139370
+sub_8139370: @ 8139370
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0x2A
+ bl IncrementGameStat
+ ldr r0, =0x0000089b
+ bl FlagSet
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x47
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ bl GetRibbonCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _081393B6
+ adds r0, r4, 0
+ movs r1, 0x47
+ bl sub_80EE4DC
+_081393B6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139370
+
+ thumb_func_start sub_81393C8
+sub_81393C8: @ 81393C8
+ push {lr}
+ bl GetLeadMonIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetMonEVCount
+ lsls r0, 16
+ ldr r1, =0x01fd0000
+ cmp r0, r1
+ bhi _081393F4
+ movs r0, 0
+ b _081393F6
+ .pool
+_081393F4:
+ movs r0, 0x1
+_081393F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81393C8
+
+ thumb_func_start sub_81393FC
+sub_81393FC: @ 81393FC
+ push {lr}
+ movs r0, 0xC7
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139454
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x83
+ lsls r0, 3
+ cmp r1, r0
+ bne _08139454
+ subs r0, 0x75
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139434
+ ldr r0, =0x0000409a
+ movs r1, 0x4
+ b _08139446
+ .pool
+_08139434:
+ movs r0, 0xE9
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139454
+ ldr r0, =0x0000409a
+ movs r1, 0x5
+_08139446:
+ bl VarSet
+ movs r0, 0x1
+ b _08139456
+ .pool
+_08139454:
+ movs r0, 0
+_08139456:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81393FC
+
+ thumb_func_start sub_813945C
+sub_813945C: @ 813945C
+ push {lr}
+ ldr r0, =0x000008bf
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813945C
+
+ thumb_func_start sub_813946C
+sub_813946C: @ 813946C
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r5, =gPlayerParty
+ movs r1, 0x90
+ lsls r1, 1
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x7
+ movs r3, 0x20
+ bl CreateMon
+ movs r1, 0x1
+ add r0, sp, 0x10
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ add r2, sp, 0x10
+ bl SetMonData
+ add r1, sp, 0x10
+ movs r0, 0x21
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0xD
+ add r2, sp, 0x10
+ bl SetMonData
+ add r0, sp, 0x10
+ strh r4, [r0]
+ adds r0, r5, 0
+ movs r1, 0xE
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xF
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x10
+ add r2, sp, 0x10
+ bl SetMonData
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813946C
+
+ thumb_func_start sub_81394D8
+sub_81394D8: @ 81394D8
+ push {r4-r6,lr}
+ ldr r0, =0x00004023
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetStarterPokemon
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _08139526
+_081394FA:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, r6
+ bne _0813951C
+ movs r0, 0x1
+ b _08139528
+ .pool
+_0813951C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081394FA
+_08139526:
+ movs r0, 0
+_08139528:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81394D8
+
+ thumb_func_start sub_8139530
+sub_8139530: @ 8139530
+ push {lr}
+ bl sub_80D2218
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139530
+
+ thumb_func_start sub_8139540
+sub_8139540: @ 8139540
+ push {lr}
+ ldr r0, =gPlayerParty
+ movs r1, 0x3F
+ bl CheckPartyPokerus
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139558
+ movs r0, 0x1
+ b _0813955A
+ .pool
+_08139558:
+ movs r0, 0
+_0813955A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139540
+
+ thumb_func_start sub_8139560
+sub_8139560: @ 8139560
+ push {lr}
+ ldr r0, =sub_81395BC
+ movs r1, 0x9
+ 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 r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ movs r2, 0
+ strh r0, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ strh r0, [r1, 0xC]
+ ldr r0, =gSpecialVar_0x8007
+ ldrh r0, [r0]
+ strh r0, [r1, 0xE]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ strh r0, [r1, 0x10]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0xD6
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139560
+
+ thumb_func_start sub_81395BC
+sub_81395BC: @ 81395BC
+ 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
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _08139614
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x4]
+ subs r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4]
+ negs r0, r0
+ strh r0, [r4]
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ bl SetCameraPanning
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08139614
+ adds r0, r5, 0
+ bl sub_8139620
+ bl InstallCameraPanAheadCallback
+_08139614:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81395BC
+
+ thumb_func_start sub_8139620
+sub_8139620: @ 8139620
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139620
+
+ thumb_func_start sub_8139634
+sub_8139634: @ 8139634
+ push {lr}
+ movs r0, 0x95
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139634
+
+ thumb_func_start sub_8139648
+sub_8139648: @ 8139648
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08139664
+ movs r0, 0x14
+ bl SetSav1Weather
+_08139664:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139648
+
+ thumb_func_start sub_8139668
+sub_8139668: @ 8139668
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08139684
+ movs r0, 0x15
+ bl SetSav1Weather
+_08139684:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139668
+
+ thumb_func_start GetLeadMonIndex
+GetLeadMonIndex: @ 8139688
+ push {r4-r6,lr}
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ cmp r5, r6
+ bcs _081396D6
+_08139698:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081396CC
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _081396CC
+ adds r0, r5, 0
+ b _081396D8
+ .pool
+_081396CC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _08139698
+_081396D6:
+ movs r0, 0
+_081396D8:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end GetLeadMonIndex
+
+ thumb_func_start sub_81396E0
+sub_81396E0: @ 81396E0
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81396E0
+
+ thumb_func_start nullsub_54
+nullsub_54: @ 8139708
+ bx lr
+ thumb_func_end nullsub_54
+
+ thumb_func_start sub_813970C
+sub_813970C: @ 813970C
+ push {r4,lr}
+ ldr r0, =0x000040c2
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ ldr r2, =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, r3
+ cmp r0, 0x6
+ ble _08139734
+ movs r0, 0
+ b _0813974C
+ .pool
+_08139734:
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ blt _0813974A
+ subs r1, r3
+ movs r0, 0x7
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0813974C
+_0813974A:
+ movs r0, 0x8
+_0813974C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813970C
+
+ thumb_func_start sub_8139754
+sub_8139754: @ 8139754
+ push {r4,lr}
+ ldr r0, =0x000040c2
+ ldr r4, =gLocalTime
+ ldrh r1, [r4]
+ bl VarSet
+ ldrh r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_8139754
+
+ thumb_func_start sub_8139770
+sub_8139770: @ 8139770
+ push {r4-r6,lr}
+ ldr r6, =gSpecialVar_0x8004
+ ldrh r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x2
+ bne _081397A6
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ ldr r4, =gStringVar1
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl StringCompare
+ cmp r0, 0
+ beq _081397BC
+_081397A6:
+ movs r0, 0x1
+ b _081397BE
+ .pool
+_081397BC:
+ movs r0, 0
+_081397BE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139770
+
+ thumb_func_start sub_81397C4
+sub_81397C4: @ 81397C4
+ push {r4,r5,lr}
+ ldr r2, =gSpecialVar_Result
+ ldrh r1, [r2]
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ bls _081397E0
+ movs r0, 0
+ bl TV_PrintIntToStringVar
+ b _08139862
+ .pool
+_081397E0:
+ ldr r0, =0x000003e7
+ cmp r1, r0
+ bls _081397F8
+ ldr r4, =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ adds r4, 0x1
+ b _0813981C
+ .pool
+_081397F8:
+ cmp r1, 0x63
+ bls _0813980C
+ ldr r4, =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r4, 0x2
+ b _0813981C
+ .pool
+_0813980C:
+ cmp r1, 0x9
+ bls _0813983C
+ ldr r4, =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0813981C:
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80EF370
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ b _08139862
+ .pool
+_0813983C:
+ ldr r4, =gStringVar1
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ adds r4, 0x4
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80EF370
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+_08139862:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81397C4
+
+ thumb_func_start sub_813986C
+sub_813986C: @ 813986C
+ push {lr}
+ ldr r0, =gSpecialVar_Result
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _081398B8
+ lsls r0, 2
+ ldr r1, =_08139888
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08139888:
+ .4byte _0813989C
+ .4byte _081398A0
+ .4byte _081398A4
+ .4byte _081398A8
+ .4byte _081398AC
+_0813989C:
+ movs r0, 0x3
+ b _081398AE
+_081398A0:
+ movs r0, 0x4
+ b _081398AE
+_081398A4:
+ movs r0, 0
+ b _081398AE
+_081398A8:
+ movs r0, 0x1
+ b _081398AE
+_081398AC:
+ movs r0, 0x2
+_081398AE:
+ bl mevent_081445C0
+ lsls r0, 16
+ lsrs r0, 16
+ b _081398BA
+_081398B8:
+ movs r0, 0
+_081398BA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813986C
+
+ thumb_func_start sub_81398C0
+sub_81398C0: @ 81398C0
+ push {r4,lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldr r2, =0xfffffedf
+ adds r0, r2, 0
+ ldrh r2, [r1]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x39
+ bls _081398E0
+ movs r0, 0
+ b _081398FC
+ .pool
+_081398E0:
+ ldr r4, =gStringVar2
+ ldrh r0, [r1]
+ 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, 0x1
+_081398FC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_81398C0
+
+ thumb_func_start sub_813990C
+sub_813990C: @ 813990C
+ push {r4,r5,lr}
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _08139942
+_0813991C:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0x4
+ bl GetMonData
+ cmp r0, 0x1
+ bne _08139938
+ movs r0, 0x1
+ b _08139944
+ .pool
+_08139938:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0813991C
+_08139942:
+ movs r0, 0
+_08139944:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813990C
+
+ thumb_func_start InMultiBattleRoom
+InMultiBattleRoom: @ 813994C
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x00000f1a
+ cmp r1, r0
+ bne _08139978
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _08139978
+ movs r0, 0x1
+ b _0813997A
+ .pool
+_08139978:
+ movs r0, 0
+_0813997A:
+ pop {r1}
+ bx r1
+ thumb_func_end InMultiBattleRoom
+
+ thumb_func_start sub_8139980
+sub_8139980: @ 8139980
+ push {lr}
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0x8
+ movs r1, 0
+ bl SetCameraPanning
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139980
+
+ thumb_func_start sub_8139994
+sub_8139994: @ 8139994
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ subs r0, 0x10
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _081399E4
+ lsls r0, 2
+ ldr r1, =_081399B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_081399B8:
+ .4byte _081399E4
+ .4byte _081399D0
+ .4byte _081399D4
+ .4byte _081399D8
+ .4byte _081399DC
+ .4byte _081399E0
+_081399D0:
+ movs r1, 0x5
+ b _081399E6
+_081399D4:
+ movs r1, 0x6
+ b _081399E6
+_081399D8:
+ movs r1, 0x7
+ b _081399E6
+_081399DC:
+ movs r1, 0x8
+ b _081399E6
+_081399E0:
+ movs r1, 0xF
+ b _081399E6
+_081399E4:
+ movs r1, 0x4
+_081399E6:
+ ldr r0, =0x00004043
+ bl VarSet
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139994
+
+ thumb_func_start sub_81399F4
+sub_81399F4: @ 81399F4
+ push {r4,lr}
+ ldr r2, =gUnknown_0203AB60
+ movs r0, 0
+ strh r0, [r2]
+ ldr r1, =gUnknown_0203AB62
+ strh r0, [r1]
+ ldr r0, =gSaveBlock1Ptr
+ ldr r3, [r0]
+ movs r0, 0x14
+ ldrsb r0, [r3, r0]
+ adds r4, r1, 0
+ cmp r0, 0xD
+ bne _08139A6E
+ ldrb r0, [r3, 0x15]
+ subs r0, 0x10
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ bhi _08139A6E
+ lsls r0, 2
+ ldr r1, =_08139A34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_08139A34:
+ .4byte _08139A66
+ .4byte _08139A5E
+ .4byte _08139A56
+ .4byte _08139A4E
+ .4byte _08139A48
+_08139A48:
+ movs r0, 0
+ strh r0, [r2]
+ b _08139A6C
+_08139A4E:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x1
+ b _08139A6C
+_08139A56:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x2
+ b _08139A6C
+_08139A5E:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x3
+ b _08139A6C
+_08139A66:
+ movs r0, 0
+ strh r0, [r2]
+ movs r0, 0x4
+_08139A6C:
+ strh r0, [r4]
+_08139A6E:
+ ldrh r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81399F4
+
+ thumb_func_start sub_8139A78
+sub_8139A78: @ 8139A78
+ push {r4-r6,lr}
+ ldr r0, =sub_8139AF4
+ movs r1, 0x9
+ bl CreateTask
+ 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 r3, 0
+ strh r3, [r4, 0x2]
+ strh r3, [r4, 0x4]
+ movs r6, 0x1
+ strh r6, [r4, 0x8]
+ ldr r0, =gSpecialVar_0x8005
+ ldr r1, =gSpecialVar_0x8006
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bls _08139AC0
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ strh r6, [r4, 0xC]
+ b _08139AC8
+ .pool
+_08139AC0:
+ subs r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ strh r3, [r4, 0xC]
+_08139AC8:
+ cmp r5, 0x8
+ bls _08139ACE
+ movs r5, 0x8
+_08139ACE:
+ ldr r0, =gUnknown_085B2C18
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ strh r0, [r4, 0xA]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ ldrb r1, [r4, 0xC]
+ adds r0, r5, 0
+ bl sub_8139C2C
+ movs r0, 0x59
+ bl PlaySE
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139A78
+
+ thumb_func_start sub_8139AF4
+sub_8139AF4: @ 8139AF4
+ 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
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bne _08139B54
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r0, 0x4
+ ldrsh r1, [r4, r0]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08139B54
+ movs r0, 0x49
+ bl PlaySE
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ bl InstallCameraPanAheadCallback
+_08139B54:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139AF4
+
+ thumb_func_start sub_8139B60
+sub_8139B60: @ 8139B60
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ ldr r5, =gUnknown_0203AB5E
+ ldr r0, =gUnknown_085B2BAC
+ bl AddWindow
+ strb r0, [r5]
+ ldrb r0, [r5]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ ldr r4, =gText_ElevatorNowOn
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ ldrb r0, [r5]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [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, r4, 0
+ bl PrintTextOnWindow
+ ldr r6, =gUnknown_085B2BB4
+ ldr r4, =gSpecialVar_0x8005
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ movs r0, 0x1
+ movs r2, 0x40
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ ldrb r0, [r5]
+ ldrh r1, [r4]
+ lsls r1, 2
+ adds r1, r6
+ ldr r2, [r1]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x11
+ str r1, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ bl PrintTextOnWindow
+ ldrb r0, [r5]
+ bl PutWindowTilemap
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl CopyWindowToVram
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139B60
+
+ thumb_func_start sub_8139C10
+sub_8139C10: @ 8139C10
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB5E
+ 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_8139C10
+
+ thumb_func_start sub_8139C2C
+sub_8139C2C: @ 8139C2C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r4, =sub_8139C80
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08139C6C
+ adds r0, r4, 0
+ 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
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ ldr r0, =gUnknown_085B2C21
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ strh r0, [r1, 0xE]
+_08139C6C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139C2C
+
+ thumb_func_start sub_8139C80
+sub_8139C80: @ 8139C80
+ 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 r0, 2
+ ldr r1, [sp]
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r6, r0, r1
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ cmp r0, 0x6
+ bne _08139D7C
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08139D10
+ movs r1, 0
+ ldr r2, =gUnknown_085B2BF4
+ mov r10, r2
+_08139CBA:
+ movs r5, 0
+ adds r7, r1, 0x7
+ lsls r0, r1, 1
+ adds r2, r1, 0x1
+ mov r8, r2
+ adds r0, r1
+ lsls r0, 1
+ mov r9, r0
+_08139CCA:
+ adds r4, r5, 0
+ adds r4, 0x8
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 15
+ add r0, r9
+ add r0, r10
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r2, r1, 0
+ orrs r2, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08139CCA
+ mov r2, r8
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _08139CBA
+ b _08139D62
+ .pool
+_08139D10:
+ movs r1, 0
+ ldr r0, =gUnknown_085B2C06
+ mov r10, r0
+_08139D16:
+ movs r5, 0
+ adds r7, r1, 0x7
+ lsls r0, r1, 1
+ adds r2, r1, 0x1
+ mov r8, r2
+ adds r0, r1
+ lsls r0, 1
+ mov r9, r0
+_08139D26:
+ adds r4, r5, 0
+ adds r4, 0x8
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 15
+ add r0, r9
+ add r0, r10
+ ldrh r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r2, r1, 0
+ orrs r2, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08139D26
+ mov r2, r8
+ lsls r0, r2, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _08139D16
+_08139D62:
+ bl DrawWholeMapView
+ movs r0, 0
+ strh r0, [r6, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ movs r2, 0x6
+ ldrsh r0, [r6, r2]
+ cmp r1, r0
+ bne _08139D7C
+ ldr r0, [sp]
+ bl DestroyTask
+_08139D7C:
+ ldrh r0, [r6, 0x2]
+ adds r0, 0x1
+ strh r0, [r6, 0x2]
+ 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_8139C80
+
+ thumb_func_start sub_8139D98
+sub_8139D98: @ 8139D98
+ push {r4-r7,lr}
+ sub sp, 0x18
+ ldr r6, =gSpecialVar_0x8004
+ ldrh r0, [r6]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, =gPlayerParty
+ adds r0, r4
+ movs r1, 0x27
+ bl GetMonData
+ str r0, [sp]
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x28
+ bl GetMonData
+ str r0, [sp, 0x4]
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x29
+ bl GetMonData
+ str r0, [sp, 0x8]
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x2A
+ bl GetMonData
+ str r0, [sp, 0xC]
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x2B
+ bl GetMonData
+ str r0, [sp, 0x10]
+ ldrh r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x2C
+ bl GetMonData
+ str r0, [sp, 0x14]
+ ldr r1, =gSpecialVar_0x8005
+ movs r0, 0
+ strh r0, [r1]
+ movs r4, 0
+ adds r2, r1, 0
+_08139E00:
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r1, [r0]
+ ldrh r0, [r2]
+ adds r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08139E00
+ ldr r2, =gSpecialVar_0x8006
+ movs r0, 0
+ strh r0, [r2]
+ ldr r1, =gSpecialVar_0x8007
+ ldr r0, [sp]
+ strh r0, [r1]
+ movs r4, 0x1
+ adds r6, r2, 0
+ adds r7, r1, 0
+_08139E28:
+ ldrh r0, [r6]
+ lsls r0, 2
+ mov r2, sp
+ adds r1, r2, r0
+ lsls r0, r4, 2
+ adds r5, r2, r0
+ ldr r1, [r1]
+ ldr r0, [r5]
+ cmp r1, r0
+ bcs _08139E54
+ strh r4, [r6]
+ b _08139E6C
+ .pool
+_08139E54:
+ cmp r1, r0
+ bne _08139E6E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08139E6E
+ strh r4, [r6]
+ ldr r0, [r5]
+_08139E6C:
+ strh r0, [r7]
+_08139E6E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08139E28
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139D98
+
+ thumb_func_start warp0_in_pokecenter
+warp0_in_pokecenter: @ 8139E80
+ push {r4,lr}
+ ldr r0, =gUnknown_020322DC
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r1, 8
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, =gUnknown_085B2C2A
+ ldrh r0, [r2]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _08139EC6
+ adds r4, r1, 0
+ adds r1, r2, 0
+_08139EA4:
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _08139EBC
+ movs r0, 0x1
+ b _08139EC8
+ .pool
+_08139EBC:
+ adds r1, 0x2
+ adds r2, 0x2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08139EA4
+_08139EC6:
+ movs r0, 0
+_08139EC8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end warp0_in_pokecenter
+
+ thumb_func_start sub_8139ED0
+sub_8139ED0: @ 8139ED0
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x00003c1a
+ cmp r1, r0
+ beq _08139EEC
+ movs r0, 0x1
+ b _08139EEE
+ .pool
+_08139EEC:
+ movs r0, 0
+_08139EEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8139ED0
+
+ thumb_func_start sub_8139EF4
+sub_8139EF4: @ 8139EF4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x0000402f
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0xA
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139EF4
+
+ thumb_func_start sub_8139F20
+sub_8139F20: @ 8139F20
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, =0x0000402f
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x9
+ bls _08139F34
+ b _0813A03A
+_08139F34:
+ lsls r0, r6, 2
+ ldr r1, =_08139F48
+ adds r1, r0, r1
+ ldr r1, [r1]
+ adds r2, r0, 0
+ mov pc, r1
+ .pool
+ .align 2, 0
+_08139F48:
+ .4byte _08139F70
+ .4byte _08139F70
+ .4byte _08139F70
+ .4byte _08139F70
+ .4byte _08139F94
+ .4byte _08139FB4
+ .4byte _08139FCC
+ .4byte _08139FE4
+ .4byte _08139FFC
+ .4byte _0813A014
+_08139F70:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ movs r3, 0xCE
+ lsls r3, 4
+ adds r1, r0, r3
+ adds r3, r1, r2
+ ldr r1, =0x00000ce2
+ adds r0, r1
+ adds r1, r0, r2
+ ldrh r0, [r3]
+ ldrh r2, [r1]
+ cmp r0, r2
+ bcs _0813A028
+ b _0813A038
+ .pool
+_08139F94:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r3, =0x00000d0c
+ adds r2, r0, r3
+ adds r3, 0x2
+_08139F9E:
+ adds r1, r0, r3
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bcs _0813A028
+ b _0813A038
+ .pool
+_08139FB4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000de2
+ adds r2, r0, r1
+ ldr r3, =0x00000de4
+ b _08139F9E
+ .pool
+_08139FCC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000dc8
+ adds r2, r0, r1
+ ldr r3, =0x00000dca
+ b _08139F9E
+ .pool
+_08139FE4:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000dda
+ adds r2, r0, r1
+ ldr r3, =0x00000ddc
+ b _08139F9E
+ .pool
+_08139FFC:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e04
+ adds r2, r0, r1
+ ldr r3, =0x00000e06
+ b _08139F9E
+ .pool
+_0813A014:
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000e1a
+ adds r2, r0, r1
+ ldr r3, =0x00000e1c
+ adds r1, r0, r3
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bcc _0813A038
+_0813A028:
+ adds r4, r0, 0
+ b _0813A03A
+ .pool
+_0813A038:
+ ldrh r4, [r1]
+_0813A03A:
+ movs r2, 0
+ ldr r5, =gUnknown_085B2CC8
+ lsls r0, r6, 1
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ adds r3, r0, 0
+ ldr r7, =gUnknown_085B2C50
+ cmp r1, r4
+ bcs _0813A062
+ adds r1, r3, 0
+_0813A04E:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bhi _0813A062
+ adds r0, r2, r1
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, r4
+ bcc _0813A04E
+_0813A062:
+ adds r0, r3, r6
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_8139F20
+
+ thumb_func_start sub_813A080
+sub_813A080: @ 813A080
+ push {r4-r7,lr}
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000ca9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ lsrs r4, r0, 30
+ cmp r5, 0x2
+ bne _0813A0D8
+ movs r0, 0xA9
+ lsls r0, 1
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813A0D8
+ ldr r1, =gSpecialVar_0x8005
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, =gSpecialVar_0x8006
+ movs r0, 0x4
+ strh r0, [r1]
+ b _0813A110
+ .pool
+_0813A0D0:
+ movs r0, 0x4
+ strh r0, [r6]
+ adds r0, r3, 0x5
+ b _0813A10E
+_0813A0D8:
+ movs r3, 0
+ ldr r6, =gSpecialVar_0x8005
+ ldr r7, =gSpecialVar_0x8006
+ lsls r1, r4, 1
+ lsls r2, r5, 2
+ ldr r4, =gUnknown_085B2CDC
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ adds r1, r2
+ movs r2, 0xCE
+ lsls r2, 4
+ adds r0, r2
+ adds r0, r1
+ ldrh r1, [r0]
+_0813A0F4:
+ lsls r0, r3, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r1
+ bhi _0813A0D0
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x8
+ bls _0813A0F4
+ movs r0, 0x4
+ strh r0, [r6]
+ movs r0, 0xC
+_0813A10E:
+ strh r0, [r7]
+_0813A110:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A080
+
+ thumb_func_start sub_813A128
+sub_813A128: @ 813A128
+ push {r4,lr}
+ ldr r0, =sub_813A2DC
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r3, r0, r1
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r0, [r1]
+ strh r0, [r3, 0x1E]
+ ldrh r0, [r1]
+ cmp r0, 0xC
+ bls _0813A14E
+ b _0813A2C6
+_0813A14E:
+ lsls r0, 2
+ ldr r1, =_0813A168
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813A168:
+ .4byte _0813A19C
+ .4byte _0813A1AA
+ .4byte _0813A1C2
+ .4byte _0813A1D6
+ .4byte _0813A1F0
+ .4byte _0813A208
+ .4byte _0813A222
+ .4byte _0813A23C
+ .4byte _0813A25A
+ .4byte _0813A274
+ .4byte _0813A274
+ .4byte _0813A28E
+ .4byte _0813A2A8
+_0813A19C:
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ strh r0, [r3, 0xA]
+ strh r0, [r3, 0xC]
+ strh r0, [r3, 0xE]
+ b _0813A2BC
+_0813A1AA:
+ movs r1, 0
+ movs r0, 0x5
+ strh r0, [r3, 0x8]
+ movs r0, 0x8
+ strh r0, [r3, 0xA]
+ movs r0, 0x1
+ strh r0, [r3, 0xC]
+ strh r0, [r3, 0xE]
+ movs r0, 0x9
+ strh r0, [r3, 0x10]
+ movs r0, 0xA
+ b _0813A2BE
+_0813A1C2:
+ movs r2, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r1, 0xC
+ strh r1, [r3, 0xA]
+ movs r0, 0x1
+ strh r0, [r3, 0xC]
+ strh r0, [r3, 0xE]
+ movs r0, 0x7
+ b _0813A250
+_0813A1D6:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0xB
+ strh r0, [r3, 0xA]
+ movs r0, 0xE
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xF
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A1F0:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ strh r0, [r3, 0xA]
+ movs r0, 0xE
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xF
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A208:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0x7
+ strh r0, [r3, 0xA]
+ movs r0, 0xE
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xF
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A222:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0xA
+ strh r0, [r3, 0xA]
+ movs r0, 0xE
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xF
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A23C:
+ movs r2, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r1, 0xC
+ strh r1, [r3, 0xA]
+ movs r0, 0xF
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xE
+_0813A250:
+ strh r0, [r3, 0x10]
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ strh r4, [r3, 0x26]
+ b _0813A2D2
+_0813A25A:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0xA
+ strh r0, [r3, 0xA]
+ movs r0, 0x11
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xB
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A274:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0xB
+ strh r0, [r3, 0xA]
+ movs r0, 0xF
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xE
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A28E:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0x7
+ strh r0, [r3, 0xA]
+ movs r0, 0x13
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xA
+ strh r0, [r3, 0x10]
+ movs r0, 0xC
+ b _0813A2BE
+_0813A2A8:
+ movs r1, 0
+ movs r0, 0x6
+ strh r0, [r3, 0x8]
+ movs r0, 0x7
+ strh r0, [r3, 0xA]
+ movs r0, 0x11
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+ movs r0, 0xC
+_0813A2BC:
+ strh r0, [r3, 0x10]
+_0813A2BE:
+ strh r0, [r3, 0x12]
+ strh r1, [r3, 0x14]
+ strh r4, [r3, 0x26]
+ b _0813A2D2
+_0813A2C6:
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x7F
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0813A2D2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A128
+
+ thumb_func_start sub_813A2DC
+sub_813A2DC: @ 813A2DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ bl ScriptContext2_Enable
+ ldr r0, =gUnknown_0203AB68
+ movs r5, 0
+ strh r5, [r0]
+ ldr r1, =gUnknown_0203AB6C
+ movs r0, 0x40
+ strb r0, [r1]
+ ldrh r0, [r6, 0x1E]
+ movs r1, 0
+ bl sub_813AA60
+ ldrb r0, [r6, 0x1E]
+ movs r1, 0
+ bl sub_813ACE8
+ ldr r4, =gUnknown_0203AB64
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ lsls r0, 3
+ bl AllocZeroed
+ str r0, [r4]
+ ldr r0, =gUnknown_0203AB6A
+ strh r5, [r0]
+ bl sub_813A42C
+ movs r3, 0
+ movs r4, 0
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ add r1, sp, 0x18
+ mov r8, r1
+ cmp r3, r0
+ bge _0813A36A
+ ldr r5, =gUnknown_085B2CF0
+_0813A33A:
+ lsls r1, r4, 2
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r5
+ ldr r0, [r1]
+ ldr r1, =gUnknown_0203AB64
+ ldr r2, [r1]
+ lsls r1, r4, 3
+ adds r1, r2
+ str r0, [r1]
+ str r4, [r1, 0x4]
+ adds r1, r3, 0
+ bl display_text_and_get_width
+ adds r3, r0, 0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ cmp r4, r0
+ blt _0813A33A
+_0813A36A:
+ adds r0, r3, 0
+ bl convert_pixel_width_to_tile_width
+ strh r0, [r6, 0x10]
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ movs r2, 0x10
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ cmp r0, 0x1D
+ ble _0813A38C
+ movs r0, 0x1D
+ subs r0, r1
+ cmp r0, 0
+ bge _0813A38A
+ movs r0, 0
+_0813A38A:
+ strh r0, [r6, 0xC]
+_0813A38C:
+ ldrb r2, [r6, 0xC]
+ ldrb r3, [r6, 0xE]
+ ldrb r0, [r6, 0x10]
+ str r0, [sp]
+ ldrb r0, [r6, 0x12]
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0x64
+ str r0, [sp, 0xC]
+ add r0, sp, 0x10
+ movs r1, 0
+ bl sub_8198A50
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ str r0, [sp, 0x18]
+ str r1, [sp, 0x1C]
+ mov r0, r8
+ bl AddWindow
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ ldr r4, =gUnknown_030061D0
+ ldrh r0, [r6, 0xA]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r6, 0x8]
+ strh r0, [r4, 0xE]
+ ldrh r0, [r6, 0x22]
+ strb r0, [r4, 0x10]
+ adds r0, r7, 0
+ bl sub_813A694
+ ldrh r1, [r6, 0x16]
+ ldrh r2, [r6, 0x18]
+ adds r0, r4, 0
+ bl ListMenuInit
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x24]
+ movs r0, 0
+ 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_813A4EC
+ str r1, [r0]
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A2DC
+
+ thumb_func_start sub_813A42C
+sub_813A42C: @ 813A42C
+ ldr r1, =gUnknown_030061D0
+ ldr r0, =gUnknown_0203AB64
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, =sub_813A46C
+ str r0, [r1, 0x4]
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r2, 0
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strb r2, [r1, 0x10]
+ strb r2, [r1, 0x11]
+ movs r0, 0x8
+ strb r0, [r1, 0x12]
+ strb r2, [r1, 0x13]
+ movs r0, 0x21
+ strb r0, [r1, 0x14]
+ movs r0, 0x31
+ strb r0, [r1, 0x15]
+ movs r0, 0
+ strb r0, [r1, 0x16]
+ movs r0, 0x1
+ strb r0, [r1, 0x17]
+ bx lr
+ .pool
+ thumb_func_end sub_813A42C
+
+ thumb_func_start sub_813A46C
+sub_813A46C: @ 813A46C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, =sub_813A4EC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0813A4D4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ movs r2, 0
+ bl get_coro_args_x18_x1A
+ ldr r1, =gUnknown_0203AB68
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ bl sub_81AE838
+ ldrh r0, [r4, 0x1E]
+ ldr r5, =gUnknown_0203AB6A
+ ldrh r1, [r5]
+ bl sub_813AC44
+ ldrh r0, [r4, 0x1E]
+ mov r1, sp
+ ldrh r1, [r1]
+ bl sub_813AA60
+ ldrb r0, [r4, 0x1E]
+ mov r1, sp
+ ldrh r1, [r1]
+ bl sub_813AD34
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5]
+_0813A4D4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A46C
+
+ thumb_func_start sub_813A4EC
+sub_813A4EC: @ 813A4EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ bl ListMenuHandleInput
+ adds r4, r0, 0
+ movs r0, 0x2
+ negs r0, r0
+ cmp r4, r0
+ beq _0813A51C
+ adds r0, 0x1
+ cmp r4, r0
+ bne _0813A530
+ b _0813A566
+ .pool
+_0813A51C:
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x7F
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ b _0813A54C
+ .pool
+_0813A530:
+ ldr r0, =gSpecialVar_Result
+ strh r4, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0813A54C
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ subs r0, 0x1
+ cmp r4, r0
+ bne _0813A558
+_0813A54C:
+ adds r0, r5, 0
+ bl sub_813A570
+ b _0813A566
+ .pool
+_0813A558:
+ adds r0, r5, 0
+ bl sub_813A738
+ ldr r0, =sub_813A600
+ str r0, [r6]
+ bl EnableBothScriptContexts
+_0813A566:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A4EC
+
+ thumb_func_start sub_813A570
+sub_813A570: @ 813A570
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ bl sub_81AE838
+ ldrh r0, [r4, 0x1E]
+ mov r1, sp
+ ldrh r1, [r1]
+ bl sub_813AC44
+ adds r0, r5, 0
+ bl sub_813A738
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldr r0, =gUnknown_0203AB64
+ ldr r0, [r0]
+ bl Free
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8198070
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A570
+
+ thumb_func_start sub_813A600
+sub_813A600: @ 813A600
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x14
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _0813A624
+ cmp r0, 0x2
+ bne _0813A624
+ movs r0, 0x1
+ strh r0, [r1, 0x14]
+ ldr r0, =sub_813A664
+ str r0, [r1]
+_0813A624:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A600
+
+ thumb_func_start sub_813A630
+sub_813A630: @ 813A630
+ push {lr}
+ ldr r0, =sub_813A600
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xFF
+ bne _0813A64C
+ bl EnableBothScriptContexts
+ b _0813A65C
+ .pool
+_0813A64C:
+ ldr r0, =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ adds r0, 0x1
+ strh r0, [r1, 0x14]
+_0813A65C:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A630
+
+ thumb_func_start sub_813A664
+sub_813A664: @ 813A664
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ScriptContext2_Enable
+ adds r0, r4, 0
+ bl sub_813A694
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, =sub_813A4EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A664
+
+ thumb_func_start sub_813A694
+sub_813A694: @ 813A694
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r4, r1, r0
+ mov r1, sp
+ ldr r0, =gUnknown_085B3030
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _0813A724
+ mov r2, sp
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ lsls r1, 3
+ adds r1, 0xC
+ movs r5, 0xC
+ ldrsh r0, [r4, r5]
+ subs r0, 0x1
+ lsls r0, 3
+ adds r1, r0
+ movs r3, 0
+ strb r1, [r2, 0x1]
+ mov r1, sp
+ movs r0, 0x8
+ strb r0, [r1, 0x2]
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+ lsls r1, 3
+ adds r1, 0xC
+ movs r5, 0xC
+ ldrsh r0, [r4, r5]
+ subs r0, 0x1
+ lsls r0, 3
+ adds r1, r0
+ strb r1, [r2, 0x4]
+ mov r1, sp
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ lsls r0, 3
+ adds r0, 0xA
+ strb r0, [r1, 0x5]
+ mov r0, sp
+ strh r3, [r0, 0x6]
+ mov r2, sp
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ subs r0, r1
+ strh r0, [r2, 0x8]
+ ldr r1, =gUnknown_0203AB68
+ mov r0, sp
+ bl AddScrollIndicatorArrowPair
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+_0813A724:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A694
+
+ thumb_func_start sub_813A738
+sub_813A738: @ 813A738
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, =gTasks
+ adds r2, r1, r0
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ beq _0813A75E
+ ldrh r0, [r2, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveScrollIndicatorArrowPair
+_0813A75E:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A738
+
+ thumb_func_start nullsub_55
+nullsub_55: @ 813A768
+ bx lr
+ thumb_func_end nullsub_55
+
+ thumb_func_start sub_813A76C
+sub_813A76C: @ 813A76C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, =gLinkPlayers
+ ldr r0, =0x0000401f
+ adds r5, r0, 0
+_0813A776:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ bne _0813A79C
+ subs r0, r5, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ bl VarSet
+ b _0813A7A8
+ .pool
+_0813A79C:
+ subs r0, r5, r4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x69
+ bl VarSet
+_0813A7A8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _0813A776
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A76C
+
+ thumb_func_start sub_813A7B8
+sub_813A7B8: @ 813A7B8
+ push {lr}
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r0, [r1]
+ cmp r0, 0x5
+ bls _0813A7C6
+ movs r0, 0
+ strh r0, [r1]
+_0813A7C6:
+ ldrh r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ bl GetNature
+ lsls r0, 24
+ ldr r1, =gUnknown_085B3040
+ lsrs r0, 22
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A7B8
+
+ thumb_func_start sub_813A7F4
+sub_813A7F4: @ 813A7F4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x00004030
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0xC
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A7F4
+
+ thumb_func_start sub_813A820
+sub_813A820: @ 813A820
+ push {r4,lr}
+ ldr r0, =0x00004030
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, =gUnknown_085B30A4
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ ldr r0, =0x00004031
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A820
+
+ thumb_func_start sub_813A854
+sub_813A854: @ 813A854
+ push {r4,lr}
+ ldr r4, =gUnknown_085B30D4
+ ldr r0, =0x00004031
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r4
+ ldr r0, [r0]
+ bl ShowFieldMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A854
+
+ thumb_func_start sub_813A878
+sub_813A878: @ 813A878
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, =0x000040ce
+ bl VarGet
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r0, =0x00004031
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, =0x000040cf
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, =0x00004033
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0813A8F0
+ ldr r1, =gUnknown_085B3104
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r5, 8
+ adds r0, r7
+ cmp r1, r0
+ bne _0813A8F0
+ mov r0, r8
+ cmp r0, 0
+ beq _0813A8E8
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl VarSet
+ b _0813A8F0
+ .pool
+_0813A8E8:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl VarSet
+_0813A8F0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A878
+
+ thumb_func_start sub_813A8FC
+sub_813A8FC: @ 813A8FC
+ push {lr}
+ sub sp, 0x2C
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000eb8
+ adds r0, r1
+ ldrh r1, [r0]
+ add r0, sp, 0xC
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r1, =gText_BP
+ bl StringCopy
+ movs r0, 0x1
+ add r1, sp, 0xC
+ movs r2, 0x30
+ bl GetStringRightAlignXOffset
+ adds r3, r0, 0
+ ldr r0, =gUnknown_0203AB6D
+ ldrb r0, [r0]
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ add r2, sp, 0xC
+ bl PrintTextOnWindow
+ add sp, 0x2C
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A8FC
+
+ thumb_func_start sub_813A958
+sub_813A958: @ 813A958
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB6D
+ ldr r0, =gUnknown_085B311C
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ bl sub_813A8FC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813A958
+
+ thumb_func_start sub_813A988
+sub_813A988: @ 813A988
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB6D
+ 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_813A988
+
+ thumb_func_start sub_813A9A4
+sub_813A9A4: @ 813A9A4
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r2, =0x00000eb8
+ adds r1, r0, r2
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r2, [r1]
+ ldrh r0, [r0]
+ cmp r2, r0
+ bcs _0813A9C8
+ movs r0, 0
+ b _0813A9CA
+ .pool
+_0813A9C8:
+ subs r0, r2, r0
+_0813A9CA:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A9A4
+
+ thumb_func_start sub_813A9D0
+sub_813A9D0: @ 813A9D0
+ push {lr}
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000eb8
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ adds r1, r0
+ ldr r0, =0x0000270f
+ cmp r1, r0
+ ble _0813A9FC
+ strh r0, [r2]
+ b _0813A9FE
+ .pool
+_0813A9FC:
+ strh r1, [r2]
+_0813A9FE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A9D0
+
+ thumb_func_start sub_813AA04
+sub_813AA04: @ 813AA04
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00000eb8
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end sub_813AA04
+
+ thumb_func_start sub_813AA18
+sub_813AA18: @ 813AA18
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB6E
+ ldr r0, =gUnknown_085B3124
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl CopyWindowToVram
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AA18
+
+ thumb_func_start sub_813AA44
+sub_813AA44: @ 813AA44
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB6E
+ 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_813AA44
+
+ thumb_func_start sub_813AA60
+sub_813AA60: @ 813AA60
+ push {r4,r5,lr}
+ sub sp, 0x10
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsrs r4, r0, 16
+ ldr r1, =0xfffd0000
+ adds r0, r1
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _0813AA78
+ b _0813ABC2
+_0813AA78:
+ movs r0, 0xD8
+ str r0, [sp]
+ movs r0, 0x20
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x11
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowPixelRect
+ cmp r4, 0x4
+ beq _0813AAE8
+ cmp r4, 0x4
+ bgt _0813AAA0
+ cmp r4, 0x3
+ beq _0813AAAA
+ b _0813ABC2
+ .pool
+_0813AAA0:
+ cmp r4, 0x5
+ beq _0813AB5C
+ cmp r4, 0x6
+ beq _0813AB94
+ b _0813ABC2
+_0813AAAA:
+ ldr r1, =gUnknown_085B3170
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ str r4, [sp, 0xC]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ ldr r1, =gUnknown_085B312C
+ lsls r0, r5, 1
+ adds r1, r0, r1
+ ldrh r5, [r1]
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ beq _0813AB18
+ b _0813AB2C
+ .pool
+_0813AAE8:
+ ldr r1, =gUnknown_085B319C
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ 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, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ ldr r1, =gUnknown_085B3142
+ lsls r0, r5, 1
+ adds r1, r0, r1
+ ldrh r5, [r1]
+ ldr r0, =0x0000ffff
+ cmp r5, r0
+ bne _0813AB2C
+_0813AB18:
+ ldrh r0, [r1]
+ bl sub_813ABD4
+ b _0813ABC2
+ .pool
+_0813AB2C:
+ ldr r4, =0x0000157c
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ lsls r0, r5, 24
+ lsrs r0, 24
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r1, 0x21
+ movs r2, 0x58
+ movs r3, 0
+ bl AddDecorationIconObject
+ ldr r1, =gUnknown_0203AB6C
+ strb r0, [r1]
+ b _0813ABC2
+ .pool
+_0813AB5C:
+ ldr r1, =gUnknown_085B31B4
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ 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, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ ldr r1, =gUnknown_085B314E
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813ABD4
+ b _0813ABC2
+ .pool
+_0813AB94:
+ ldr r1, =gUnknown_085B31D0
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ 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, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl AddTextPrinterParametrized
+ ldr r1, =gUnknown_085B315C
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813ABD4
+_0813ABC2:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AA60
+
+ thumb_func_start sub_813ABD4
+sub_813ABD4: @ 813ABD4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, =0x0000157c
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl AddItemIconObject
+ ldr r4, =gUnknown_0203AB6C
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0813AC32
+ ldr r3, =gSprites
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x24
+ strh r1, [r0, 0x20]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5C
+ strh r1, [r0, 0x22]
+_0813AC32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813ABD4
+
+ thumb_func_start sub_813AC44
+sub_813AC44: @ 813AC44
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, =gUnknown_0203AB6C
+ ldrb r0, [r2]
+ cmp r0, 0x40
+ beq _0813AC70
+ cmp r1, 0x6
+ bgt _0813AC6A
+ cmp r1, 0x3
+ blt _0813AC6A
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, =gSprites
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+_0813AC6A:
+ ldr r1, =gUnknown_0203AB6C
+ movs r0, 0x40
+ strb r0, [r1]
+_0813AC70:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AC44
+
+ thumb_func_start sub_813AC7C
+sub_813AC7C: @ 813AC7C
+ push {lr}
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813ACB8
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085B320C
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+ b _0813ACD2
+ .pool
+_0813ACB8:
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085B31F8
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, =gMoveNames
+ adds r1, r2
+ bl StringCopy
+_0813ACD2:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AC7C
+
+ thumb_func_start sub_813ACE8
+sub_813ACE8: @ 813ACE8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0813AD20
+ ldr r0, =gSpecialVar_0x8006
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0813AD18
+ ldr r4, =gUnknown_0203AB5E
+ ldr r0, =gUnknown_085B3220
+ bl AddWindow
+ strb r0, [r4]
+ ldrb r0, [r4]
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+_0813AD18:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_813AD34
+_0813AD20:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813ACE8
+
+ thumb_func_start sub_813AD34
+sub_813AD34: @ 813AD34
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r7, r5, 0
+ lsrs r6, r0, 24
+ movs r1, 0xF7
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0813ADAC
+ ldr r4, =gUnknown_0203AB5E
+ ldrb r0, [r4]
+ movs r1, 0x60
+ str r1, [sp]
+ movs r1, 0x30
+ str r1, [sp, 0x4]
+ movs r1, 0x11
+ movs r2, 0
+ movs r3, 0
+ bl FillWindowPixelRect
+ cmp r6, 0xA
+ bne _0813AD90
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085B3254
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r2, [r1]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ b _0813ADAC
+ .pool
+_0813AD90:
+ ldrb r0, [r4]
+ ldr r2, =gUnknown_085B3228
+ lsls r1, r7, 2
+ adds r1, r2
+ ldr r2, [r1]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+_0813ADAC:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AD34
+
+ thumb_func_start sub_813ADB8
+sub_813ADB8: @ 813ADB8
+ push {r4,lr}
+ ldr r4, =gUnknown_0203AB5E
+ 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_813ADB8
+
+ thumb_func_start sub_813ADD4
+sub_813ADD4: @ 813ADD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ ldr r0, =sub_813A600
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ beq _0813AE90
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, =gTasks
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r4, sp
+ adds r4, 0x16
+ add r1, sp, 0x14
+ adds r2, r4, 0
+ bl get_coro_args_x18_x1A
+ ldrh r0, [r6, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl SetStandardWindowBorderStyle
+ movs r5, 0
+ mov r9, r4
+ ldr r0, =gUnknown_085B2CF0
+ mov r8, r0
+ movs r4, 0
+_0813AE1E:
+ ldrh r0, [r6, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ add r1, sp, 0x14
+ ldrh r2, [r1]
+ adds r2, r5
+ lsls r2, 2
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ lsls r1, 6
+ adds r2, r1
+ add r2, r8
+ ldr r2, [r2]
+ lsls r1, r5, 28
+ lsrs r1, 24
+ str r1, [sp]
+ movs r7, 0xFF
+ str r7, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ movs r1, 0x1
+ movs r3, 0xA
+ bl sub_8199F74
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0813AE1E
+ ldrh r0, [r6, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, =gText_SelectorArrow
+ mov r3, r9
+ ldrh r1, [r3]
+ lsls r1, 28
+ lsrs r1, 24
+ str r1, [sp]
+ str r7, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl PrintTextOnWindow
+ ldrh r0, [r6, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ bl PutWindowTilemap
+ ldrh r0, [r6, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0813AE90:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813ADD4
+
+ thumb_func_start sub_813AEB4
+sub_813AEB4: @ 813AEB4
+ push {r4,lr}
+ movs r1, 0
+ ldr r0, =gSpecialVar_0x8005
+ strh r1, [r0]
+ ldr r0, =0x0000400e
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =0x0000400d
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r4, 0
+ beq _0813AF18
+ movs r2, 0
+ lsls r1, 1
+ ldr r3, =gUnknown_0861500C
+ ldr r0, =gUnknown_085B320C
+ adds r0, r1, r0
+ ldrh r1, [r0]
+_0813AEE2:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r1
+ beq _0813AF0C
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1D
+ bls _0813AEE2
+ b _0813AF38
+ .pool
+_0813AF0C:
+ ldr r0, =gSpecialVar_0x8005
+ strh r2, [r0]
+ b _0813AF38
+ .pool
+_0813AF18:
+ movs r2, 0
+ lsls r1, 1
+ ldr r3, =gUnknown_0861500C
+ ldr r0, =gUnknown_085B31F8
+ adds r0, r1, r0
+ ldrh r1, [r0]
+_0813AF24:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r1
+ beq _0813AF0C
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1D
+ bls _0813AF24
+_0813AF38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AEB4
+
+ thumb_func_start sub_813AF48
+sub_813AF48: @ 813AF48
+ push {r4,r5,lr}
+ ldr r0, =sub_813A600
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ beq _0813AFB6
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ ldr r0, =gTasks
+ adds r4, r0
+ ldrh r0, [r4, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ movs r2, 0
+ bl sub_81AE6C8
+ ldr r0, =gUnknown_0203AB64
+ ldr r0, [r0]
+ bl Free
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8198070
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ bl ClearWindowTilemap
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl CopyWindowToVram
+ ldrh r0, [r4, 0x22]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveWindow
+ adds r0, r5, 0
+ bl DestroyTask
+_0813AFB6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AF48
+
+ thumb_func_start sub_813AFC8
+sub_813AFC8: @ 813AFC8
+ push {lr}
+ ldr r0, =task_deoxys_sound
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813AFC8
+
+ thumb_func_start task_deoxys_sound
+task_deoxys_sound: @ 813AFDC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, =0x000008d4
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B004
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x3
+ b _0813B06A
+ .pool
+_0813B004:
+ ldr r0, =0x00004035
+ mov r8, r0
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r4, =0x00004034
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ cmp r5, 0
+ beq _0813B05C
+ ldr r0, =gUnknown_085B33F6
+ subs r1, r5, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, r6
+ bcs _0813B05C
+ movs r0, 0
+ bl sub_813B0B4
+ mov r0, r8
+ movs r1, 0
+ bl VarSet
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+ strh r0, [r1]
+ b _0813B070
+ .pool
+_0813B05C:
+ cmp r5, 0xA
+ bne _0813B080
+ ldr r0, =0x000008d4
+ bl FlagSet
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x2
+_0813B06A:
+ strh r0, [r1]
+ bl EnableBothScriptContexts
+_0813B070:
+ adds r0, r7, 0
+ bl DestroyTask
+ b _0813B0A2
+ .pool
+_0813B080:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813B0B4
+ ldr r0, =0x00004035
+ adds r1, r5, 0
+ bl VarSet
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x1
+ strh r0, [r1]
+ adds r0, r7, 0
+ bl DestroyTask
+_0813B0A2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end task_deoxys_sound
+
+ thumb_func_start sub_813B0B4
+sub_813B0B4: @ 813B0B4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 5
+ ldr r1, =gUnknown_085B3280
+ adds r0, r1
+ movs r1, 0xD0
+ lsls r1, 1
+ movs r2, 0x8
+ bl LoadPalette
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x1
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ cmp r4, 0
+ bne _0813B0F0
+ movs r0, 0xC4
+ bl PlaySE
+ b _0813B0F8
+ .pool
+_0813B0F0:
+ movs r0, 0x82
+ lsls r0, 1
+ bl PlaySE
+_0813B0F8:
+ ldr r0, =sub_813B160
+ movs r1, 0x8
+ bl CreateTask
+ ldr r3, =gFieldEffectArguments
+ movs r0, 0x1
+ str r0, [r3]
+ movs r0, 0x3A
+ str r0, [r3, 0x4]
+ movs r0, 0x1A
+ str r0, [r3, 0x8]
+ ldr r0, =gUnknown_085B33E0
+ lsls r2, r4, 1
+ adds r1, r2, r0
+ ldrb r1, [r1]
+ str r1, [r3, 0xC]
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ str r0, [r3, 0x10]
+ adds r5, r2, 0
+ cmp r4, 0
+ bne _0813B138
+ movs r0, 0x3C
+ b _0813B13A
+ .pool
+_0813B138:
+ movs r0, 0x5
+_0813B13A:
+ str r0, [r3, 0x14]
+ movs r0, 0x42
+ bl FieldEffectStart
+ ldr r0, =gUnknown_085B33E0
+ adds r1, r5, r0
+ ldrb r1, [r1]
+ adds r0, 0x1
+ adds r0, r5, r0
+ ldrb r2, [r0]
+ movs r0, 0x1
+ bl Overworld_SetMapObjTemplateCoords
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B0B4
+
+ thumb_func_start sub_813B160
+sub_813B160: @ 813B160
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x42
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B17C
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B17C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B160
+
+ thumb_func_start increment_var_x4026_on_birth_island_modulo_100
+increment_var_x4026_on_birth_island_modulo_100: @ 813B184
+ push {r4,lr}
+ ldr r4, =0x00004034
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r0, =0x00003a1a
+ cmp r1, r0
+ bne _0813B1C8
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x63
+ bls _0813B1C0
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ b _0813B1C8
+ .pool
+_0813B1C0:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl VarSet
+_0813B1C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end increment_var_x4026_on_birth_island_modulo_100
+
+ thumb_func_start sub_813B1D0
+sub_813B1D0: @ 813B1D0
+ push {lr}
+ ldr r0, =0x00004035
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 19
+ ldr r1, =gUnknown_085B3280
+ adds r0, r1
+ movs r1, 0xD0
+ lsls r1, 1
+ movs r2, 0x8
+ bl LoadPalette
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B1D0
+
+ thumb_func_start set_unknown_box_id
+@ void set_unknown_box_id(char id)
+set_unknown_box_id: @ 813B204
+ ldr r1, =gUnknown_0203AB6F
+ strb r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end set_unknown_box_id
+
+ thumb_func_start get_unknown_box_id
+get_unknown_box_id: @ 813B210
+ ldr r0, =gUnknown_0203AB6F
+ ldrb r0, [r0]
+ bx lr
+ .pool
+ thumb_func_end get_unknown_box_id
+
+ thumb_func_start sub_813B21C
+sub_813B21C: @ 813B21C
+ push {r4,r5,lr}
+ ldr r5, =0x000008d7
+ adds r0, r5, 0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B258
+ bl StorageGetCurrentBox
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, =0x00004036
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ beq _0813B258
+ adds r0, r5, 0
+ bl FlagSet
+ movs r0, 0x1
+ b _0813B25A
+ .pool
+_0813B258:
+ movs r0, 0
+_0813B25A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B21C
+
+ thumb_func_start sub_813B260
+sub_813B260: @ 813B260
+ push {r4-r7,lr}
+ ldr r0, =0x00004036
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl set_unknown_box_id
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0813B278:
+ movs r5, 0
+ lsls r6, r4, 24
+ lsls r7, r4, 16
+_0813B27E:
+ lsls r1, r5, 24
+ lsrs r1, 24
+ lsrs r0, r6, 24
+ bl GetBoxedMonPtr
+ movs r1, 0xB
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _0813B2C0
+ bl get_unknown_box_id
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ beq _0813B2A6
+ ldr r0, =0x000008d7
+ bl FlagClear
+_0813B2A6:
+ ldr r0, =0x00004036
+ lsrs r1, r7, 16
+ bl VarSet
+ bl sub_813B21C
+ lsls r0, 24
+ lsrs r0, 24
+ b _0813B2DC
+ .pool
+_0813B2C0:
+ adds r5, 0x1
+ cmp r5, 0x1D
+ ble _0813B27E
+ adds r4, 0x1
+ cmp r4, 0xE
+ bne _0813B2CE
+ movs r4, 0
+_0813B2CE:
+ bl StorageGetCurrentBox
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _0813B278
+ movs r0, 0
+_0813B2DC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B260
+
+ thumb_func_start sub_813B2E4
+sub_813B2E4: @ 813B2E4
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x00004038
+ movs r1, 0
+ bl VarSet
+ movs r0, 0xDF
+ lsls r0, 1
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0813B340
+ ldr r0, =0x000001bf
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B330
+ ldr r0, =0x00004037
+ movs r1, 0x7
+ ands r4, r1
+ adds r1, r4, 0
+ adds r1, 0x9
+ bl VarSet
+ b _0813B36A
+ .pool
+_0813B330:
+ movs r0, 0x1
+ ands r4, r0
+ cmp r4, 0
+ bne _0813B354
+ bl Random
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0813B340:
+ ldr r0, =0x00004037
+ movs r1, 0x7
+ ands r4, r1
+ adds r1, r4, 0x1
+ bl VarSet
+ b _0813B36A
+ .pool
+_0813B354:
+ bl Random
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x00004037
+ movs r1, 0x7
+ ands r4, r1
+ adds r1, r4, 0
+ adds r1, 0x9
+ bl VarSet
+_0813B36A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B2E4
+
+ thumb_func_start sub_813B374
+sub_813B374: @ 813B374
+ push {r4,lr}
+ ldr r0, =0x00004037
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, =gStringVar1
+ ldr r2, =gUnknown_085B3400
+ subs r1, r4, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0
+ bl GetMapName
+ cmp r4, 0x8
+ bls _0813B3A8
+ movs r0, 0x1
+ b _0813B3AA
+ .pool
+_0813B3A8:
+ movs r0, 0
+_0813B3AA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B374
+
+ thumb_func_start sub_813B3B0
+sub_813B3B0: @ 813B3B0
+ push {r4-r6,lr}
+ ldr r5, =0x00004038
+ adds r0, r5, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x00004037
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _0813B47C
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, =0x000003e7
+ cmp r4, r0
+ bls _0813B474
+ adds r0, r5, 0
+ movs r1, 0
+ bl VarSet
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x18
+ bne _0813B414
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x69
+ bgt _0813B414
+ cmp r0, 0x65
+ blt _0813B414
+ ldr r0, =0x00004039
+ movs r1, 0x1
+ b _0813B478
+ .pool
+_0813B414:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _0813B444
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x34
+ beq _0813B436
+ cmp r0, 0x34
+ blt _0813B444
+ cmp r0, 0x38
+ bgt _0813B444
+ cmp r0, 0x36
+ blt _0813B444
+_0813B436:
+ ldr r0, =0x00004039
+ movs r1, 0x1
+ b _0813B478
+ .pool
+_0813B444:
+ ldr r3, [r3]
+ movs r2, 0x5
+ ldrsb r2, [r3, r2]
+ ldr r1, =gUnknown_085B3410
+ subs r0, r6, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _0813B468
+ movs r0, 0x4
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ bne _0813B468
+ movs r0, 0x1
+ b _0813B47E
+ .pool
+_0813B468:
+ ldr r0, =0x00004037
+ movs r1, 0
+ b _0813B478
+ .pool
+_0813B474:
+ adds r0, r5, 0
+ adds r1, r4, 0
+_0813B478:
+ bl VarSet
+_0813B47C:
+ movs r0, 0
+_0813B47E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B3B0
+
+ thumb_func_start sub_813B484
+sub_813B484: @ 813B484
+ push {lr}
+ movs r0, 0x2
+ bl sub_80AB104
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B484
+
+ thumb_func_start sub_813B490
+sub_813B490: @ 813B490
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r4, [r0]
+ movs r6, 0x4
+ ldrsb r6, [r4, r6]
+ ldr r5, =gUnknown_085B3420
+ adds r0, r5, 0x2
+ mov r12, r0
+ adds r7, r5, 0x1
+_0813B4A4:
+ lsls r0, r3, 1
+ adds r2, r0, r3
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _0813B4CC
+ movs r1, 0x5
+ ldrsb r1, [r4, r1]
+ adds r0, r2, r7
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0813B4CC
+ mov r1, r12
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ b _0813B4D8
+ .pool
+_0813B4CC:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xB
+ bls _0813B4A4
+ movs r0, 0x1
+_0813B4D8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B490
+
+ thumb_func_start sub_813B4E0
+sub_813B4E0: @ 813B4E0
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ bl sub_81D15CC
+ cmp r0, 0
+ blt _0813B50C
+ movs r1, 0xAE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B50C
+ movs r0, 0x1
+ b _0813B50E
+ .pool
+_0813B50C:
+ movs r0, 0
+_0813B50E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B4E0
+
+ thumb_func_start sub_813B514
+sub_813B514: @ 813B514
+ push {lr}
+ ldr r0, =0x0000403f
+ bl VarGet
+ lsls r0, 16
+ cmp r0, 0
+ beq _0813B52C
+ movs r0, 0x1
+ b _0813B52E
+ .pool
+_0813B52C:
+ movs r0, 0
+_0813B52E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B514
+
+ thumb_func_start sub_813B534
+sub_813B534: @ 813B534
+ push {lr}
+ ldr r2, =gUnknown_0203AB70
+ ldr r1, =gBattleTypeFlags
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ str r0, [r1]
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0813B552
+ ldr r0, =sub_80B3AF8
+ movs r1, 0x5
+ bl CreateTask
+_0813B552:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B534
+
+ thumb_func_start sub_813B568
+sub_813B568: @ 813B568
+ push {lr}
+ ldr r0, =sub_813B57C
+ movs r1, 0x5
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B568
+
+ thumb_func_start sub_813B57C
+sub_813B57C: @ 813B57C
+ push {r4,r5,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]
+ cmp r0, 0x9
+ bls _0813B596
+ b _0813B7C6
+_0813B596:
+ lsls r0, 2
+ ldr r1, =_0813B5A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813B5A8:
+ .4byte _0813B5D0
+ .4byte _0813B5E4
+ .4byte _0813B614
+ .4byte _0813B6B4
+ .4byte _0813B6E4
+ .4byte _0813B728
+ .4byte _0813B764
+ .4byte _0813B772
+ .4byte _0813B784
+ .4byte _0813B7A8
+_0813B5D0:
+ ldr r0, =sub_80B3AF8
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813B5DE
+ b _0813B7C6
+_0813B5DE:
+ b _0813B790
+ .pool
+_0813B5E4:
+ bl sub_800A520
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0813B5F2
+ b _0813B7C6
+_0813B5F2:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B5FE
+ b _0813B790
+_0813B5FE:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSpecialVar_0x8004
+ movs r2, 0x2
+ bl SendBlock
+ b _0813B708
+ .pool
+_0813B614:
+ bl GetBlockReceivedStatus
+ movs r1, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _0813B622
+ b _0813B7C6
+_0813B622:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813B62E
+ b _0813B790
+_0813B62E:
+ ldr r5, =gSpecialVar_0x8005
+ ldr r0, =gBlockRecvBuffer
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r5]
+ movs r0, 0x1
+ bl ResetBlockReceivedFlag
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813B668
+ ldrh r1, [r5]
+ cmp r1, 0x1
+ bne _0813B668
+ ldr r0, =gSpecialVar_Result
+ strh r1, [r0]
+ b _0813B790
+ .pool
+_0813B668:
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r1, [r0]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0813B68C
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813B68C
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x2
+ b _0813B6AC
+ .pool
+_0813B68C:
+ ldrh r0, [r2]
+ cmp r0, 0x1
+ bne _0813B6A8
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0813B6A8
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0x3
+ b _0813B6AC
+ .pool
+_0813B6A8:
+ ldr r1, =gSpecialVar_Result
+ movs r0, 0
+_0813B6AC:
+ strh r0, [r1]
+ b _0813B790
+ .pool
+_0813B6B4:
+ bl sub_800A520
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0813B6C2
+ b _0813B7C6
+_0813B6C2:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B790
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, =gSpecialVar_Result
+ movs r2, 0x2
+ bl SendBlock
+ b _0813B708
+ .pool
+_0813B6E4:
+ bl GetBlockReceivedStatus
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0813B7C6
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813B790
+ ldr r1, =gSpecialVar_Result
+ ldr r0, =gBlockRecvBuffer
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, 0
+ bl ResetBlockReceivedFlag
+_0813B708:
+ ldr r1, =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0813B7C6
+ .pool
+_0813B728:
+ bl GetMultiplayerId
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B74C
+ ldr r0, =gSpecialVar_Result
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bne _0813B790
+ ldr r0, =gText_YourPartnerHasRetired
+ bl ShowFieldAutoScrollMessage
+ b _0813B790
+ .pool
+_0813B74C:
+ ldr r0, =gSpecialVar_Result
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ bne _0813B790
+ ldr r0, =gText_YourPartnerHasRetired
+ bl ShowFieldAutoScrollMessage
+ b _0813B790
+ .pool
+_0813B764:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ cmp r0, 0
+ bne _0813B7C6
+ b _0813B790
+_0813B772:
+ bl sub_800A520
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B7C6
+ bl sub_800ADF8
+ b _0813B790
+_0813B784:
+ bl sub_800A520
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B7C6
+_0813B790:
+ ldr r0, =gTasks
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0813B7C6
+ .pool
+_0813B7A8:
+ ldr r0, =gLinkVSyncDisabled
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0813B7B4
+ bl sub_800AC34
+_0813B7B4:
+ ldr r0, =gBattleTypeFlags
+ ldr r1, =gUnknown_0203AB70
+ ldr r1, [r1]
+ str r1, [r0]
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B7C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B57C
+
+ thumb_func_start sub_813B7D8
+sub_813B7D8: @ 813B7D8
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0813B7F8
+ ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_81D6720
+ b _0813B802
+ .pool
+_0813B7F8:
+ ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_81D6720
+_0813B802:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B7D8
+
+ thumb_func_start sub_813B80C
+sub_813B80C: @ 813B80C
+ push {lr}
+ ldr r0, =sub_813B824
+ movs r1, 0x8
+ bl CreateTask
+ movs r0, 0x9D
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B80C
+
+ thumb_func_start sub_813B824
+sub_813B824: @ 813B824
+ push {r4,r5,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]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldr r0, =gSpecialVar_0x8005
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0813B858
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x9D
+ bl PlaySE
+_0813B858:
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0813B86C
+ adds r0, r5, 0
+ bl DestroyTask
+_0813B86C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B824
+
+ thumb_func_start sub_813B880
+sub_813B880: @ 813B880
+ push {lr}
+ ldr r0, =_fwalk
+ 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
+ movs r2, 0
+ movs r0, 0x4
+ strh r0, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B880
+
+ thumb_func_start _fwalk
+_fwalk: @ 813B8B0
+ 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
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r5, r0, r1
+ movs r0, 0x6
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r0, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _0813B94E
+ movs r6, 0
+_0813B8EA:
+ movs r4, 0
+ lsls r3, r6, 3
+ mov r10, r3
+ adds r7, r6, 0x1
+ mov r8, r7
+_0813B8F4:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ adds r0, r4
+ adds r0, 0x6
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r1, r6
+ adds r1, 0x4
+ ldr r7, =0x00000201
+ adds r2, r4, r7
+ add r2, r10
+ movs r7, 0x6
+ ldrsh r3, [r5, r7]
+ lsls r3, 5
+ adds r2, r3
+ lsls r2, 16
+ lsrs r2, 16
+ bl MapGridSetMetatileIdAt
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0813B8F4
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _0813B8EA
+ bl DrawWholeMapView
+ ldrh r0, [r5, 0x6]
+ adds r0, 0x1
+ strh r0, [r5, 0x6]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0813B94E
+ mov r0, r9
+ bl DestroyTask
+ bl EnableBothScriptContexts
+_0813B94E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end _fwalk
+
+ thumb_func_start sub_813B968
+sub_813B968: @ 813B968
+ push {r4,r5,lr}
+ ldr r5, =gSpecialVar_Result
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ movs r1, 0x7
+ bl __udivsi3
+ strh r0, [r5]
+ ldrh r4, [r5]
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ subs r4, r1
+ strh r4, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B968
+
+ thumb_func_start sub_813B9A0
+sub_813B9A0: @ 813B9A0
+ push {lr}
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x1C]
+ movs r0, 0xB0
+ lsls r0, 4
+ cmp r1, r0
+ bne _0813B9B6
+ movs r0, 0x3
+ bl Overworld_SetHealLocationWarp
+_0813B9B6:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813B9A0
+
+ thumb_func_start sub_813B9C0
+sub_813B9C0: @ 813B9C0
+ push {r4,lr}
+ 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
+ ldr r2, =gUnknown_085B3444
+ ldrh r0, [r2]
+ ldr r1, =0x0000ffff
+ cmp r0, r1
+ beq _0813BA06
+ adds r4, r1, 0
+ adds r1, r2, 0
+_0813B9E6:
+ ldrh r0, [r2]
+ cmp r0, r3
+ bne _0813B9FC
+ movs r0, 0x1
+ b _0813BA08
+ .pool
+_0813B9FC:
+ adds r1, 0x2
+ adds r2, 0x2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0813B9E6
+_0813BA06:
+ movs r0, 0
+_0813BA08:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813B9C0
+
+ thumb_func_start ResetFanClub
+ResetFanClub: @ 813BA10
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x0000141e
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ movs r1, 0xA1
+ lsls r1, 5
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .pool
+ thumb_func_end ResetFanClub
+
+ thumb_func_start sub_813BA30
+sub_813BA30: @ 813BA30
+ push {lr}
+ bl sub_813BF44
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813BA52
+ bl sub_813BCE8
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xE]
+ movs r2, 0xA1
+ lsls r2, 5
+ adds r1, r2
+ strh r0, [r1]
+_0813BA52:
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813BA30
+
+ thumb_func_start sub_813BA60
+sub_813BA60: @ 813BA60
+ push {r4,lr}
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r1, =0x0000141e
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813BAB6
+ bl sub_813BF60
+ bl sub_813BD84
+ ldr r1, [r4]
+ ldr r0, =gSaveBlock2Ptr
+ ldr r0, [r0]
+ ldrh r0, [r0, 0xE]
+ movs r2, 0xA1
+ lsls r2, 5
+ adds r1, r2
+ strh r0, [r1]
+ ldr r0, =0x00000315
+ bl FlagClear
+ ldr r0, =0x00000316
+ bl FlagClear
+ ldr r0, =0x00000317
+ bl FlagClear
+ movs r0, 0xC6
+ lsls r0, 2
+ bl FlagClear
+ ldr r0, =0x000002da
+ bl FlagClear
+ ldr r0, =0x00004095
+ movs r1, 0x1
+ bl VarSet
+_0813BAB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813BA60
+
+ thumb_func_start sub_813BADC
+sub_813BADC: @ 813BADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0813BB58
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ ldr r5, =0x0000141e
+ adds r3, r0, r5
+ ldrh r2, [r3]
+ movs r1, 0x7F
+ ands r1, r2
+ ldr r0, =gUnknown_085B3470
+ adds r0, r6, r0
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x13
+ ble _0813BB54
+ bl sub_813BCA8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0813BB3C
+ bl sub_813BB74
+ ldr r0, [r4]
+ adds r0, r5
+ ldrh r2, [r0]
+ ldr r1, =0x0000ff80
+ ands r1, r2
+ strh r1, [r0]
+ b _0813BB58
+ .pool
+_0813BB3C:
+ ldr r2, [r4]
+ adds r2, r5
+ ldrh r1, [r2]
+ ldr r0, =0x0000ff80
+ ands r0, r1
+ movs r1, 0x14
+ orrs r0, r1
+ strh r0, [r2]
+ b _0813BB58
+ .pool
+_0813BB54:
+ adds r0, r2, r0
+ strh r0, [r3]
+_0813BB58:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000141e
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x7F
+ ands r0, r1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_813BADC
+
+ thumb_func_start sub_813BB74
+sub_813BB74: @ 813BB74
+ push {r4-r7,lr}
+ sub sp, 0x8
+ movs r3, 0
+ movs r5, 0
+ ldr r7, =gSaveBlock1Ptr
+ ldr r2, =0x0000141e
+ movs r6, 0x1
+_0813BB82:
+ ldr r0, [r7]
+ adds r0, r2
+ ldrh r1, [r0]
+ ldr r0, =gUnknown_085B3474
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ asrs r1, r4
+ ands r1, r6
+ cmp r1, 0
+ bne _0813BBC8
+ adds r3, r5, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl Random
+ adds r1, r6, 0
+ ands r1, r0
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ cmp r1, 0
+ beq _0813BBC8
+ ldr r0, [r7]
+ adds r0, r2
+ adds r1, r6, 0
+ lsls r1, r4
+ ldrh r2, [r0]
+ orrs r1, r2
+ strh r1, [r0]
+ b _0813BBEA
+ .pool
+_0813BBC8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0813BB82
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x0000141e
+ adds r2, r0
+ ldr r1, =gUnknown_085B3474
+ adds r1, r3, r1
+ movs r0, 0x1
+ ldrb r1, [r1]
+ lsls r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0813BBEA:
+ adds r0, r3, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_813BB74
+
+ thumb_func_start sub_813BC00
+sub_813BC00: @ 813BC00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r10, r0
+ bl sub_813BCA8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0813BC2E
+ movs r0, 0
+ b _0813BC8E
+_0813BC1E:
+ mov r1, r8
+ ldr r0, [r1]
+ add r0, r9
+ lsls r4, r6
+ ldrh r1, [r0]
+ eors r4, r1
+ strh r4, [r0]
+ b _0813BC8C
+_0813BC2E:
+ movs r5, 0
+ ldr r2, =gSaveBlock1Ptr
+ mov r8, r2
+ ldr r0, =0x0000141e
+ mov r9, r0
+ movs r4, 0x1
+_0813BC3A:
+ mov r1, r8
+ ldr r0, [r1]
+ add r0, r9
+ ldrh r1, [r0]
+ ldr r7, =gUnknown_085B347C
+ adds r0, r5, r7
+ ldrb r6, [r0]
+ asrs r1, r6
+ ands r1, r4
+ cmp r1, 0
+ beq _0813BC5E
+ mov r10, r5
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ bne _0813BC1E
+_0813BC5E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0813BC3A
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r2, =0x0000141e
+ adds r4, r0, r2
+ ldrh r1, [r4]
+ mov r2, r10
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ asrs r0, r2
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0813BC8C
+ adds r0, r3, 0
+ lsls r0, r2
+ eors r1, r0
+ strh r1, [r4]
+_0813BC8C:
+ mov r0, r10
+_0813BC8E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_813BC00
+
+ thumb_func_start sub_813BCA8
+sub_813BCA8: @ 813BCA8
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000141e
+ adds r0, r1
+ ldrh r4, [r0]
+ movs r5, 0x1
+_0813BCBA:
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _0813BCCE
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0813BCCE:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _0813BCBA
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_813BCA8
+
+ thumb_func_start sub_813BCE8
+sub_813BCE8: @ 813BCE8
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r2, =gSaveBlock2Ptr
+ ldr r0, [r2]
+ ldrh r1, [r0, 0xE]
+ ldr r0, =0x000003e6
+ cmp r1, r0
+ bhi _0813BD58
+ adds r6, r2, 0
+ b _0813BD32
+ .pool
+_0813BD04:
+ ldr r0, [r6]
+ ldrh r1, [r0, 0xE]
+ ldr r4, =gSaveBlock1Ptr
+ ldr r0, [r4]
+ movs r2, 0xA1
+ lsls r2, 5
+ adds r0, r2
+ ldrh r0, [r0]
+ subs r1, r0
+ cmp r1, 0xB
+ ble _0813BD58
+ bl sub_813BC00
+ ldr r0, [r4]
+ movs r1, 0xA1
+ lsls r1, 5
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r1, 0xC
+ strh r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0813BD32:
+ bl sub_813BCA8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _0813BD54
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, [r6]
+ ldrh r0, [r0, 0xE]
+ movs r2, 0xA1
+ lsls r2, 5
+ adds r1, r2
+ strh r0, [r1]
+ b _0813BD58
+ .pool
+_0813BD54:
+ cmp r5, 0x8
+ bne _0813BD04
+_0813BD58:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BCE8
+
+ thumb_func_start sub_813BD60
+sub_813BD60: @ 813BD60
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000141e
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, =gSpecialVar_0x8004
+ ldrh r1, [r1]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_813BD60
+
+ thumb_func_start sub_813BD84
+sub_813BD84: @ 813BD84
+ ldr r0, =gSaveBlock1Ptr
+ ldr r2, [r0]
+ ldr r0, =0x0000141e
+ adds r2, r0
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .pool
+ thumb_func_end sub_813BD84
+
+ thumb_func_start sub_813BDB4
+sub_813BDB4: @ 813BDB4
+ push {lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, =gSpecialVar_0x8004
+ ldrh r0, [r0]
+ subs r0, 0x8
+ cmp r0, 0x7
+ bhi _0813BE14
+ lsls r0, 2
+ ldr r1, =_0813BDD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813BDD8:
+ .4byte _0813BE14
+ .4byte _0813BE14
+ .4byte _0813BDF8
+ .4byte _0813BDFE
+ .4byte _0813BE04
+ .4byte _0813BE0A
+ .4byte _0813BE10
+ .4byte _0813BE14
+_0813BDF8:
+ movs r3, 0
+ movs r2, 0x3
+ b _0813BE14
+_0813BDFE:
+ movs r3, 0
+ movs r2, 0x1
+ b _0813BE14
+_0813BE04:
+ movs r3, 0x1
+ movs r2, 0
+ b _0813BE14
+_0813BE0A:
+ movs r3, 0
+ movs r2, 0x4
+ b _0813BE14
+_0813BE10:
+ movs r3, 0x1
+ movs r2, 0x5
+_0813BE14:
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x00003150
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_813BE30
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813BDB4
+
+ thumb_func_start sub_813BE30
+sub_813BE30: @ 813BE30
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r0, r5, 4
+ adds r1, r6, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0813BEE8
+ cmp r2, 0x5
+ bhi _0813BED4
+ lsls r0, r2, 2
+ ldr r1, =_0813BE58
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0813BE58:
+ .4byte _0813BED4
+ .4byte _0813BE70
+ .4byte _0813BE84
+ .4byte _0813BE98
+ .4byte _0813BEAC
+ .4byte _0813BEC0
+_0813BE70:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Steven
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BE84:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Brawly
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BE98:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Winona
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BEAC:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Phoebe
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BEC0:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Glacia
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BED4:
+ ldr r0, =gStringVar1
+ ldr r1, =gText_Wallace
+ bl StringCopy
+ b _0813BF04
+ .pool
+_0813BEE8:
+ ldr r4, =gStringVar1
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl StringCopyN
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ adds r0, r6, 0
+ adds r0, 0x50
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl ConvertInternationalString
+_0813BF04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_813BE30
+
+ thumb_func_start sub_813BF10
+sub_813BF10: @ 813BF10
+ push {lr}
+ ldr r0, =0x00004095
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0813BF40
+ bl sub_813BA30
+ ldr r0, =gBattleOutcome
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813BF3C
+ bl sub_813BB74
+ b _0813BF40
+ .pool
+_0813BF3C:
+ bl sub_813BC00
+_0813BF40:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BF10
+
+ thumb_func_start sub_813BF44
+sub_813BF44: @ 813BF44
+ ldr r0, =gSaveBlock1Ptr
+ ldr r0, [r0]
+ ldr r1, =0x0000141e
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .pool
+ thumb_func_end sub_813BF44
+
+ thumb_func_start sub_813BF60
+sub_813BF60: @ 813BF60
+ ldr r0, =gSaveBlock1Ptr
+ ldr r1, [r0]
+ ldr r0, =0x0000141e
+ adds r1, r0
+ ldrh r2, [r1]
+ movs r0, 0x80
+ orrs r0, r2
+ strh r0, [r1]
+ bx lr
+ .pool
+ thumb_func_end sub_813BF60
+
+ thumb_func_start sub_813BF7C
+sub_813BF7C: @ 813BF7C
+ push {lr}
+ ldr r0, =gSpecialVar_0x8004
+ ldrb r0, [r0]
+ bl sub_813BADC
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .pool
+ thumb_func_end sub_813BF7C
+
+ .align 2, 0 @ Don't pad with nop.